/[PAMELA software]/trieste/pamVMC/junk
ViewVC logotype

Annotation of /trieste/pamVMC/junk

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Wed Mar 4 12:51:04 2009 UTC (16 years ago) by pamelats
Branch point for: MAIN, pamVMC
Initial revision

1 pamelats 1.1 # 1 "src/PamVMCCaloID.cxx"
2     # 1 "<built-in>"
3     # 1 "<command line>"
4     # 1 "src/PamVMCCaloID.cxx"
5     # 1 "include/PamVMCCaloID.h" 1
6    
7    
8    
9     # 1 "include/PamVMCGeoID.h" 1
10    
11    
12     # 1 "/cern/ROOT/include/TString.h" 1
13     # 27 "/cern/ROOT/include/TString.h"
14     # 1 "/usr/include/string.h" 1 3 4
15     # 26 "/usr/include/string.h" 3 4
16     # 1 "/usr/include/features.h" 1 3 4
17     # 319 "/usr/include/features.h" 3 4
18     # 1 "/usr/include/sys/cdefs.h" 1 3 4
19     # 320 "/usr/include/features.h" 2 3 4
20     # 342 "/usr/include/features.h" 3 4
21     # 1 "/usr/include/gnu/stubs.h" 1 3 4
22     # 343 "/usr/include/features.h" 2 3 4
23     # 27 "/usr/include/string.h" 2 3 4
24    
25     extern "C" {
26    
27    
28    
29    
30     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
31     # 213 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 3 4
32     typedef unsigned int size_t;
33     # 34 "/usr/include/string.h" 2 3 4
34    
35    
36    
37    
38     extern void *memcpy (void *__restrict __dest,
39     __const void *__restrict __src, size_t __n)
40     throw () __attribute__ ((__nonnull__ (1, 2)));
41    
42    
43     extern void *memmove (void *__dest, __const void *__src, size_t __n)
44     throw () __attribute__ ((__nonnull__ (1, 2)));
45    
46    
47    
48    
49    
50    
51     extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
52     int __c, size_t __n)
53     throw () __attribute__ ((__nonnull__ (1, 2)));
54    
55    
56    
57    
58    
59     extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
60    
61    
62     extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
63     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
64    
65    
66     extern void *memchr (__const void *__s, int __c, size_t __n)
67     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
68    
69    
70    
71    
72    
73     extern void *rawmemchr (__const void *__s, int __c)
74     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
75    
76    
77     extern void *memrchr (__const void *__s, int __c, size_t __n)
78     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
79    
80    
81    
82    
83    
84     extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
85     throw () __attribute__ ((__nonnull__ (1, 2)));
86    
87     extern char *strncpy (char *__restrict __dest,
88     __const char *__restrict __src, size_t __n)
89     throw () __attribute__ ((__nonnull__ (1, 2)));
90    
91    
92     extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
93     throw () __attribute__ ((__nonnull__ (1, 2)));
94    
95     extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
96     size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
97    
98    
99     extern int strcmp (__const char *__s1, __const char *__s2)
100     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
101    
102     extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
103     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
104    
105    
106     extern int strcoll (__const char *__s1, __const char *__s2)
107     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
108    
109     extern size_t strxfrm (char *__restrict __dest,
110     __const char *__restrict __src, size_t __n)
111     throw () __attribute__ ((__nonnull__ (2)));
112    
113    
114    
115    
116    
117    
118     # 1 "/usr/include/xlocale.h" 1 3 4
119     # 28 "/usr/include/xlocale.h" 3 4
120     typedef struct __locale_struct
121     {
122    
123     struct locale_data *__locales[13];
124    
125    
126     const unsigned short int *__ctype_b;
127     const int *__ctype_tolower;
128     const int *__ctype_toupper;
129    
130    
131     const char *__names[13];
132     } *__locale_t;
133     # 119 "/usr/include/string.h" 2 3 4
134    
135    
136     extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
137     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
138    
139     extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
140     __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4)));
141    
142    
143    
144    
145     extern char *strdup (__const char *__s)
146     throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
147    
148    
149    
150    
151    
152    
153     extern char *strndup (__const char *__string, size_t __n)
154     throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
155     # 165 "/usr/include/string.h" 3 4
156    
157    
158     extern char *strchr (__const char *__s, int __c)
159     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
160    
161     extern char *strrchr (__const char *__s, int __c)
162     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
163    
164    
165    
166    
167    
168     extern char *strchrnul (__const char *__s, int __c)
169     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
170    
171    
172    
173    
174    
175     extern size_t strcspn (__const char *__s, __const char *__reject)
176     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
177    
178    
179     extern size_t strspn (__const char *__s, __const char *__accept)
180     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
181    
182     extern char *strpbrk (__const char *__s, __const char *__accept)
183     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
184    
185     extern char *strstr (__const char *__haystack, __const char *__needle)
186     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
187    
188    
189    
190     extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
191     throw () __attribute__ ((__nonnull__ (2)));
192    
193    
194    
195    
196     extern char *__strtok_r (char *__restrict __s,
197     __const char *__restrict __delim,
198     char **__restrict __save_ptr)
199     throw () __attribute__ ((__nonnull__ (2, 3)));
200    
201     extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
202     char **__restrict __save_ptr)
203     throw () __attribute__ ((__nonnull__ (2, 3)));
204    
205    
206    
207    
208     extern char *strcasestr (__const char *__haystack, __const char *__needle)
209     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
210    
211    
212    
213    
214    
215    
216     extern void *memmem (__const void *__haystack, size_t __haystacklen,
217     __const void *__needle, size_t __needlelen)
218     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
219    
220    
221    
222     extern void *__mempcpy (void *__restrict __dest,
223     __const void *__restrict __src, size_t __n)
224     throw () __attribute__ ((__nonnull__ (1, 2)));
225     extern void *mempcpy (void *__restrict __dest,
226     __const void *__restrict __src, size_t __n)
227     throw () __attribute__ ((__nonnull__ (1, 2)));
228    
229    
230    
231    
232    
233     extern size_t strlen (__const char *__s)
234     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
235    
236    
237    
238    
239    
240     extern size_t strnlen (__const char *__string, size_t __maxlen)
241     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
242    
243    
244    
245    
246    
247     extern char *strerror (int __errnum) throw ();
248    
249     # 281 "/usr/include/string.h" 3 4
250     extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
251     throw () __attribute__ ((__nonnull__ (2)));
252    
253    
254    
255    
256    
257     extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
258    
259    
260    
261     extern void bcopy (__const void *__src, void *__dest, size_t __n)
262     throw () __attribute__ ((__nonnull__ (1, 2)));
263    
264    
265     extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
266    
267    
268     extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
269     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
270    
271    
272     extern char *index (__const char *__s, int __c)
273     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
274    
275    
276     extern char *rindex (__const char *__s, int __c)
277     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
278    
279    
280    
281     extern int ffs (int __i) throw () __attribute__ ((__const__));
282    
283    
284    
285    
286     extern int ffsl (long int __l) throw () __attribute__ ((__const__));
287    
288     __extension__ extern int ffsll (long long int __ll)
289     throw () __attribute__ ((__const__));
290    
291    
292    
293    
294     extern int strcasecmp (__const char *__s1, __const char *__s2)
295     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
296    
297    
298     extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
299     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
300    
301    
302    
303    
304    
305     extern int strcasecmp_l (__const char *__s1, __const char *__s2,
306     __locale_t __loc)
307     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
308    
309     extern int strncasecmp_l (__const char *__s1, __const char *__s2,
310     size_t __n, __locale_t __loc)
311     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
312    
313    
314    
315    
316    
317     extern char *strsep (char **__restrict __stringp,
318     __const char *__restrict __delim)
319     throw () __attribute__ ((__nonnull__ (1, 2)));
320    
321    
322    
323    
324     extern int strverscmp (__const char *__s1, __const char *__s2)
325     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
326    
327    
328     extern char *strsignal (int __sig) throw ();
329    
330    
331     extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
332     throw () __attribute__ ((__nonnull__ (1, 2)));
333     extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
334     throw () __attribute__ ((__nonnull__ (1, 2)));
335    
336    
337    
338     extern char *__stpncpy (char *__restrict __dest,
339     __const char *__restrict __src, size_t __n)
340     throw () __attribute__ ((__nonnull__ (1, 2)));
341     extern char *stpncpy (char *__restrict __dest,
342     __const char *__restrict __src, size_t __n)
343     throw () __attribute__ ((__nonnull__ (1, 2)));
344    
345    
346     extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1)));
347    
348    
349     extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
350    
351    
352    
353    
354    
355    
356     extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1)));
357     # 426 "/usr/include/string.h" 3 4
358     }
359     # 28 "/cern/ROOT/include/TString.h" 2
360     # 1 "/usr/include/stdio.h" 1 3 4
361     # 30 "/usr/include/stdio.h" 3 4
362     extern "C" {
363    
364    
365    
366     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
367     # 35 "/usr/include/stdio.h" 2 3 4
368    
369     # 1 "/usr/include/bits/types.h" 1 3 4
370     # 28 "/usr/include/bits/types.h" 3 4
371     # 1 "/usr/include/bits/wordsize.h" 1 3 4
372     # 29 "/usr/include/bits/types.h" 2 3 4
373    
374    
375     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
376     # 32 "/usr/include/bits/types.h" 2 3 4
377    
378    
379     typedef unsigned char __u_char;
380     typedef unsigned short int __u_short;
381     typedef unsigned int __u_int;
382     typedef unsigned long int __u_long;
383    
384    
385     typedef signed char __int8_t;
386     typedef unsigned char __uint8_t;
387     typedef signed short int __int16_t;
388     typedef unsigned short int __uint16_t;
389     typedef signed int __int32_t;
390     typedef unsigned int __uint32_t;
391    
392    
393    
394    
395     __extension__ typedef signed long long int __int64_t;
396     __extension__ typedef unsigned long long int __uint64_t;
397    
398    
399    
400    
401    
402    
403    
404     __extension__ typedef long long int __quad_t;
405     __extension__ typedef unsigned long long int __u_quad_t;
406     # 129 "/usr/include/bits/types.h" 3 4
407     # 1 "/usr/include/bits/typesizes.h" 1 3 4
408     # 130 "/usr/include/bits/types.h" 2 3 4
409    
410    
411    
412    
413    
414    
415     __extension__ typedef __u_quad_t __dev_t;
416     __extension__ typedef unsigned int __uid_t;
417     __extension__ typedef unsigned int __gid_t;
418     __extension__ typedef unsigned long int __ino_t;
419     __extension__ typedef __u_quad_t __ino64_t;
420     __extension__ typedef unsigned int __mode_t;
421     __extension__ typedef unsigned int __nlink_t;
422     __extension__ typedef long int __off_t;
423     __extension__ typedef __quad_t __off64_t;
424     __extension__ typedef int __pid_t;
425     __extension__ typedef struct { int __val[2]; } __fsid_t;
426     __extension__ typedef long int __clock_t;
427     __extension__ typedef unsigned long int __rlim_t;
428     __extension__ typedef __u_quad_t __rlim64_t;
429     __extension__ typedef unsigned int __id_t;
430     __extension__ typedef long int __time_t;
431     __extension__ typedef unsigned int __useconds_t;
432     __extension__ typedef long int __suseconds_t;
433    
434     __extension__ typedef int __daddr_t;
435     __extension__ typedef long int __swblk_t;
436     __extension__ typedef int __key_t;
437    
438    
439     __extension__ typedef int __clockid_t;
440    
441    
442     __extension__ typedef int __timer_t;
443    
444    
445     __extension__ typedef long int __blksize_t;
446    
447    
448    
449    
450     __extension__ typedef long int __blkcnt_t;
451     __extension__ typedef __quad_t __blkcnt64_t;
452    
453    
454     __extension__ typedef unsigned long int __fsblkcnt_t;
455     __extension__ typedef __u_quad_t __fsblkcnt64_t;
456    
457    
458     __extension__ typedef unsigned long int __fsfilcnt_t;
459     __extension__ typedef __u_quad_t __fsfilcnt64_t;
460    
461     __extension__ typedef int __ssize_t;
462    
463    
464    
465     typedef __off64_t __loff_t;
466     typedef __quad_t *__qaddr_t;
467     typedef char *__caddr_t;
468    
469    
470     __extension__ typedef int __intptr_t;
471    
472    
473     __extension__ typedef unsigned int __socklen_t;
474     # 37 "/usr/include/stdio.h" 2 3 4
475    
476    
477    
478    
479    
480    
481    
482    
483    
484     typedef struct _IO_FILE FILE;
485    
486    
487    
488    
489    
490     # 62 "/usr/include/stdio.h" 3 4
491     typedef struct _IO_FILE __FILE;
492     # 72 "/usr/include/stdio.h" 3 4
493     # 1 "/usr/include/libio.h" 1 3 4
494     # 32 "/usr/include/libio.h" 3 4
495     # 1 "/usr/include/_G_config.h" 1 3 4
496     # 14 "/usr/include/_G_config.h" 3 4
497     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
498     # 354 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 3 4
499     typedef unsigned int wint_t;
500     # 15 "/usr/include/_G_config.h" 2 3 4
501     # 24 "/usr/include/_G_config.h" 3 4
502     # 1 "/usr/include/wchar.h" 1 3 4
503     # 48 "/usr/include/wchar.h" 3 4
504     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
505     # 49 "/usr/include/wchar.h" 2 3 4
506    
507     # 1 "/usr/include/bits/wchar.h" 1 3 4
508     # 51 "/usr/include/wchar.h" 2 3 4
509     # 76 "/usr/include/wchar.h" 3 4
510     typedef struct
511     {
512     int __count;
513     union
514     {
515     wint_t __wch;
516     char __wchb[4];
517     } __value;
518     } __mbstate_t;
519     # 25 "/usr/include/_G_config.h" 2 3 4
520    
521     typedef struct
522     {
523     __off_t __pos;
524     __mbstate_t __state;
525     } _G_fpos_t;
526     typedef struct
527     {
528     __off64_t __pos;
529     __mbstate_t __state;
530     } _G_fpos64_t;
531     # 44 "/usr/include/_G_config.h" 3 4
532     # 1 "/usr/include/gconv.h" 1 3 4
533     # 28 "/usr/include/gconv.h" 3 4
534     # 1 "/usr/include/wchar.h" 1 3 4
535     # 48 "/usr/include/wchar.h" 3 4
536     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
537     # 49 "/usr/include/wchar.h" 2 3 4
538     # 29 "/usr/include/gconv.h" 2 3 4
539    
540    
541     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
542     # 32 "/usr/include/gconv.h" 2 3 4
543    
544    
545    
546    
547    
548     enum
549     {
550     __GCONV_OK = 0,
551     __GCONV_NOCONV,
552     __GCONV_NODB,
553     __GCONV_NOMEM,
554    
555     __GCONV_EMPTY_INPUT,
556     __GCONV_FULL_OUTPUT,
557     __GCONV_ILLEGAL_INPUT,
558     __GCONV_INCOMPLETE_INPUT,
559    
560     __GCONV_ILLEGAL_DESCRIPTOR,
561     __GCONV_INTERNAL_ERROR
562     };
563    
564    
565    
566     enum
567     {
568     __GCONV_IS_LAST = 0x0001,
569     __GCONV_IGNORE_ERRORS = 0x0002
570     };
571    
572    
573    
574     struct __gconv_step;
575     struct __gconv_step_data;
576     struct __gconv_loaded_object;
577     struct __gconv_trans_data;
578    
579    
580    
581     typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
582     __const unsigned char **, __const unsigned char *,
583     unsigned char **, size_t *, int, int);
584    
585    
586     typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char);
587    
588    
589     typedef int (*__gconv_init_fct) (struct __gconv_step *);
590     typedef void (*__gconv_end_fct) (struct __gconv_step *);
591    
592    
593    
594     typedef int (*__gconv_trans_fct) (struct __gconv_step *,
595     struct __gconv_step_data *, void *,
596     __const unsigned char *,
597     __const unsigned char **,
598     __const unsigned char *, unsigned char **,
599     size_t *);
600    
601    
602     typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
603     __const unsigned char *,
604     unsigned char *, unsigned char *);
605    
606    
607     typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
608     size_t *);
609    
610    
611     typedef int (*__gconv_trans_init_fct) (void **, const char *);
612     typedef void (*__gconv_trans_end_fct) (void *);
613    
614     struct __gconv_trans_data
615     {
616    
617     __gconv_trans_fct __trans_fct;
618     __gconv_trans_context_fct __trans_context_fct;
619     __gconv_trans_end_fct __trans_end_fct;
620     void *__data;
621     struct __gconv_trans_data *__next;
622     };
623    
624    
625    
626     struct __gconv_step
627     {
628     struct __gconv_loaded_object *__shlib_handle;
629     __const char *__modname;
630    
631     int __counter;
632    
633     char *__from_name;
634     char *__to_name;
635    
636     __gconv_fct __fct;
637     __gconv_btowc_fct __btowc_fct;
638     __gconv_init_fct __init_fct;
639     __gconv_end_fct __end_fct;
640    
641    
642    
643     int __min_needed_from;
644     int __max_needed_from;
645     int __min_needed_to;
646     int __max_needed_to;
647    
648    
649     int __stateful;
650    
651     void *__data;
652     };
653    
654    
655    
656     struct __gconv_step_data
657     {
658     unsigned char *__outbuf;
659     unsigned char *__outbufend;
660    
661    
662    
663     int __flags;
664    
665    
666    
667     int __invocation_counter;
668    
669    
670    
671     int __internal_use;
672    
673     __mbstate_t *__statep;
674     __mbstate_t __state;
675    
676    
677    
678     struct __gconv_trans_data *__trans;
679     };
680    
681    
682    
683     typedef struct __gconv_info
684     {
685     size_t __nsteps;
686     struct __gconv_step *__steps;
687     __extension__ struct __gconv_step_data __data [];
688     } *__gconv_t;
689     # 45 "/usr/include/_G_config.h" 2 3 4
690     typedef union
691     {
692     struct __gconv_info __cd;
693     struct
694     {
695     struct __gconv_info __cd;
696     struct __gconv_step_data __data;
697     } __combined;
698     } _G_iconv_t;
699    
700     typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
701     typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
702     typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
703     typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
704     # 33 "/usr/include/libio.h" 2 3 4
705     # 53 "/usr/include/libio.h" 3 4
706     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h" 1 3 4
707     # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h" 3 4
708     typedef __builtin_va_list __gnuc_va_list;
709     # 54 "/usr/include/libio.h" 2 3 4
710     # 166 "/usr/include/libio.h" 3 4
711     struct _IO_jump_t; struct _IO_FILE;
712     # 176 "/usr/include/libio.h" 3 4
713     typedef void _IO_lock_t;
714    
715    
716    
717    
718    
719     struct _IO_marker {
720     struct _IO_marker *_next;
721     struct _IO_FILE *_sbuf;
722    
723    
724    
725     int _pos;
726     # 199 "/usr/include/libio.h" 3 4
727     };
728    
729    
730     enum __codecvt_result
731     {
732     __codecvt_ok,
733     __codecvt_partial,
734     __codecvt_error,
735     __codecvt_noconv
736     };
737     # 267 "/usr/include/libio.h" 3 4
738     struct _IO_FILE {
739     int _flags;
740    
741    
742    
743    
744     char* _IO_read_ptr;
745     char* _IO_read_end;
746     char* _IO_read_base;
747     char* _IO_write_base;
748     char* _IO_write_ptr;
749     char* _IO_write_end;
750     char* _IO_buf_base;
751     char* _IO_buf_end;
752    
753     char *_IO_save_base;
754     char *_IO_backup_base;
755     char *_IO_save_end;
756    
757     struct _IO_marker *_markers;
758    
759     struct _IO_FILE *_chain;
760    
761     int _fileno;
762    
763    
764    
765     int _flags2;
766    
767     __off_t _old_offset;
768    
769    
770    
771     unsigned short _cur_column;
772     signed char _vtable_offset;
773     char _shortbuf[1];
774    
775    
776    
777     _IO_lock_t *_lock;
778     # 315 "/usr/include/libio.h" 3 4
779     __off64_t _offset;
780     # 324 "/usr/include/libio.h" 3 4
781     void *__pad1;
782     void *__pad2;
783     void *__pad3;
784     void *__pad4;
785     size_t __pad5;
786    
787     int _mode;
788    
789     char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
790    
791     };
792    
793    
794    
795    
796    
797     struct _IO_FILE_plus;
798    
799     extern struct _IO_FILE_plus _IO_2_1_stdin_;
800     extern struct _IO_FILE_plus _IO_2_1_stdout_;
801     extern struct _IO_FILE_plus _IO_2_1_stderr_;
802     # 360 "/usr/include/libio.h" 3 4
803     typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
804    
805    
806    
807    
808    
809    
810    
811     typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
812     size_t __n);
813    
814    
815    
816    
817    
818    
819    
820     typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
821    
822    
823     typedef int __io_close_fn (void *__cookie);
824    
825    
826    
827    
828     typedef __io_read_fn cookie_read_function_t;
829     typedef __io_write_fn cookie_write_function_t;
830     typedef __io_seek_fn cookie_seek_function_t;
831     typedef __io_close_fn cookie_close_function_t;
832    
833    
834     typedef struct
835     {
836     __io_read_fn *read;
837     __io_write_fn *write;
838     __io_seek_fn *seek;
839     __io_close_fn *close;
840     } _IO_cookie_io_functions_t;
841     typedef _IO_cookie_io_functions_t cookie_io_functions_t;
842    
843     struct _IO_cookie_file;
844    
845    
846     extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
847     void *__cookie, _IO_cookie_io_functions_t __fns);
848    
849    
850    
851    
852     extern "C" {
853    
854    
855     extern int __underflow (_IO_FILE *) throw ();
856     extern int __uflow (_IO_FILE *) throw ();
857     extern int __overflow (_IO_FILE *, int) throw ();
858     extern wint_t __wunderflow (_IO_FILE *) throw ();
859     extern wint_t __wuflow (_IO_FILE *) throw ();
860     extern wint_t __woverflow (_IO_FILE *, wint_t) throw ();
861     # 450 "/usr/include/libio.h" 3 4
862     extern int _IO_getc (_IO_FILE *__fp) throw ();
863     extern int _IO_putc (int __c, _IO_FILE *__fp) throw ();
864     extern int _IO_feof (_IO_FILE *__fp) throw ();
865     extern int _IO_ferror (_IO_FILE *__fp) throw ();
866    
867     extern int _IO_peekc_locked (_IO_FILE *__fp) throw ();
868    
869    
870    
871    
872    
873     extern void _IO_flockfile (_IO_FILE *) throw ();
874     extern void _IO_funlockfile (_IO_FILE *) throw ();
875     extern int _IO_ftrylockfile (_IO_FILE *) throw ();
876     # 480 "/usr/include/libio.h" 3 4
877     extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
878     __gnuc_va_list, int *__restrict);
879     extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
880     __gnuc_va_list);
881     extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) throw ();
882     extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) throw ();
883    
884     extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) throw ();
885     extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) throw ();
886    
887     extern void _IO_free_backup_area (_IO_FILE *) throw ();
888     # 538 "/usr/include/libio.h" 3 4
889     }
890     # 73 "/usr/include/stdio.h" 2 3 4
891    
892    
893    
894    
895     typedef __gnuc_va_list va_list;
896     # 86 "/usr/include/stdio.h" 3 4
897    
898    
899     typedef _G_fpos_t fpos_t;
900    
901    
902    
903    
904    
905     typedef _G_fpos64_t fpos64_t;
906     # 138 "/usr/include/stdio.h" 3 4
907     # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
908     # 139 "/usr/include/stdio.h" 2 3 4
909    
910    
911    
912     extern struct _IO_FILE *stdin;
913     extern struct _IO_FILE *stdout;
914     extern struct _IO_FILE *stderr;
915    
916    
917    
918    
919    
920    
921    
922    
923    
924     extern int remove (__const char *__filename) throw ();
925    
926     extern int rename (__const char *__old, __const char *__new) throw ();
927    
928    
929    
930    
931    
932    
933    
934    
935    
936     extern FILE *tmpfile (void);
937     # 176 "/usr/include/stdio.h" 3 4
938     extern FILE *tmpfile64 (void);
939    
940    
941    
942     extern char *tmpnam (char *__s) throw ();
943    
944    
945    
946    
947    
948     extern char *tmpnam_r (char *__s) throw ();
949     # 198 "/usr/include/stdio.h" 3 4
950     extern char *tempnam (__const char *__dir, __const char *__pfx)
951     throw () __attribute__ ((__malloc__));
952    
953    
954    
955    
956    
957    
958    
959    
960     extern int fclose (FILE *__stream);
961    
962    
963    
964    
965     extern int fflush (FILE *__stream);
966    
967     # 223 "/usr/include/stdio.h" 3 4
968     extern int fflush_unlocked (FILE *__stream);
969     # 233 "/usr/include/stdio.h" 3 4
970     extern int fcloseall (void);
971    
972    
973    
974    
975    
976    
977    
978    
979    
980     extern FILE *fopen (__const char *__restrict __filename,
981     __const char *__restrict __modes);
982    
983    
984    
985    
986     extern FILE *freopen (__const char *__restrict __filename,
987     __const char *__restrict __modes,
988     FILE *__restrict __stream);
989     # 264 "/usr/include/stdio.h" 3 4
990    
991    
992     extern FILE *fopen64 (__const char *__restrict __filename,
993     __const char *__restrict __modes);
994     extern FILE *freopen64 (__const char *__restrict __filename,
995     __const char *__restrict __modes,
996     FILE *__restrict __stream);
997    
998    
999    
1000    
1001     extern FILE *fdopen (int __fd, __const char *__modes) throw ();
1002    
1003    
1004    
1005    
1006    
1007     extern FILE *fopencookie (void *__restrict __magic_cookie,
1008     __const char *__restrict __modes,
1009     _IO_cookie_io_functions_t __io_funcs) throw ();
1010    
1011    
1012     extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) throw ();
1013    
1014    
1015    
1016    
1017     extern FILE *open_memstream (char **__restrict __bufloc,
1018     size_t *__restrict __sizeloc) throw ();
1019    
1020    
1021    
1022    
1023    
1024    
1025     extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
1026    
1027    
1028    
1029     extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
1030     int __modes, size_t __n) throw ();
1031    
1032    
1033    
1034    
1035    
1036     extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
1037     size_t __size) throw ();
1038    
1039    
1040     extern void setlinebuf (FILE *__stream) throw ();
1041    
1042    
1043    
1044    
1045    
1046    
1047    
1048    
1049     extern int fprintf (FILE *__restrict __stream,
1050     __const char *__restrict __format, ...);
1051    
1052    
1053    
1054    
1055     extern int printf (__const char *__restrict __format, ...);
1056    
1057     extern int sprintf (char *__restrict __s,
1058     __const char *__restrict __format, ...) throw ();
1059    
1060    
1061    
1062    
1063    
1064     extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
1065     __gnuc_va_list __arg);
1066    
1067    
1068    
1069    
1070     extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
1071    
1072     extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
1073     __gnuc_va_list __arg) throw ();
1074    
1075    
1076    
1077    
1078    
1079     extern int snprintf (char *__restrict __s, size_t __maxlen,
1080     __const char *__restrict __format, ...)
1081     throw () __attribute__ ((__format__ (__printf__, 3, 4)));
1082    
1083     extern int vsnprintf (char *__restrict __s, size_t __maxlen,
1084     __const char *__restrict __format, __gnuc_va_list __arg)
1085     throw () __attribute__ ((__format__ (__printf__, 3, 0)));
1086    
1087    
1088    
1089    
1090    
1091    
1092     extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
1093     __gnuc_va_list __arg)
1094     throw () __attribute__ ((__format__ (__printf__, 2, 0)));
1095     extern int __asprintf (char **__restrict __ptr,
1096     __const char *__restrict __fmt, ...)
1097     throw () __attribute__ ((__format__ (__printf__, 2, 3)));
1098     extern int asprintf (char **__restrict __ptr,
1099     __const char *__restrict __fmt, ...)
1100     throw () __attribute__ ((__format__ (__printf__, 2, 3)));
1101    
1102    
1103    
1104    
1105    
1106    
1107    
1108     extern int vdprintf (int __fd, __const char *__restrict __fmt,
1109     __gnuc_va_list __arg)
1110     __attribute__ ((__format__ (__printf__, 2, 0)));
1111     extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
1112     __attribute__ ((__format__ (__printf__, 2, 3)));
1113    
1114    
1115    
1116    
1117    
1118    
1119    
1120    
1121     extern int fscanf (FILE *__restrict __stream,
1122     __const char *__restrict __format, ...);
1123    
1124    
1125    
1126    
1127     extern int scanf (__const char *__restrict __format, ...);
1128    
1129     extern int sscanf (__const char *__restrict __s,
1130     __const char *__restrict __format, ...) throw ();
1131    
1132    
1133    
1134    
1135    
1136    
1137    
1138    
1139     extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
1140     __gnuc_va_list __arg)
1141     __attribute__ ((__format__ (__scanf__, 2, 0)));
1142    
1143    
1144    
1145    
1146    
1147     extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
1148     __attribute__ ((__format__ (__scanf__, 1, 0)));
1149    
1150    
1151     extern int vsscanf (__const char *__restrict __s,
1152     __const char *__restrict __format, __gnuc_va_list __arg)
1153     throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
1154    
1155    
1156    
1157    
1158    
1159    
1160    
1161    
1162    
1163     extern int fgetc (FILE *__stream);
1164     extern int getc (FILE *__stream);
1165    
1166    
1167    
1168    
1169    
1170     extern int getchar (void);
1171    
1172     # 456 "/usr/include/stdio.h" 3 4
1173     extern int getc_unlocked (FILE *__stream);
1174     extern int getchar_unlocked (void);
1175     # 467 "/usr/include/stdio.h" 3 4
1176     extern int fgetc_unlocked (FILE *__stream);
1177    
1178    
1179    
1180    
1181    
1182    
1183    
1184    
1185    
1186    
1187    
1188     extern int fputc (int __c, FILE *__stream);
1189     extern int putc (int __c, FILE *__stream);
1190    
1191    
1192    
1193    
1194    
1195     extern int putchar (int __c);
1196    
1197     # 500 "/usr/include/stdio.h" 3 4
1198     extern int fputc_unlocked (int __c, FILE *__stream);
1199    
1200    
1201    
1202    
1203    
1204    
1205    
1206     extern int putc_unlocked (int __c, FILE *__stream);
1207     extern int putchar_unlocked (int __c);
1208    
1209    
1210    
1211    
1212    
1213    
1214     extern int getw (FILE *__stream);
1215    
1216    
1217     extern int putw (int __w, FILE *__stream);
1218    
1219    
1220    
1221    
1222    
1223    
1224    
1225    
1226     extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream);
1227    
1228    
1229    
1230    
1231    
1232    
1233     extern char *gets (char *__s);
1234    
1235     # 545 "/usr/include/stdio.h" 3 4
1236     extern char *fgets_unlocked (char *__restrict __s, int __n,
1237     FILE *__restrict __stream);
1238     # 561 "/usr/include/stdio.h" 3 4
1239     extern __ssize_t __getdelim (char **__restrict __lineptr,
1240     size_t *__restrict __n, int __delimiter,
1241     FILE *__restrict __stream);
1242     extern __ssize_t getdelim (char **__restrict __lineptr,
1243     size_t *__restrict __n, int __delimiter,
1244     FILE *__restrict __stream);
1245    
1246    
1247    
1248    
1249    
1250    
1251    
1252     extern __ssize_t getline (char **__restrict __lineptr,
1253     size_t *__restrict __n,
1254     FILE *__restrict __stream);
1255    
1256    
1257    
1258    
1259    
1260    
1261    
1262    
1263     extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
1264    
1265    
1266    
1267    
1268    
1269     extern int puts (__const char *__s);
1270    
1271    
1272    
1273    
1274    
1275    
1276     extern int ungetc (int __c, FILE *__stream);
1277    
1278    
1279    
1280    
1281    
1282    
1283     extern size_t fread (void *__restrict __ptr, size_t __size,
1284     size_t __n, FILE *__restrict __stream);
1285    
1286    
1287    
1288    
1289     extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
1290     size_t __n, FILE *__restrict __s);
1291    
1292     # 622 "/usr/include/stdio.h" 3 4
1293     extern int fputs_unlocked (__const char *__restrict __s,
1294     FILE *__restrict __stream);
1295     # 633 "/usr/include/stdio.h" 3 4
1296     extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
1297     size_t __n, FILE *__restrict __stream);
1298     extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
1299     size_t __n, FILE *__restrict __stream);
1300    
1301    
1302    
1303    
1304    
1305    
1306    
1307    
1308     extern int fseek (FILE *__stream, long int __off, int __whence);
1309    
1310    
1311    
1312    
1313     extern long int ftell (FILE *__stream);
1314    
1315    
1316    
1317    
1318     extern void rewind (FILE *__stream);
1319    
1320     # 669 "/usr/include/stdio.h" 3 4
1321     extern int fseeko (FILE *__stream, __off_t __off, int __whence);
1322    
1323    
1324    
1325    
1326     extern __off_t ftello (FILE *__stream);
1327     # 688 "/usr/include/stdio.h" 3 4
1328    
1329    
1330    
1331    
1332    
1333    
1334     extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
1335    
1336    
1337    
1338    
1339     extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
1340     # 711 "/usr/include/stdio.h" 3 4
1341    
1342    
1343    
1344     extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
1345     extern __off64_t ftello64 (FILE *__stream);
1346     extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
1347     extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
1348    
1349    
1350    
1351    
1352     extern void clearerr (FILE *__stream) throw ();
1353    
1354     extern int feof (FILE *__stream) throw ();
1355    
1356     extern int ferror (FILE *__stream) throw ();
1357    
1358    
1359    
1360    
1361     extern void clearerr_unlocked (FILE *__stream) throw ();
1362     extern int feof_unlocked (FILE *__stream) throw ();
1363     extern int ferror_unlocked (FILE *__stream) throw ();
1364    
1365    
1366    
1367    
1368    
1369    
1370    
1371    
1372     extern void perror (__const char *__s);
1373    
1374    
1375    
1376    
1377    
1378    
1379     # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
1380     # 27 "/usr/include/bits/sys_errlist.h" 3 4
1381     extern int sys_nerr;
1382     extern __const char *__const sys_errlist[];
1383    
1384    
1385     extern int _sys_nerr;
1386     extern __const char *__const _sys_errlist[];
1387     # 750 "/usr/include/stdio.h" 2 3 4
1388    
1389    
1390    
1391    
1392     extern int fileno (FILE *__stream) throw ();
1393    
1394    
1395    
1396    
1397     extern int fileno_unlocked (FILE *__stream) throw ();
1398     # 769 "/usr/include/stdio.h" 3 4
1399     extern FILE *popen (__const char *__command, __const char *__modes);
1400    
1401    
1402    
1403    
1404    
1405     extern int pclose (FILE *__stream);
1406    
1407    
1408    
1409    
1410    
1411     extern char *ctermid (char *__s) throw ();
1412    
1413    
1414    
1415    
1416    
1417     extern char *cuserid (char *__s);
1418    
1419    
1420    
1421    
1422     struct obstack;
1423    
1424    
1425     extern int obstack_printf (struct obstack *__restrict __obstack,
1426     __const char *__restrict __format, ...)
1427     throw () __attribute__ ((__format__ (__printf__, 2, 3)));
1428     extern int obstack_vprintf (struct obstack *__restrict __obstack,
1429     __const char *__restrict __format,
1430     __gnuc_va_list __args)
1431     throw () __attribute__ ((__format__ (__printf__, 2, 0)));
1432    
1433    
1434    
1435    
1436    
1437    
1438    
1439     extern void flockfile (FILE *__stream) throw ();
1440    
1441    
1442    
1443     extern int ftrylockfile (FILE *__stream) throw ();
1444    
1445    
1446     extern void funlockfile (FILE *__stream) throw ();
1447     # 836 "/usr/include/stdio.h" 3 4
1448     }
1449     # 29 "/cern/ROOT/include/TString.h" 2
1450    
1451    
1452    
1453     # 1 "/cern/ROOT/include/TRefCnt.h" 1
1454     # 25 "/cern/ROOT/include/TRefCnt.h"
1455     # 1 "/cern/ROOT/include/Rtypes.h" 1
1456     # 24 "/cern/ROOT/include/Rtypes.h"
1457     # 1 "/cern/ROOT/include/RConfig.h" 1
1458     # 23 "/cern/ROOT/include/RConfig.h"
1459     # 1 "/cern/ROOT/include/RVersion.h" 1
1460     # 24 "/cern/ROOT/include/RConfig.h" 2
1461     # 25 "/cern/ROOT/include/Rtypes.h" 2
1462    
1463    
1464     # 1 "/cern/ROOT/include/DllImport.h" 1
1465     # 28 "/cern/ROOT/include/Rtypes.h" 2
1466    
1467    
1468     # 1 "/cern/ROOT/include/Rtypeinfo.h" 1
1469     # 32 "/cern/ROOT/include/Rtypeinfo.h"
1470     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/typeinfo" 1 3
1471     # 38 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/typeinfo" 3
1472     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception" 1 3
1473     # 40 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception" 3
1474     extern "C++" {
1475    
1476     namespace std
1477     {
1478     # 52 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception" 3
1479     class exception
1480     {
1481     public:
1482     exception() throw() { }
1483     virtual ~exception() throw();
1484    
1485    
1486     virtual const char* what() const throw();
1487     };
1488    
1489    
1490    
1491     class bad_exception : public exception
1492     {
1493     public:
1494     bad_exception() throw() { }
1495    
1496    
1497     virtual ~bad_exception() throw();
1498     };
1499    
1500    
1501     typedef void (*terminate_handler) ();
1502    
1503     typedef void (*unexpected_handler) ();
1504    
1505    
1506     terminate_handler set_terminate(terminate_handler) throw();
1507    
1508    
1509     void terminate() __attribute__ ((__noreturn__));
1510    
1511    
1512     unexpected_handler set_unexpected(unexpected_handler) throw();
1513    
1514    
1515     void unexpected() __attribute__ ((__noreturn__));
1516     # 100 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception" 3
1517     bool uncaught_exception() throw();
1518     }
1519    
1520     namespace __gnu_cxx
1521     {
1522     # 115 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception" 3
1523     void __verbose_terminate_handler ();
1524     }
1525    
1526     }
1527     # 39 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/typeinfo" 2 3
1528    
1529     extern "C++" {
1530    
1531     namespace __cxxabiv1
1532     {
1533     class __class_type_info;
1534     }
1535     # 55 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/typeinfo" 3
1536     namespace std
1537     {
1538    
1539    
1540    
1541    
1542    
1543    
1544     class type_info
1545     {
1546     public:
1547    
1548    
1549    
1550    
1551     virtual ~type_info();
1552    
1553     private:
1554    
1555     type_info& operator=(const type_info&);
1556     type_info(const type_info&);
1557    
1558     protected:
1559     const char *__name;
1560    
1561     protected:
1562     explicit type_info(const char *__n): __name(__n) { }
1563    
1564     public:
1565    
1566    
1567    
1568     const char* name() const
1569     { return __name; }
1570     # 101 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/typeinfo" 3
1571     bool before(const type_info& __arg) const
1572     { return __name < __arg.__name; }
1573     bool operator==(const type_info& __arg) const
1574     { return __name == __arg.__name; }
1575    
1576     bool operator!=(const type_info& __arg) const
1577     { return !operator==(__arg); }
1578    
1579    
1580     public:
1581    
1582     virtual bool __is_pointer_p() const;
1583    
1584     virtual bool __is_function_p() const;
1585    
1586    
1587    
1588    
1589    
1590    
1591    
1592     virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj,
1593     unsigned __outer) const;
1594    
1595    
1596     virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target,
1597     void **__obj_ptr) const;
1598     };
1599    
1600    
1601    
1602    
1603    
1604    
1605     class bad_cast : public exception
1606     {
1607     public:
1608     bad_cast() throw() { }
1609    
1610    
1611     virtual ~bad_cast() throw();
1612     };
1613    
1614    
1615     class bad_typeid : public exception
1616     {
1617     public:
1618     bad_typeid () throw() { }
1619    
1620    
1621     virtual ~bad_typeid() throw();
1622     };
1623     }
1624    
1625     }
1626     # 33 "/cern/ROOT/include/Rtypeinfo.h" 2
1627     using std::type_info;
1628     # 31 "/cern/ROOT/include/Rtypes.h" 2
1629     # 39 "/cern/ROOT/include/Rtypes.h"
1630     class TClass;
1631     class TBuffer;
1632     class TMemberInspector;
1633     class TObject;
1634     class TNamed;
1635     class TRootIOCtor;
1636    
1637    
1638    
1639     typedef char Char_t;
1640     typedef unsigned char UChar_t;
1641     typedef short Short_t;
1642     typedef unsigned short UShort_t;
1643    
1644    
1645    
1646    
1647     typedef int Int_t;
1648     typedef unsigned int UInt_t;
1649    
1650    
1651    
1652    
1653    
1654    
1655     typedef int Seek_t;
1656     typedef long Long_t;
1657     typedef unsigned long ULong_t;
1658    
1659     typedef float Float_t;
1660     typedef double Double_t;
1661     typedef double Double32_t;
1662     typedef char Text_t;
1663     typedef bool Bool_t;
1664     typedef unsigned char Byte_t;
1665     typedef short Version_t;
1666     typedef const char Option_t;
1667     typedef int Ssiz_t;
1668     typedef float Real_t;
1669    
1670    
1671    
1672    
1673     typedef long long Long64_t;
1674     typedef unsigned long long ULong64_t;
1675    
1676     typedef double Axis_t;
1677     typedef double Stat_t;
1678    
1679     typedef short Font_t;
1680     typedef short Style_t;
1681     typedef short Marker_t;
1682     typedef short Width_t;
1683     typedef short Color_t;
1684     typedef short SCoord_t;
1685     typedef double Coord_t;
1686     typedef float Angle_t;
1687     typedef float Size_t;
1688    
1689     enum EColor { kWhite =0, kBlack =1, kGray=920
1690     ,kRed =632, kGreen =416, kBlue=600, kYellow=400, kMagenta=616, kCyan=432
1691     ,kOrange=800, kSpring=820, kTeal=840, kAzure =860, kViolet =880, kPink=900};
1692    
1693    
1694     class TClassStreamer;
1695     class TMemberStreamer;
1696     typedef void (*ClassStreamerFunc_t)(TBuffer&, void*);
1697     typedef void (*MemberStreamerFunc_t)(TBuffer&, void*, Int_t);
1698    
1699    
1700     class TVirtualCollectionProxy;
1701    
1702     typedef void (*VoidFuncPtr_t)();
1703     # 120 "/cern/ROOT/include/Rtypes.h"
1704     const Bool_t kTRUE = true;
1705     const Bool_t kFALSE = false;
1706    
1707     const Int_t kMaxUChar = 256;
1708     const Int_t kMaxChar = kMaxUChar >> 1;
1709     const Int_t kMinChar = -kMaxChar - 1;
1710    
1711     const Int_t kMaxUShort = 65534;
1712     const Int_t kMaxShort = kMaxUShort >> 1;
1713     const Int_t kMinShort = -kMaxShort - 1;
1714    
1715     const UInt_t kMaxUInt = UInt_t(~0);
1716     const Int_t kMaxInt = Int_t(kMaxUInt >> 1);
1717     const Int_t kMinInt = -kMaxInt - 1;
1718    
1719     const ULong_t kMaxULong = ULong_t(~0);
1720     const Long_t kMaxLong = Long_t(kMaxULong >> 1);
1721     const Long_t kMinLong = -kMaxLong - 1;
1722    
1723     const ULong64_t kMaxULong64 = ULong64_t(~0LL);
1724     const Long64_t kMaxLong64 = Long64_t(kMaxULong64 >> 1);
1725     const Long64_t kMinLong64 = -kMaxLong64 - 1;
1726    
1727     const size_t kBitsPerByte = 8;
1728     const Ssiz_t kNPOS = ~(Ssiz_t)0;
1729     # 157 "/cern/ROOT/include/Rtypes.h"
1730     extern Int_t gDebug;
1731    
1732    
1733    
1734    
1735     typedef void (*ShowMembersFunc_t)(void *obj, TMemberInspector &R__insp, char *R__parent);
1736     class TVirtualIsAProxy;
1737     typedef TClass *(*IsAGlobalFunc_t)(const TClass*, const void *obj);
1738    
1739    
1740     template <class Tmpl> TBuffer &operator>>(TBuffer &buf, Tmpl *&obj);
1741     template <class Tmpl> TBuffer &operator<<(TBuffer &buf, const Tmpl *obj);
1742    
1743    
1744    
1745    
1746     namespace ROOT {
1747    
1748     class TGenericClassInfo;
1749     typedef void *(*NewFunc_t)(void *);
1750     typedef void *(*NewArrFunc_t)(Long_t size, void *arena);
1751     typedef void (*DelFunc_t)(void *);
1752     typedef void (*DelArrFunc_t)(void *);
1753     typedef void (*DesFunc_t)(void *);
1754    
1755     template <class RootClass> Short_t SetClassVersion(RootClass *);
1756    
1757     extern TClass *CreateClass(const char *cname, Version_t id,
1758     const type_info &info, TVirtualIsAProxy *isa,
1759     ShowMembersFunc_t show,
1760     const char *dfil, const char *ifil,
1761     Int_t dl, Int_t il);
1762     extern void AddClass(const char *cname, Version_t id, const type_info &info,
1763     VoidFuncPtr_t dict, Int_t pragmabits);
1764     extern void RemoveClass(const char *cname);
1765     extern void ResetClassVersion(TClass*, const char*, Short_t);
1766    
1767     extern TNamed *RegisterClassTemplate(const char *name,
1768     const char *file, Int_t line);
1769     # 208 "/cern/ROOT/include/Rtypes.h"
1770     class TInitBehavior {
1771    
1772    
1773    
1774    
1775     public:
1776     virtual ~TInitBehavior() { }
1777     virtual void Register(const char *cname, Version_t id, const type_info &info,
1778     VoidFuncPtr_t dict, Int_t pragmabits) const = 0;
1779     virtual void Unregister(const char *classname) const = 0;
1780     virtual TClass *CreateClass(const char *cname, Version_t id,
1781     const type_info &info, TVirtualIsAProxy *isa,
1782     ShowMembersFunc_t show,
1783     const char *dfil, const char *ifil,
1784     Int_t dl, Int_t il) const = 0;
1785     };
1786    
1787     class TDefaultInitBehavior : public TInitBehavior {
1788     public:
1789     virtual void Register(const char *cname, Version_t id, const type_info &info,
1790     VoidFuncPtr_t dict, Int_t pragmabits) const {
1791     ROOT::AddClass(cname, id, info, dict, pragmabits);
1792     }
1793     virtual void Unregister(const char *classname) const {
1794     ROOT::RemoveClass(classname);
1795     }
1796     virtual TClass *CreateClass(const char *cname, Version_t id,
1797     const type_info &info, TVirtualIsAProxy *isa,
1798     ShowMembersFunc_t show,
1799     const char *dfil, const char *ifil,
1800     Int_t dl, Int_t il) const {
1801     return ROOT::CreateClass(cname, id, info, isa, show, dfil, ifil, dl, il);
1802     }
1803     };
1804    
1805     const TInitBehavior *DefineBehavior(void * ,
1806     void * );
1807    
1808     }
1809    
1810    
1811    
1812     # 1 "/cern/ROOT/include/TGenericClassInfo.h" 1
1813     # 16 "/cern/ROOT/include/TGenericClassInfo.h"
1814     class TVirtualIsAProxy;
1815    
1816     namespace ROOT {
1817    
1818     class TCollectionProxyInfo;
1819    
1820     class TGenericClassInfo {
1821    
1822    
1823    
1824    
1825     const TInitBehavior *fAction;
1826     TClass *fClass;
1827     const char *fClassName;
1828     const char *fDeclFileName;
1829     Int_t fDeclFileLine;
1830     VoidFuncPtr_t fDictionary;
1831     const type_info &fInfo;
1832     const char *fImplFileName;
1833     Int_t fImplFileLine;
1834     TVirtualIsAProxy *fIsA;
1835     void *fShowMembers;
1836     Int_t fVersion;
1837     NewFunc_t fNew;
1838     NewArrFunc_t fNewArray;
1839     DelFunc_t fDelete;
1840     DelArrFunc_t fDeleteArray;
1841     DesFunc_t fDestructor;
1842     TClassStreamer *fStreamer;
1843     TVirtualCollectionProxy *fCollectionProxy;
1844     Int_t fSizeof;
1845     TCollectionProxyInfo *fCollectionProxyInfo;
1846     TCollectionProxyInfo *fCollectionStreamerInfo;
1847    
1848     public:
1849     TGenericClassInfo(const char *fullClassname,
1850     const char *declFileName, Int_t declFileLine,
1851     const type_info &info, const TInitBehavior *action,
1852     void *showmembers, VoidFuncPtr_t dictionary,
1853     TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof);
1854    
1855     TGenericClassInfo(const char *fullClassname, Int_t version,
1856     const char *declFileName, Int_t declFileLine,
1857     const type_info &info, const TInitBehavior *action,
1858     void *showmembers, VoidFuncPtr_t dictionary,
1859     TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof);
1860    
1861     TGenericClassInfo(const char *fullClassname, Int_t version,
1862     const char *declFileName, Int_t declFileLine,
1863     const type_info &info, const TInitBehavior *action,
1864     VoidFuncPtr_t dictionary,
1865     TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof);
1866    
1867     TGenericClassInfo(const char *fullClassname, Int_t version,
1868     const char *declFileName, Int_t declFileLine,
1869     const TInitBehavior *action,
1870     VoidFuncPtr_t dictionary, Int_t pragmabits);
1871    
1872     void Init(Int_t pragmabits);
1873     ~TGenericClassInfo();
1874    
1875     const TInitBehavior &GetAction() const;
1876     TClass *GetClass();
1877     const char *GetClassName() const;
1878     TCollectionProxyInfo *GetCollectionProxyInfo() const;
1879     TCollectionProxyInfo *GetCollectionStreamerInfo() const;
1880     const char *GetDeclFileName() const;
1881     Int_t GetDeclFileLine() const;
1882     DelFunc_t GetDelete() const;
1883     DelArrFunc_t GetDeleteArray() const;
1884     DesFunc_t GetDestructor() const;
1885     const char *GetImplFileName();
1886     Int_t GetImplFileLine();
1887     const type_info &GetInfo() const;
1888     TVirtualIsAProxy *GetIsA() const;
1889     NewFunc_t GetNew() const;
1890     NewArrFunc_t GetNewArray() const;
1891     void *GetShowMembers() const;
1892     Int_t GetVersion() const;
1893    
1894     TClass *IsA(const void *obj);
1895    
1896     Short_t AdoptStreamer(TClassStreamer*);
1897     Short_t AdoptCollectionProxy(TVirtualCollectionProxy*);
1898     void AdoptCollectionProxyInfo(TCollectionProxyInfo*);
1899     void AdoptCollectionStreamerInfo(TCollectionProxyInfo*);
1900     Int_t SetDeclFile(const char *file, Int_t line);
1901     void SetDelete(DelFunc_t deleteFunc);
1902     void SetDeleteArray(DelArrFunc_t deleteArrayFunc);
1903     void SetDestructor(DesFunc_t destructorFunc);
1904     void SetFromTemplate();
1905     Int_t SetImplFile(const char *file, Int_t line);
1906     void SetNew(NewFunc_t newFunc);
1907     void SetNewArray(NewArrFunc_t newArrayFunc);
1908     Short_t SetStreamer(ClassStreamerFunc_t);
1909     Short_t SetVersion(Short_t version);
1910    
1911    
1912     private:
1913     TGenericClassInfo(const TGenericClassInfo&);
1914     TGenericClassInfo& operator=(const TGenericClassInfo&);
1915    
1916     private:
1917     TGenericClassInfo();
1918    
1919     };
1920    
1921     }
1922     # 251 "/cern/ROOT/include/Rtypes.h" 2
1923     # 26 "/cern/ROOT/include/TRefCnt.h" 2
1924    
1925    
1926    
1927     class TRefCnt {
1928    
1929     protected:
1930     UInt_t fRefs;
1931    
1932     public:
1933     enum EReferenceFlag { kStaticInit };
1934    
1935     TRefCnt(Int_t initRef = 0) : fRefs((UInt_t)initRef-1) { }
1936     TRefCnt(EReferenceFlag);
1937     virtual ~TRefCnt() { }
1938     UInt_t References() const { return fRefs+1; }
1939     void SetRefCount(UInt_t r) { fRefs = r-1; }
1940     void AddReference() { fRefs++; }
1941     UInt_t RemoveReference() { return fRefs--; }
1942     };
1943     # 33 "/cern/ROOT/include/TString.h" 2
1944    
1945    
1946    
1947     # 1 "/cern/ROOT/include/Riosfwd.h" 1
1948     # 33 "/cern/ROOT/include/Riosfwd.h"
1949     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 1 3
1950     # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 3
1951    
1952     # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 3
1953    
1954     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++config.h" 1 3
1955     # 35 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++config.h" 3
1956     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h" 1 3
1957     # 36 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++config.h" 2 3
1958     # 57 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++config.h" 3
1959     namespace __gnu_debug_def { }
1960    
1961     namespace __gnu_debug
1962     {
1963     using namespace __gnu_debug_def;
1964     }
1965     # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
1966     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 1 3
1967     # 39 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 3
1968    
1969     # 40 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 3
1970    
1971     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring" 1 3
1972     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring" 3
1973    
1974     # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring" 3
1975    
1976     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstddef" 1 3
1977     # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstddef" 3
1978    
1979     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstddef" 3
1980    
1981     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
1982     # 151 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 3 4
1983     typedef int ptrdiff_t;
1984     # 49 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstddef" 2 3
1985    
1986     namespace std
1987     {
1988     using ::ptrdiff_t;
1989     using ::size_t;
1990     }
1991     # 50 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring" 2 3
1992     # 77 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring" 3
1993     namespace std
1994     {
1995     using ::memcpy;
1996     using ::memmove;
1997     using ::strcpy;
1998     using ::strncpy;
1999     using ::strcat;
2000     using ::strncat;
2001     using ::memcmp;
2002     using ::strcmp;
2003     using ::strcoll;
2004     using ::strncmp;
2005     using ::strxfrm;
2006     using ::strcspn;
2007     using ::strspn;
2008     using ::strtok;
2009     using ::memset;
2010     using ::strerror;
2011     using ::strlen;
2012    
2013     using ::memchr;
2014    
2015     inline void*
2016     memchr(void* __p, int __c, size_t __n)
2017     { return memchr(const_cast<const void*>(__p), __c, __n); }
2018    
2019     using ::strchr;
2020    
2021     inline char*
2022     strchr(char* __s1, int __n)
2023     { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
2024    
2025     using ::strpbrk;
2026    
2027     inline char*
2028     strpbrk(char* __s1, const char* __s2)
2029     { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
2030    
2031     using ::strrchr;
2032    
2033     inline char*
2034     strrchr(char* __s1, int __n)
2035     { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
2036    
2037     using ::strstr;
2038    
2039     inline char*
2040     strstr(char* __s1, const char* __s2)
2041     { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
2042     }
2043     # 42 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 2 3
2044     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio" 1 3
2045     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio" 3
2046    
2047     # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio" 3
2048     # 97 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio" 3
2049     namespace std
2050     {
2051     using ::FILE;
2052     using ::fpos_t;
2053    
2054     using ::clearerr;
2055     using ::fclose;
2056     using ::feof;
2057     using ::ferror;
2058     using ::fflush;
2059     using ::fgetc;
2060     using ::fgetpos;
2061     using ::fgets;
2062     using ::fopen;
2063     using ::fprintf;
2064     using ::fputc;
2065     using ::fputs;
2066     using ::fread;
2067     using ::freopen;
2068     using ::fscanf;
2069     using ::fseek;
2070     using ::fsetpos;
2071     using ::ftell;
2072     using ::fwrite;
2073     using ::getc;
2074     using ::getchar;
2075     using ::gets;
2076     using ::perror;
2077     using ::printf;
2078     using ::putc;
2079     using ::putchar;
2080     using ::puts;
2081     using ::remove;
2082     using ::rename;
2083     using ::rewind;
2084     using ::scanf;
2085     using ::setbuf;
2086     using ::setvbuf;
2087     using ::sprintf;
2088     using ::sscanf;
2089     using ::tmpfile;
2090     using ::tmpnam;
2091     using ::ungetc;
2092     using ::vfprintf;
2093     using ::vprintf;
2094     using ::vsprintf;
2095     }
2096     # 153 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio" 3
2097     namespace __gnu_cxx
2098     {
2099     # 167 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio" 3
2100     using ::snprintf;
2101     using ::vfscanf;
2102     using ::vscanf;
2103     using ::vsnprintf;
2104     using ::vsscanf;
2105    
2106     }
2107    
2108     namespace std
2109     {
2110     using __gnu_cxx::snprintf;
2111     using __gnu_cxx::vfscanf;
2112     using __gnu_cxx::vscanf;
2113     using __gnu_cxx::vsnprintf;
2114     using __gnu_cxx::vsscanf;
2115     }
2116     # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 2 3
2117     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/clocale" 1 3
2118     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/clocale" 3
2119    
2120     # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/clocale" 3
2121    
2122     # 1 "/usr/include/locale.h" 1 3 4
2123     # 29 "/usr/include/locale.h" 3 4
2124     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
2125     # 30 "/usr/include/locale.h" 2 3 4
2126     # 1 "/usr/include/bits/locale.h" 1 3 4
2127     # 27 "/usr/include/bits/locale.h" 3 4
2128     enum
2129     {
2130     __LC_CTYPE = 0,
2131     __LC_NUMERIC = 1,
2132     __LC_TIME = 2,
2133     __LC_COLLATE = 3,
2134     __LC_MONETARY = 4,
2135     __LC_MESSAGES = 5,
2136     __LC_ALL = 6,
2137     __LC_PAPER = 7,
2138     __LC_NAME = 8,
2139     __LC_ADDRESS = 9,
2140     __LC_TELEPHONE = 10,
2141     __LC_MEASUREMENT = 11,
2142     __LC_IDENTIFICATION = 12
2143     };
2144     # 31 "/usr/include/locale.h" 2 3 4
2145    
2146     extern "C" {
2147     # 52 "/usr/include/locale.h" 3 4
2148     struct lconv
2149     {
2150    
2151    
2152     char *decimal_point;
2153     char *thousands_sep;
2154    
2155    
2156    
2157    
2158    
2159     char *grouping;
2160    
2161    
2162    
2163    
2164    
2165     char *int_curr_symbol;
2166     char *currency_symbol;
2167     char *mon_decimal_point;
2168     char *mon_thousands_sep;
2169     char *mon_grouping;
2170     char *positive_sign;
2171     char *negative_sign;
2172     char int_frac_digits;
2173     char frac_digits;
2174    
2175     char p_cs_precedes;
2176    
2177     char p_sep_by_space;
2178    
2179     char n_cs_precedes;
2180    
2181     char n_sep_by_space;
2182    
2183    
2184    
2185    
2186    
2187    
2188     char p_sign_posn;
2189     char n_sign_posn;
2190    
2191    
2192     char int_p_cs_precedes;
2193    
2194     char int_p_sep_by_space;
2195    
2196     char int_n_cs_precedes;
2197    
2198     char int_n_sep_by_space;
2199    
2200    
2201    
2202    
2203    
2204    
2205     char int_p_sign_posn;
2206     char int_n_sign_posn;
2207     # 119 "/usr/include/locale.h" 3 4
2208     };
2209    
2210    
2211    
2212    
2213    
2214     extern char *setlocale (int __category, __const char *__locale) throw ();
2215    
2216    
2217     extern struct lconv *localeconv (void) throw ();
2218    
2219    
2220     # 148 "/usr/include/locale.h" 3 4
2221     typedef __locale_t locale_t;
2222    
2223    
2224    
2225    
2226    
2227     extern __locale_t newlocale (int __category_mask, __const char *__locale,
2228     __locale_t __base) throw ();
2229     # 189 "/usr/include/locale.h" 3 4
2230     extern __locale_t duplocale (__locale_t __dataset) throw ();
2231    
2232    
2233    
2234     extern void freelocale (__locale_t __dataset) throw ();
2235    
2236    
2237    
2238    
2239    
2240    
2241     extern __locale_t uselocale (__locale_t __dataset) throw ();
2242    
2243    
2244    
2245    
2246    
2247    
2248    
2249     }
2250     # 50 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/clocale" 2 3
2251    
2252    
2253    
2254    
2255    
2256     namespace std
2257     {
2258     using ::lconv;
2259     using ::setlocale;
2260     using ::localeconv;
2261     }
2262     # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 2 3
2263     # 1 "/usr/include/langinfo.h" 1 3 4
2264     # 24 "/usr/include/langinfo.h" 3 4
2265     # 1 "/usr/include/nl_types.h" 1 3 4
2266     # 31 "/usr/include/nl_types.h" 3 4
2267     extern "C" {
2268    
2269    
2270     typedef void *nl_catd;
2271    
2272    
2273     typedef int nl_item;
2274    
2275    
2276    
2277    
2278    
2279     extern nl_catd catopen (__const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1)));
2280    
2281    
2282    
2283     extern char *catgets (nl_catd __catalog, int __set, int __number,
2284     __const char *__string) throw () __attribute__ ((__nonnull__ (1)));
2285    
2286    
2287     extern int catclose (nl_catd __catalog) throw () __attribute__ ((__nonnull__ (1)));
2288    
2289     }
2290     # 25 "/usr/include/langinfo.h" 2 3 4
2291    
2292     # 1 "/usr/include/bits/locale.h" 1 3 4
2293     # 27 "/usr/include/langinfo.h" 2 3 4
2294    
2295    
2296     extern "C" {
2297     # 43 "/usr/include/langinfo.h" 3 4
2298     enum
2299     {
2300    
2301    
2302    
2303     ABDAY_1 = (((__LC_TIME) << 16) | (0)),
2304    
2305     ABDAY_2,
2306    
2307     ABDAY_3,
2308    
2309     ABDAY_4,
2310    
2311     ABDAY_5,
2312    
2313     ABDAY_6,
2314    
2315     ABDAY_7,
2316    
2317    
2318    
2319     DAY_1,
2320    
2321     DAY_2,
2322    
2323     DAY_3,
2324    
2325     DAY_4,
2326    
2327     DAY_5,
2328    
2329     DAY_6,
2330    
2331     DAY_7,
2332    
2333    
2334    
2335     ABMON_1,
2336    
2337     ABMON_2,
2338    
2339     ABMON_3,
2340    
2341     ABMON_4,
2342    
2343     ABMON_5,
2344    
2345     ABMON_6,
2346    
2347     ABMON_7,
2348    
2349     ABMON_8,
2350    
2351     ABMON_9,
2352    
2353     ABMON_10,
2354    
2355     ABMON_11,
2356    
2357     ABMON_12,
2358    
2359    
2360    
2361     MON_1,
2362    
2363     MON_2,
2364    
2365     MON_3,
2366    
2367     MON_4,
2368    
2369     MON_5,
2370    
2371     MON_6,
2372    
2373     MON_7,
2374    
2375     MON_8,
2376    
2377     MON_9,
2378    
2379     MON_10,
2380    
2381     MON_11,
2382    
2383     MON_12,
2384    
2385    
2386     AM_STR,
2387    
2388     PM_STR,
2389    
2390    
2391     D_T_FMT,
2392    
2393     D_FMT,
2394    
2395     T_FMT,
2396    
2397     T_FMT_AMPM,
2398    
2399    
2400     ERA,
2401    
2402     __ERA_YEAR,
2403    
2404    
2405    
2406     ERA_D_FMT,
2407    
2408     ALT_DIGITS,
2409    
2410     ERA_D_T_FMT,
2411    
2412     ERA_T_FMT,
2413    
2414    
2415     _NL_TIME_ERA_NUM_ENTRIES,
2416     _NL_TIME_ERA_ENTRIES,
2417    
2418     _NL_WABDAY_1,
2419     _NL_WABDAY_2,
2420     _NL_WABDAY_3,
2421     _NL_WABDAY_4,
2422     _NL_WABDAY_5,
2423     _NL_WABDAY_6,
2424     _NL_WABDAY_7,
2425    
2426    
2427     _NL_WDAY_1,
2428     _NL_WDAY_2,
2429     _NL_WDAY_3,
2430     _NL_WDAY_4,
2431     _NL_WDAY_5,
2432     _NL_WDAY_6,
2433     _NL_WDAY_7,
2434    
2435    
2436     _NL_WABMON_1,
2437     _NL_WABMON_2,
2438     _NL_WABMON_3,
2439     _NL_WABMON_4,
2440     _NL_WABMON_5,
2441     _NL_WABMON_6,
2442     _NL_WABMON_7,
2443     _NL_WABMON_8,
2444     _NL_WABMON_9,
2445     _NL_WABMON_10,
2446     _NL_WABMON_11,
2447     _NL_WABMON_12,
2448    
2449    
2450     _NL_WMON_1,
2451     _NL_WMON_2,
2452     _NL_WMON_3,
2453     _NL_WMON_4,
2454     _NL_WMON_5,
2455     _NL_WMON_6,
2456     _NL_WMON_7,
2457     _NL_WMON_8,
2458     _NL_WMON_9,
2459     _NL_WMON_10,
2460     _NL_WMON_11,
2461     _NL_WMON_12,
2462    
2463     _NL_WAM_STR,
2464     _NL_WPM_STR,
2465    
2466     _NL_WD_T_FMT,
2467     _NL_WD_FMT,
2468     _NL_WT_FMT,
2469     _NL_WT_FMT_AMPM,
2470    
2471     _NL_WERA_YEAR,
2472     _NL_WERA_D_FMT,
2473     _NL_WALT_DIGITS,
2474     _NL_WERA_D_T_FMT,
2475     _NL_WERA_T_FMT,
2476    
2477     _NL_TIME_WEEK_NDAYS,
2478     _NL_TIME_WEEK_1STDAY,
2479     _NL_TIME_WEEK_1STWEEK,
2480     _NL_TIME_FIRST_WEEKDAY,
2481     _NL_TIME_FIRST_WORKDAY,
2482     _NL_TIME_CAL_DIRECTION,
2483     _NL_TIME_TIMEZONE,
2484    
2485     _DATE_FMT,
2486    
2487     _NL_W_DATE_FMT,
2488    
2489     _NL_TIME_CODESET,
2490    
2491     _NL_NUM_LC_TIME,
2492    
2493    
2494    
2495    
2496     _NL_COLLATE_NRULES = (((__LC_COLLATE) << 16) | (0)),
2497     _NL_COLLATE_RULESETS,
2498     _NL_COLLATE_TABLEMB,
2499     _NL_COLLATE_WEIGHTMB,
2500     _NL_COLLATE_EXTRAMB,
2501     _NL_COLLATE_INDIRECTMB,
2502     _NL_COLLATE_GAP1,
2503     _NL_COLLATE_GAP2,
2504     _NL_COLLATE_GAP3,
2505     _NL_COLLATE_TABLEWC,
2506     _NL_COLLATE_WEIGHTWC,
2507     _NL_COLLATE_EXTRAWC,
2508     _NL_COLLATE_INDIRECTWC,
2509     _NL_COLLATE_SYMB_HASH_SIZEMB,
2510     _NL_COLLATE_SYMB_TABLEMB,
2511     _NL_COLLATE_SYMB_EXTRAMB,
2512     _NL_COLLATE_COLLSEQMB,
2513     _NL_COLLATE_COLLSEQWC,
2514     _NL_COLLATE_CODESET,
2515     _NL_NUM_LC_COLLATE,
2516    
2517    
2518    
2519    
2520     _NL_CTYPE_CLASS = (((__LC_CTYPE) << 16) | (0)),
2521     _NL_CTYPE_TOUPPER,
2522     _NL_CTYPE_GAP1,
2523     _NL_CTYPE_TOLOWER,
2524     _NL_CTYPE_GAP2,
2525     _NL_CTYPE_CLASS32,
2526     _NL_CTYPE_GAP3,
2527     _NL_CTYPE_GAP4,
2528     _NL_CTYPE_GAP5,
2529     _NL_CTYPE_GAP6,
2530     _NL_CTYPE_CLASS_NAMES,
2531     _NL_CTYPE_MAP_NAMES,
2532     _NL_CTYPE_WIDTH,
2533     _NL_CTYPE_MB_CUR_MAX,
2534     _NL_CTYPE_CODESET_NAME,
2535     CODESET = _NL_CTYPE_CODESET_NAME,
2536    
2537     _NL_CTYPE_TOUPPER32,
2538     _NL_CTYPE_TOLOWER32,
2539     _NL_CTYPE_CLASS_OFFSET,
2540     _NL_CTYPE_MAP_OFFSET,
2541     _NL_CTYPE_INDIGITS_MB_LEN,
2542     _NL_CTYPE_INDIGITS0_MB,
2543     _NL_CTYPE_INDIGITS1_MB,
2544     _NL_CTYPE_INDIGITS2_MB,
2545     _NL_CTYPE_INDIGITS3_MB,
2546     _NL_CTYPE_INDIGITS4_MB,
2547     _NL_CTYPE_INDIGITS5_MB,
2548     _NL_CTYPE_INDIGITS6_MB,
2549     _NL_CTYPE_INDIGITS7_MB,
2550     _NL_CTYPE_INDIGITS8_MB,
2551     _NL_CTYPE_INDIGITS9_MB,
2552     _NL_CTYPE_INDIGITS_WC_LEN,
2553     _NL_CTYPE_INDIGITS0_WC,
2554     _NL_CTYPE_INDIGITS1_WC,
2555     _NL_CTYPE_INDIGITS2_WC,
2556     _NL_CTYPE_INDIGITS3_WC,
2557     _NL_CTYPE_INDIGITS4_WC,
2558     _NL_CTYPE_INDIGITS5_WC,
2559     _NL_CTYPE_INDIGITS6_WC,
2560     _NL_CTYPE_INDIGITS7_WC,
2561     _NL_CTYPE_INDIGITS8_WC,
2562     _NL_CTYPE_INDIGITS9_WC,
2563     _NL_CTYPE_OUTDIGIT0_MB,
2564     _NL_CTYPE_OUTDIGIT1_MB,
2565     _NL_CTYPE_OUTDIGIT2_MB,
2566     _NL_CTYPE_OUTDIGIT3_MB,
2567     _NL_CTYPE_OUTDIGIT4_MB,
2568     _NL_CTYPE_OUTDIGIT5_MB,
2569     _NL_CTYPE_OUTDIGIT6_MB,
2570     _NL_CTYPE_OUTDIGIT7_MB,
2571     _NL_CTYPE_OUTDIGIT8_MB,
2572     _NL_CTYPE_OUTDIGIT9_MB,
2573     _NL_CTYPE_OUTDIGIT0_WC,
2574     _NL_CTYPE_OUTDIGIT1_WC,
2575     _NL_CTYPE_OUTDIGIT2_WC,
2576     _NL_CTYPE_OUTDIGIT3_WC,
2577     _NL_CTYPE_OUTDIGIT4_WC,
2578     _NL_CTYPE_OUTDIGIT5_WC,
2579     _NL_CTYPE_OUTDIGIT6_WC,
2580     _NL_CTYPE_OUTDIGIT7_WC,
2581     _NL_CTYPE_OUTDIGIT8_WC,
2582     _NL_CTYPE_OUTDIGIT9_WC,
2583     _NL_CTYPE_TRANSLIT_TAB_SIZE,
2584     _NL_CTYPE_TRANSLIT_FROM_IDX,
2585     _NL_CTYPE_TRANSLIT_FROM_TBL,
2586     _NL_CTYPE_TRANSLIT_TO_IDX,
2587     _NL_CTYPE_TRANSLIT_TO_TBL,
2588     _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN,
2589     _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
2590     _NL_CTYPE_TRANSLIT_IGNORE_LEN,
2591     _NL_CTYPE_TRANSLIT_IGNORE,
2592     _NL_CTYPE_MAP_TO_NONASCII,
2593     _NL_CTYPE_EXTRA_MAP_1,
2594     _NL_CTYPE_EXTRA_MAP_2,
2595     _NL_CTYPE_EXTRA_MAP_3,
2596     _NL_CTYPE_EXTRA_MAP_4,
2597     _NL_CTYPE_EXTRA_MAP_5,
2598     _NL_CTYPE_EXTRA_MAP_6,
2599     _NL_CTYPE_EXTRA_MAP_7,
2600     _NL_CTYPE_EXTRA_MAP_8,
2601     _NL_CTYPE_EXTRA_MAP_9,
2602     _NL_CTYPE_EXTRA_MAP_10,
2603     _NL_CTYPE_EXTRA_MAP_11,
2604     _NL_CTYPE_EXTRA_MAP_12,
2605     _NL_CTYPE_EXTRA_MAP_13,
2606     _NL_CTYPE_EXTRA_MAP_14,
2607     _NL_NUM_LC_CTYPE,
2608    
2609    
2610    
2611    
2612     __INT_CURR_SYMBOL = (((__LC_MONETARY) << 16) | (0)),
2613    
2614    
2615    
2616     __CURRENCY_SYMBOL,
2617    
2618    
2619    
2620     __MON_DECIMAL_POINT,
2621    
2622    
2623    
2624     __MON_THOUSANDS_SEP,
2625    
2626    
2627    
2628     __MON_GROUPING,
2629    
2630    
2631    
2632     __POSITIVE_SIGN,
2633    
2634    
2635    
2636     __NEGATIVE_SIGN,
2637    
2638    
2639    
2640     __INT_FRAC_DIGITS,
2641    
2642    
2643    
2644     __FRAC_DIGITS,
2645    
2646    
2647    
2648     __P_CS_PRECEDES,
2649    
2650    
2651    
2652     __P_SEP_BY_SPACE,
2653    
2654    
2655    
2656     __N_CS_PRECEDES,
2657    
2658    
2659    
2660     __N_SEP_BY_SPACE,
2661    
2662    
2663    
2664     __P_SIGN_POSN,
2665    
2666    
2667    
2668     __N_SIGN_POSN,
2669    
2670    
2671    
2672     _NL_MONETARY_CRNCYSTR,
2673    
2674     __INT_P_CS_PRECEDES,
2675    
2676    
2677    
2678     __INT_P_SEP_BY_SPACE,
2679    
2680    
2681    
2682     __INT_N_CS_PRECEDES,
2683    
2684    
2685    
2686     __INT_N_SEP_BY_SPACE,
2687    
2688    
2689    
2690     __INT_P_SIGN_POSN,
2691    
2692    
2693    
2694     __INT_N_SIGN_POSN,
2695    
2696    
2697    
2698     _NL_MONETARY_DUO_INT_CURR_SYMBOL,
2699     _NL_MONETARY_DUO_CURRENCY_SYMBOL,
2700     _NL_MONETARY_DUO_INT_FRAC_DIGITS,
2701     _NL_MONETARY_DUO_FRAC_DIGITS,
2702     _NL_MONETARY_DUO_P_CS_PRECEDES,
2703     _NL_MONETARY_DUO_P_SEP_BY_SPACE,
2704     _NL_MONETARY_DUO_N_CS_PRECEDES,
2705     _NL_MONETARY_DUO_N_SEP_BY_SPACE,
2706     _NL_MONETARY_DUO_INT_P_CS_PRECEDES,
2707     _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE,
2708     _NL_MONETARY_DUO_INT_N_CS_PRECEDES,
2709     _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE,
2710     _NL_MONETARY_DUO_P_SIGN_POSN,
2711     _NL_MONETARY_DUO_N_SIGN_POSN,
2712     _NL_MONETARY_DUO_INT_P_SIGN_POSN,
2713     _NL_MONETARY_DUO_INT_N_SIGN_POSN,
2714     _NL_MONETARY_UNO_VALID_FROM,
2715     _NL_MONETARY_UNO_VALID_TO,
2716     _NL_MONETARY_DUO_VALID_FROM,
2717     _NL_MONETARY_DUO_VALID_TO,
2718     _NL_MONETARY_CONVERSION_RATE,
2719     _NL_MONETARY_DECIMAL_POINT_WC,
2720     _NL_MONETARY_THOUSANDS_SEP_WC,
2721     _NL_MONETARY_CODESET,
2722     _NL_NUM_LC_MONETARY,
2723    
2724    
2725    
2726     __DECIMAL_POINT = (((__LC_NUMERIC) << 16) | (0)),
2727    
2728    
2729    
2730     RADIXCHAR = __DECIMAL_POINT,
2731    
2732     __THOUSANDS_SEP,
2733    
2734    
2735    
2736     THOUSEP = __THOUSANDS_SEP,
2737    
2738     __GROUPING,
2739    
2740    
2741    
2742     _NL_NUMERIC_DECIMAL_POINT_WC,
2743     _NL_NUMERIC_THOUSANDS_SEP_WC,
2744     _NL_NUMERIC_CODESET,
2745     _NL_NUM_LC_NUMERIC,
2746    
2747     __YESEXPR = (((__LC_MESSAGES) << 16) | (0)),
2748    
2749     __NOEXPR,
2750    
2751     __YESSTR,
2752    
2753    
2754    
2755     __NOSTR,
2756    
2757    
2758    
2759     _NL_MESSAGES_CODESET,
2760     _NL_NUM_LC_MESSAGES,
2761    
2762     _NL_PAPER_HEIGHT = (((__LC_PAPER) << 16) | (0)),
2763     _NL_PAPER_WIDTH,
2764     _NL_PAPER_CODESET,
2765     _NL_NUM_LC_PAPER,
2766    
2767     _NL_NAME_NAME_FMT = (((__LC_NAME) << 16) | (0)),
2768     _NL_NAME_NAME_GEN,
2769     _NL_NAME_NAME_MR,
2770     _NL_NAME_NAME_MRS,
2771     _NL_NAME_NAME_MISS,
2772     _NL_NAME_NAME_MS,
2773     _NL_NAME_CODESET,
2774     _NL_NUM_LC_NAME,
2775    
2776     _NL_ADDRESS_POSTAL_FMT = (((__LC_ADDRESS) << 16) | (0)),
2777     _NL_ADDRESS_COUNTRY_NAME,
2778     _NL_ADDRESS_COUNTRY_POST,
2779     _NL_ADDRESS_COUNTRY_AB2,
2780     _NL_ADDRESS_COUNTRY_AB3,
2781     _NL_ADDRESS_COUNTRY_CAR,
2782     _NL_ADDRESS_COUNTRY_NUM,
2783     _NL_ADDRESS_COUNTRY_ISBN,
2784     _NL_ADDRESS_LANG_NAME,
2785     _NL_ADDRESS_LANG_AB,
2786     _NL_ADDRESS_LANG_TERM,
2787     _NL_ADDRESS_LANG_LIB,
2788     _NL_ADDRESS_CODESET,
2789     _NL_NUM_LC_ADDRESS,
2790    
2791     _NL_TELEPHONE_TEL_INT_FMT = (((__LC_TELEPHONE) << 16) | (0)),
2792     _NL_TELEPHONE_TEL_DOM_FMT,
2793     _NL_TELEPHONE_INT_SELECT,
2794     _NL_TELEPHONE_INT_PREFIX,
2795     _NL_TELEPHONE_CODESET,
2796     _NL_NUM_LC_TELEPHONE,
2797    
2798     _NL_MEASUREMENT_MEASUREMENT = (((__LC_MEASUREMENT) << 16) | (0)),
2799     _NL_MEASUREMENT_CODESET,
2800     _NL_NUM_LC_MEASUREMENT,
2801    
2802     _NL_IDENTIFICATION_TITLE = (((__LC_IDENTIFICATION) << 16) | (0)),
2803     _NL_IDENTIFICATION_SOURCE,
2804     _NL_IDENTIFICATION_ADDRESS,
2805     _NL_IDENTIFICATION_CONTACT,
2806     _NL_IDENTIFICATION_EMAIL,
2807     _NL_IDENTIFICATION_TEL,
2808     _NL_IDENTIFICATION_FAX,
2809     _NL_IDENTIFICATION_LANGUAGE,
2810     _NL_IDENTIFICATION_TERRITORY,
2811     _NL_IDENTIFICATION_AUDIENCE,
2812     _NL_IDENTIFICATION_APPLICATION,
2813     _NL_IDENTIFICATION_ABBREVIATION,
2814     _NL_IDENTIFICATION_REVISION,
2815     _NL_IDENTIFICATION_DATE,
2816     _NL_IDENTIFICATION_CATEGORY,
2817     _NL_IDENTIFICATION_CODESET,
2818     _NL_NUM_LC_IDENTIFICATION,
2819    
2820    
2821     _NL_NUM
2822     };
2823     # 576 "/usr/include/langinfo.h" 3 4
2824     extern char *nl_langinfo (nl_item __item) throw ();
2825     # 587 "/usr/include/langinfo.h" 3 4
2826     extern char *nl_langinfo_l (nl_item __item, __locale_t l);
2827    
2828    
2829     }
2830     # 45 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 2 3
2831     # 1 "/usr/include/iconv.h" 1 3 4
2832     # 24 "/usr/include/iconv.h" 3 4
2833     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
2834     # 25 "/usr/include/iconv.h" 2 3 4
2835    
2836    
2837     extern "C" {
2838    
2839    
2840     typedef void *iconv_t;
2841    
2842    
2843    
2844    
2845    
2846    
2847    
2848     extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
2849    
2850    
2851    
2852    
2853     extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
2854     size_t *__restrict __inbytesleft,
2855     char **__restrict __outbuf,
2856     size_t *__restrict __outbytesleft);
2857    
2858    
2859    
2860    
2861    
2862     extern int iconv_close (iconv_t __cd);
2863    
2864     }
2865     # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 2 3
2866     # 1 "/usr/include/libintl.h" 1 3 4
2867     # 35 "/usr/include/libintl.h" 3 4
2868     extern "C" {
2869    
2870    
2871    
2872    
2873     extern char *gettext (__const char *__msgid) throw ();
2874    
2875    
2876    
2877     extern char *dgettext (__const char *__domainname, __const char *__msgid)
2878     throw ();
2879     extern char *__dgettext (__const char *__domainname, __const char *__msgid)
2880     throw () __attribute__ ((__format_arg__ (2)));
2881    
2882    
2883    
2884     extern char *dcgettext (__const char *__domainname,
2885     __const char *__msgid, int __category) throw ();
2886     extern char *__dcgettext (__const char *__domainname,
2887     __const char *__msgid, int __category)
2888     throw () __attribute__ ((__format_arg__ (2)));
2889    
2890    
2891    
2892    
2893     extern char *ngettext (__const char *__msgid1, __const char *__msgid2,
2894     unsigned long int __n)
2895     throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2)));
2896    
2897    
2898    
2899     extern char *dngettext (__const char *__domainname, __const char *__msgid1,
2900     __const char *__msgid2, unsigned long int __n)
2901     throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
2902    
2903    
2904    
2905     extern char *dcngettext (__const char *__domainname, __const char *__msgid1,
2906     __const char *__msgid2, unsigned long int __n,
2907     int __category)
2908     throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
2909    
2910    
2911    
2912    
2913    
2914     extern char *textdomain (__const char *__domainname) throw ();
2915    
2916    
2917    
2918     extern char *bindtextdomain (__const char *__domainname,
2919     __const char *__dirname) throw ();
2920    
2921    
2922    
2923     extern char *bind_textdomain_codeset (__const char *__domainname,
2924     __const char *__codeset) throw ();
2925     # 120 "/usr/include/libintl.h" 3 4
2926     }
2927     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 2 3
2928    
2929    
2930    
2931    
2932    
2933    
2934     namespace __gnu_cxx
2935     {
2936     extern "C" __typeof(uselocale) __uselocale;
2937     }
2938    
2939    
2940     namespace std
2941     {
2942     typedef __locale_t __c_locale;
2943    
2944    
2945    
2946    
2947    
2948     template<typename _Tv>
2949     int
2950     __convert_from_v(char* __out, const int __size, const char* __fmt,
2951    
2952     _Tv __v, const __c_locale& __cloc, int __prec)
2953     {
2954     __c_locale __old = __gnu_cxx::__uselocale(__cloc);
2955     # 84 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 3
2956     const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
2957    
2958    
2959    
2960    
2961    
2962     __gnu_cxx::__uselocale(__old);
2963    
2964    
2965    
2966    
2967     return __ret;
2968     }
2969     }
2970     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
2971     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++io.h" 1 3
2972     # 37 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++io.h" 3
2973     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr.h" 1 3
2974     # 104 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr.h" 3
2975     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 1 3
2976     # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 3
2977     # 1 "/usr/include/pthread.h" 1 3 4
2978     # 20 "/usr/include/pthread.h" 3 4
2979     # 1 "/usr/include/sched.h" 1 3 4
2980     # 29 "/usr/include/sched.h" 3 4
2981     # 1 "/usr/include/time.h" 1 3 4
2982     # 118 "/usr/include/time.h" 3 4
2983     struct timespec
2984     {
2985     __time_t tv_sec;
2986     long int tv_nsec;
2987     };
2988     # 30 "/usr/include/sched.h" 2 3 4
2989    
2990    
2991     # 1 "/usr/include/bits/sched.h" 1 3 4
2992     # 62 "/usr/include/bits/sched.h" 3 4
2993     struct sched_param
2994     {
2995     int __sched_priority;
2996     };
2997    
2998     extern "C" {
2999    
3000    
3001    
3002     extern int clone (int (*__fn) (void *__arg), void *__child_stack,
3003     int __flags, void *__arg) throw ();
3004    
3005    
3006     }
3007    
3008    
3009    
3010    
3011    
3012    
3013    
3014     struct __sched_param
3015     {
3016     int __sched_priority;
3017     };
3018     # 98 "/usr/include/bits/sched.h" 3 4
3019     typedef unsigned long int __cpu_mask;
3020    
3021    
3022    
3023    
3024    
3025    
3026     typedef struct
3027     {
3028     __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
3029     } cpu_set_t;
3030     # 33 "/usr/include/sched.h" 2 3 4
3031    
3032    
3033    
3034    
3035     extern "C" {
3036    
3037    
3038     extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
3039     throw ();
3040    
3041    
3042     extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw ();
3043    
3044    
3045     extern int sched_setscheduler (__pid_t __pid, int __policy,
3046     __const struct sched_param *__param) throw ();
3047    
3048    
3049     extern int sched_getscheduler (__pid_t __pid) throw ();
3050    
3051    
3052     extern int sched_yield (void) throw ();
3053    
3054    
3055     extern int sched_get_priority_max (int __algorithm) throw ();
3056    
3057    
3058     extern int sched_get_priority_min (int __algorithm) throw ();
3059    
3060    
3061     extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw ();
3062     # 76 "/usr/include/sched.h" 3 4
3063     extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
3064     __const cpu_set_t *__cpuset) throw ();
3065    
3066    
3067     extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
3068     cpu_set_t *__cpuset) throw ();
3069    
3070    
3071     }
3072     # 21 "/usr/include/pthread.h" 2 3 4
3073     # 1 "/usr/include/time.h" 1 3 4
3074     # 30 "/usr/include/time.h" 3 4
3075     extern "C" {
3076    
3077    
3078    
3079    
3080    
3081    
3082    
3083     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
3084     # 39 "/usr/include/time.h" 2 3 4
3085    
3086    
3087    
3088     # 1 "/usr/include/bits/time.h" 1 3 4
3089     # 43 "/usr/include/time.h" 2 3 4
3090     # 58 "/usr/include/time.h" 3 4
3091    
3092    
3093     typedef __clock_t clock_t;
3094    
3095    
3096    
3097     # 74 "/usr/include/time.h" 3 4
3098    
3099    
3100     typedef __time_t time_t;
3101    
3102    
3103    
3104     # 92 "/usr/include/time.h" 3 4
3105     typedef __clockid_t clockid_t;
3106     # 104 "/usr/include/time.h" 3 4
3107     typedef __timer_t timer_t;
3108     # 129 "/usr/include/time.h" 3 4
3109    
3110    
3111     struct tm
3112     {
3113     int tm_sec;
3114     int tm_min;
3115     int tm_hour;
3116     int tm_mday;
3117     int tm_mon;
3118     int tm_year;
3119     int tm_wday;
3120     int tm_yday;
3121     int tm_isdst;
3122    
3123    
3124     long int tm_gmtoff;
3125     __const char *tm_zone;
3126    
3127    
3128    
3129    
3130     };
3131    
3132    
3133    
3134    
3135    
3136    
3137    
3138    
3139     struct itimerspec
3140     {
3141     struct timespec it_interval;
3142     struct timespec it_value;
3143     };
3144    
3145    
3146     struct sigevent;
3147    
3148    
3149    
3150    
3151    
3152     typedef __pid_t pid_t;
3153    
3154    
3155    
3156    
3157    
3158    
3159    
3160    
3161     extern clock_t clock (void) throw ();
3162    
3163    
3164     extern time_t time (time_t *__timer) throw ();
3165    
3166    
3167     extern double difftime (time_t __time1, time_t __time0)
3168     throw () __attribute__ ((__const__));
3169    
3170    
3171     extern time_t mktime (struct tm *__tp) throw ();
3172    
3173    
3174    
3175    
3176    
3177     extern size_t strftime (char *__restrict __s, size_t __maxsize,
3178     __const char *__restrict __format,
3179     __const struct tm *__restrict __tp) throw ();
3180    
3181    
3182    
3183    
3184    
3185     extern char *strptime (__const char *__restrict __s,
3186     __const char *__restrict __fmt, struct tm *__tp)
3187     throw ();
3188    
3189    
3190    
3191    
3192    
3193    
3194    
3195     extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
3196     __const char *__restrict __format,
3197     __const struct tm *__restrict __tp,
3198     __locale_t __loc) throw ();
3199    
3200     extern char *strptime_l (__const char *__restrict __s,
3201     __const char *__restrict __fmt, struct tm *__tp,
3202     __locale_t __loc) throw ();
3203    
3204    
3205    
3206    
3207    
3208    
3209     extern struct tm *gmtime (__const time_t *__timer) throw ();
3210    
3211    
3212    
3213     extern struct tm *localtime (__const time_t *__timer) throw ();
3214    
3215    
3216    
3217    
3218    
3219     extern struct tm *gmtime_r (__const time_t *__restrict __timer,
3220     struct tm *__restrict __tp) throw ();
3221    
3222    
3223    
3224     extern struct tm *localtime_r (__const time_t *__restrict __timer,
3225     struct tm *__restrict __tp) throw ();
3226    
3227    
3228    
3229    
3230    
3231     extern char *asctime (__const struct tm *__tp) throw ();
3232    
3233    
3234     extern char *ctime (__const time_t *__timer) throw ();
3235    
3236    
3237    
3238    
3239    
3240    
3241    
3242     extern char *asctime_r (__const struct tm *__restrict __tp,
3243     char *__restrict __buf) throw ();
3244    
3245    
3246     extern char *ctime_r (__const time_t *__restrict __timer,
3247     char *__restrict __buf) throw ();
3248    
3249    
3250    
3251    
3252     extern char *__tzname[2];
3253     extern int __daylight;
3254     extern long int __timezone;
3255    
3256    
3257    
3258    
3259     extern char *tzname[2];
3260    
3261    
3262    
3263     extern void tzset (void) throw ();
3264    
3265    
3266    
3267     extern int daylight;
3268     extern long int timezone;
3269    
3270    
3271    
3272    
3273    
3274     extern int stime (__const time_t *__when) throw ();
3275     # 309 "/usr/include/time.h" 3 4
3276     extern time_t timegm (struct tm *__tp) throw ();
3277    
3278    
3279     extern time_t timelocal (struct tm *__tp) throw ();
3280    
3281    
3282     extern int dysize (int __year) throw () __attribute__ ((__const__));
3283     # 324 "/usr/include/time.h" 3 4
3284     extern int nanosleep (__const struct timespec *__requested_time,
3285     struct timespec *__remaining);
3286    
3287    
3288    
3289     extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
3290    
3291    
3292     extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
3293    
3294    
3295     extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
3296     throw ();
3297    
3298    
3299    
3300    
3301    
3302    
3303     extern int clock_nanosleep (clockid_t __clock_id, int __flags,
3304     __const struct timespec *__req,
3305     struct timespec *__rem);
3306    
3307    
3308     extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw ();
3309    
3310    
3311    
3312    
3313     extern int timer_create (clockid_t __clock_id,
3314     struct sigevent *__restrict __evp,
3315     timer_t *__restrict __timerid) throw ();
3316    
3317    
3318     extern int timer_delete (timer_t __timerid) throw ();
3319    
3320    
3321     extern int timer_settime (timer_t __timerid, int __flags,
3322     __const struct itimerspec *__restrict __value,
3323     struct itimerspec *__restrict __ovalue) throw ();
3324    
3325    
3326     extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
3327     throw ();
3328    
3329    
3330     extern int timer_getoverrun (timer_t __timerid) throw ();
3331     # 386 "/usr/include/time.h" 3 4
3332     extern int getdate_err;
3333     # 395 "/usr/include/time.h" 3 4
3334     extern struct tm *getdate (__const char *__string);
3335     # 409 "/usr/include/time.h" 3 4
3336     extern int getdate_r (__const char *__restrict __string,
3337     struct tm *__restrict __resbufp);
3338    
3339    
3340     }
3341     # 22 "/usr/include/pthread.h" 2 3 4
3342    
3343    
3344     # 1 "/usr/include/signal.h" 1 3 4
3345     # 31 "/usr/include/signal.h" 3 4
3346     extern "C" {
3347    
3348     # 1 "/usr/include/bits/sigset.h" 1 3 4
3349     # 23 "/usr/include/bits/sigset.h" 3 4
3350     typedef int __sig_atomic_t;
3351    
3352    
3353    
3354    
3355     typedef struct
3356     {
3357     unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
3358     } __sigset_t;
3359     # 34 "/usr/include/signal.h" 2 3 4
3360     # 50 "/usr/include/signal.h" 3 4
3361     typedef __sigset_t sigset_t;
3362     # 400 "/usr/include/signal.h" 3 4
3363     }
3364     # 25 "/usr/include/pthread.h" 2 3 4
3365     # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
3366     # 23 "/usr/include/bits/pthreadtypes.h" 3 4
3367     # 1 "/usr/include/bits/sched.h" 1 3 4
3368     # 24 "/usr/include/bits/pthreadtypes.h" 2 3 4
3369    
3370    
3371     struct _pthread_fastlock
3372     {
3373     long int __status;
3374     int __spinlock;
3375    
3376     };
3377    
3378    
3379    
3380     typedef struct _pthread_descr_struct *_pthread_descr;
3381    
3382    
3383    
3384    
3385    
3386     typedef struct __pthread_attr_s
3387     {
3388     int __detachstate;
3389     int __schedpolicy;
3390     struct __sched_param __schedparam;
3391     int __inheritsched;
3392     int __scope;
3393     size_t __guardsize;
3394     int __stackaddr_set;
3395     void *__stackaddr;
3396     size_t __stacksize;
3397     } pthread_attr_t;
3398    
3399    
3400    
3401    
3402    
3403     __extension__ typedef long long __pthread_cond_align_t;
3404    
3405    
3406    
3407    
3408     typedef struct
3409     {
3410     struct _pthread_fastlock __c_lock;
3411     _pthread_descr __c_waiting;
3412     char __padding[48 - sizeof (struct _pthread_fastlock)
3413     - sizeof (_pthread_descr) - sizeof (__pthread_cond_align_t)];
3414     __pthread_cond_align_t __align;
3415     } pthread_cond_t;
3416    
3417    
3418    
3419     typedef struct
3420     {
3421     int __dummy;
3422     } pthread_condattr_t;
3423    
3424    
3425     typedef unsigned int pthread_key_t;
3426    
3427    
3428    
3429    
3430    
3431     typedef struct
3432     {
3433     int __m_reserved;
3434     int __m_count;
3435     _pthread_descr __m_owner;
3436     int __m_kind;
3437     struct _pthread_fastlock __m_lock;
3438     } pthread_mutex_t;
3439    
3440    
3441    
3442     typedef struct
3443     {
3444     int __mutexkind;
3445     } pthread_mutexattr_t;
3446    
3447    
3448    
3449     typedef int pthread_once_t;
3450    
3451    
3452    
3453    
3454     typedef struct _pthread_rwlock_t
3455     {
3456     struct _pthread_fastlock __rw_lock;
3457     int __rw_readers;
3458     _pthread_descr __rw_writer;
3459     _pthread_descr __rw_read_waiting;
3460     _pthread_descr __rw_write_waiting;
3461     int __rw_kind;
3462     int __rw_pshared;
3463     } pthread_rwlock_t;
3464    
3465    
3466    
3467     typedef struct
3468     {
3469     int __lockkind;
3470     int __pshared;
3471     } pthread_rwlockattr_t;
3472    
3473    
3474    
3475    
3476     typedef volatile int pthread_spinlock_t;
3477    
3478    
3479     typedef struct {
3480     struct _pthread_fastlock __ba_lock;
3481     int __ba_required;
3482     int __ba_present;
3483     _pthread_descr __ba_waiting;
3484     } pthread_barrier_t;
3485    
3486    
3487     typedef struct {
3488     int __pshared;
3489     } pthread_barrierattr_t;
3490    
3491    
3492    
3493    
3494    
3495     typedef unsigned long int pthread_t;
3496     # 26 "/usr/include/pthread.h" 2 3 4
3497     # 1 "/usr/include/bits/initspin.h" 1 3 4
3498     # 27 "/usr/include/pthread.h" 2 3 4
3499    
3500    
3501     extern "C" {
3502     # 59 "/usr/include/pthread.h" 3 4
3503     enum
3504     {
3505     PTHREAD_CREATE_JOINABLE,
3506    
3507     PTHREAD_CREATE_DETACHED
3508    
3509     };
3510    
3511     enum
3512     {
3513     PTHREAD_INHERIT_SCHED,
3514    
3515     PTHREAD_EXPLICIT_SCHED
3516    
3517     };
3518    
3519     enum
3520     {
3521     PTHREAD_SCOPE_SYSTEM,
3522    
3523     PTHREAD_SCOPE_PROCESS
3524    
3525     };
3526    
3527     enum
3528     {
3529     PTHREAD_MUTEX_TIMED_NP,
3530     PTHREAD_MUTEX_RECURSIVE_NP,
3531     PTHREAD_MUTEX_ERRORCHECK_NP,
3532     PTHREAD_MUTEX_ADAPTIVE_NP
3533    
3534     ,
3535     PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
3536     PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
3537     PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
3538     PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
3539    
3540    
3541    
3542     , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_ADAPTIVE_NP
3543    
3544     };
3545    
3546     enum
3547     {
3548     PTHREAD_PROCESS_PRIVATE,
3549    
3550     PTHREAD_PROCESS_SHARED
3551    
3552     };
3553    
3554    
3555     enum
3556     {
3557     PTHREAD_RWLOCK_PREFER_READER_NP,
3558     PTHREAD_RWLOCK_PREFER_WRITER_NP,
3559     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
3560     PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_WRITER_NP
3561     };
3562     # 131 "/usr/include/pthread.h" 3 4
3563     struct _pthread_cleanup_buffer
3564     {
3565     void (*__routine) (void *);
3566     void *__arg;
3567     int __canceltype;
3568     struct _pthread_cleanup_buffer *__prev;
3569     };
3570    
3571    
3572    
3573     enum
3574     {
3575     PTHREAD_CANCEL_ENABLE,
3576    
3577     PTHREAD_CANCEL_DISABLE
3578    
3579     };
3580     enum
3581     {
3582     PTHREAD_CANCEL_DEFERRED,
3583    
3584     PTHREAD_CANCEL_ASYNCHRONOUS
3585    
3586     };
3587     # 163 "/usr/include/pthread.h" 3 4
3588     extern int pthread_create (pthread_t *__restrict __threadp,
3589     __const pthread_attr_t *__restrict __attr,
3590     void *(*__start_routine) (void *),
3591     void *__restrict __arg) throw ();
3592    
3593    
3594     extern pthread_t pthread_self (void) throw ();
3595    
3596    
3597     extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ();
3598    
3599    
3600     extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
3601    
3602    
3603    
3604    
3605     extern int pthread_join (pthread_t __th, void **__thread_return);
3606    
3607    
3608    
3609    
3610    
3611     extern int pthread_detach (pthread_t __th) throw ();
3612    
3613    
3614    
3615    
3616    
3617    
3618    
3619     extern int pthread_attr_init (pthread_attr_t *__attr) throw ();
3620    
3621    
3622     extern int pthread_attr_destroy (pthread_attr_t *__attr) throw ();
3623    
3624    
3625     extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
3626     int __detachstate) throw ();
3627    
3628    
3629     extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
3630     int *__detachstate) throw ();
3631    
3632    
3633     extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
3634     __const struct sched_param *__restrict
3635     __param) throw ();
3636    
3637    
3638     extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
3639     __attr,
3640     struct sched_param *__restrict __param)
3641     throw ();
3642    
3643    
3644     extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
3645     throw ();
3646    
3647    
3648     extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
3649     __attr, int *__restrict __policy)
3650     throw ();
3651    
3652    
3653     extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
3654     int __inherit) throw ();
3655    
3656    
3657     extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
3658     __attr, int *__restrict __inherit)
3659     throw ();
3660    
3661    
3662     extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
3663     throw ();
3664    
3665    
3666     extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
3667     int *__restrict __scope) throw ();
3668    
3669    
3670    
3671     extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
3672     size_t __guardsize) throw ();
3673    
3674    
3675     extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict
3676     __attr, size_t *__restrict __guardsize)
3677     throw ();
3678    
3679    
3680    
3681    
3682    
3683    
3684     extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
3685     void *__stackaddr) throw ();
3686    
3687    
3688     extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
3689     __attr, void **__restrict __stackaddr)
3690     throw ();
3691    
3692    
3693    
3694    
3695    
3696     extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
3697     size_t __stacksize) throw ();
3698    
3699    
3700     extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
3701     void **__restrict __stackaddr,
3702     size_t *__restrict __stacksize) throw ();
3703    
3704    
3705    
3706    
3707    
3708     extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
3709     size_t __stacksize) throw ();
3710    
3711    
3712     extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
3713     __attr, size_t *__restrict __stacksize)
3714     throw ();
3715    
3716    
3717    
3718    
3719    
3720     extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) throw ();
3721    
3722    
3723    
3724    
3725    
3726    
3727     extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
3728     __const struct sched_param *__param)
3729     throw ();
3730    
3731    
3732     extern int pthread_getschedparam (pthread_t __target_thread,
3733     int *__restrict __policy,
3734     struct sched_param *__restrict __param)
3735     throw ();
3736    
3737    
3738    
3739     extern int pthread_getconcurrency (void) throw ();
3740    
3741    
3742     extern int pthread_setconcurrency (int __level) throw ();
3743    
3744    
3745    
3746    
3747    
3748    
3749    
3750     extern int pthread_yield (void) throw ();
3751    
3752    
3753    
3754    
3755    
3756    
3757     extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,
3758     __const pthread_mutexattr_t *__restrict
3759     __mutex_attr) throw ();
3760    
3761    
3762     extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) throw ();
3763    
3764    
3765     extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) throw ();
3766    
3767    
3768     extern int pthread_mutex_lock (pthread_mutex_t *__mutex) throw ();
3769    
3770    
3771    
3772     extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
3773     __const struct timespec *__restrict
3774     __abstime) throw ();
3775    
3776    
3777    
3778     extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) throw ();
3779    
3780    
3781    
3782    
3783    
3784    
3785     extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) throw ();
3786    
3787    
3788     extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) throw ();
3789    
3790    
3791     extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
3792     __restrict __attr,
3793     int *__restrict __pshared) throw ();
3794    
3795    
3796     extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
3797     int __pshared) throw ();
3798    
3799    
3800    
3801    
3802    
3803     extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
3804     throw ();
3805    
3806    
3807     extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
3808     __attr, int *__restrict __kind) throw ();
3809    
3810    
3811    
3812    
3813    
3814    
3815    
3816     extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
3817     __const pthread_condattr_t *__restrict
3818     __cond_attr) throw ();
3819    
3820    
3821     extern int pthread_cond_destroy (pthread_cond_t *__cond) throw ();
3822    
3823    
3824     extern int pthread_cond_signal (pthread_cond_t *__cond) throw ();
3825    
3826    
3827     extern int pthread_cond_broadcast (pthread_cond_t *__cond) throw ();
3828    
3829    
3830    
3831     extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
3832     pthread_mutex_t *__restrict __mutex);
3833    
3834    
3835    
3836    
3837    
3838     extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
3839     pthread_mutex_t *__restrict __mutex,
3840     __const struct timespec *__restrict
3841     __abstime);
3842    
3843    
3844    
3845    
3846     extern int pthread_condattr_init (pthread_condattr_t *__attr) throw ();
3847    
3848    
3849     extern int pthread_condattr_destroy (pthread_condattr_t *__attr) throw ();
3850    
3851    
3852     extern int pthread_condattr_getpshared (__const pthread_condattr_t *
3853     __restrict __attr,
3854     int *__restrict __pshared) throw ();
3855    
3856    
3857     extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
3858     int __pshared) throw ();
3859    
3860    
3861    
3862    
3863    
3864    
3865    
3866     extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
3867     __const pthread_rwlockattr_t *__restrict
3868     __attr) throw ();
3869    
3870    
3871     extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) throw ();
3872    
3873    
3874     extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) throw ();
3875    
3876    
3877     extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) throw ();
3878    
3879    
3880    
3881     extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
3882     __const struct timespec *__restrict
3883     __abstime) throw ();
3884    
3885    
3886    
3887     extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) throw ();
3888    
3889    
3890     extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) throw ();
3891    
3892    
3893    
3894     extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
3895     __const struct timespec *__restrict
3896     __abstime) throw ();
3897    
3898    
3899    
3900     extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) throw ();
3901    
3902    
3903    
3904    
3905    
3906     extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) throw ();
3907    
3908    
3909     extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) throw ();
3910    
3911    
3912     extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
3913     __restrict __attr,
3914     int *__restrict __pshared) throw ();
3915    
3916    
3917     extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
3918     int __pshared) throw ();
3919    
3920    
3921     extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *__attr,
3922     int *__pref) throw ();
3923    
3924    
3925     extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
3926     int __pref) throw ();
3927     # 510 "/usr/include/pthread.h" 3 4
3928     extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
3929     throw ();
3930    
3931    
3932     extern int pthread_spin_destroy (pthread_spinlock_t *__lock) throw ();
3933    
3934    
3935     extern int pthread_spin_lock (pthread_spinlock_t *__lock) throw ();
3936    
3937    
3938     extern int pthread_spin_trylock (pthread_spinlock_t *__lock) throw ();
3939    
3940    
3941     extern int pthread_spin_unlock (pthread_spinlock_t *__lock) throw ();
3942    
3943    
3944    
3945    
3946     extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
3947     __const pthread_barrierattr_t *__restrict
3948     __attr, unsigned int __count) throw ();
3949    
3950     extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) throw ();
3951    
3952     extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) throw ();
3953    
3954     extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) throw ();
3955    
3956     extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
3957     __restrict __attr,
3958     int *__restrict __pshared) throw ();
3959    
3960     extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
3961     int __pshared) throw ();
3962    
3963     extern int pthread_barrier_wait (pthread_barrier_t *__barrier) throw ();
3964     # 557 "/usr/include/pthread.h" 3 4
3965     extern int pthread_key_create (pthread_key_t *__key,
3966     void (*__destr_function) (void *)) throw ();
3967    
3968    
3969     extern int pthread_key_delete (pthread_key_t __key) throw ();
3970    
3971    
3972     extern int pthread_setspecific (pthread_key_t __key,
3973     __const void *__pointer) throw ();
3974    
3975    
3976     extern void *pthread_getspecific (pthread_key_t __key) throw ();
3977     # 580 "/usr/include/pthread.h" 3 4
3978     extern int pthread_once (pthread_once_t *__once_control,
3979     void (*__init_routine) (void));
3980    
3981    
3982    
3983    
3984    
3985    
3986     extern int pthread_setcancelstate (int __state, int *__oldstate);
3987    
3988    
3989    
3990     extern int pthread_setcanceltype (int __type, int *__oldtype);
3991    
3992    
3993     extern int pthread_cancel (pthread_t __cancelthread);
3994    
3995    
3996    
3997    
3998     extern void pthread_testcancel (void);
3999     # 614 "/usr/include/pthread.h" 3 4
4000     extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
4001     void (*__routine) (void *),
4002     void *__arg) throw ();
4003    
4004    
4005    
4006    
4007    
4008    
4009    
4010     extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
4011     int __execute) throw ();
4012     # 635 "/usr/include/pthread.h" 3 4
4013     extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffer,
4014     void (*__routine) (void *),
4015     void *__arg) throw ();
4016     # 646 "/usr/include/pthread.h" 3 4
4017     extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buffer,
4018     int __execute) throw ();
4019    
4020    
4021    
4022    
4023    
4024     extern int pthread_getcpuclockid (pthread_t __thread_id,
4025     __clockid_t *__clock_id) throw ();
4026    
4027    
4028    
4029    
4030     # 1 "/usr/include/bits/sigthread.h" 1 3 4
4031     # 31 "/usr/include/bits/sigthread.h" 3 4
4032     extern int pthread_sigmask (int __how,
4033     __const __sigset_t *__restrict __newmask,
4034     __sigset_t *__restrict __oldmask)throw ();
4035    
4036    
4037     extern int pthread_kill (pthread_t __threadid, int __signo) throw ();
4038     # 660 "/usr/include/pthread.h" 2 3 4
4039     # 675 "/usr/include/pthread.h" 3 4
4040     extern int pthread_atfork (void (*__prepare) (void),
4041     void (*__parent) (void),
4042     void (*__child) (void)) throw ();
4043    
4044    
4045    
4046    
4047     extern void pthread_kill_other_threads_np (void) throw ();
4048    
4049     }
4050     # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 2 3
4051     # 1 "/usr/include/unistd.h" 1 3 4
4052     # 28 "/usr/include/unistd.h" 3 4
4053     extern "C" {
4054     # 171 "/usr/include/unistd.h" 3 4
4055     # 1 "/usr/include/bits/posix_opt.h" 1 3 4
4056     # 172 "/usr/include/unistd.h" 2 3 4
4057    
4058    
4059    
4060     # 1 "/usr/include/bits/environments.h" 1 3 4
4061     # 176 "/usr/include/unistd.h" 2 3 4
4062     # 189 "/usr/include/unistd.h" 3 4
4063     typedef __ssize_t ssize_t;
4064    
4065    
4066    
4067    
4068    
4069     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
4070     # 196 "/usr/include/unistd.h" 2 3 4
4071    
4072    
4073    
4074    
4075    
4076     typedef __gid_t gid_t;
4077    
4078    
4079    
4080    
4081     typedef __uid_t uid_t;
4082    
4083    
4084    
4085    
4086    
4087     typedef __off_t off_t;
4088    
4089    
4090    
4091    
4092    
4093    
4094     typedef __off64_t off64_t;
4095    
4096    
4097    
4098    
4099     typedef __useconds_t useconds_t;
4100     # 236 "/usr/include/unistd.h" 3 4
4101     typedef __intptr_t intptr_t;
4102    
4103    
4104    
4105    
4106    
4107    
4108     typedef __socklen_t socklen_t;
4109     # 256 "/usr/include/unistd.h" 3 4
4110     extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1)));
4111    
4112    
4113    
4114    
4115     extern int euidaccess (__const char *__name, int __type)
4116     throw () __attribute__ ((__nonnull__ (1)));
4117     # 287 "/usr/include/unistd.h" 3 4
4118     extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw ();
4119     # 298 "/usr/include/unistd.h" 3 4
4120     extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) throw ();
4121    
4122    
4123    
4124    
4125    
4126    
4127     extern int close (int __fd);
4128    
4129    
4130    
4131    
4132    
4133    
4134     extern ssize_t read (int __fd, void *__buf, size_t __nbytes);
4135    
4136    
4137    
4138    
4139    
4140     extern ssize_t write (int __fd, __const void *__buf, size_t __n);
4141     # 328 "/usr/include/unistd.h" 3 4
4142     extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
4143     __off_t __offset);
4144    
4145    
4146    
4147    
4148    
4149    
4150     extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
4151     __off_t __offset);
4152     # 356 "/usr/include/unistd.h" 3 4
4153     extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
4154     __off64_t __offset);
4155    
4156    
4157     extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
4158     __off64_t __offset);
4159    
4160    
4161    
4162    
4163    
4164    
4165    
4166     extern int pipe (int __pipedes[2]) throw ();
4167     # 378 "/usr/include/unistd.h" 3 4
4168     extern unsigned int alarm (unsigned int __seconds) throw ();
4169     # 390 "/usr/include/unistd.h" 3 4
4170     extern unsigned int sleep (unsigned int __seconds);
4171    
4172    
4173    
4174    
4175    
4176    
4177     extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
4178     throw ();
4179    
4180    
4181    
4182    
4183    
4184    
4185     extern int usleep (__useconds_t __useconds);
4186     # 414 "/usr/include/unistd.h" 3 4
4187     extern int pause (void);
4188    
4189    
4190    
4191     extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
4192     throw () __attribute__ ((__nonnull__ (1)));
4193    
4194    
4195    
4196     extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw ();
4197    
4198    
4199    
4200    
4201     extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
4202     throw () __attribute__ ((__nonnull__ (1)));
4203    
4204    
4205    
4206    
4207     extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
4208    
4209    
4210    
4211     extern int fchdir (int __fd) throw ();
4212     # 448 "/usr/include/unistd.h" 3 4
4213     extern char *getcwd (char *__buf, size_t __size) throw ();
4214    
4215    
4216    
4217    
4218    
4219     extern char *get_current_dir_name (void) throw ();
4220    
4221    
4222    
4223    
4224    
4225    
4226     extern char *getwd (char *__buf) throw () __attribute__ ((__nonnull__ (1)));
4227    
4228    
4229    
4230    
4231     extern int dup (int __fd) throw ();
4232    
4233    
4234     extern int dup2 (int __fd, int __fd2) throw ();
4235    
4236    
4237     extern char **__environ;
4238    
4239     extern char **environ;
4240    
4241    
4242    
4243    
4244    
4245     extern int execve (__const char *__path, char *__const __argv[],
4246     char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1)));
4247    
4248    
4249    
4250    
4251     extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
4252     throw ();
4253    
4254    
4255    
4256    
4257     extern int execv (__const char *__path, char *__const __argv[])
4258     throw () __attribute__ ((__nonnull__ (1)));
4259    
4260    
4261    
4262     extern int execle (__const char *__path, __const char *__arg, ...)
4263     throw () __attribute__ ((__nonnull__ (1)));
4264    
4265    
4266    
4267     extern int execl (__const char *__path, __const char *__arg, ...)
4268     throw () __attribute__ ((__nonnull__ (1)));
4269    
4270    
4271    
4272     extern int execvp (__const char *__file, char *__const __argv[])
4273     throw () __attribute__ ((__nonnull__ (1)));
4274    
4275    
4276    
4277    
4278     extern int execlp (__const char *__file, __const char *__arg, ...)
4279     throw () __attribute__ ((__nonnull__ (1)));
4280    
4281    
4282    
4283    
4284     extern int nice (int __inc) throw ();
4285    
4286    
4287    
4288    
4289     extern void _exit (int __status) __attribute__ ((__noreturn__));
4290    
4291    
4292    
4293    
4294    
4295     # 1 "/usr/include/bits/confname.h" 1 3 4
4296     # 26 "/usr/include/bits/confname.h" 3 4
4297     enum
4298     {
4299     _PC_LINK_MAX,
4300    
4301     _PC_MAX_CANON,
4302    
4303     _PC_MAX_INPUT,
4304    
4305     _PC_NAME_MAX,
4306    
4307     _PC_PATH_MAX,
4308    
4309     _PC_PIPE_BUF,
4310    
4311     _PC_CHOWN_RESTRICTED,
4312    
4313     _PC_NO_TRUNC,
4314    
4315     _PC_VDISABLE,
4316    
4317     _PC_SYNC_IO,
4318    
4319     _PC_ASYNC_IO,
4320    
4321     _PC_PRIO_IO,
4322    
4323     _PC_SOCK_MAXBUF,
4324    
4325     _PC_FILESIZEBITS,
4326    
4327     _PC_REC_INCR_XFER_SIZE,
4328    
4329     _PC_REC_MAX_XFER_SIZE,
4330    
4331     _PC_REC_MIN_XFER_SIZE,
4332    
4333     _PC_REC_XFER_ALIGN,
4334    
4335     _PC_ALLOC_SIZE_MIN,
4336    
4337     _PC_SYMLINK_MAX,
4338    
4339     _PC_2_SYMLINKS
4340    
4341     };
4342    
4343    
4344     enum
4345     {
4346     _SC_ARG_MAX,
4347    
4348     _SC_CHILD_MAX,
4349    
4350     _SC_CLK_TCK,
4351    
4352     _SC_NGROUPS_MAX,
4353    
4354     _SC_OPEN_MAX,
4355    
4356     _SC_STREAM_MAX,
4357    
4358     _SC_TZNAME_MAX,
4359    
4360     _SC_JOB_CONTROL,
4361    
4362     _SC_SAVED_IDS,
4363    
4364     _SC_REALTIME_SIGNALS,
4365    
4366     _SC_PRIORITY_SCHEDULING,
4367    
4368     _SC_TIMERS,
4369    
4370     _SC_ASYNCHRONOUS_IO,
4371    
4372     _SC_PRIORITIZED_IO,
4373    
4374     _SC_SYNCHRONIZED_IO,
4375    
4376     _SC_FSYNC,
4377    
4378     _SC_MAPPED_FILES,
4379    
4380     _SC_MEMLOCK,
4381    
4382     _SC_MEMLOCK_RANGE,
4383    
4384     _SC_MEMORY_PROTECTION,
4385    
4386     _SC_MESSAGE_PASSING,
4387    
4388     _SC_SEMAPHORES,
4389    
4390     _SC_SHARED_MEMORY_OBJECTS,
4391    
4392     _SC_AIO_LISTIO_MAX,
4393    
4394     _SC_AIO_MAX,
4395    
4396     _SC_AIO_PRIO_DELTA_MAX,
4397    
4398     _SC_DELAYTIMER_MAX,
4399    
4400     _SC_MQ_OPEN_MAX,
4401    
4402     _SC_MQ_PRIO_MAX,
4403    
4404     _SC_VERSION,
4405    
4406     _SC_PAGESIZE,
4407    
4408    
4409     _SC_RTSIG_MAX,
4410    
4411     _SC_SEM_NSEMS_MAX,
4412    
4413     _SC_SEM_VALUE_MAX,
4414    
4415     _SC_SIGQUEUE_MAX,
4416    
4417     _SC_TIMER_MAX,
4418    
4419    
4420    
4421    
4422     _SC_BC_BASE_MAX,
4423    
4424     _SC_BC_DIM_MAX,
4425    
4426     _SC_BC_SCALE_MAX,
4427    
4428     _SC_BC_STRING_MAX,
4429    
4430     _SC_COLL_WEIGHTS_MAX,
4431    
4432     _SC_EQUIV_CLASS_MAX,
4433    
4434     _SC_EXPR_NEST_MAX,
4435    
4436     _SC_LINE_MAX,
4437    
4438     _SC_RE_DUP_MAX,
4439    
4440     _SC_CHARCLASS_NAME_MAX,
4441    
4442    
4443     _SC_2_VERSION,
4444    
4445     _SC_2_C_BIND,
4446    
4447     _SC_2_C_DEV,
4448    
4449     _SC_2_FORT_DEV,
4450    
4451     _SC_2_FORT_RUN,
4452    
4453     _SC_2_SW_DEV,
4454    
4455     _SC_2_LOCALEDEF,
4456    
4457    
4458     _SC_PII,
4459    
4460     _SC_PII_XTI,
4461    
4462     _SC_PII_SOCKET,
4463    
4464     _SC_PII_INTERNET,
4465    
4466     _SC_PII_OSI,
4467    
4468     _SC_POLL,
4469    
4470     _SC_SELECT,
4471    
4472     _SC_UIO_MAXIOV,
4473    
4474     _SC_IOV_MAX = _SC_UIO_MAXIOV,
4475    
4476     _SC_PII_INTERNET_STREAM,
4477    
4478     _SC_PII_INTERNET_DGRAM,
4479    
4480     _SC_PII_OSI_COTS,
4481    
4482     _SC_PII_OSI_CLTS,
4483    
4484     _SC_PII_OSI_M,
4485    
4486     _SC_T_IOV_MAX,
4487    
4488    
4489    
4490     _SC_THREADS,
4491    
4492     _SC_THREAD_SAFE_FUNCTIONS,
4493    
4494     _SC_GETGR_R_SIZE_MAX,
4495    
4496     _SC_GETPW_R_SIZE_MAX,
4497    
4498     _SC_LOGIN_NAME_MAX,
4499    
4500     _SC_TTY_NAME_MAX,
4501    
4502     _SC_THREAD_DESTRUCTOR_ITERATIONS,
4503    
4504     _SC_THREAD_KEYS_MAX,
4505    
4506     _SC_THREAD_STACK_MIN,
4507    
4508     _SC_THREAD_THREADS_MAX,
4509    
4510     _SC_THREAD_ATTR_STACKADDR,
4511    
4512     _SC_THREAD_ATTR_STACKSIZE,
4513    
4514     _SC_THREAD_PRIORITY_SCHEDULING,
4515    
4516     _SC_THREAD_PRIO_INHERIT,
4517    
4518     _SC_THREAD_PRIO_PROTECT,
4519    
4520     _SC_THREAD_PROCESS_SHARED,
4521    
4522    
4523     _SC_NPROCESSORS_CONF,
4524    
4525     _SC_NPROCESSORS_ONLN,
4526    
4527     _SC_PHYS_PAGES,
4528    
4529     _SC_AVPHYS_PAGES,
4530    
4531     _SC_ATEXIT_MAX,
4532    
4533     _SC_PASS_MAX,
4534    
4535    
4536     _SC_XOPEN_VERSION,
4537    
4538     _SC_XOPEN_XCU_VERSION,
4539    
4540     _SC_XOPEN_UNIX,
4541    
4542     _SC_XOPEN_CRYPT,
4543    
4544     _SC_XOPEN_ENH_I18N,
4545    
4546     _SC_XOPEN_SHM,
4547    
4548    
4549     _SC_2_CHAR_TERM,
4550    
4551     _SC_2_C_VERSION,
4552    
4553     _SC_2_UPE,
4554    
4555    
4556     _SC_XOPEN_XPG2,
4557    
4558     _SC_XOPEN_XPG3,
4559    
4560     _SC_XOPEN_XPG4,
4561    
4562    
4563     _SC_CHAR_BIT,
4564    
4565     _SC_CHAR_MAX,
4566    
4567     _SC_CHAR_MIN,
4568    
4569     _SC_INT_MAX,
4570    
4571     _SC_INT_MIN,
4572    
4573     _SC_LONG_BIT,
4574    
4575     _SC_WORD_BIT,
4576    
4577     _SC_MB_LEN_MAX,
4578    
4579     _SC_NZERO,
4580    
4581     _SC_SSIZE_MAX,
4582    
4583     _SC_SCHAR_MAX,
4584    
4585     _SC_SCHAR_MIN,
4586    
4587     _SC_SHRT_MAX,
4588    
4589     _SC_SHRT_MIN,
4590    
4591     _SC_UCHAR_MAX,
4592    
4593     _SC_UINT_MAX,
4594    
4595     _SC_ULONG_MAX,
4596    
4597     _SC_USHRT_MAX,
4598    
4599    
4600     _SC_NL_ARGMAX,
4601    
4602     _SC_NL_LANGMAX,
4603    
4604     _SC_NL_MSGMAX,
4605    
4606     _SC_NL_NMAX,
4607    
4608     _SC_NL_SETMAX,
4609    
4610     _SC_NL_TEXTMAX,
4611    
4612    
4613     _SC_XBS5_ILP32_OFF32,
4614    
4615     _SC_XBS5_ILP32_OFFBIG,
4616    
4617     _SC_XBS5_LP64_OFF64,
4618    
4619     _SC_XBS5_LPBIG_OFFBIG,
4620    
4621    
4622     _SC_XOPEN_LEGACY,
4623    
4624     _SC_XOPEN_REALTIME,
4625    
4626     _SC_XOPEN_REALTIME_THREADS,
4627    
4628    
4629     _SC_ADVISORY_INFO,
4630    
4631     _SC_BARRIERS,
4632    
4633     _SC_BASE,
4634    
4635     _SC_C_LANG_SUPPORT,
4636    
4637     _SC_C_LANG_SUPPORT_R,
4638    
4639     _SC_CLOCK_SELECTION,
4640    
4641     _SC_CPUTIME,
4642    
4643     _SC_THREAD_CPUTIME,
4644    
4645     _SC_DEVICE_IO,
4646    
4647     _SC_DEVICE_SPECIFIC,
4648    
4649     _SC_DEVICE_SPECIFIC_R,
4650    
4651     _SC_FD_MGMT,
4652    
4653     _SC_FIFO,
4654    
4655     _SC_PIPE,
4656    
4657     _SC_FILE_ATTRIBUTES,
4658    
4659     _SC_FILE_LOCKING,
4660    
4661     _SC_FILE_SYSTEM,
4662    
4663     _SC_MONOTONIC_CLOCK,
4664    
4665     _SC_MULTI_PROCESS,
4666    
4667     _SC_SINGLE_PROCESS,
4668    
4669     _SC_NETWORKING,
4670    
4671     _SC_READER_WRITER_LOCKS,
4672    
4673     _SC_SPIN_LOCKS,
4674    
4675     _SC_REGEXP,
4676    
4677     _SC_REGEX_VERSION,
4678    
4679     _SC_SHELL,
4680    
4681     _SC_SIGNALS,
4682    
4683     _SC_SPAWN,
4684    
4685     _SC_SPORADIC_SERVER,
4686    
4687     _SC_THREAD_SPORADIC_SERVER,
4688    
4689     _SC_SYSTEM_DATABASE,
4690    
4691     _SC_SYSTEM_DATABASE_R,
4692    
4693     _SC_TIMEOUTS,
4694    
4695     _SC_TYPED_MEMORY_OBJECTS,
4696    
4697     _SC_USER_GROUPS,
4698    
4699     _SC_USER_GROUPS_R,
4700    
4701     _SC_2_PBS,
4702    
4703     _SC_2_PBS_ACCOUNTING,
4704    
4705     _SC_2_PBS_LOCATE,
4706    
4707     _SC_2_PBS_MESSAGE,
4708    
4709     _SC_2_PBS_TRACK,
4710    
4711     _SC_SYMLOOP_MAX,
4712    
4713     _SC_STREAMS,
4714    
4715     _SC_2_PBS_CHECKPOINT,
4716    
4717    
4718     _SC_V6_ILP32_OFF32,
4719    
4720     _SC_V6_ILP32_OFFBIG,
4721    
4722     _SC_V6_LP64_OFF64,
4723    
4724     _SC_V6_LPBIG_OFFBIG,
4725    
4726    
4727     _SC_HOST_NAME_MAX,
4728    
4729     _SC_TRACE,
4730    
4731     _SC_TRACE_EVENT_FILTER,
4732    
4733     _SC_TRACE_INHERIT,
4734    
4735     _SC_TRACE_LOG,
4736    
4737    
4738     _SC_LEVEL1_ICACHE_SIZE,
4739    
4740     _SC_LEVEL1_ICACHE_ASSOC,
4741    
4742     _SC_LEVEL1_ICACHE_LINESIZE,
4743    
4744     _SC_LEVEL1_DCACHE_SIZE,
4745    
4746     _SC_LEVEL1_DCACHE_ASSOC,
4747    
4748     _SC_LEVEL1_DCACHE_LINESIZE,
4749    
4750     _SC_LEVEL2_CACHE_SIZE,
4751    
4752     _SC_LEVEL2_CACHE_ASSOC,
4753    
4754     _SC_LEVEL2_CACHE_LINESIZE,
4755    
4756     _SC_LEVEL3_CACHE_SIZE,
4757    
4758     _SC_LEVEL3_CACHE_ASSOC,
4759    
4760     _SC_LEVEL3_CACHE_LINESIZE,
4761    
4762     _SC_LEVEL4_CACHE_SIZE,
4763    
4764     _SC_LEVEL4_CACHE_ASSOC,
4765    
4766     _SC_LEVEL4_CACHE_LINESIZE,
4767    
4768    
4769    
4770     _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
4771    
4772     _SC_RAW_SOCKETS
4773    
4774     };
4775    
4776    
4777     enum
4778     {
4779     _CS_PATH,
4780    
4781    
4782     _CS_V6_WIDTH_RESTRICTED_ENVS,
4783    
4784    
4785     _CS_GNU_LIBC_VERSION,
4786    
4787     _CS_GNU_LIBPTHREAD_VERSION,
4788    
4789    
4790     _CS_LFS_CFLAGS = 1000,
4791    
4792     _CS_LFS_LDFLAGS,
4793    
4794     _CS_LFS_LIBS,
4795    
4796     _CS_LFS_LINTFLAGS,
4797    
4798     _CS_LFS64_CFLAGS,
4799    
4800     _CS_LFS64_LDFLAGS,
4801    
4802     _CS_LFS64_LIBS,
4803    
4804     _CS_LFS64_LINTFLAGS,
4805    
4806    
4807     _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
4808    
4809     _CS_XBS5_ILP32_OFF32_LDFLAGS,
4810    
4811     _CS_XBS5_ILP32_OFF32_LIBS,
4812    
4813     _CS_XBS5_ILP32_OFF32_LINTFLAGS,
4814    
4815     _CS_XBS5_ILP32_OFFBIG_CFLAGS,
4816    
4817     _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
4818    
4819     _CS_XBS5_ILP32_OFFBIG_LIBS,
4820    
4821     _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
4822    
4823     _CS_XBS5_LP64_OFF64_CFLAGS,
4824    
4825     _CS_XBS5_LP64_OFF64_LDFLAGS,
4826    
4827     _CS_XBS5_LP64_OFF64_LIBS,
4828    
4829     _CS_XBS5_LP64_OFF64_LINTFLAGS,
4830    
4831     _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
4832    
4833     _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
4834    
4835     _CS_XBS5_LPBIG_OFFBIG_LIBS,
4836    
4837     _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
4838    
4839    
4840     _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
4841    
4842     _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
4843    
4844     _CS_POSIX_V6_ILP32_OFF32_LIBS,
4845    
4846     _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
4847    
4848     _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
4849    
4850     _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
4851    
4852     _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
4853    
4854     _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
4855    
4856     _CS_POSIX_V6_LP64_OFF64_CFLAGS,
4857    
4858     _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
4859    
4860     _CS_POSIX_V6_LP64_OFF64_LIBS,
4861    
4862     _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
4863    
4864     _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
4865    
4866     _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
4867    
4868     _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
4869    
4870     _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
4871    
4872     };
4873     # 531 "/usr/include/unistd.h" 2 3 4
4874    
4875    
4876     extern long int pathconf (__const char *__path, int __name)
4877     throw () __attribute__ ((__nonnull__ (1)));
4878    
4879    
4880     extern long int fpathconf (int __fd, int __name) throw ();
4881    
4882    
4883     extern long int sysconf (int __name) throw () __attribute__ ((__const__));
4884    
4885    
4886    
4887     extern size_t confstr (int __name, char *__buf, size_t __len) throw ();
4888    
4889    
4890    
4891    
4892     extern __pid_t getpid (void) throw ();
4893    
4894    
4895     extern __pid_t getppid (void) throw ();
4896    
4897    
4898    
4899    
4900     extern __pid_t getpgrp (void) throw ();
4901     # 567 "/usr/include/unistd.h" 3 4
4902     extern __pid_t __getpgid (__pid_t __pid) throw ();
4903    
4904     extern __pid_t getpgid (__pid_t __pid) throw ();
4905    
4906    
4907    
4908    
4909    
4910    
4911     extern int setpgid (__pid_t __pid, __pid_t __pgid) throw ();
4912     # 593 "/usr/include/unistd.h" 3 4
4913     extern int setpgrp (void) throw ();
4914     # 610 "/usr/include/unistd.h" 3 4
4915     extern __pid_t setsid (void) throw ();
4916    
4917    
4918    
4919     extern __pid_t getsid (__pid_t __pid) throw ();
4920    
4921    
4922    
4923     extern __uid_t getuid (void) throw ();
4924    
4925    
4926     extern __uid_t geteuid (void) throw ();
4927    
4928    
4929     extern __gid_t getgid (void) throw ();
4930    
4931    
4932     extern __gid_t getegid (void) throw ();
4933    
4934    
4935    
4936    
4937     extern int getgroups (int __size, __gid_t __list[]) throw ();
4938    
4939    
4940    
4941     extern int group_member (__gid_t __gid) throw ();
4942    
4943    
4944    
4945    
4946    
4947    
4948     extern int setuid (__uid_t __uid) throw ();
4949    
4950    
4951    
4952    
4953     extern int setreuid (__uid_t __ruid, __uid_t __euid) throw ();
4954    
4955    
4956    
4957    
4958     extern int seteuid (__uid_t __uid) throw ();
4959    
4960    
4961    
4962    
4963    
4964    
4965     extern int setgid (__gid_t __gid) throw ();
4966    
4967    
4968    
4969    
4970     extern int setregid (__gid_t __rgid, __gid_t __egid) throw ();
4971    
4972    
4973    
4974    
4975     extern int setegid (__gid_t __gid) throw ();
4976    
4977    
4978    
4979    
4980    
4981     extern int getresuid (__uid_t *__euid, __uid_t *__ruid, __uid_t *__suid);
4982    
4983    
4984    
4985     extern int getresgid (__gid_t *__egid, __gid_t *__rgid, __gid_t *__sgid);
4986    
4987    
4988    
4989     extern int setresuid (__uid_t __euid, __uid_t __ruid, __uid_t __suid);
4990    
4991    
4992    
4993     extern int setresgid (__gid_t __egid, __gid_t __rgid, __gid_t __sgid);
4994    
4995    
4996    
4997    
4998    
4999    
5000     extern __pid_t fork (void) throw ();
5001    
5002    
5003    
5004    
5005    
5006    
5007     extern __pid_t vfork (void) throw ();
5008    
5009    
5010    
5011    
5012    
5013     extern char *ttyname (int __fd) throw ();
5014    
5015    
5016    
5017     extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
5018     throw () __attribute__ ((__nonnull__ (2)));
5019    
5020    
5021    
5022     extern int isatty (int __fd) throw ();
5023    
5024    
5025    
5026    
5027    
5028     extern int ttyslot (void) throw ();
5029    
5030    
5031    
5032    
5033     extern int link (__const char *__from, __const char *__to)
5034     throw () __attribute__ ((__nonnull__ (1, 2)));
5035    
5036    
5037    
5038     extern int symlink (__const char *__from, __const char *__to)
5039     throw () __attribute__ ((__nonnull__ (1, 2)));
5040    
5041    
5042    
5043    
5044     extern int readlink (__const char *__restrict __path, char *__restrict __buf,
5045     size_t __len) throw () __attribute__ ((__nonnull__ (1, 2)));
5046    
5047    
5048    
5049     extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
5050    
5051    
5052     extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
5053    
5054    
5055    
5056     extern __pid_t tcgetpgrp (int __fd) throw ();
5057    
5058    
5059     extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();
5060    
5061    
5062    
5063    
5064    
5065    
5066     extern char *getlogin (void);
5067    
5068    
5069    
5070    
5071    
5072    
5073    
5074     extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
5075    
5076    
5077    
5078    
5079     extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
5080     # 783 "/usr/include/unistd.h" 3 4
5081     # 1 "/usr/include/getopt.h" 1 3 4
5082     # 50 "/usr/include/getopt.h" 3 4
5083     extern "C" {
5084     # 59 "/usr/include/getopt.h" 3 4
5085     extern char *optarg;
5086     # 73 "/usr/include/getopt.h" 3 4
5087     extern int optind;
5088    
5089    
5090    
5091    
5092     extern int opterr;
5093    
5094    
5095    
5096     extern int optopt;
5097     # 152 "/usr/include/getopt.h" 3 4
5098     extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
5099     throw ();
5100     # 171 "/usr/include/getopt.h" 3 4
5101     }
5102     # 784 "/usr/include/unistd.h" 2 3 4
5103    
5104    
5105    
5106    
5107    
5108    
5109    
5110     extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1)));
5111    
5112    
5113    
5114    
5115    
5116    
5117     extern int sethostname (__const char *__name, size_t __len)
5118     throw () __attribute__ ((__nonnull__ (1)));
5119    
5120    
5121    
5122     extern int sethostid (long int __id) throw ();
5123    
5124    
5125    
5126    
5127    
5128     extern int getdomainname (char *__name, size_t __len)
5129     throw () __attribute__ ((__nonnull__ (1)));
5130     extern int setdomainname (__const char *__name, size_t __len)
5131     throw () __attribute__ ((__nonnull__ (1)));
5132    
5133    
5134    
5135    
5136    
5137     extern int vhangup (void) throw ();
5138    
5139    
5140     extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1)));
5141    
5142    
5143    
5144    
5145    
5146    
5147    
5148     extern int profil (unsigned short int *__sample_buffer, size_t __size,
5149     size_t __offset, unsigned int __scale)
5150     throw () __attribute__ ((__nonnull__ (1)));
5151    
5152    
5153    
5154    
5155    
5156     extern int acct (__const char *__name) throw ();
5157    
5158    
5159    
5160     extern char *getusershell (void) throw ();
5161     extern void endusershell (void) throw ();
5162     extern void setusershell (void) throw ();
5163    
5164    
5165    
5166    
5167    
5168     extern int daemon (int __nochdir, int __noclose) throw ();
5169    
5170    
5171    
5172    
5173    
5174    
5175     extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
5176    
5177    
5178    
5179     extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
5180     # 869 "/usr/include/unistd.h" 3 4
5181     extern int fsync (int __fd);
5182    
5183    
5184    
5185    
5186    
5187    
5188     extern long int gethostid (void);
5189    
5190    
5191     extern void sync (void) throw ();
5192    
5193    
5194    
5195    
5196     extern int getpagesize (void) throw () __attribute__ ((__const__));
5197    
5198    
5199    
5200    
5201     extern int getdtablesize (void) throw ();
5202    
5203    
5204    
5205    
5206     extern int truncate (__const char *__file, __off_t __length)
5207     throw () __attribute__ ((__nonnull__ (1)));
5208     # 906 "/usr/include/unistd.h" 3 4
5209     extern int truncate64 (__const char *__file, __off64_t __length)
5210     throw () __attribute__ ((__nonnull__ (1)));
5211     # 916 "/usr/include/unistd.h" 3 4
5212     extern int ftruncate (int __fd, __off_t __length) throw ();
5213     # 926 "/usr/include/unistd.h" 3 4
5214     extern int ftruncate64 (int __fd, __off64_t __length) throw ();
5215     # 936 "/usr/include/unistd.h" 3 4
5216     extern int brk (void *__addr) throw ();
5217    
5218    
5219    
5220    
5221    
5222     extern void *sbrk (intptr_t __delta) throw ();
5223     # 957 "/usr/include/unistd.h" 3 4
5224     extern long int syscall (long int __sysno, ...) throw ();
5225     # 980 "/usr/include/unistd.h" 3 4
5226     extern int lockf (int __fd, int __cmd, __off_t __len);
5227     # 990 "/usr/include/unistd.h" 3 4
5228     extern int lockf64 (int __fd, int __cmd, __off64_t __len);
5229     # 1011 "/usr/include/unistd.h" 3 4
5230     extern int fdatasync (int __fildes) throw ();
5231    
5232    
5233    
5234    
5235    
5236    
5237    
5238     extern char *crypt (__const char *__key, __const char *__salt)
5239     throw () __attribute__ ((__nonnull__ (1, 2)));
5240    
5241    
5242    
5243     extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1)));
5244    
5245    
5246    
5247    
5248    
5249    
5250     extern void swab (__const void *__restrict __from, void *__restrict __to,
5251     ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
5252    
5253    
5254    
5255    
5256    
5257    
5258    
5259     extern char *ctermid (char *__s) throw ();
5260    
5261    
5262     }
5263     # 45 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 2 3
5264    
5265     typedef pthread_key_t __gthread_key_t;
5266     typedef pthread_once_t __gthread_once_t;
5267     typedef pthread_mutex_t __gthread_mutex_t;
5268     typedef pthread_mutex_t __gthread_recursive_mutex_t;
5269     # 68 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 3
5270     extern __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once")));
5271     extern __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create")));
5272     extern __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete")));
5273     extern __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific")));
5274     extern __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific")));
5275     extern __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create")));
5276    
5277     extern __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock")));
5278     extern __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock")));
5279     extern __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock")));
5280     extern __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init")));
5281     extern __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype")));
5282     extern __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy")));
5283    
5284     extern __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init")));
5285     # 200 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 3
5286     static inline int
5287     __gthread_active_p (void)
5288     {
5289     static void *const __gthread_active_ptr = (void *) &__gthrw_pthread_create;
5290     return __gthread_active_ptr != 0;
5291     }
5292     # 562 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 3
5293     static inline int
5294     __gthread_once (__gthread_once_t *once, void (*func) (void))
5295     {
5296     if (__gthread_active_p ())
5297     return __gthrw_pthread_once (once, func);
5298     else
5299     return -1;
5300     }
5301    
5302     static inline int
5303     __gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))
5304     {
5305     return __gthrw_pthread_key_create (key, dtor);
5306     }
5307    
5308     static inline int
5309     __gthread_key_delete (__gthread_key_t key)
5310     {
5311     return __gthrw_pthread_key_delete (key);
5312     }
5313    
5314     static inline void *
5315     __gthread_getspecific (__gthread_key_t key)
5316     {
5317     return __gthrw_pthread_getspecific (key);
5318     }
5319    
5320     static inline int
5321     __gthread_setspecific (__gthread_key_t key, const void *ptr)
5322     {
5323     return __gthrw_pthread_setspecific (key, ptr);
5324     }
5325    
5326     static inline int
5327     __gthread_mutex_lock (__gthread_mutex_t *mutex)
5328     {
5329     if (__gthread_active_p ())
5330     return __gthrw_pthread_mutex_lock (mutex);
5331     else
5332     return 0;
5333     }
5334    
5335     static inline int
5336     __gthread_mutex_trylock (__gthread_mutex_t *mutex)
5337     {
5338     if (__gthread_active_p ())
5339     return __gthrw_pthread_mutex_trylock (mutex);
5340     else
5341     return 0;
5342     }
5343    
5344     static inline int
5345     __gthread_mutex_unlock (__gthread_mutex_t *mutex)
5346     {
5347     if (__gthread_active_p ())
5348     return __gthrw_pthread_mutex_unlock (mutex);
5349     else
5350     return 0;
5351     }
5352     # 643 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 3
5353     static inline int
5354     __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
5355     {
5356     return __gthread_mutex_lock (mutex);
5357     }
5358    
5359     static inline int
5360     __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
5361     {
5362     return __gthread_mutex_trylock (mutex);
5363     }
5364    
5365     static inline int
5366     __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
5367     {
5368     return __gthread_mutex_unlock (mutex);
5369     }
5370     # 105 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr.h" 2 3
5371     # 38 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++io.h" 2 3
5372    
5373     namespace std
5374     {
5375     typedef __gthread_mutex_t __c_lock;
5376    
5377    
5378     typedef FILE __c_file;
5379    
5380    
5381    
5382     struct __ios_flags
5383     {
5384     typedef short __int_type;
5385    
5386     static const __int_type _S_boolalpha = 0x0001;
5387     static const __int_type _S_dec = 0x0002;
5388     static const __int_type _S_fixed = 0x0004;
5389     static const __int_type _S_hex = 0x0008;
5390     static const __int_type _S_internal = 0x0010;
5391     static const __int_type _S_left = 0x0020;
5392     static const __int_type _S_oct = 0x0040;
5393     static const __int_type _S_right = 0x0080;
5394     static const __int_type _S_scientific = 0x0100;
5395     static const __int_type _S_showbase = 0x0200;
5396     static const __int_type _S_showpoint = 0x0400;
5397     static const __int_type _S_showpos = 0x0800;
5398     static const __int_type _S_skipws = 0x1000;
5399     static const __int_type _S_unitbuf = 0x2000;
5400     static const __int_type _S_uppercase = 0x4000;
5401     static const __int_type _S_adjustfield = 0x0020 | 0x0080 | 0x0010;
5402     static const __int_type _S_basefield = 0x0002 | 0x0040 | 0x0008;
5403     static const __int_type _S_floatfield = 0x0100 | 0x0004;
5404    
5405    
5406     static const __int_type _S_badbit = 0x01;
5407     static const __int_type _S_eofbit = 0x02;
5408     static const __int_type _S_failbit = 0x04;
5409    
5410    
5411     static const __int_type _S_app = 0x01;
5412     static const __int_type _S_ate = 0x02;
5413     static const __int_type _S_bin = 0x04;
5414     static const __int_type _S_in = 0x08;
5415     static const __int_type _S_out = 0x10;
5416     static const __int_type _S_trunc = 0x20;
5417     };
5418     }
5419     # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
5420     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype" 1 3
5421     # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype" 3
5422    
5423     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype" 3
5424    
5425    
5426     # 1 "/usr/include/ctype.h" 1 3 4
5427     # 30 "/usr/include/ctype.h" 3 4
5428     extern "C" {
5429     # 41 "/usr/include/ctype.h" 3 4
5430     # 1 "/usr/include/endian.h" 1 3 4
5431     # 37 "/usr/include/endian.h" 3 4
5432     # 1 "/usr/include/bits/endian.h" 1 3 4
5433     # 38 "/usr/include/endian.h" 2 3 4
5434     # 42 "/usr/include/ctype.h" 2 3 4
5435    
5436    
5437    
5438    
5439    
5440    
5441     enum
5442     {
5443     _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
5444     _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
5445     _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
5446     _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
5447     _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
5448     _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
5449     _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
5450     _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
5451     _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
5452     _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
5453     _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
5454     _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
5455     };
5456     # 81 "/usr/include/ctype.h" 3 4
5457     extern __const unsigned short int **__ctype_b_loc (void)
5458     __attribute__ ((__const));
5459     extern __const __int32_t **__ctype_tolower_loc (void)
5460     __attribute__ ((__const));
5461     extern __const __int32_t **__ctype_toupper_loc (void)
5462     __attribute__ ((__const));
5463     # 96 "/usr/include/ctype.h" 3 4
5464    
5465    
5466    
5467    
5468    
5469    
5470     extern int isalnum (int) throw ();
5471     extern int isalpha (int) throw ();
5472     extern int iscntrl (int) throw ();
5473     extern int isdigit (int) throw ();
5474     extern int islower (int) throw ();
5475     extern int isgraph (int) throw ();
5476     extern int isprint (int) throw ();
5477     extern int ispunct (int) throw ();
5478     extern int isspace (int) throw ();
5479     extern int isupper (int) throw ();
5480     extern int isxdigit (int) throw ();
5481    
5482    
5483    
5484     extern int tolower (int __c) throw ();
5485    
5486    
5487     extern int toupper (int __c) throw ();
5488    
5489    
5490    
5491    
5492    
5493    
5494    
5495    
5496     extern int isblank (int) throw ();
5497    
5498    
5499    
5500    
5501    
5502    
5503     extern int isctype (int __c, int __mask) throw ();
5504    
5505    
5506    
5507    
5508    
5509    
5510     extern int isascii (int __c) throw ();
5511    
5512    
5513    
5514     extern int toascii (int __c) throw ();
5515    
5516    
5517    
5518     extern int _toupper (int) throw ();
5519     extern int _tolower (int) throw ();
5520     # 247 "/usr/include/ctype.h" 3 4
5521     extern int isalnum_l (int, __locale_t) throw ();
5522     extern int isalpha_l (int, __locale_t) throw ();
5523     extern int iscntrl_l (int, __locale_t) throw ();
5524     extern int isdigit_l (int, __locale_t) throw ();
5525     extern int islower_l (int, __locale_t) throw ();
5526     extern int isgraph_l (int, __locale_t) throw ();
5527     extern int isprint_l (int, __locale_t) throw ();
5528     extern int ispunct_l (int, __locale_t) throw ();
5529     extern int isspace_l (int, __locale_t) throw ();
5530     extern int isupper_l (int, __locale_t) throw ();
5531     extern int isxdigit_l (int, __locale_t) throw ();
5532    
5533     extern int isblank_l (int, __locale_t) throw ();
5534    
5535    
5536    
5537     extern int __tolower_l (int __c, __locale_t __l) throw ();
5538     extern int tolower_l (int __c, __locale_t __l) throw ();
5539    
5540    
5541     extern int __toupper_l (int __c, __locale_t __l) throw ();
5542     extern int toupper_l (int __c, __locale_t __l) throw ();
5543     # 323 "/usr/include/ctype.h" 3 4
5544     }
5545     # 50 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype" 2 3
5546     # 66 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype" 3
5547     namespace std
5548     {
5549     using ::isalnum;
5550     using ::isalpha;
5551     using ::iscntrl;
5552     using ::isdigit;
5553     using ::isgraph;
5554     using ::islower;
5555     using ::isprint;
5556     using ::ispunct;
5557     using ::isspace;
5558     using ::isupper;
5559     using ::isxdigit;
5560     using ::tolower;
5561     using ::toupper;
5562     }
5563     # 49 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
5564     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stringfwd.h" 1 3
5565     # 42 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stringfwd.h" 3
5566    
5567     # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stringfwd.h" 3
5568    
5569    
5570    
5571     namespace std
5572     {
5573     template<typename _Alloc>
5574     class allocator;
5575    
5576     template<class _CharT>
5577     struct char_traits;
5578    
5579     template<typename _CharT, typename _Traits = char_traits<_CharT>,
5580     typename _Alloc = allocator<_CharT> >
5581     class basic_string;
5582    
5583     template<> struct char_traits<char>;
5584    
5585     typedef basic_string<char> string;
5586    
5587    
5588     template<> struct char_traits<wchar_t>;
5589    
5590     typedef basic_string<wchar_t> wstring;
5591    
5592     }
5593     # 50 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
5594     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 1 3
5595     # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 3
5596    
5597     # 45 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 3
5598    
5599     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 1 3
5600     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 3
5601    
5602     # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 3
5603    
5604    
5605    
5606     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ctime" 1 3
5607     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ctime" 3
5608    
5609     # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ctime" 3
5610     # 64 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ctime" 3
5611     namespace std
5612     {
5613     using ::clock_t;
5614     using ::time_t;
5615     using ::tm;
5616    
5617     using ::clock;
5618     using ::difftime;
5619     using ::mktime;
5620     using ::time;
5621     using ::asctime;
5622     using ::ctime;
5623     using ::gmtime;
5624     using ::localtime;
5625     using ::strftime;
5626     }
5627     # 52 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 2 3
5628    
5629    
5630     # 1 "/usr/include/wchar.h" 1 3 4
5631     # 40 "/usr/include/wchar.h" 3 4
5632     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h" 1 3 4
5633     # 41 "/usr/include/wchar.h" 2 3 4
5634    
5635    
5636    
5637    
5638    
5639    
5640    
5641     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
5642     # 49 "/usr/include/wchar.h" 2 3 4
5643     # 93 "/usr/include/wchar.h" 3 4
5644    
5645    
5646     typedef __mbstate_t mbstate_t;
5647    
5648    
5649    
5650     # 118 "/usr/include/wchar.h" 3 4
5651     extern "C" {
5652    
5653    
5654    
5655    
5656     struct tm;
5657    
5658    
5659    
5660    
5661    
5662    
5663    
5664    
5665    
5666     extern wchar_t *wcscpy (wchar_t *__restrict __dest,
5667     __const wchar_t *__restrict __src) throw ();
5668    
5669     extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
5670     __const wchar_t *__restrict __src, size_t __n)
5671     throw ();
5672    
5673    
5674     extern wchar_t *wcscat (wchar_t *__restrict __dest,
5675     __const wchar_t *__restrict __src) throw ();
5676    
5677     extern wchar_t *wcsncat (wchar_t *__restrict __dest,
5678     __const wchar_t *__restrict __src, size_t __n)
5679     throw ();
5680    
5681    
5682     extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)
5683     throw () __attribute__ ((__pure__));
5684    
5685     extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n)
5686     throw () __attribute__ ((__pure__));
5687    
5688    
5689    
5690    
5691     extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
5692    
5693    
5694     extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
5695     size_t __n) throw ();
5696    
5697    
5698    
5699    
5700    
5701     extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
5702     __locale_t __loc) throw ();
5703    
5704     extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
5705     size_t __n, __locale_t __loc) throw ();
5706    
5707    
5708    
5709    
5710    
5711     extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
5712    
5713    
5714    
5715     extern size_t wcsxfrm (wchar_t *__restrict __s1,
5716     __const wchar_t *__restrict __s2, size_t __n) throw ();
5717    
5718    
5719    
5720    
5721    
5722    
5723    
5724    
5725     extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,
5726     __locale_t __loc) throw ();
5727    
5728    
5729    
5730    
5731     extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,
5732     size_t __n, __locale_t __loc) throw ();
5733    
5734    
5735     extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__));
5736    
5737    
5738    
5739    
5740     extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)
5741     throw () __attribute__ ((__pure__));
5742    
5743     extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)
5744     throw () __attribute__ ((__pure__));
5745    
5746    
5747    
5748    
5749    
5750     extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)
5751     throw () __attribute__ ((__pure__));
5752    
5753    
5754    
5755    
5756    
5757     extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)
5758     throw () __attribute__ ((__pure__));
5759    
5760    
5761     extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)
5762     throw () __attribute__ ((__pure__));
5763    
5764     extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept)
5765     throw () __attribute__ ((__pure__));
5766    
5767     extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
5768     throw () __attribute__ ((__pure__));
5769    
5770    
5771     extern wchar_t *wcstok (wchar_t *__restrict __s,
5772     __const wchar_t *__restrict __delim,
5773     wchar_t **__restrict __ptr) throw ();
5774    
5775    
5776     extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__));
5777    
5778    
5779    
5780    
5781     extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
5782     throw () __attribute__ ((__pure__));
5783    
5784    
5785    
5786    
5787     extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)
5788     throw () __attribute__ ((__pure__));
5789    
5790    
5791    
5792    
5793    
5794     extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)
5795     throw () __attribute__ ((__pure__));
5796    
5797    
5798     extern int wmemcmp (__const wchar_t *__restrict __s1,
5799     __const wchar_t *__restrict __s2, size_t __n)
5800     throw () __attribute__ ((__pure__));
5801    
5802    
5803     extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
5804     __const wchar_t *__restrict __s2, size_t __n) throw ();
5805    
5806    
5807    
5808     extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)
5809     throw ();
5810    
5811    
5812     extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
5813    
5814    
5815    
5816    
5817    
5818     extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
5819     __const wchar_t *__restrict __s2, size_t __n)
5820     throw ();
5821    
5822    
5823    
5824    
5825    
5826    
5827     extern wint_t btowc (int __c) throw ();
5828    
5829    
5830    
5831     extern int wctob (wint_t __c) throw ();
5832    
5833    
5834    
5835     extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__));
5836    
5837    
5838    
5839     extern size_t mbrtowc (wchar_t *__restrict __pwc,
5840     __const char *__restrict __s, size_t __n,
5841     mbstate_t *__p) throw ();
5842    
5843    
5844     extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
5845     mbstate_t *__restrict __ps) throw ();
5846    
5847    
5848     extern size_t __mbrlen (__const char *__restrict __s, size_t __n,
5849     mbstate_t *__restrict __ps) throw ();
5850     extern size_t mbrlen (__const char *__restrict __s, size_t __n,
5851     mbstate_t *__restrict __ps) throw ();
5852    
5853     # 330 "/usr/include/wchar.h" 3 4
5854    
5855    
5856    
5857     extern size_t mbsrtowcs (wchar_t *__restrict __dst,
5858     __const char **__restrict __src, size_t __len,
5859     mbstate_t *__restrict __ps) throw ();
5860    
5861    
5862    
5863     extern size_t wcsrtombs (char *__restrict __dst,
5864     __const wchar_t **__restrict __src, size_t __len,
5865     mbstate_t *__restrict __ps) throw ();
5866    
5867    
5868    
5869    
5870    
5871    
5872     extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
5873     __const char **__restrict __src, size_t __nmc,
5874     size_t __len, mbstate_t *__restrict __ps) throw ();
5875    
5876    
5877    
5878     extern size_t wcsnrtombs (char *__restrict __dst,
5879     __const wchar_t **__restrict __src,
5880     size_t __nwc, size_t __len,
5881     mbstate_t *__restrict __ps) throw ();
5882    
5883    
5884    
5885    
5886    
5887    
5888     extern int wcwidth (wchar_t __c) throw ();
5889    
5890    
5891    
5892     extern int wcswidth (__const wchar_t *__s, size_t __n) throw ();
5893    
5894    
5895    
5896    
5897    
5898    
5899     extern double wcstod (__const wchar_t *__restrict __nptr,
5900     wchar_t **__restrict __endptr) throw ();
5901    
5902    
5903    
5904     extern float wcstof (__const wchar_t *__restrict __nptr,
5905     wchar_t **__restrict __endptr) throw ();
5906     extern long double wcstold (__const wchar_t *__restrict __nptr,
5907     wchar_t **__restrict __endptr) throw ();
5908    
5909    
5910    
5911    
5912    
5913     extern long int wcstol (__const wchar_t *__restrict __nptr,
5914     wchar_t **__restrict __endptr, int __base) throw ();
5915    
5916    
5917    
5918     extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,
5919     wchar_t **__restrict __endptr, int __base)
5920     throw ();
5921    
5922    
5923    
5924    
5925     __extension__
5926     extern long long int wcstoll (__const wchar_t *__restrict __nptr,
5927     wchar_t **__restrict __endptr, int __base)
5928     throw ();
5929    
5930    
5931    
5932     __extension__
5933     extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr,
5934     wchar_t **__restrict __endptr,
5935     int __base) throw ();
5936    
5937    
5938    
5939    
5940    
5941    
5942     __extension__
5943     extern long long int wcstoq (__const wchar_t *__restrict __nptr,
5944     wchar_t **__restrict __endptr, int __base)
5945     throw ();
5946    
5947    
5948    
5949     __extension__
5950     extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr,
5951     wchar_t **__restrict __endptr,
5952     int __base) throw ();
5953     # 449 "/usr/include/wchar.h" 3 4
5954     extern long int wcstol_l (__const wchar_t *__restrict __nptr,
5955     wchar_t **__restrict __endptr, int __base,
5956     __locale_t __loc) throw ();
5957    
5958     extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr,
5959     wchar_t **__restrict __endptr,
5960     int __base, __locale_t __loc) throw ();
5961    
5962     __extension__
5963     extern long long int wcstoll_l (__const wchar_t *__restrict __nptr,
5964     wchar_t **__restrict __endptr,
5965     int __base, __locale_t __loc) throw ();
5966    
5967     __extension__
5968     extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr,
5969     wchar_t **__restrict __endptr,
5970     int __base, __locale_t __loc)
5971     throw ();
5972    
5973     extern double wcstod_l (__const wchar_t *__restrict __nptr,
5974     wchar_t **__restrict __endptr, __locale_t __loc)
5975     throw ();
5976    
5977     extern float wcstof_l (__const wchar_t *__restrict __nptr,
5978     wchar_t **__restrict __endptr, __locale_t __loc)
5979     throw ();
5980    
5981     extern long double wcstold_l (__const wchar_t *__restrict __nptr,
5982     wchar_t **__restrict __endptr,
5983     __locale_t __loc) throw ();
5984    
5985    
5986    
5987    
5988    
5989     extern double __wcstod_internal (__const wchar_t *__restrict __nptr,
5990     wchar_t **__restrict __endptr, int __group)
5991     throw ();
5992     extern float __wcstof_internal (__const wchar_t *__restrict __nptr,
5993     wchar_t **__restrict __endptr, int __group)
5994     throw ();
5995     extern long double __wcstold_internal (__const wchar_t *__restrict __nptr,
5996     wchar_t **__restrict __endptr,
5997     int __group) throw ();
5998     # 575 "/usr/include/wchar.h" 3 4
5999     extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw ();
6000    
6001    
6002    
6003     extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
6004     throw ();
6005    
6006    
6007    
6008    
6009    
6010    
6011    
6012    
6013     extern int fwide (__FILE *__fp, int __mode) throw ();
6014    
6015    
6016    
6017    
6018    
6019    
6020     extern int fwprintf (__FILE *__restrict __stream,
6021     __const wchar_t *__restrict __format, ...)
6022     ;
6023    
6024    
6025    
6026    
6027     extern int wprintf (__const wchar_t *__restrict __format, ...)
6028     ;
6029    
6030     extern int swprintf (wchar_t *__restrict __s, size_t __n,
6031     __const wchar_t *__restrict __format, ...)
6032     throw () ;
6033    
6034    
6035    
6036    
6037    
6038     extern int vfwprintf (__FILE *__restrict __s,
6039     __const wchar_t *__restrict __format,
6040     __gnuc_va_list __arg)
6041     ;
6042    
6043    
6044    
6045    
6046     extern int vwprintf (__const wchar_t *__restrict __format,
6047     __gnuc_va_list __arg)
6048     ;
6049    
6050    
6051     extern int vswprintf (wchar_t *__restrict __s, size_t __n,
6052     __const wchar_t *__restrict __format,
6053     __gnuc_va_list __arg)
6054     throw () ;
6055    
6056    
6057    
6058    
6059    
6060    
6061     extern int fwscanf (__FILE *__restrict __stream,
6062     __const wchar_t *__restrict __format, ...)
6063     ;
6064    
6065    
6066    
6067    
6068     extern int wscanf (__const wchar_t *__restrict __format, ...)
6069     ;
6070    
6071     extern int swscanf (__const wchar_t *__restrict __s,
6072     __const wchar_t *__restrict __format, ...)
6073     throw () ;
6074    
6075    
6076    
6077    
6078    
6079    
6080    
6081    
6082    
6083    
6084    
6085     extern int vfwscanf (__FILE *__restrict __s,
6086     __const wchar_t *__restrict __format,
6087     __gnuc_va_list __arg)
6088     ;
6089    
6090    
6091    
6092    
6093     extern int vwscanf (__const wchar_t *__restrict __format,
6094     __gnuc_va_list __arg)
6095     ;
6096    
6097     extern int vswscanf (__const wchar_t *__restrict __s,
6098     __const wchar_t *__restrict __format,
6099     __gnuc_va_list __arg)
6100     throw () ;
6101    
6102    
6103    
6104    
6105    
6106    
6107    
6108    
6109    
6110    
6111     extern wint_t fgetwc (__FILE *__stream);
6112     extern wint_t getwc (__FILE *__stream);
6113    
6114    
6115    
6116    
6117    
6118     extern wint_t getwchar (void);
6119    
6120    
6121    
6122    
6123    
6124    
6125     extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
6126     extern wint_t putwc (wchar_t __wc, __FILE *__stream);
6127    
6128    
6129    
6130    
6131    
6132     extern wint_t putwchar (wchar_t __wc);
6133    
6134    
6135    
6136    
6137    
6138    
6139    
6140     extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
6141     __FILE *__restrict __stream);
6142    
6143    
6144    
6145    
6146    
6147     extern int fputws (__const wchar_t *__restrict __ws,
6148     __FILE *__restrict __stream);
6149    
6150    
6151    
6152    
6153    
6154    
6155     extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
6156    
6157     # 743 "/usr/include/wchar.h" 3 4
6158     extern wint_t getwc_unlocked (__FILE *__stream);
6159     extern wint_t getwchar_unlocked (void);
6160    
6161    
6162    
6163    
6164    
6165    
6166    
6167     extern wint_t fgetwc_unlocked (__FILE *__stream);
6168    
6169    
6170    
6171    
6172    
6173    
6174    
6175     extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
6176     # 769 "/usr/include/wchar.h" 3 4
6177     extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
6178     extern wint_t putwchar_unlocked (wchar_t __wc);
6179     # 779 "/usr/include/wchar.h" 3 4
6180     extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
6181     __FILE *__restrict __stream);
6182    
6183    
6184    
6185    
6186    
6187    
6188    
6189     extern int fputws_unlocked (__const wchar_t *__restrict __ws,
6190     __FILE *__restrict __stream);
6191    
6192    
6193    
6194    
6195    
6196    
6197    
6198     extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
6199     __const wchar_t *__restrict __format,
6200     __const struct tm *__restrict __tp) throw ();
6201    
6202    
6203    
6204    
6205    
6206    
6207    
6208     extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
6209     __const wchar_t *__restrict __format,
6210     __const struct tm *__restrict __tp,
6211     __locale_t __loc) throw ();
6212     # 824 "/usr/include/wchar.h" 3 4
6213     }
6214     # 55 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 2 3
6215     # 69 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 3
6216     namespace std
6217     {
6218     using ::mbstate_t;
6219     }
6220     # 141 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 3
6221     namespace std
6222     {
6223     using ::wint_t;
6224    
6225     using ::btowc;
6226     using ::fgetwc;
6227     using ::fgetws;
6228     using ::fputwc;
6229     using ::fputws;
6230     using ::fwide;
6231     using ::fwprintf;
6232     using ::fwscanf;
6233     using ::getwc;
6234     using ::getwchar;
6235     using ::mbrlen;
6236     using ::mbrtowc;
6237     using ::mbsinit;
6238     using ::mbsrtowcs;
6239     using ::putwc;
6240     using ::putwchar;
6241     using ::swprintf;
6242     using ::swscanf;
6243     using ::ungetwc;
6244     using ::vfwprintf;
6245    
6246     using ::vfwscanf;
6247    
6248     using ::vswprintf;
6249    
6250     using ::vswscanf;
6251    
6252     using ::vwprintf;
6253    
6254     using ::vwscanf;
6255    
6256     using ::wcrtomb;
6257     using ::wcscat;
6258     using ::wcscmp;
6259     using ::wcscoll;
6260     using ::wcscpy;
6261     using ::wcscspn;
6262     using ::wcsftime;
6263     using ::wcslen;
6264     using ::wcsncat;
6265     using ::wcsncmp;
6266     using ::wcsncpy;
6267     using ::wcsrtombs;
6268     using ::wcsspn;
6269     using ::wcstod;
6270    
6271     using ::wcstof;
6272    
6273     using ::wcstok;
6274     using ::wcstol;
6275     using ::wcstoul;
6276     using ::wcsxfrm;
6277     using ::wctob;
6278     using ::wmemcmp;
6279     using ::wmemcpy;
6280     using ::wmemmove;
6281     using ::wmemset;
6282     using ::wprintf;
6283     using ::wscanf;
6284    
6285     using ::wcschr;
6286    
6287     inline wchar_t*
6288     wcschr(wchar_t* __p, wchar_t __c)
6289     { return wcschr(const_cast<const wchar_t*>(__p), __c); }
6290    
6291     using ::wcspbrk;
6292    
6293     inline wchar_t*
6294     wcspbrk(wchar_t* __s1, wchar_t* __s2)
6295     { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
6296    
6297     using ::wcsrchr;
6298    
6299     inline wchar_t*
6300     wcsrchr(wchar_t* __p, wchar_t __c)
6301     { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
6302    
6303     using ::wcsstr;
6304    
6305     inline wchar_t*
6306     wcsstr(wchar_t* __s1, const wchar_t* __s2)
6307     { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
6308    
6309     using ::wmemchr;
6310    
6311     inline wchar_t*
6312     wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
6313     { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
6314     }
6315    
6316    
6317    
6318    
6319    
6320    
6321    
6322     namespace __gnu_cxx
6323     {
6324    
6325    
6326    
6327    
6328    
6329     using ::wcstold;
6330     # 258 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 3
6331     using ::wcstoll;
6332     using ::wcstoull;
6333    
6334     }
6335    
6336     namespace std
6337     {
6338     using __gnu_cxx::wcstold;
6339     using __gnu_cxx::wcstoll;
6340     using __gnu_cxx::wcstoull;
6341     }
6342     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 2 3
6343    
6344    
6345     # 1 "/usr/include/stdint.h" 1 3 4
6346     # 28 "/usr/include/stdint.h" 3 4
6347     # 1 "/usr/include/bits/wordsize.h" 1 3 4
6348     # 29 "/usr/include/stdint.h" 2 3 4
6349     # 37 "/usr/include/stdint.h" 3 4
6350     typedef signed char int8_t;
6351     typedef short int int16_t;
6352     typedef int int32_t;
6353    
6354    
6355    
6356     __extension__
6357     typedef long long int int64_t;
6358    
6359    
6360    
6361    
6362     typedef unsigned char uint8_t;
6363     typedef unsigned short int uint16_t;
6364    
6365     typedef unsigned int uint32_t;
6366    
6367    
6368    
6369    
6370    
6371     __extension__
6372     typedef unsigned long long int uint64_t;
6373    
6374    
6375    
6376    
6377    
6378    
6379     typedef signed char int_least8_t;
6380     typedef short int int_least16_t;
6381     typedef int int_least32_t;
6382    
6383    
6384    
6385     __extension__
6386     typedef long long int int_least64_t;
6387    
6388    
6389    
6390     typedef unsigned char uint_least8_t;
6391     typedef unsigned short int uint_least16_t;
6392     typedef unsigned int uint_least32_t;
6393    
6394    
6395    
6396     __extension__
6397     typedef unsigned long long int uint_least64_t;
6398    
6399    
6400    
6401    
6402    
6403    
6404     typedef signed char int_fast8_t;
6405    
6406    
6407    
6408    
6409    
6410     typedef int int_fast16_t;
6411     typedef int int_fast32_t;
6412     __extension__
6413     typedef long long int int_fast64_t;
6414    
6415    
6416    
6417     typedef unsigned char uint_fast8_t;
6418    
6419    
6420    
6421    
6422    
6423     typedef unsigned int uint_fast16_t;
6424     typedef unsigned int uint_fast32_t;
6425     __extension__
6426     typedef unsigned long long int uint_fast64_t;
6427     # 129 "/usr/include/stdint.h" 3 4
6428     typedef unsigned int uintptr_t;
6429     # 138 "/usr/include/stdint.h" 3 4
6430     __extension__
6431     typedef long long int intmax_t;
6432     __extension__
6433     typedef unsigned long long int uintmax_t;
6434     # 50 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 2 3
6435    
6436    
6437     namespace std
6438     {
6439     # 72 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 3
6440     typedef int64_t streamoff;
6441    
6442    
6443    
6444    
6445    
6446     typedef ptrdiff_t streamsize;
6447    
6448     template<typename _StateT>
6449     class fpos;
6450     # 94 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 3
6451     template<typename _StateT>
6452     class fpos
6453     {
6454     private:
6455     streamoff _M_off;
6456     _StateT _M_state;
6457    
6458     public:
6459    
6460    
6461    
6462    
6463     fpos()
6464     : _M_off(0), _M_state() { }
6465     # 116 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 3
6466     fpos(streamoff __off)
6467     : _M_off(__off), _M_state() { }
6468    
6469    
6470     operator streamoff() const { return _M_off; }
6471    
6472    
6473     void
6474     state(_StateT __st)
6475     { _M_state = __st; }
6476    
6477    
6478     _StateT
6479     state() const
6480     { return _M_state; }
6481    
6482    
6483    
6484    
6485    
6486    
6487     bool
6488     operator==(const fpos& __other) const
6489     { return _M_off == __other._M_off; }
6490    
6491    
6492     bool
6493     operator!=(const fpos& __other) const
6494     { return _M_off != __other._M_off; }
6495    
6496    
6497    
6498    
6499    
6500     fpos&
6501     operator+=(streamoff __off)
6502     {
6503     _M_off += __off;
6504     return *this;
6505     }
6506    
6507    
6508    
6509    
6510    
6511     fpos&
6512     operator-=(streamoff __off)
6513     {
6514     _M_off -= __off;
6515     return *this;
6516     }
6517    
6518    
6519    
6520    
6521    
6522    
6523    
6524     fpos
6525     operator+(streamoff __off) const
6526     {
6527     fpos __pos(*this);
6528     __pos += __off;
6529     return __pos;
6530     }
6531    
6532    
6533    
6534    
6535    
6536    
6537    
6538     fpos
6539     operator-(streamoff __off) const
6540     {
6541     fpos __pos(*this);
6542     __pos -= __off;
6543     return __pos;
6544     }
6545    
6546    
6547    
6548    
6549    
6550    
6551     streamoff
6552     operator-(const fpos& __other) const
6553     { return _M_off - __other._M_off; }
6554     };
6555    
6556    
6557    
6558    
6559    
6560     typedef fpos<mbstate_t> streampos;
6561    
6562     typedef fpos<mbstate_t> wstreampos;
6563     }
6564     # 51 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
6565     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/functexcept.h" 1 3
6566     # 34 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/functexcept.h" 3
6567     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception_defines.h" 1 3
6568     # 35 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/functexcept.h" 2 3
6569    
6570     namespace std
6571     {
6572    
6573     void
6574     __throw_bad_exception(void);
6575    
6576    
6577     void
6578     __throw_bad_alloc(void);
6579    
6580    
6581     void
6582     __throw_bad_cast(void);
6583    
6584     void
6585     __throw_bad_typeid(void);
6586    
6587    
6588     void
6589     __throw_logic_error(const char* __s);
6590    
6591     void
6592     __throw_domain_error(const char* __s);
6593    
6594     void
6595     __throw_invalid_argument(const char* __s);
6596    
6597     void
6598     __throw_length_error(const char* __s);
6599    
6600     void
6601     __throw_out_of_range(const char* __s);
6602    
6603     void
6604     __throw_runtime_error(const char* __s);
6605    
6606     void
6607     __throw_range_error(const char* __s);
6608    
6609     void
6610     __throw_overflow_error(const char* __s);
6611    
6612     void
6613     __throw_underflow_error(const char* __s);
6614    
6615    
6616     void
6617     __throw_ios_failure(const char* __s);
6618     }
6619     # 52 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
6620    
6621     namespace std
6622     {
6623     template<typename _CharT, typename _Traits = char_traits<_CharT> >
6624     class basic_ios;
6625    
6626     template<typename _CharT, typename _Traits = char_traits<_CharT> >
6627     class basic_streambuf;
6628    
6629     template<typename _CharT, typename _Traits = char_traits<_CharT> >
6630     class basic_istream;
6631    
6632     template<typename _CharT, typename _Traits = char_traits<_CharT> >
6633     class basic_ostream;
6634    
6635     template<typename _CharT, typename _Traits = char_traits<_CharT> >
6636     class basic_iostream;
6637    
6638     template<typename _CharT, typename _Traits = char_traits<_CharT>,
6639     typename _Alloc = allocator<_CharT> >
6640     class basic_stringbuf;
6641    
6642     template<typename _CharT, typename _Traits = char_traits<_CharT>,
6643     typename _Alloc = allocator<_CharT> >
6644     class basic_istringstream;
6645    
6646     template<typename _CharT, typename _Traits = char_traits<_CharT>,
6647     typename _Alloc = allocator<_CharT> >
6648     class basic_ostringstream;
6649    
6650     template<typename _CharT, typename _Traits = char_traits<_CharT>,
6651     typename _Alloc = allocator<_CharT> >
6652     class basic_stringstream;
6653    
6654     template<typename _CharT, typename _Traits = char_traits<_CharT> >
6655     class basic_filebuf;
6656    
6657     template<typename _CharT, typename _Traits = char_traits<_CharT> >
6658     class basic_ifstream;
6659    
6660     template<typename _CharT, typename _Traits = char_traits<_CharT> >
6661     class basic_ofstream;
6662    
6663     template<typename _CharT, typename _Traits = char_traits<_CharT> >
6664     class basic_fstream;
6665    
6666     template<typename _CharT, typename _Traits = char_traits<_CharT> >
6667     class istreambuf_iterator;
6668    
6669     template<typename _CharT, typename _Traits = char_traits<_CharT> >
6670     class ostreambuf_iterator;
6671    
6672    
6673    
6674     class ios_base;
6675     # 136 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 3
6676     typedef basic_ios<char> ios;
6677     typedef basic_streambuf<char> streambuf;
6678     typedef basic_istream<char> istream;
6679     typedef basic_ostream<char> ostream;
6680     typedef basic_iostream<char> iostream;
6681     typedef basic_stringbuf<char> stringbuf;
6682     typedef basic_istringstream<char> istringstream;
6683     typedef basic_ostringstream<char> ostringstream;
6684     typedef basic_stringstream<char> stringstream;
6685     typedef basic_filebuf<char> filebuf;
6686     typedef basic_ifstream<char> ifstream;
6687     typedef basic_ofstream<char> ofstream;
6688     typedef basic_fstream<char> fstream;
6689    
6690    
6691     typedef basic_ios<wchar_t> wios;
6692     typedef basic_streambuf<wchar_t> wstreambuf;
6693     typedef basic_istream<wchar_t> wistream;
6694     typedef basic_ostream<wchar_t> wostream;
6695     typedef basic_iostream<wchar_t> wiostream;
6696     typedef basic_stringbuf<wchar_t> wstringbuf;
6697     typedef basic_istringstream<wchar_t> wistringstream;
6698     typedef basic_ostringstream<wchar_t> wostringstream;
6699     typedef basic_stringstream<wchar_t> wstringstream;
6700     typedef basic_filebuf<wchar_t> wfilebuf;
6701     typedef basic_ifstream<wchar_t> wifstream;
6702     typedef basic_ofstream<wchar_t> wofstream;
6703     typedef basic_fstream<wchar_t> wfstream;
6704    
6705    
6706     }
6707     # 34 "/cern/ROOT/include/Riosfwd.h" 2
6708    
6709     using std::istream;
6710     using std::ostream;
6711     using std::fstream;
6712     using std::ifstream;
6713     using std::ofstream;
6714     # 37 "/cern/ROOT/include/TString.h" 2
6715    
6716    
6717    
6718     # 1 "/cern/ROOT/include/TMathBase.h" 1
6719     # 33 "/cern/ROOT/include/TMathBase.h"
6720     namespace TMath {
6721    
6722    
6723     inline Short_t Abs(Short_t d);
6724     inline Int_t Abs(Int_t d);
6725     inline Long_t Abs(Long_t d);
6726     inline Long64_t Abs(Long64_t d);
6727     inline Float_t Abs(Float_t d);
6728     inline Double_t Abs(Double_t d);
6729    
6730    
6731     inline Bool_t Even(Long_t a);
6732     inline Bool_t Odd(Long_t a);
6733    
6734    
6735     inline Short_t Sign(Short_t a, Short_t b);
6736     inline Int_t Sign(Int_t a, Int_t b);
6737     inline Long_t Sign(Long_t a, Long_t b);
6738     inline Long64_t Sign(Long64_t a, Long64_t b);
6739     inline Float_t Sign(Float_t a, Float_t b);
6740     inline Double_t Sign(Double_t a, Double_t b);
6741    
6742    
6743     inline Short_t Min(Short_t a, Short_t b);
6744     inline UShort_t Min(UShort_t a, UShort_t b);
6745     inline Int_t Min(Int_t a, Int_t b);
6746     inline UInt_t Min(UInt_t a, UInt_t b);
6747     inline Long_t Min(Long_t a, Long_t b);
6748     inline ULong_t Min(ULong_t a, ULong_t b);
6749     inline Long64_t Min(Long64_t a, Long64_t b);
6750     inline ULong64_t Min(ULong64_t a, ULong64_t b);
6751     inline Float_t Min(Float_t a, Float_t b);
6752     inline Double_t Min(Double_t a, Double_t b);
6753    
6754     inline Short_t Max(Short_t a, Short_t b);
6755     inline UShort_t Max(UShort_t a, UShort_t b);
6756     inline Int_t Max(Int_t a, Int_t b);
6757     inline UInt_t Max(UInt_t a, UInt_t b);
6758     inline Long_t Max(Long_t a, Long_t b);
6759     inline ULong_t Max(ULong_t a, ULong_t b);
6760     inline Long64_t Max(Long64_t a, Long64_t b);
6761     inline ULong64_t Max(ULong64_t a, ULong64_t b);
6762     inline Float_t Max(Float_t a, Float_t b);
6763     inline Double_t Max(Double_t a, Double_t b);
6764    
6765    
6766     inline Short_t Range(Short_t lb, Short_t ub, Short_t x);
6767     inline Int_t Range(Int_t lb, Int_t ub, Int_t x);
6768     inline Long_t Range(Long_t lb, Long_t ub, Long_t x);
6769     inline ULong_t Range(ULong_t lb, ULong_t ub, ULong_t x);
6770     inline Double_t Range(Double_t lb, Double_t ub, Double_t x);
6771    
6772    
6773     Long_t NextPrime(Long_t x);
6774     }
6775    
6776    
6777    
6778    
6779     inline Bool_t TMath::Even(Long_t a)
6780     { return ! (a & 1); }
6781    
6782     inline Bool_t TMath::Odd(Long_t a)
6783     { return (a & 1); }
6784    
6785    
6786    
6787     inline Short_t TMath::Abs(Short_t d)
6788     { return (d >= 0) ? d : -d; }
6789    
6790     inline Int_t TMath::Abs(Int_t d)
6791     { return (d >= 0) ? d : -d; }
6792    
6793     inline Long_t TMath::Abs(Long_t d)
6794     { return (d >= 0) ? d : -d; }
6795    
6796     inline Long64_t TMath::Abs(Long64_t d)
6797     { return (d >= 0) ? d : -d; }
6798    
6799     inline Float_t TMath::Abs(Float_t d)
6800     { return (d >= 0) ? d : -d; }
6801    
6802     inline Double_t TMath::Abs(Double_t d)
6803     { return (d >= 0) ? d : -d; }
6804    
6805    
6806    
6807     inline Short_t TMath::Sign(Short_t a, Short_t b)
6808     { return (b >= 0) ? Abs(a) : -Abs(a); }
6809    
6810     inline Int_t TMath::Sign(Int_t a, Int_t b)
6811     { return (b >= 0) ? Abs(a) : -Abs(a); }
6812    
6813     inline Long_t TMath::Sign(Long_t a, Long_t b)
6814     { return (b >= 0) ? Abs(a) : -Abs(a); }
6815    
6816     inline Long64_t TMath::Sign(Long64_t a, Long64_t b)
6817     { return (b >= 0) ? Abs(a) : -Abs(a); }
6818    
6819     inline Float_t TMath::Sign(Float_t a, Float_t b)
6820     { return (b >= 0) ? Abs(a) : -Abs(a); }
6821    
6822     inline Double_t TMath::Sign(Double_t a, Double_t b)
6823     { return (b >= 0) ? Abs(a) : -Abs(a); }
6824    
6825    
6826    
6827     inline Short_t TMath::Min(Short_t a, Short_t b)
6828     { return a <= b ? a : b; }
6829    
6830     inline UShort_t TMath::Min(UShort_t a, UShort_t b)
6831     { return a <= b ? a : b; }
6832    
6833     inline Int_t TMath::Min(Int_t a, Int_t b)
6834     { return a <= b ? a : b; }
6835    
6836     inline UInt_t TMath::Min(UInt_t a, UInt_t b)
6837     { return a <= b ? a : b; }
6838    
6839     inline Long_t TMath::Min(Long_t a, Long_t b)
6840     { return a <= b ? a : b; }
6841    
6842     inline ULong_t TMath::Min(ULong_t a, ULong_t b)
6843     { return a <= b ? a : b; }
6844    
6845     inline Long64_t TMath::Min(Long64_t a, Long64_t b)
6846     { return a <= b ? a : b; }
6847    
6848     inline ULong64_t TMath::Min(ULong64_t a, ULong64_t b)
6849     { return a <= b ? a : b; }
6850    
6851     inline Float_t TMath::Min(Float_t a, Float_t b)
6852     { return a <= b ? a : b; }
6853    
6854     inline Double_t TMath::Min(Double_t a, Double_t b)
6855     { return a <= b ? a : b; }
6856    
6857    
6858    
6859     inline Short_t TMath::Max(Short_t a, Short_t b)
6860     { return a >= b ? a : b; }
6861    
6862     inline UShort_t TMath::Max(UShort_t a, UShort_t b)
6863     { return a >= b ? a : b; }
6864    
6865     inline Int_t TMath::Max(Int_t a, Int_t b)
6866     { return a >= b ? a : b; }
6867    
6868     inline UInt_t TMath::Max(UInt_t a, UInt_t b)
6869     { return a >= b ? a : b; }
6870    
6871     inline Long_t TMath::Max(Long_t a, Long_t b)
6872     { return a >= b ? a : b; }
6873    
6874     inline ULong_t TMath::Max(ULong_t a, ULong_t b)
6875     { return a >= b ? a : b; }
6876    
6877     inline Long64_t TMath::Max(Long64_t a, Long64_t b)
6878     { return a >= b ? a : b; }
6879    
6880     inline ULong64_t TMath::Max(ULong64_t a, ULong64_t b)
6881     { return a >= b ? a : b; }
6882    
6883     inline Float_t TMath::Max(Float_t a, Float_t b)
6884     { return a >= b ? a : b; }
6885    
6886     inline Double_t TMath::Max(Double_t a, Double_t b)
6887     { return a >= b ? a : b; }
6888    
6889    
6890    
6891     inline Short_t TMath::Range(Short_t lb, Short_t ub, Short_t x)
6892     { return x < lb ? lb : (x > ub ? ub : x); }
6893    
6894     inline Int_t TMath::Range(Int_t lb, Int_t ub, Int_t x)
6895     { return x < lb ? lb : (x > ub ? ub : x); }
6896    
6897     inline Long_t TMath::Range(Long_t lb, Long_t ub, Long_t x)
6898     { return x < lb ? lb : (x > ub ? ub : x); }
6899    
6900     inline ULong_t TMath::Range(ULong_t lb, ULong_t ub, ULong_t x)
6901     { return x < lb ? lb : (x > ub ? ub : x); }
6902    
6903     inline Double_t TMath::Range(Double_t lb, Double_t ub, Double_t x)
6904     { return x < lb ? lb : (x > ub ? ub : x); }
6905     # 41 "/cern/ROOT/include/TString.h" 2
6906    
6907    
6908     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h" 1 3 4
6909     # 44 "/cern/ROOT/include/TString.h" 2
6910     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 1 3
6911     # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 3
6912    
6913     # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 3
6914    
6915    
6916    
6917     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 1 3
6918     # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 3
6919    
6920     # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 3
6921    
6922    
6923     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 1 3
6924     # 66 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
6925     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/climits" 1 3
6926     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/climits" 3
6927    
6928     # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/climits" 3
6929    
6930     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h" 1 3 4
6931     # 11 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h" 3 4
6932     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h" 1 3 4
6933    
6934    
6935    
6936    
6937    
6938    
6939     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h" 1 3 4
6940     # 122 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h" 3 4
6941     # 1 "/usr/include/limits.h" 1 3 4
6942     # 144 "/usr/include/limits.h" 3 4
6943     # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
6944     # 153 "/usr/include/bits/posix1_lim.h" 3 4
6945     # 1 "/usr/include/bits/local_lim.h" 1 3 4
6946     # 36 "/usr/include/bits/local_lim.h" 3 4
6947     # 1 "/usr/include/linux/limits.h" 1 3 4
6948     # 37 "/usr/include/bits/local_lim.h" 2 3 4
6949     # 154 "/usr/include/bits/posix1_lim.h" 2 3 4
6950     # 145 "/usr/include/limits.h" 2 3 4
6951    
6952    
6953    
6954     # 1 "/usr/include/bits/posix2_lim.h" 1 3 4
6955     # 149 "/usr/include/limits.h" 2 3 4
6956    
6957    
6958    
6959     # 1 "/usr/include/bits/xopen_lim.h" 1 3 4
6960     # 34 "/usr/include/bits/xopen_lim.h" 3 4
6961     # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
6962     # 35 "/usr/include/bits/xopen_lim.h" 2 3 4
6963     # 153 "/usr/include/limits.h" 2 3 4
6964     # 123 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h" 2 3 4
6965     # 8 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h" 2 3 4
6966     # 12 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h" 2 3 4
6967     # 50 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/climits" 2 3
6968     # 67 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
6969     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 1 3
6970     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 3
6971    
6972     # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 3
6973    
6974    
6975    
6976    
6977     # 1 "/usr/include/stdlib.h" 1 3 4
6978     # 33 "/usr/include/stdlib.h" 3 4
6979     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
6980     # 34 "/usr/include/stdlib.h" 2 3 4
6981    
6982     extern "C" {
6983    
6984    
6985    
6986    
6987    
6988    
6989     # 1 "/usr/include/bits/waitflags.h" 1 3 4
6990     # 43 "/usr/include/stdlib.h" 2 3 4
6991     # 1 "/usr/include/bits/waitstatus.h" 1 3 4
6992     # 67 "/usr/include/bits/waitstatus.h" 3 4
6993     union wait
6994     {
6995     int w_status;
6996     struct
6997     {
6998    
6999     unsigned int __w_termsig:7;
7000     unsigned int __w_coredump:1;
7001     unsigned int __w_retcode:8;
7002     unsigned int:16;
7003    
7004    
7005    
7006    
7007    
7008    
7009    
7010     } __wait_terminated;
7011     struct
7012     {
7013    
7014     unsigned int __w_stopval:8;
7015     unsigned int __w_stopsig:8;
7016     unsigned int:16;
7017    
7018    
7019    
7020    
7021    
7022    
7023     } __wait_stopped;
7024     };
7025     # 44 "/usr/include/stdlib.h" 2 3 4
7026     # 96 "/usr/include/stdlib.h" 3 4
7027    
7028    
7029     typedef struct
7030     {
7031     int quot;
7032     int rem;
7033     } div_t;
7034    
7035    
7036    
7037     typedef struct
7038     {
7039     long int quot;
7040     long int rem;
7041     } ldiv_t;
7042    
7043    
7044    
7045    
7046    
7047    
7048    
7049     __extension__ typedef struct
7050     {
7051     long long int quot;
7052     long long int rem;
7053     } lldiv_t;
7054    
7055    
7056     # 140 "/usr/include/stdlib.h" 3 4
7057     extern size_t __ctype_get_mb_cur_max (void) throw ();
7058    
7059    
7060    
7061    
7062     extern double atof (__const char *__nptr)
7063     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7064    
7065     extern int atoi (__const char *__nptr)
7066     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7067    
7068     extern long int atol (__const char *__nptr)
7069     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7070    
7071    
7072    
7073    
7074    
7075     __extension__ extern long long int atoll (__const char *__nptr)
7076     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7077    
7078    
7079    
7080    
7081    
7082     extern double strtod (__const char *__restrict __nptr,
7083     char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1)));
7084    
7085    
7086    
7087    
7088    
7089     extern float strtof (__const char *__restrict __nptr,
7090     char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1)));
7091    
7092     extern long double strtold (__const char *__restrict __nptr,
7093     char **__restrict __endptr)
7094     throw () __attribute__ ((__nonnull__ (1)));
7095    
7096    
7097    
7098    
7099    
7100     extern long int strtol (__const char *__restrict __nptr,
7101     char **__restrict __endptr, int __base)
7102     throw () __attribute__ ((__nonnull__ (1)));
7103    
7104     extern unsigned long int strtoul (__const char *__restrict __nptr,
7105     char **__restrict __endptr, int __base)
7106     throw () __attribute__ ((__nonnull__ (1)));
7107    
7108    
7109    
7110    
7111     __extension__
7112     extern long long int strtoq (__const char *__restrict __nptr,
7113     char **__restrict __endptr, int __base)
7114     throw () __attribute__ ((__nonnull__ (1)));
7115    
7116     __extension__
7117     extern unsigned long long int strtouq (__const char *__restrict __nptr,
7118     char **__restrict __endptr, int __base)
7119     throw () __attribute__ ((__nonnull__ (1)));
7120    
7121    
7122    
7123    
7124    
7125     __extension__
7126     extern long long int strtoll (__const char *__restrict __nptr,
7127     char **__restrict __endptr, int __base)
7128     throw () __attribute__ ((__nonnull__ (1)));
7129    
7130     __extension__
7131     extern unsigned long long int strtoull (__const char *__restrict __nptr,
7132     char **__restrict __endptr, int __base)
7133     throw () __attribute__ ((__nonnull__ (1)));
7134    
7135     # 239 "/usr/include/stdlib.h" 3 4
7136     extern long int strtol_l (__const char *__restrict __nptr,
7137     char **__restrict __endptr, int __base,
7138     __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4)));
7139    
7140     extern unsigned long int strtoul_l (__const char *__restrict __nptr,
7141     char **__restrict __endptr,
7142     int __base, __locale_t __loc)
7143     throw () __attribute__ ((__nonnull__ (1, 4)));
7144    
7145     __extension__
7146     extern long long int strtoll_l (__const char *__restrict __nptr,
7147     char **__restrict __endptr, int __base,
7148     __locale_t __loc)
7149     throw () __attribute__ ((__nonnull__ (1, 4)));
7150    
7151     __extension__
7152     extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
7153     char **__restrict __endptr,
7154     int __base, __locale_t __loc)
7155     throw () __attribute__ ((__nonnull__ (1, 4)));
7156    
7157     extern double strtod_l (__const char *__restrict __nptr,
7158     char **__restrict __endptr, __locale_t __loc)
7159     throw () __attribute__ ((__nonnull__ (1, 3)));
7160    
7161     extern float strtof_l (__const char *__restrict __nptr,
7162     char **__restrict __endptr, __locale_t __loc)
7163     throw () __attribute__ ((__nonnull__ (1, 3)));
7164    
7165     extern long double strtold_l (__const char *__restrict __nptr,
7166     char **__restrict __endptr,
7167     __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3)));
7168    
7169    
7170    
7171    
7172    
7173    
7174     extern double __strtod_internal (__const char *__restrict __nptr,
7175     char **__restrict __endptr, int __group)
7176     throw () __attribute__ ((__nonnull__ (1)));
7177     extern float __strtof_internal (__const char *__restrict __nptr,
7178     char **__restrict __endptr, int __group)
7179     throw () __attribute__ ((__nonnull__ (1)));
7180     extern long double __strtold_internal (__const char *__restrict __nptr,
7181     char **__restrict __endptr,
7182     int __group) throw () __attribute__ ((__nonnull__ (1)));
7183    
7184     extern long int __strtol_internal (__const char *__restrict __nptr,
7185     char **__restrict __endptr,
7186     int __base, int __group)
7187     throw () __attribute__ ((__nonnull__ (1)));
7188    
7189    
7190    
7191     extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
7192     char **__restrict __endptr,
7193     int __base, int __group)
7194     throw () __attribute__ ((__nonnull__ (1)));
7195    
7196    
7197    
7198    
7199     __extension__
7200     extern long long int __strtoll_internal (__const char *__restrict __nptr,
7201     char **__restrict __endptr,
7202     int __base, int __group)
7203     throw () __attribute__ ((__nonnull__ (1)));
7204    
7205    
7206    
7207     __extension__
7208     extern unsigned long long int __strtoull_internal (__const char *
7209     __restrict __nptr,
7210     char **__restrict __endptr,
7211     int __base, int __group)
7212     throw () __attribute__ ((__nonnull__ (1)));
7213     # 424 "/usr/include/stdlib.h" 3 4
7214     extern char *l64a (long int __n) throw ();
7215    
7216    
7217     extern long int a64l (__const char *__s)
7218     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7219    
7220    
7221    
7222    
7223     # 1 "/usr/include/sys/types.h" 1 3 4
7224     # 29 "/usr/include/sys/types.h" 3 4
7225     extern "C" {
7226    
7227    
7228    
7229    
7230    
7231     typedef __u_char u_char;
7232     typedef __u_short u_short;
7233     typedef __u_int u_int;
7234     typedef __u_long u_long;
7235     typedef __quad_t quad_t;
7236     typedef __u_quad_t u_quad_t;
7237     typedef __fsid_t fsid_t;
7238    
7239    
7240    
7241    
7242     typedef __loff_t loff_t;
7243    
7244    
7245    
7246     typedef __ino_t ino_t;
7247    
7248    
7249    
7250    
7251    
7252    
7253     typedef __ino64_t ino64_t;
7254    
7255    
7256    
7257    
7258     typedef __dev_t dev_t;
7259     # 72 "/usr/include/sys/types.h" 3 4
7260     typedef __mode_t mode_t;
7261    
7262    
7263    
7264    
7265     typedef __nlink_t nlink_t;
7266     # 105 "/usr/include/sys/types.h" 3 4
7267     typedef __id_t id_t;
7268     # 116 "/usr/include/sys/types.h" 3 4
7269     typedef __daddr_t daddr_t;
7270     typedef __caddr_t caddr_t;
7271    
7272    
7273    
7274    
7275    
7276     typedef __key_t key_t;
7277     # 141 "/usr/include/sys/types.h" 3 4
7278     typedef __suseconds_t suseconds_t;
7279    
7280    
7281    
7282    
7283    
7284     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
7285     # 148 "/usr/include/sys/types.h" 2 3 4
7286    
7287    
7288    
7289     typedef unsigned long int ulong;
7290     typedef unsigned short int ushort;
7291     typedef unsigned int uint;
7292     # 197 "/usr/include/sys/types.h" 3 4
7293     typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
7294     typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
7295     typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
7296     typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
7297    
7298     typedef int register_t __attribute__ ((__mode__ (__word__)));
7299     # 216 "/usr/include/sys/types.h" 3 4
7300     # 1 "/usr/include/sys/select.h" 1 3 4
7301     # 31 "/usr/include/sys/select.h" 3 4
7302     # 1 "/usr/include/bits/select.h" 1 3 4
7303     # 32 "/usr/include/sys/select.h" 2 3 4
7304    
7305    
7306     # 1 "/usr/include/bits/sigset.h" 1 3 4
7307     # 35 "/usr/include/sys/select.h" 2 3 4
7308     # 46 "/usr/include/sys/select.h" 3 4
7309     # 1 "/usr/include/bits/time.h" 1 3 4
7310     # 69 "/usr/include/bits/time.h" 3 4
7311     struct timeval
7312     {
7313     __time_t tv_sec;
7314     __suseconds_t tv_usec;
7315     };
7316     # 47 "/usr/include/sys/select.h" 2 3 4
7317     # 55 "/usr/include/sys/select.h" 3 4
7318     typedef long int __fd_mask;
7319     # 67 "/usr/include/sys/select.h" 3 4
7320     typedef struct
7321     {
7322    
7323    
7324    
7325     __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
7326    
7327    
7328    
7329    
7330    
7331     } fd_set;
7332    
7333    
7334    
7335    
7336    
7337    
7338     typedef __fd_mask fd_mask;
7339     # 99 "/usr/include/sys/select.h" 3 4
7340     extern "C" {
7341     # 109 "/usr/include/sys/select.h" 3 4
7342     extern int select (int __nfds, fd_set *__restrict __readfds,
7343     fd_set *__restrict __writefds,
7344     fd_set *__restrict __exceptfds,
7345     struct timeval *__restrict __timeout);
7346     # 121 "/usr/include/sys/select.h" 3 4
7347     extern int pselect (int __nfds, fd_set *__restrict __readfds,
7348     fd_set *__restrict __writefds,
7349     fd_set *__restrict __exceptfds,
7350     const struct timespec *__restrict __timeout,
7351     const __sigset_t *__restrict __sigmask);
7352    
7353    
7354     }
7355     # 217 "/usr/include/sys/types.h" 2 3 4
7356    
7357    
7358     # 1 "/usr/include/sys/sysmacros.h" 1 3 4
7359     # 29 "/usr/include/sys/sysmacros.h" 3 4
7360     __extension__
7361     extern __inline unsigned int gnu_dev_major (unsigned long long int __dev)
7362     throw ();
7363     __extension__
7364     extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
7365     throw ();
7366     __extension__
7367     extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
7368     unsigned int __minor)
7369     throw ();
7370    
7371    
7372     __extension__ extern __inline unsigned int
7373     gnu_dev_major (unsigned long long int __dev) throw ()
7374     {
7375     return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
7376     }
7377    
7378     __extension__ extern __inline unsigned int
7379     gnu_dev_minor (unsigned long long int __dev) throw ()
7380     {
7381     return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
7382     }
7383    
7384     __extension__ extern __inline unsigned long long int
7385     gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw ()
7386     {
7387     return ((__minor & 0xff) | ((__major & 0xfff) << 8)
7388     | (((unsigned long long int) (__minor & ~0xff)) << 12)
7389     | (((unsigned long long int) (__major & ~0xfff)) << 32));
7390     }
7391     # 220 "/usr/include/sys/types.h" 2 3 4
7392    
7393    
7394    
7395    
7396     typedef __blksize_t blksize_t;
7397    
7398    
7399    
7400    
7401    
7402    
7403     typedef __blkcnt_t blkcnt_t;
7404    
7405    
7406    
7407     typedef __fsblkcnt_t fsblkcnt_t;
7408    
7409    
7410    
7411     typedef __fsfilcnt_t fsfilcnt_t;
7412     # 258 "/usr/include/sys/types.h" 3 4
7413     typedef __blkcnt64_t blkcnt64_t;
7414     typedef __fsblkcnt64_t fsblkcnt64_t;
7415     typedef __fsfilcnt64_t fsfilcnt64_t;
7416    
7417    
7418    
7419    
7420    
7421     # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
7422     # 267 "/usr/include/sys/types.h" 2 3 4
7423    
7424    
7425     }
7426     # 434 "/usr/include/stdlib.h" 2 3 4
7427    
7428    
7429    
7430    
7431    
7432    
7433     extern long int random (void) throw ();
7434    
7435    
7436     extern void srandom (unsigned int __seed) throw ();
7437    
7438    
7439    
7440    
7441    
7442     extern char *initstate (unsigned int __seed, char *__statebuf,
7443     size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
7444    
7445    
7446    
7447     extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
7448    
7449    
7450    
7451    
7452    
7453    
7454    
7455     struct random_data
7456     {
7457     int32_t *fptr;
7458     int32_t *rptr;
7459     int32_t *state;
7460     int rand_type;
7461     int rand_deg;
7462     int rand_sep;
7463     int32_t *end_ptr;
7464     };
7465    
7466     extern int random_r (struct random_data *__restrict __buf,
7467     int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
7468    
7469     extern int srandom_r (unsigned int __seed, struct random_data *__buf)
7470     throw () __attribute__ ((__nonnull__ (2)));
7471    
7472     extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
7473     size_t __statelen,
7474     struct random_data *__restrict __buf)
7475     throw () __attribute__ ((__nonnull__ (2, 4)));
7476    
7477     extern int setstate_r (char *__restrict __statebuf,
7478     struct random_data *__restrict __buf)
7479     throw () __attribute__ ((__nonnull__ (1, 2)));
7480    
7481    
7482    
7483    
7484    
7485    
7486     extern int rand (void) throw ();
7487    
7488     extern void srand (unsigned int __seed) throw ();
7489    
7490    
7491    
7492    
7493     extern int rand_r (unsigned int *__seed) throw ();
7494    
7495    
7496    
7497    
7498    
7499    
7500    
7501     extern double drand48 (void) throw ();
7502     extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
7503    
7504    
7505     extern long int lrand48 (void) throw ();
7506     extern long int nrand48 (unsigned short int __xsubi[3])
7507     throw () __attribute__ ((__nonnull__ (1)));
7508    
7509    
7510     extern long int mrand48 (void) throw ();
7511     extern long int jrand48 (unsigned short int __xsubi[3])
7512     throw () __attribute__ ((__nonnull__ (1)));
7513    
7514    
7515     extern void srand48 (long int __seedval) throw ();
7516     extern unsigned short int *seed48 (unsigned short int __seed16v[3])
7517     throw () __attribute__ ((__nonnull__ (1)));
7518     extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
7519    
7520    
7521    
7522    
7523    
7524     struct drand48_data
7525     {
7526     unsigned short int __x[3];
7527     unsigned short int __old_x[3];
7528     unsigned short int __c;
7529     unsigned short int __init;
7530     unsigned long long int __a;
7531     };
7532    
7533    
7534     extern int drand48_r (struct drand48_data *__restrict __buffer,
7535     double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
7536     extern int erand48_r (unsigned short int __xsubi[3],
7537     struct drand48_data *__restrict __buffer,
7538     double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
7539    
7540    
7541     extern int lrand48_r (struct drand48_data *__restrict __buffer,
7542     long int *__restrict __result)
7543     throw () __attribute__ ((__nonnull__ (1, 2)));
7544     extern int nrand48_r (unsigned short int __xsubi[3],
7545     struct drand48_data *__restrict __buffer,
7546     long int *__restrict __result)
7547     throw () __attribute__ ((__nonnull__ (1, 2)));
7548    
7549    
7550     extern int mrand48_r (struct drand48_data *__restrict __buffer,
7551     long int *__restrict __result)
7552     throw () __attribute__ ((__nonnull__ (1, 2)));
7553     extern int jrand48_r (unsigned short int __xsubi[3],
7554     struct drand48_data *__restrict __buffer,
7555     long int *__restrict __result)
7556     throw () __attribute__ ((__nonnull__ (1, 2)));
7557    
7558    
7559     extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
7560     throw () __attribute__ ((__nonnull__ (2)));
7561    
7562     extern int seed48_r (unsigned short int __seed16v[3],
7563     struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
7564    
7565     extern int lcong48_r (unsigned short int __param[7],
7566     struct drand48_data *__buffer)
7567     throw () __attribute__ ((__nonnull__ (1, 2)));
7568    
7569    
7570    
7571    
7572    
7573    
7574    
7575    
7576    
7577     extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__));
7578    
7579     extern void *calloc (size_t __nmemb, size_t __size)
7580     throw () __attribute__ ((__malloc__));
7581    
7582    
7583    
7584    
7585    
7586    
7587    
7588     extern void *realloc (void *__ptr, size_t __size) throw () __attribute__ ((__malloc__));
7589    
7590     extern void free (void *__ptr) throw ();
7591    
7592    
7593    
7594    
7595     extern void cfree (void *__ptr) throw ();
7596    
7597    
7598    
7599     # 1 "/usr/include/alloca.h" 1 3 4
7600     # 25 "/usr/include/alloca.h" 3 4
7601     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
7602     # 26 "/usr/include/alloca.h" 2 3 4
7603    
7604     extern "C" {
7605    
7606    
7607    
7608    
7609    
7610     extern void *alloca (size_t __size) throw ();
7611    
7612    
7613    
7614    
7615    
7616     }
7617     # 607 "/usr/include/stdlib.h" 2 3 4
7618    
7619    
7620    
7621    
7622     extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__));
7623    
7624    
7625    
7626    
7627     extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
7628     throw () __attribute__ ((__nonnull__ (1)));
7629    
7630    
7631    
7632    
7633     extern void abort (void) throw () __attribute__ ((__noreturn__));
7634    
7635    
7636    
7637     extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
7638    
7639    
7640    
7641    
7642    
7643     extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
7644     throw () __attribute__ ((__nonnull__ (1)));
7645    
7646    
7647    
7648    
7649    
7650    
7651     extern void exit (int __status) throw () __attribute__ ((__noreturn__));
7652    
7653    
7654    
7655    
7656    
7657    
7658     extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
7659    
7660    
7661    
7662    
7663    
7664    
7665     extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
7666    
7667    
7668    
7669    
7670     extern char *__secure_getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
7671    
7672    
7673    
7674    
7675    
7676     extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
7677    
7678    
7679    
7680    
7681    
7682     extern int setenv (__const char *__name, __const char *__value, int __replace)
7683     throw () __attribute__ ((__nonnull__ (2)));
7684    
7685    
7686     extern int unsetenv (__const char *__name) throw ();
7687    
7688    
7689    
7690    
7691    
7692    
7693     extern int clearenv (void) throw ();
7694     # 691 "/usr/include/stdlib.h" 3 4
7695     extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1)));
7696     # 702 "/usr/include/stdlib.h" 3 4
7697     extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1)));
7698     # 711 "/usr/include/stdlib.h" 3 4
7699     extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1)));
7700     # 721 "/usr/include/stdlib.h" 3 4
7701     extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1)));
7702    
7703    
7704    
7705    
7706    
7707    
7708    
7709    
7710     extern int system (__const char *__command);
7711    
7712    
7713    
7714    
7715    
7716    
7717    
7718     extern char *canonicalize_file_name (__const char *__name)
7719     throw () __attribute__ ((__nonnull__ (1)));
7720     # 749 "/usr/include/stdlib.h" 3 4
7721     extern char *realpath (__const char *__restrict __name,
7722     char *__restrict __resolved) throw ();
7723    
7724    
7725    
7726    
7727    
7728    
7729     typedef int (*__compar_fn_t) (__const void *, __const void *);
7730    
7731    
7732     typedef __compar_fn_t comparison_fn_t;
7733    
7734    
7735    
7736    
7737    
7738    
7739     extern void *bsearch (__const void *__key, __const void *__base,
7740     size_t __nmemb, size_t __size, __compar_fn_t __compar)
7741     __attribute__ ((__nonnull__ (1, 2, 5)));
7742    
7743    
7744    
7745     extern void qsort (void *__base, size_t __nmemb, size_t __size,
7746     __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
7747    
7748    
7749    
7750     extern int abs (int __x) throw () __attribute__ ((__const__));
7751     extern long int labs (long int __x) throw () __attribute__ ((__const__));
7752    
7753    
7754    
7755     __extension__ extern long long int llabs (long long int __x)
7756     throw () __attribute__ ((__const__));
7757    
7758    
7759    
7760    
7761    
7762    
7763    
7764     extern div_t div (int __numer, int __denom)
7765     throw () __attribute__ ((__const__));
7766     extern ldiv_t ldiv (long int __numer, long int __denom)
7767     throw () __attribute__ ((__const__));
7768    
7769    
7770    
7771    
7772     __extension__ extern lldiv_t lldiv (long long int __numer,
7773     long long int __denom)
7774     throw () __attribute__ ((__const__));
7775    
7776     # 814 "/usr/include/stdlib.h" 3 4
7777     extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
7778     int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4)));
7779    
7780    
7781    
7782    
7783     extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
7784     int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4)));
7785    
7786    
7787    
7788    
7789     extern char *gcvt (double __value, int __ndigit, char *__buf)
7790     throw () __attribute__ ((__nonnull__ (3)));
7791    
7792    
7793    
7794    
7795     extern char *qecvt (long double __value, int __ndigit,
7796     int *__restrict __decpt, int *__restrict __sign)
7797     throw () __attribute__ ((__nonnull__ (3, 4)));
7798     extern char *qfcvt (long double __value, int __ndigit,
7799     int *__restrict __decpt, int *__restrict __sign)
7800     throw () __attribute__ ((__nonnull__ (3, 4)));
7801     extern char *qgcvt (long double __value, int __ndigit, char *__buf)
7802     throw () __attribute__ ((__nonnull__ (3)));
7803    
7804    
7805    
7806    
7807     extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
7808     int *__restrict __sign, char *__restrict __buf,
7809     size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
7810     extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
7811     int *__restrict __sign, char *__restrict __buf,
7812     size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
7813    
7814     extern int qecvt_r (long double __value, int __ndigit,
7815     int *__restrict __decpt, int *__restrict __sign,
7816     char *__restrict __buf, size_t __len)
7817     throw () __attribute__ ((__nonnull__ (3, 4, 5)));
7818     extern int qfcvt_r (long double __value, int __ndigit,
7819     int *__restrict __decpt, int *__restrict __sign,
7820     char *__restrict __buf, size_t __len)
7821     throw () __attribute__ ((__nonnull__ (3, 4, 5)));
7822    
7823    
7824    
7825    
7826    
7827    
7828    
7829     extern int mblen (__const char *__s, size_t __n) throw ();
7830    
7831    
7832     extern int mbtowc (wchar_t *__restrict __pwc,
7833     __const char *__restrict __s, size_t __n) throw ();
7834    
7835    
7836     extern int wctomb (char *__s, wchar_t __wchar) throw ();
7837    
7838    
7839    
7840     extern size_t mbstowcs (wchar_t *__restrict __pwcs,
7841     __const char *__restrict __s, size_t __n) throw ();
7842    
7843     extern size_t wcstombs (char *__restrict __s,
7844     __const wchar_t *__restrict __pwcs, size_t __n)
7845     throw ();
7846    
7847    
7848    
7849    
7850    
7851    
7852    
7853    
7854     extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1)));
7855     # 902 "/usr/include/stdlib.h" 3 4
7856     extern int getsubopt (char **__restrict __optionp,
7857     char *__const *__restrict __tokens,
7858     char **__restrict __valuep)
7859     throw () __attribute__ ((__nonnull__ (1, 2, 3)));
7860    
7861    
7862    
7863    
7864    
7865     extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1)));
7866    
7867    
7868    
7869    
7870    
7871    
7872    
7873     extern int posix_openpt (int __oflag);
7874    
7875    
7876    
7877    
7878    
7879    
7880    
7881     extern int grantpt (int __fd) throw ();
7882    
7883    
7884    
7885     extern int unlockpt (int __fd) throw ();
7886    
7887    
7888    
7889    
7890     extern char *ptsname (int __fd) throw ();
7891    
7892    
7893    
7894    
7895    
7896    
7897     extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
7898     throw () __attribute__ ((__nonnull__ (2)));
7899    
7900    
7901     extern int getpt (void);
7902    
7903    
7904    
7905    
7906    
7907    
7908     extern int getloadavg (double __loadavg[], int __nelem)
7909     throw () __attribute__ ((__nonnull__ (1)));
7910    
7911    
7912    
7913    
7914    
7915     }
7916     # 53 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 2 3
7917     # 84 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 3
7918     namespace std
7919     {
7920     using ::div_t;
7921     using ::ldiv_t;
7922    
7923     using ::abort;
7924     using ::abs;
7925     using ::atexit;
7926     using ::atof;
7927     using ::atoi;
7928     using ::atol;
7929     using ::bsearch;
7930     using ::calloc;
7931     using ::div;
7932     using ::exit;
7933     using ::free;
7934     using ::getenv;
7935     using ::labs;
7936     using ::ldiv;
7937     using ::malloc;
7938    
7939     using ::mblen;
7940     using ::mbstowcs;
7941     using ::mbtowc;
7942    
7943     using ::qsort;
7944     using ::rand;
7945     using ::realloc;
7946     using ::srand;
7947     using ::strtod;
7948     using ::strtol;
7949     using ::strtoul;
7950     using ::system;
7951    
7952     using ::wcstombs;
7953     using ::wctomb;
7954    
7955    
7956     inline long
7957     abs(long __i) { return labs(__i); }
7958    
7959     inline ldiv_t
7960     div(long __i, long __j) { return ldiv(__i, __j); }
7961     }
7962     # 140 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 3
7963     namespace __gnu_cxx
7964     {
7965    
7966     using ::lldiv_t;
7967    
7968    
7969    
7970    
7971    
7972     using ::_Exit;
7973    
7974    
7975     inline long long
7976     abs(long long __x) { return __x >= 0 ? __x : -__x; }
7977    
7978     inline long long
7979     llabs(long long __x) { return __x >= 0 ? __x : -__x; }
7980    
7981    
7982     inline lldiv_t
7983     div(long long __n, long long __d)
7984     { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
7985    
7986     inline lldiv_t
7987     lldiv(long long __n, long long __d)
7988     { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
7989     # 176 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 3
7990     using ::atoll;
7991     using ::strtoll;
7992     using ::strtoull;
7993    
7994     using ::strtof;
7995     using ::strtold;
7996     }
7997    
7998     namespace std
7999     {
8000    
8001     using __gnu_cxx::lldiv_t;
8002    
8003     using __gnu_cxx::_Exit;
8004     using __gnu_cxx::abs;
8005     using __gnu_cxx::llabs;
8006    
8007     using __gnu_cxx::div;
8008     using __gnu_cxx::lldiv;
8009    
8010     using __gnu_cxx::atoll;
8011     using __gnu_cxx::strtof;
8012     using __gnu_cxx::strtoll;
8013     using __gnu_cxx::strtoull;
8014     using __gnu_cxx::strtold;
8015     }
8016     # 68 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
8017    
8018     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/new" 1 3
8019     # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/new" 3
8020     extern "C++" {
8021    
8022     namespace std
8023     {
8024    
8025    
8026    
8027    
8028    
8029     class bad_alloc : public exception
8030     {
8031     public:
8032     bad_alloc() throw() { }
8033    
8034    
8035     virtual ~bad_alloc() throw();
8036     };
8037    
8038     struct nothrow_t { };
8039     extern const nothrow_t nothrow;
8040    
8041    
8042     typedef void (*new_handler)();
8043    
8044     new_handler set_new_handler(new_handler) throw();
8045     }
8046     # 82 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/new" 3
8047     void* operator new(std::size_t) throw (std::bad_alloc);
8048     void* operator new[](std::size_t) throw (std::bad_alloc);
8049     void operator delete(void*) throw();
8050     void operator delete[](void*) throw();
8051     void* operator new(std::size_t, const std::nothrow_t&) throw();
8052     void* operator new[](std::size_t, const std::nothrow_t&) throw();
8053     void operator delete(void*, const std::nothrow_t&) throw();
8054     void operator delete[](void*, const std::nothrow_t&) throw();
8055    
8056    
8057     inline void* operator new(std::size_t, void* __p) throw() { return __p; }
8058     inline void* operator new[](std::size_t, void* __p) throw() { return __p; }
8059    
8060    
8061     inline void operator delete (void*, void*) throw() { }
8062     inline void operator delete[](void*, void*) throw() { }
8063    
8064     }
8065     # 70 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
8066    
8067     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_pair.h" 1 3
8068     # 64 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_pair.h" 3
8069     namespace std
8070     {
8071    
8072     template<class _T1, class _T2>
8073     struct pair
8074     {
8075     typedef _T1 first_type;
8076     typedef _T2 second_type;
8077    
8078     _T1 first;
8079     _T2 second;
8080    
8081    
8082    
8083    
8084    
8085     pair()
8086     : first(), second() { }
8087    
8088    
8089     pair(const _T1& __a, const _T2& __b)
8090     : first(__a), second(__b) { }
8091    
8092    
8093     template<class _U1, class _U2>
8094     pair(const pair<_U1, _U2>& __p)
8095     : first(__p.first), second(__p.second) { }
8096     };
8097    
8098    
8099     template<class _T1, class _T2>
8100     inline bool
8101     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8102     { return __x.first == __y.first && __x.second == __y.second; }
8103    
8104    
8105     template<class _T1, class _T2>
8106     inline bool
8107     operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8108     { return __x.first < __y.first
8109     || (!(__y.first < __x.first) && __x.second < __y.second); }
8110    
8111    
8112     template<class _T1, class _T2>
8113     inline bool
8114     operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8115     { return !(__x == __y); }
8116    
8117    
8118     template<class _T1, class _T2>
8119     inline bool
8120     operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8121     { return __y < __x; }
8122    
8123    
8124     template<class _T1, class _T2>
8125     inline bool
8126     operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8127     { return !(__y < __x); }
8128    
8129    
8130     template<class _T1, class _T2>
8131     inline bool
8132     operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8133     { return !(__x < __y); }
8134     # 142 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_pair.h" 3
8135     template<class _T1, class _T2>
8136     inline pair<_T1, _T2>
8137     make_pair(_T1 __x, _T2 __y) { return pair<_T1, _T2>(__x, __y); }
8138     }
8139     # 72 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
8140     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h" 1 3
8141     # 52 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h" 3
8142    
8143     # 53 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h" 3
8144     # 90 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h" 3
8145     struct __true_type {};
8146     struct __false_type {};
8147    
8148     template <class _Tp>
8149     struct __type_traits
8150     {
8151     typedef __true_type this_dummy_member_must_be_first;
8152     # 114 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h" 3
8153     typedef __false_type has_trivial_default_constructor;
8154     typedef __false_type has_trivial_copy_constructor;
8155     typedef __false_type has_trivial_assignment_operator;
8156     typedef __false_type has_trivial_destructor;
8157     typedef __false_type is_POD_type;
8158     };
8159    
8160    
8161    
8162    
8163     template<>
8164     struct __type_traits<bool>
8165     {
8166     typedef __true_type has_trivial_default_constructor;
8167     typedef __true_type has_trivial_copy_constructor;
8168     typedef __true_type has_trivial_assignment_operator;
8169     typedef __true_type has_trivial_destructor;
8170     typedef __true_type is_POD_type;
8171     };
8172    
8173     template<>
8174     struct __type_traits<char>
8175     {
8176     typedef __true_type has_trivial_default_constructor;
8177     typedef __true_type has_trivial_copy_constructor;
8178     typedef __true_type has_trivial_assignment_operator;
8179     typedef __true_type has_trivial_destructor;
8180     typedef __true_type is_POD_type;
8181     };
8182    
8183     template<>
8184     struct __type_traits<signed char>
8185     {
8186     typedef __true_type has_trivial_default_constructor;
8187     typedef __true_type has_trivial_copy_constructor;
8188     typedef __true_type has_trivial_assignment_operator;
8189     typedef __true_type has_trivial_destructor;
8190     typedef __true_type is_POD_type;
8191     };
8192    
8193     template<>
8194     struct __type_traits<unsigned char>
8195     {
8196     typedef __true_type has_trivial_default_constructor;
8197     typedef __true_type has_trivial_copy_constructor;
8198     typedef __true_type has_trivial_assignment_operator;
8199     typedef __true_type has_trivial_destructor;
8200     typedef __true_type is_POD_type;
8201     };
8202    
8203     template<>
8204     struct __type_traits<wchar_t>
8205     {
8206     typedef __true_type has_trivial_default_constructor;
8207     typedef __true_type has_trivial_copy_constructor;
8208     typedef __true_type has_trivial_assignment_operator;
8209     typedef __true_type has_trivial_destructor;
8210     typedef __true_type is_POD_type;
8211     };
8212    
8213     template<>
8214     struct __type_traits<short>
8215     {
8216     typedef __true_type has_trivial_default_constructor;
8217     typedef __true_type has_trivial_copy_constructor;
8218     typedef __true_type has_trivial_assignment_operator;
8219     typedef __true_type has_trivial_destructor;
8220     typedef __true_type is_POD_type;
8221     };
8222    
8223     template<>
8224     struct __type_traits<unsigned short>
8225     {
8226     typedef __true_type has_trivial_default_constructor;
8227     typedef __true_type has_trivial_copy_constructor;
8228     typedef __true_type has_trivial_assignment_operator;
8229     typedef __true_type has_trivial_destructor;
8230     typedef __true_type is_POD_type;
8231     };
8232    
8233     template<>
8234     struct __type_traits<int>
8235     {
8236     typedef __true_type has_trivial_default_constructor;
8237     typedef __true_type has_trivial_copy_constructor;
8238     typedef __true_type has_trivial_assignment_operator;
8239     typedef __true_type has_trivial_destructor;
8240     typedef __true_type is_POD_type;
8241     };
8242    
8243     template<>
8244     struct __type_traits<unsigned int>
8245     {
8246     typedef __true_type has_trivial_default_constructor;
8247     typedef __true_type has_trivial_copy_constructor;
8248     typedef __true_type has_trivial_assignment_operator;
8249     typedef __true_type has_trivial_destructor;
8250     typedef __true_type is_POD_type;
8251     };
8252    
8253     template<>
8254     struct __type_traits<long>
8255     {
8256     typedef __true_type has_trivial_default_constructor;
8257     typedef __true_type has_trivial_copy_constructor;
8258     typedef __true_type has_trivial_assignment_operator;
8259     typedef __true_type has_trivial_destructor;
8260     typedef __true_type is_POD_type;
8261     };
8262    
8263     template<>
8264     struct __type_traits<unsigned long>
8265     {
8266     typedef __true_type has_trivial_default_constructor;
8267     typedef __true_type has_trivial_copy_constructor;
8268     typedef __true_type has_trivial_assignment_operator;
8269     typedef __true_type has_trivial_destructor;
8270     typedef __true_type is_POD_type;
8271     };
8272    
8273     template<>
8274     struct __type_traits<long long>
8275     {
8276     typedef __true_type has_trivial_default_constructor;
8277     typedef __true_type has_trivial_copy_constructor;
8278     typedef __true_type has_trivial_assignment_operator;
8279     typedef __true_type has_trivial_destructor;
8280     typedef __true_type is_POD_type;
8281     };
8282    
8283     template<>
8284     struct __type_traits<unsigned long long>
8285     {
8286     typedef __true_type has_trivial_default_constructor;
8287     typedef __true_type has_trivial_copy_constructor;
8288     typedef __true_type has_trivial_assignment_operator;
8289     typedef __true_type has_trivial_destructor;
8290     typedef __true_type is_POD_type;
8291     };
8292    
8293     template<>
8294     struct __type_traits<float>
8295     {
8296     typedef __true_type has_trivial_default_constructor;
8297     typedef __true_type has_trivial_copy_constructor;
8298     typedef __true_type has_trivial_assignment_operator;
8299     typedef __true_type has_trivial_destructor;
8300     typedef __true_type is_POD_type;
8301     };
8302    
8303     template<>
8304     struct __type_traits<double>
8305     {
8306     typedef __true_type has_trivial_default_constructor;
8307     typedef __true_type has_trivial_copy_constructor;
8308     typedef __true_type has_trivial_assignment_operator;
8309     typedef __true_type has_trivial_destructor;
8310     typedef __true_type is_POD_type;
8311     };
8312    
8313     template<>
8314     struct __type_traits<long double>
8315     {
8316     typedef __true_type has_trivial_default_constructor;
8317     typedef __true_type has_trivial_copy_constructor;
8318     typedef __true_type has_trivial_assignment_operator;
8319     typedef __true_type has_trivial_destructor;
8320     typedef __true_type is_POD_type;
8321     };
8322    
8323     template <class _Tp>
8324     struct __type_traits<_Tp*>
8325     {
8326     typedef __true_type has_trivial_default_constructor;
8327     typedef __true_type has_trivial_copy_constructor;
8328     typedef __true_type has_trivial_assignment_operator;
8329     typedef __true_type has_trivial_destructor;
8330     typedef __true_type is_POD_type;
8331     };
8332    
8333    
8334    
8335    
8336     template <class _Tp>
8337     struct _Is_integer
8338     {
8339     typedef __false_type _Integral;
8340     };
8341    
8342     template<>
8343     struct _Is_integer<bool>
8344     {
8345     typedef __true_type _Integral;
8346     };
8347    
8348     template<>
8349     struct _Is_integer<char>
8350     {
8351     typedef __true_type _Integral;
8352     };
8353    
8354     template<>
8355     struct _Is_integer<signed char>
8356     {
8357     typedef __true_type _Integral;
8358     };
8359    
8360     template<>
8361     struct _Is_integer<unsigned char>
8362     {
8363     typedef __true_type _Integral;
8364     };
8365    
8366     template<>
8367     struct _Is_integer<wchar_t>
8368     {
8369     typedef __true_type _Integral;
8370     };
8371    
8372     template<>
8373     struct _Is_integer<short>
8374     {
8375     typedef __true_type _Integral;
8376     };
8377    
8378     template<>
8379     struct _Is_integer<unsigned short>
8380     {
8381     typedef __true_type _Integral;
8382     };
8383    
8384     template<>
8385     struct _Is_integer<int>
8386     {
8387     typedef __true_type _Integral;
8388     };
8389    
8390     template<>
8391     struct _Is_integer<unsigned int>
8392     {
8393     typedef __true_type _Integral;
8394     };
8395    
8396     template<>
8397     struct _Is_integer<long>
8398     {
8399     typedef __true_type _Integral;
8400     };
8401    
8402     template<>
8403     struct _Is_integer<unsigned long>
8404     {
8405     typedef __true_type _Integral;
8406     };
8407    
8408     template<>
8409     struct _Is_integer<long long>
8410     {
8411     typedef __true_type _Integral;
8412     };
8413    
8414     template<>
8415     struct _Is_integer<unsigned long long>
8416     {
8417     typedef __true_type _Integral;
8418     };
8419    
8420     template<typename _Tp>
8421     struct _Is_normal_iterator
8422     {
8423     typedef __false_type _Normal;
8424     };
8425    
8426    
8427     namespace __gnu_cxx
8428     {
8429     template<typename _Iterator, typename _Container>
8430     class __normal_iterator;
8431     }
8432    
8433     template<typename _Iterator, typename _Container>
8434     struct _Is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
8435     _Container> >
8436     {
8437     typedef __true_type _Normal;
8438     };
8439     # 73 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
8440     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h" 1 3
8441     # 67 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h" 3
8442    
8443     # 68 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h" 3
8444    
8445     namespace std
8446     {
8447     # 80 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h" 3
8448     struct input_iterator_tag {};
8449    
8450     struct output_iterator_tag {};
8451    
8452     struct forward_iterator_tag : public input_iterator_tag {};
8453    
8454    
8455     struct bidirectional_iterator_tag : public forward_iterator_tag {};
8456    
8457    
8458     struct random_access_iterator_tag : public bidirectional_iterator_tag {};
8459     # 104 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h" 3
8460     template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
8461     typename _Pointer = _Tp*, typename _Reference = _Tp&>
8462     struct iterator
8463     {
8464    
8465     typedef _Category iterator_category;
8466    
8467     typedef _Tp value_type;
8468    
8469     typedef _Distance difference_type;
8470    
8471     typedef _Pointer pointer;
8472    
8473     typedef _Reference reference;
8474     };
8475    
8476    
8477    
8478    
8479    
8480    
8481    
8482     template<typename _Iterator>
8483     struct iterator_traits
8484     {
8485     typedef typename _Iterator::iterator_category iterator_category;
8486     typedef typename _Iterator::value_type value_type;
8487     typedef typename _Iterator::difference_type difference_type;
8488     typedef typename _Iterator::pointer pointer;
8489     typedef typename _Iterator::reference reference;
8490     };
8491    
8492     template<typename _Tp>
8493     struct iterator_traits<_Tp*>
8494     {
8495     typedef random_access_iterator_tag iterator_category;
8496     typedef _Tp value_type;
8497     typedef ptrdiff_t difference_type;
8498     typedef _Tp* pointer;
8499     typedef _Tp& reference;
8500     };
8501    
8502     template<typename _Tp>
8503     struct iterator_traits<const _Tp*>
8504     {
8505     typedef random_access_iterator_tag iterator_category;
8506     typedef _Tp value_type;
8507     typedef ptrdiff_t difference_type;
8508     typedef const _Tp* pointer;
8509     typedef const _Tp& reference;
8510     };
8511    
8512    
8513    
8514    
8515    
8516    
8517    
8518     template<typename _Iter>
8519     inline typename iterator_traits<_Iter>::iterator_category
8520     __iterator_category(const _Iter&)
8521     { return typename iterator_traits<_Iter>::iterator_category(); }
8522    
8523     }
8524     # 74 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
8525     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h" 1 3
8526     # 67 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h" 3
8527    
8528     # 68 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h" 3
8529     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/concept_check.h" 1 3
8530     # 38 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/concept_check.h" 3
8531    
8532     # 39 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/concept_check.h" 3
8533     # 69 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h" 2 3
8534    
8535     namespace std
8536     {
8537     template<typename _InputIterator>
8538     inline typename iterator_traits<_InputIterator>::difference_type
8539     __distance(_InputIterator __first, _InputIterator __last,
8540     input_iterator_tag)
8541     {
8542    
8543    
8544    
8545     typename iterator_traits<_InputIterator>::difference_type __n = 0;
8546     while (__first != __last)
8547     {
8548     ++__first;
8549     ++__n;
8550     }
8551     return __n;
8552     }
8553    
8554     template<typename _RandomAccessIterator>
8555     inline typename iterator_traits<_RandomAccessIterator>::difference_type
8556     __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
8557     random_access_iterator_tag)
8558     {
8559    
8560    
8561    
8562     return __last - __first;
8563     }
8564     # 112 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h" 3
8565     template<typename _InputIterator>
8566     inline typename iterator_traits<_InputIterator>::difference_type
8567     distance(_InputIterator __first, _InputIterator __last)
8568     {
8569    
8570     return std::__distance(__first, __last,
8571     std::__iterator_category(__first));
8572     }
8573    
8574     template<typename _InputIterator, typename _Distance>
8575     inline void
8576     __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
8577     {
8578    
8579    
8580     while (__n--)
8581     ++__i;
8582     }
8583    
8584     template<typename _BidirectionalIterator, typename _Distance>
8585     inline void
8586     __advance(_BidirectionalIterator& __i, _Distance __n,
8587     bidirectional_iterator_tag)
8588     {
8589    
8590    
8591    
8592     if (__n > 0)
8593     while (__n--)
8594     ++__i;
8595     else
8596     while (__n++)
8597     --__i;
8598     }
8599    
8600     template<typename _RandomAccessIterator, typename _Distance>
8601     inline void
8602     __advance(_RandomAccessIterator& __i, _Distance __n,
8603     random_access_iterator_tag)
8604     {
8605    
8606    
8607    
8608     __i += __n;
8609     }
8610     # 170 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h" 3
8611     template<typename _InputIterator, typename _Distance>
8612     inline void
8613     advance(_InputIterator& __i, _Distance __n)
8614     {
8615    
8616     std::__advance(__i, __n, std::__iterator_category(__i));
8617     }
8618     }
8619     # 75 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
8620     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 1 3
8621     # 68 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8622     namespace std
8623     {
8624     # 89 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8625     template<typename _Iterator>
8626     class reverse_iterator
8627     : public iterator<typename iterator_traits<_Iterator>::iterator_category,
8628     typename iterator_traits<_Iterator>::value_type,
8629     typename iterator_traits<_Iterator>::difference_type,
8630     typename iterator_traits<_Iterator>::pointer,
8631     typename iterator_traits<_Iterator>::reference>
8632     {
8633     protected:
8634     _Iterator current;
8635    
8636     public:
8637     typedef _Iterator iterator_type;
8638     typedef typename iterator_traits<_Iterator>::difference_type
8639     difference_type;
8640     typedef typename iterator_traits<_Iterator>::reference reference;
8641     typedef typename iterator_traits<_Iterator>::pointer pointer;
8642    
8643     public:
8644    
8645    
8646    
8647    
8648    
8649    
8650     reverse_iterator() : current() { }
8651    
8652    
8653    
8654    
8655     explicit
8656     reverse_iterator(iterator_type __x) : current(__x) { }
8657    
8658    
8659    
8660    
8661     reverse_iterator(const reverse_iterator& __x)
8662     : current(__x.current) { }
8663    
8664    
8665    
8666    
8667    
8668     template<typename _Iter>
8669     reverse_iterator(const reverse_iterator<_Iter>& __x)
8670     : current(__x.base()) { }
8671    
8672    
8673    
8674    
8675     iterator_type
8676     base() const
8677     { return current; }
8678    
8679    
8680    
8681    
8682    
8683    
8684     reference
8685     operator*() const
8686     {
8687     _Iterator __tmp = current;
8688     return *--__tmp;
8689     }
8690    
8691    
8692    
8693    
8694    
8695    
8696     pointer
8697     operator->() const
8698     { return &(operator*()); }
8699    
8700    
8701    
8702    
8703    
8704    
8705     reverse_iterator&
8706     operator++()
8707     {
8708     --current;
8709     return *this;
8710     }
8711    
8712    
8713    
8714    
8715    
8716    
8717     reverse_iterator
8718     operator++(int)
8719     {
8720     reverse_iterator __tmp = *this;
8721     --current;
8722     return __tmp;
8723     }
8724    
8725    
8726    
8727    
8728    
8729    
8730     reverse_iterator&
8731     operator--()
8732     {
8733     ++current;
8734     return *this;
8735     }
8736    
8737    
8738    
8739    
8740    
8741    
8742     reverse_iterator operator--(int)
8743     {
8744     reverse_iterator __tmp = *this;
8745     ++current;
8746     return __tmp;
8747     }
8748    
8749    
8750    
8751    
8752    
8753    
8754     reverse_iterator
8755     operator+(difference_type __n) const
8756     { return reverse_iterator(current - __n); }
8757    
8758    
8759    
8760    
8761    
8762    
8763     reverse_iterator&
8764     operator+=(difference_type __n)
8765     {
8766     current -= __n;
8767     return *this;
8768     }
8769    
8770    
8771    
8772    
8773    
8774    
8775     reverse_iterator
8776     operator-(difference_type __n) const
8777     { return reverse_iterator(current + __n); }
8778    
8779    
8780    
8781    
8782    
8783    
8784     reverse_iterator&
8785     operator-=(difference_type __n)
8786     {
8787     current += __n;
8788     return *this;
8789     }
8790    
8791    
8792    
8793    
8794    
8795    
8796     reference
8797     operator[](difference_type __n) const
8798     { return *(*this + __n); }
8799     };
8800     # 275 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8801     template<typename _Iterator>
8802     inline bool
8803     operator==(const reverse_iterator<_Iterator>& __x,
8804     const reverse_iterator<_Iterator>& __y)
8805     { return __x.base() == __y.base(); }
8806    
8807     template<typename _Iterator>
8808     inline bool
8809     operator<(const reverse_iterator<_Iterator>& __x,
8810     const reverse_iterator<_Iterator>& __y)
8811     { return __y.base() < __x.base(); }
8812    
8813     template<typename _Iterator>
8814     inline bool
8815     operator!=(const reverse_iterator<_Iterator>& __x,
8816     const reverse_iterator<_Iterator>& __y)
8817     { return !(__x == __y); }
8818    
8819     template<typename _Iterator>
8820     inline bool
8821     operator>(const reverse_iterator<_Iterator>& __x,
8822     const reverse_iterator<_Iterator>& __y)
8823     { return __y < __x; }
8824    
8825     template<typename _Iterator>
8826     inline bool
8827     operator<=(const reverse_iterator<_Iterator>& __x,
8828     const reverse_iterator<_Iterator>& __y)
8829     { return !(__y < __x); }
8830    
8831     template<typename _Iterator>
8832     inline bool
8833     operator>=(const reverse_iterator<_Iterator>& __x,
8834     const reverse_iterator<_Iterator>& __y)
8835     { return !(__x < __y); }
8836    
8837     template<typename _Iterator>
8838     inline typename reverse_iterator<_Iterator>::difference_type
8839     operator-(const reverse_iterator<_Iterator>& __x,
8840     const reverse_iterator<_Iterator>& __y)
8841     { return __y.base() - __x.base(); }
8842    
8843     template<typename _Iterator>
8844     inline reverse_iterator<_Iterator>
8845     operator+(typename reverse_iterator<_Iterator>::difference_type __n,
8846     const reverse_iterator<_Iterator>& __x)
8847     { return reverse_iterator<_Iterator>(__x.base() - __n); }
8848     # 335 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8849     template<typename _Container>
8850     class back_insert_iterator
8851     : public iterator<output_iterator_tag, void, void, void, void>
8852     {
8853     protected:
8854     _Container* container;
8855    
8856     public:
8857    
8858     typedef _Container container_type;
8859    
8860    
8861     explicit
8862     back_insert_iterator(_Container& __x) : container(&__x) { }
8863     # 361 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8864     back_insert_iterator&
8865     operator=(typename _Container::const_reference __value)
8866     {
8867     container->push_back(__value);
8868     return *this;
8869     }
8870    
8871    
8872     back_insert_iterator&
8873     operator*()
8874     { return *this; }
8875    
8876    
8877     back_insert_iterator&
8878     operator++()
8879     { return *this; }
8880    
8881    
8882     back_insert_iterator
8883     operator++(int)
8884     { return *this; }
8885     };
8886     # 395 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8887     template<typename _Container>
8888     inline back_insert_iterator<_Container>
8889     back_inserter(_Container& __x)
8890     { return back_insert_iterator<_Container>(__x); }
8891     # 410 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8892     template<typename _Container>
8893     class front_insert_iterator
8894     : public iterator<output_iterator_tag, void, void, void, void>
8895     {
8896     protected:
8897     _Container* container;
8898    
8899     public:
8900    
8901     typedef _Container container_type;
8902    
8903    
8904     explicit front_insert_iterator(_Container& __x) : container(&__x) { }
8905     # 435 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8906     front_insert_iterator&
8907     operator=(typename _Container::const_reference __value)
8908     {
8909     container->push_front(__value);
8910     return *this;
8911     }
8912    
8913    
8914     front_insert_iterator&
8915     operator*()
8916     { return *this; }
8917    
8918    
8919     front_insert_iterator&
8920     operator++()
8921     { return *this; }
8922    
8923    
8924     front_insert_iterator
8925     operator++(int)
8926     { return *this; }
8927     };
8928     # 469 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8929     template<typename _Container>
8930     inline front_insert_iterator<_Container>
8931     front_inserter(_Container& __x)
8932     { return front_insert_iterator<_Container>(__x); }
8933     # 488 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8934     template<typename _Container>
8935     class insert_iterator
8936     : public iterator<output_iterator_tag, void, void, void, void>
8937     {
8938     protected:
8939     _Container* container;
8940     typename _Container::iterator iter;
8941    
8942     public:
8943    
8944     typedef _Container container_type;
8945    
8946    
8947    
8948    
8949    
8950     insert_iterator(_Container& __x, typename _Container::iterator __i)
8951     : container(&__x), iter(__i) {}
8952     # 530 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8953     insert_iterator&
8954     operator=(const typename _Container::const_reference __value)
8955     {
8956     iter = container->insert(iter, __value);
8957     ++iter;
8958     return *this;
8959     }
8960    
8961    
8962     insert_iterator&
8963     operator*()
8964     { return *this; }
8965    
8966    
8967     insert_iterator&
8968     operator++()
8969     { return *this; }
8970    
8971    
8972     insert_iterator&
8973     operator++(int)
8974     { return *this; }
8975     };
8976     # 565 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8977     template<typename _Container, typename _Iterator>
8978     inline insert_iterator<_Container>
8979     inserter(_Container& __x, _Iterator __i)
8980     {
8981     return insert_iterator<_Container>(__x,
8982     typename _Container::iterator(__i));
8983     }
8984     }
8985    
8986     namespace __gnu_cxx
8987     {
8988    
8989    
8990    
8991    
8992    
8993    
8994    
8995     using std::iterator_traits;
8996     using std::iterator;
8997     template<typename _Iterator, typename _Container>
8998     class __normal_iterator
8999     {
9000     protected:
9001     _Iterator _M_current;
9002    
9003     public:
9004     typedef typename iterator_traits<_Iterator>::iterator_category
9005     iterator_category;
9006     typedef typename iterator_traits<_Iterator>::value_type value_type;
9007     typedef typename iterator_traits<_Iterator>::difference_type
9008     difference_type;
9009     typedef typename iterator_traits<_Iterator>::reference reference;
9010     typedef typename iterator_traits<_Iterator>::pointer pointer;
9011    
9012     __normal_iterator() : _M_current(_Iterator()) { }
9013    
9014     explicit
9015     __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
9016    
9017    
9018     template<typename _Iter>
9019     inline __normal_iterator(const __normal_iterator<_Iter,
9020     _Container>& __i)
9021     : _M_current(__i.base()) { }
9022    
9023    
9024     reference
9025     operator*() const
9026     { return *_M_current; }
9027    
9028     pointer
9029     operator->() const
9030     { return _M_current; }
9031    
9032     __normal_iterator&
9033     operator++()
9034     {
9035     ++_M_current;
9036     return *this;
9037     }
9038    
9039     __normal_iterator
9040     operator++(int)
9041     { return __normal_iterator(_M_current++); }
9042    
9043    
9044     __normal_iterator&
9045     operator--()
9046     {
9047     --_M_current;
9048     return *this;
9049     }
9050    
9051     __normal_iterator
9052     operator--(int)
9053     { return __normal_iterator(_M_current--); }
9054    
9055    
9056     reference
9057     operator[](const difference_type& __n) const
9058     { return _M_current[__n]; }
9059    
9060     __normal_iterator&
9061     operator+=(const difference_type& __n)
9062     { _M_current += __n; return *this; }
9063    
9064     __normal_iterator
9065     operator+(const difference_type& __n) const
9066     { return __normal_iterator(_M_current + __n); }
9067    
9068     __normal_iterator&
9069     operator-=(const difference_type& __n)
9070     { _M_current -= __n; return *this; }
9071    
9072     __normal_iterator
9073     operator-(const difference_type& __n) const
9074     { return __normal_iterator(_M_current - __n); }
9075    
9076     const _Iterator&
9077     base() const
9078     { return _M_current; }
9079     };
9080     # 678 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
9081     template<typename _IteratorL, typename _IteratorR, typename _Container>
9082     inline bool
9083     operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
9084     const __normal_iterator<_IteratorR, _Container>& __rhs)
9085     { return __lhs.base() == __rhs.base(); }
9086    
9087     template<typename _Iterator, typename _Container>
9088     inline bool
9089     operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
9090     const __normal_iterator<_Iterator, _Container>& __rhs)
9091     { return __lhs.base() == __rhs.base(); }
9092    
9093     template<typename _IteratorL, typename _IteratorR, typename _Container>
9094     inline bool
9095     operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9096     const __normal_iterator<_IteratorR, _Container>& __rhs)
9097     { return __lhs.base() != __rhs.base(); }
9098    
9099     template<typename _Iterator, typename _Container>
9100     inline bool
9101     operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
9102     const __normal_iterator<_Iterator, _Container>& __rhs)
9103     { return __lhs.base() != __rhs.base(); }
9104    
9105    
9106     template<typename _IteratorL, typename _IteratorR, typename _Container>
9107     inline bool
9108     operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
9109     const __normal_iterator<_IteratorR, _Container>& __rhs)
9110     { return __lhs.base() < __rhs.base(); }
9111    
9112     template<typename _Iterator, typename _Container>
9113     inline bool
9114     operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
9115     const __normal_iterator<_Iterator, _Container>& __rhs)
9116     { return __lhs.base() < __rhs.base(); }
9117    
9118     template<typename _IteratorL, typename _IteratorR, typename _Container>
9119     inline bool
9120     operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
9121     const __normal_iterator<_IteratorR, _Container>& __rhs)
9122     { return __lhs.base() > __rhs.base(); }
9123    
9124     template<typename _Iterator, typename _Container>
9125     inline bool
9126     operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
9127     const __normal_iterator<_Iterator, _Container>& __rhs)
9128     { return __lhs.base() > __rhs.base(); }
9129    
9130     template<typename _IteratorL, typename _IteratorR, typename _Container>
9131     inline bool
9132     operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9133     const __normal_iterator<_IteratorR, _Container>& __rhs)
9134     { return __lhs.base() <= __rhs.base(); }
9135    
9136     template<typename _Iterator, typename _Container>
9137     inline bool
9138     operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
9139     const __normal_iterator<_Iterator, _Container>& __rhs)
9140     { return __lhs.base() <= __rhs.base(); }
9141    
9142     template<typename _IteratorL, typename _IteratorR, typename _Container>
9143     inline bool
9144     operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9145     const __normal_iterator<_IteratorR, _Container>& __rhs)
9146     { return __lhs.base() >= __rhs.base(); }
9147    
9148     template<typename _Iterator, typename _Container>
9149     inline bool
9150     operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
9151     const __normal_iterator<_Iterator, _Container>& __rhs)
9152     { return __lhs.base() >= __rhs.base(); }
9153    
9154    
9155    
9156    
9157    
9158     template<typename _IteratorL, typename _IteratorR, typename _Container>
9159     inline typename __normal_iterator<_IteratorL, _Container>::difference_type
9160     operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
9161     const __normal_iterator<_IteratorR, _Container>& __rhs)
9162     { return __lhs.base() - __rhs.base(); }
9163    
9164     template<typename _Iterator, typename _Container>
9165     inline __normal_iterator<_Iterator, _Container>
9166     operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
9167     __n, const __normal_iterator<_Iterator, _Container>& __i)
9168     { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
9169     }
9170     # 76 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
9171    
9172     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/debug/debug.h" 1 3
9173     # 272 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/debug/debug.h" 3
9174     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cassert" 1 3
9175     # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cassert" 3
9176    
9177     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cassert" 3
9178    
9179     # 1 "/usr/include/assert.h" 1 3 4
9180     # 65 "/usr/include/assert.h" 3 4
9181     extern "C" {
9182    
9183    
9184     extern void __assert_fail (__const char *__assertion, __const char *__file,
9185     unsigned int __line, __const char *__function)
9186     throw () __attribute__ ((__noreturn__));
9187    
9188    
9189     extern void __assert_perror_fail (int __errnum, __const char *__file,
9190     unsigned int __line,
9191     __const char *__function)
9192     throw () __attribute__ ((__noreturn__));
9193    
9194    
9195    
9196    
9197     extern void __assert (const char *__assertion, const char *__file, int __line)
9198     throw () __attribute__ ((__noreturn__));
9199    
9200    
9201     }
9202     # 49 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cassert" 2 3
9203     # 273 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/debug/debug.h" 2 3
9204    
9205     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
9206     # 275 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/debug/debug.h" 2 3
9207    
9208    
9209    
9210     namespace __gnu_debug
9211     {
9212     template<typename _Iterator, typename _Sequence>
9213     class _Safe_iterator;
9214    
9215    
9216     inline bool
9217     __check_singular_aux(const void*) { return false; }
9218    
9219    
9220    
9221     template<typename _Iterator>
9222     inline bool
9223     __check_singular(_Iterator& __x)
9224     { return __gnu_debug::__check_singular_aux(&__x); }
9225    
9226    
9227     template<typename _Tp>
9228     inline bool
9229     __check_singular(const _Tp* __ptr)
9230     { return __ptr == 0; }
9231    
9232    
9233     template<typename _Iterator, typename _Sequence>
9234     inline bool
9235     __check_singular(const _Safe_iterator<_Iterator, _Sequence>& __x)
9236     { return __x._M_singular(); }
9237    
9238    
9239    
9240     template<typename _Iterator>
9241     inline bool
9242     __check_dereferenceable(_Iterator&)
9243     { return true; }
9244    
9245    
9246     template<typename _Tp>
9247     inline bool
9248     __check_dereferenceable(const _Tp* __ptr)
9249     { return __ptr; }
9250    
9251    
9252     template<typename _Iterator, typename _Sequence>
9253     inline bool
9254     __check_dereferenceable(const _Safe_iterator<_Iterator, _Sequence>& __x)
9255     { return __x._M_dereferenceable(); }
9256    
9257    
9258    
9259    
9260     template<typename _RandomAccessIterator>
9261     inline bool
9262     __valid_range_aux2(const _RandomAccessIterator& __first,
9263     const _RandomAccessIterator& __last,
9264     std::random_access_iterator_tag)
9265     { return __last - __first >= 0; }
9266    
9267    
9268    
9269    
9270    
9271     template<typename _InputIterator>
9272     inline bool
9273     __valid_range_aux2(const _InputIterator&, const _InputIterator&,
9274     std::input_iterator_tag)
9275     { return true; }
9276    
9277    
9278    
9279    
9280    
9281     template<typename _Integral>
9282     inline bool
9283     __valid_range_aux(const _Integral&, const _Integral&, __true_type)
9284     { return true; }
9285    
9286    
9287    
9288    
9289     template<typename _InputIterator>
9290     inline bool
9291     __valid_range_aux(const _InputIterator& __first,
9292     const _InputIterator& __last, __false_type)
9293     {
9294     typedef typename std::iterator_traits<_InputIterator>::iterator_category
9295     _Category;
9296     return __gnu_debug::__valid_range_aux2(__first, __last, _Category());
9297     }
9298    
9299    
9300    
9301    
9302    
9303    
9304     template<typename _InputIterator>
9305     inline bool
9306     __valid_range(const _InputIterator& __first, const _InputIterator& __last)
9307     {
9308     typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
9309     return __gnu_debug::__valid_range_aux(__first, __last, _Integral());
9310     }
9311    
9312    
9313     template<typename _Iterator, typename _Sequence>
9314     inline bool
9315     __valid_range(const _Safe_iterator<_Iterator, _Sequence>& __first,
9316     const _Safe_iterator<_Iterator, _Sequence>& __last)
9317     { return __first._M_valid_range(__last); }
9318    
9319    
9320    
9321    
9322    
9323     template<typename _InputIterator>
9324     inline _InputIterator
9325     __check_valid_range(const _InputIterator& __first,
9326     const _InputIterator& __last)
9327     {
9328     ;
9329     return __first;
9330     }
9331    
9332    
9333     template<typename _CharT, typename _Integer>
9334     inline const _CharT*
9335     __check_string(const _CharT* __s, const _Integer& __n)
9336     {
9337    
9338    
9339    
9340     return __s;
9341     }
9342    
9343    
9344     template<typename _CharT>
9345     inline const _CharT*
9346     __check_string(const _CharT* __s)
9347     {
9348    
9349    
9350    
9351     return __s;
9352     }
9353    
9354    
9355    
9356     template<typename _InputIterator>
9357     inline bool
9358     __check_sorted_aux(const _InputIterator&, const _InputIterator&,
9359     std::input_iterator_tag)
9360     { return true; }
9361    
9362    
9363    
9364     template<typename _ForwardIterator>
9365     inline bool
9366     __check_sorted_aux(_ForwardIterator __first, _ForwardIterator __last,
9367     std::forward_iterator_tag)
9368     {
9369     if (__first == __last)
9370     return true;
9371    
9372     _ForwardIterator __next = __first;
9373     for (++__next; __next != __last; __first = __next, ++__next) {
9374     if (*__next < *__first)
9375     return false;
9376     }
9377    
9378     return true;
9379     }
9380    
9381    
9382    
9383     template<typename _InputIterator, typename _Predicate>
9384     inline bool
9385     __check_sorted_aux(const _InputIterator&, const _InputIterator&,
9386     _Predicate, std::input_iterator_tag)
9387     { return true; }
9388    
9389    
9390    
9391     template<typename _ForwardIterator, typename _Predicate>
9392     inline bool
9393     __check_sorted_aux(_ForwardIterator __first, _ForwardIterator __last,
9394     _Predicate __pred, std::forward_iterator_tag)
9395     {
9396     if (__first == __last)
9397     return true;
9398    
9399     _ForwardIterator __next = __first;
9400     for (++__next; __next != __last; __first = __next, ++__next) {
9401     if (__pred(*__next, *__first))
9402     return false;
9403     }
9404    
9405     return true;
9406     }
9407    
9408    
9409     template<typename _InputIterator>
9410     inline bool
9411     __check_sorted(const _InputIterator& __first, const _InputIterator& __last)
9412     {
9413     typedef typename std::iterator_traits<_InputIterator>::iterator_category
9414     _Category;
9415     return __gnu_debug::__check_sorted_aux(__first, __last, _Category());
9416     }
9417    
9418     template<typename _InputIterator, typename _Predicate>
9419     inline bool
9420     __check_sorted(const _InputIterator& __first, const _InputIterator& __last,
9421     _Predicate __pred)
9422     {
9423     typedef typename std::iterator_traits<_InputIterator>::iterator_category
9424     _Category;
9425     return __gnu_debug::__check_sorted_aux(__first, __last, __pred,
9426     _Category());
9427     }
9428    
9429    
9430    
9431    
9432     template<typename _ForwardIterator, typename _Tp>
9433     inline bool
9434     __check_partitioned(_ForwardIterator __first, _ForwardIterator __last,
9435     const _Tp& __value)
9436     {
9437     while (__first != __last && *__first < __value)
9438     ++__first;
9439     while (__first != __last && !(*__first < __value))
9440     ++__first;
9441     return __first == __last;
9442     }
9443    
9444    
9445     template<typename _ForwardIterator, typename _Tp, typename _Pred>
9446     inline bool
9447     __check_partitioned(_ForwardIterator __first, _ForwardIterator __last,
9448     const _Tp& __value, _Pred __pred)
9449     {
9450     while (__first != __last && __pred(*__first, __value))
9451     ++__first;
9452     while (__first != __last && !__pred(*__first, __value))
9453     ++__first;
9454     return __first == __last;
9455     }
9456     }
9457     # 78 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
9458    
9459     namespace std
9460     {
9461     # 90 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9462     template<typename _ForwardIterator1, typename _ForwardIterator2>
9463     inline void
9464     iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
9465     {
9466     typedef typename iterator_traits<_ForwardIterator1>::value_type
9467     _ValueType1;
9468     typedef typename iterator_traits<_ForwardIterator2>::value_type
9469     _ValueType2;
9470    
9471    
9472    
9473    
9474    
9475    
9476    
9477    
9478    
9479    
9480    
9481     const _ValueType1 __tmp = *__a;
9482     *__a = *__b;
9483     *__b = __tmp;
9484     }
9485     # 123 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9486     template<typename _Tp>
9487     inline void
9488     swap(_Tp& __a, _Tp& __b)
9489     {
9490    
9491    
9492    
9493     const _Tp __tmp = __a;
9494     __a = __b;
9495     __b = __tmp;
9496     }
9497     # 148 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9498     template<typename _Tp>
9499     inline const _Tp&
9500     min(const _Tp& __a, const _Tp& __b)
9501     {
9502    
9503    
9504    
9505     if (__b < __a)
9506     return __b;
9507     return __a;
9508     }
9509     # 170 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9510     template<typename _Tp>
9511     inline const _Tp&
9512     max(const _Tp& __a, const _Tp& __b)
9513     {
9514    
9515    
9516    
9517     if (__a < __b)
9518     return __b;
9519     return __a;
9520     }
9521     # 192 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9522     template<typename _Tp, typename _Compare>
9523     inline const _Tp&
9524     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
9525     {
9526    
9527     if (__comp(__b, __a))
9528     return __b;
9529     return __a;
9530     }
9531     # 212 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9532     template<typename _Tp, typename _Compare>
9533     inline const _Tp&
9534     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
9535     {
9536    
9537     if (__comp(__a, __b))
9538     return __b;
9539     return __a;
9540     }
9541    
9542    
9543    
9544    
9545    
9546    
9547    
9548     template<typename _InputIterator, typename _OutputIterator>
9549     inline _OutputIterator
9550     __copy(_InputIterator __first, _InputIterator __last,
9551     _OutputIterator __result, input_iterator_tag)
9552     {
9553     for (; __first != __last; ++__result, ++__first)
9554     *__result = *__first;
9555     return __result;
9556     }
9557    
9558     template<typename _RandomAccessIterator, typename _OutputIterator>
9559     inline _OutputIterator
9560     __copy(_RandomAccessIterator __first, _RandomAccessIterator __last,
9561     _OutputIterator __result, random_access_iterator_tag)
9562     {
9563     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
9564     _Distance;
9565     for (_Distance __n = __last - __first; __n > 0; --__n)
9566     {
9567     *__result = *__first;
9568     ++__first;
9569     ++__result;
9570     }
9571     return __result;
9572     }
9573    
9574     template<typename _Tp>
9575     inline _Tp*
9576     __copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result)
9577     {
9578     std::memmove(__result, __first, sizeof(_Tp) * (__last - __first));
9579     return __result + (__last - __first);
9580     }
9581    
9582     template<typename _InputIterator, typename _OutputIterator>
9583     inline _OutputIterator
9584     __copy_aux2(_InputIterator __first, _InputIterator __last,
9585     _OutputIterator __result, __false_type)
9586     { return std::__copy(__first, __last, __result,
9587     std::__iterator_category(__first)); }
9588    
9589     template<typename _InputIterator, typename _OutputIterator>
9590     inline _OutputIterator
9591     __copy_aux2(_InputIterator __first, _InputIterator __last,
9592     _OutputIterator __result, __true_type)
9593     { return std::__copy(__first, __last, __result,
9594     std::__iterator_category(__first)); }
9595    
9596     template<typename _Tp>
9597     inline _Tp*
9598     __copy_aux2(_Tp* __first, _Tp* __last, _Tp* __result, __true_type)
9599     { return std::__copy_trivial(__first, __last, __result); }
9600    
9601     template<typename _Tp>
9602     inline _Tp*
9603     __copy_aux2(const _Tp* __first, const _Tp* __last, _Tp* __result,
9604     __true_type)
9605     { return std::__copy_trivial(__first, __last, __result); }
9606    
9607     template<typename _InputIterator, typename _OutputIterator>
9608     inline _OutputIterator
9609     __copy_ni2(_InputIterator __first, _InputIterator __last,
9610     _OutputIterator __result, __true_type)
9611     {
9612     typedef typename iterator_traits<_InputIterator>::value_type
9613     _ValueType;
9614     typedef typename __type_traits<
9615     _ValueType>::has_trivial_assignment_operator _Trivial;
9616     return _OutputIterator(std::__copy_aux2(__first, __last, __result.base(),
9617     _Trivial()));
9618     }
9619    
9620     template<typename _InputIterator, typename _OutputIterator>
9621     inline _OutputIterator
9622     __copy_ni2(_InputIterator __first, _InputIterator __last,
9623     _OutputIterator __result, __false_type)
9624     {
9625     typedef typename iterator_traits<_InputIterator>::value_type _ValueType;
9626     typedef typename __type_traits<
9627     _ValueType>::has_trivial_assignment_operator _Trivial;
9628     return std::__copy_aux2(__first, __last, __result, _Trivial());
9629     }
9630    
9631     template<typename _InputIterator, typename _OutputIterator>
9632     inline _OutputIterator
9633     __copy_ni1(_InputIterator __first, _InputIterator __last,
9634     _OutputIterator __result, __true_type)
9635     {
9636     typedef typename _Is_normal_iterator<_OutputIterator>::_Normal __Normal;
9637     return std::__copy_ni2(__first.base(), __last.base(),
9638     __result, __Normal());
9639     }
9640    
9641     template<typename _InputIterator, typename _OutputIterator>
9642     inline _OutputIterator
9643     __copy_ni1(_InputIterator __first, _InputIterator __last,
9644     _OutputIterator __result, __false_type)
9645     {
9646     typedef typename _Is_normal_iterator<_OutputIterator>::_Normal __Normal;
9647     return std::__copy_ni2(__first, __last, __result, __Normal());
9648     }
9649     # 346 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9650     template<typename _InputIterator, typename _OutputIterator>
9651     inline _OutputIterator
9652     copy(_InputIterator __first, _InputIterator __last,
9653     _OutputIterator __result)
9654     {
9655    
9656    
9657    
9658    
9659     ;
9660    
9661     typedef typename _Is_normal_iterator<_InputIterator>::_Normal __Normal;
9662     return std::__copy_ni1(__first, __last, __result, __Normal());
9663     }
9664    
9665     template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
9666     inline _BidirectionalIterator2
9667     __copy_backward(_BidirectionalIterator1 __first,
9668     _BidirectionalIterator1 __last,
9669     _BidirectionalIterator2 __result,
9670     bidirectional_iterator_tag)
9671     {
9672     while (__first != __last)
9673     *--__result = *--__last;
9674     return __result;
9675     }
9676    
9677     template<typename _RandomAccessIterator, typename _BidirectionalIterator>
9678     inline _BidirectionalIterator
9679     __copy_backward(_RandomAccessIterator __first, _RandomAccessIterator __last,
9680     _BidirectionalIterator __result, random_access_iterator_tag)
9681     {
9682     typename iterator_traits<_RandomAccessIterator>::difference_type __n;
9683     for (__n = __last - __first; __n > 0; --__n)
9684     *--__result = *--__last;
9685     return __result;
9686     }
9687    
9688    
9689    
9690    
9691    
9692    
9693     template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
9694     typename _BoolType>
9695     struct __copy_backward_dispatch
9696     {
9697     static _BidirectionalIterator2
9698     copy(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last,
9699     _BidirectionalIterator2 __result)
9700     { return std::__copy_backward(__first, __last, __result,
9701     std::__iterator_category(__first)); }
9702     };
9703    
9704     template<typename _Tp>
9705     struct __copy_backward_dispatch<_Tp*, _Tp*, __true_type>
9706     {
9707     static _Tp*
9708     copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
9709     {
9710     const ptrdiff_t _Num = __last - __first;
9711     std::memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
9712     return __result - _Num;
9713     }
9714     };
9715    
9716     template<typename _Tp>
9717     struct __copy_backward_dispatch<const _Tp*, _Tp*, __true_type>
9718     {
9719     static _Tp*
9720     copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
9721     {
9722     return std::__copy_backward_dispatch<_Tp*, _Tp*, __true_type>
9723     ::copy(__first, __last, __result);
9724     }
9725     };
9726    
9727     template<typename _BI1, typename _BI2>
9728     inline _BI2
9729     __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result)
9730     {
9731     typedef typename __type_traits<typename iterator_traits<_BI2>::value_type>
9732     ::has_trivial_assignment_operator _Trivial;
9733     return
9734     std::__copy_backward_dispatch<_BI1, _BI2, _Trivial>::copy(__first,
9735     __last,
9736     __result);
9737     }
9738    
9739     template <typename _BI1, typename _BI2>
9740     inline _BI2
9741     __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last,
9742     _BI2 __result, __true_type)
9743     { return _BI2(std::__copy_backward_aux(__first, __last, __result.base())); }
9744    
9745     template <typename _BI1, typename _BI2>
9746     inline _BI2
9747     __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last,
9748     _BI2 __result, __false_type)
9749     { return std::__copy_backward_aux(__first, __last, __result); }
9750    
9751     template <typename _BI1, typename _BI2>
9752     inline _BI2
9753     __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last,
9754     _BI2 __result, __true_type)
9755     {
9756     typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal;
9757     return std::__copy_backward_output_normal_iterator(__first.base(),
9758     __last.base(),
9759     __result, __Normal());
9760     }
9761    
9762     template <typename _BI1, typename _BI2>
9763     inline _BI2
9764     __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last,
9765     _BI2 __result, __false_type)
9766     {
9767     typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal;
9768     return std::__copy_backward_output_normal_iterator(__first, __last,
9769     __result, __Normal());
9770     }
9771     # 485 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9772     template <typename _BI1, typename _BI2>
9773     inline _BI2
9774     copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
9775     {
9776    
9777    
9778    
9779    
9780    
9781    
9782     ;
9783    
9784     typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal;
9785     return std::__copy_backward_input_normal_iterator(__first, __last,
9786     __result, __Normal());
9787     }
9788     # 514 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9789     template<typename _ForwardIterator, typename _Tp>
9790     void
9791     fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
9792     {
9793    
9794    
9795    
9796     ;
9797    
9798     for ( ; __first != __last; ++__first)
9799     *__first = __value;
9800     }
9801     # 538 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9802     template<typename _OutputIterator, typename _Size, typename _Tp>
9803     _OutputIterator
9804     fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
9805     {
9806    
9807    
9808    
9809     for ( ; __n > 0; --__n, ++__first)
9810     *__first = __value;
9811     return __first;
9812     }
9813    
9814    
9815     inline void
9816     fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c)
9817     {
9818     ;
9819     const unsigned char __tmp = __c;
9820     std::memset(__first, __tmp, __last - __first);
9821     }
9822    
9823     inline void
9824     fill(signed char* __first, signed char* __last, const signed char& __c)
9825     {
9826     ;
9827     const signed char __tmp = __c;
9828     std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
9829     }
9830    
9831     inline void
9832     fill(char* __first, char* __last, const char& __c)
9833     {
9834     ;
9835     const char __tmp = __c;
9836     std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
9837     }
9838    
9839     template<typename _Size>
9840     inline unsigned char*
9841     fill_n(unsigned char* __first, _Size __n, const unsigned char& __c)
9842     {
9843     std::fill(__first, __first + __n, __c);
9844     return __first + __n;
9845     }
9846    
9847     template<typename _Size>
9848     inline signed char*
9849     fill_n(char* __first, _Size __n, const signed char& __c)
9850     {
9851     std::fill(__first, __first + __n, __c);
9852     return __first + __n;
9853     }
9854    
9855     template<typename _Size>
9856     inline char*
9857     fill_n(char* __first, _Size __n, const char& __c)
9858     {
9859     std::fill(__first, __first + __n, __c);
9860     return __first + __n;
9861     }
9862     # 612 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9863     template<typename _InputIterator1, typename _InputIterator2>
9864     pair<_InputIterator1, _InputIterator2>
9865     mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
9866     _InputIterator2 __first2)
9867     {
9868    
9869    
9870    
9871    
9872    
9873    
9874     ;
9875    
9876     while (__first1 != __last1 && *__first1 == *__first2)
9877     {
9878     ++__first1;
9879     ++__first2;
9880     }
9881     return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
9882     }
9883     # 647 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9884     template<typename _InputIterator1, typename _InputIterator2,
9885     typename _BinaryPredicate>
9886     pair<_InputIterator1, _InputIterator2>
9887     mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
9888     _InputIterator2 __first2, _BinaryPredicate __binary_pred)
9889     {
9890    
9891    
9892    
9893     ;
9894    
9895     while (__first1 != __last1 && __binary_pred(*__first1, *__first2))
9896     {
9897     ++__first1;
9898     ++__first2;
9899     }
9900     return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
9901     }
9902     # 677 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9903     template<typename _InputIterator1, typename _InputIterator2>
9904     inline bool
9905     equal(_InputIterator1 __first1, _InputIterator1 __last1,
9906     _InputIterator2 __first2)
9907     {
9908    
9909    
9910    
9911    
9912    
9913    
9914     ;
9915    
9916     for ( ; __first1 != __last1; ++__first1, ++__first2)
9917     if (!(*__first1 == *__first2))
9918     return false;
9919     return true;
9920     }
9921     # 709 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9922     template<typename _InputIterator1, typename _InputIterator2,
9923     typename _BinaryPredicate>
9924     inline bool
9925     equal(_InputIterator1 __first1, _InputIterator1 __last1,
9926     _InputIterator2 __first2,
9927     _BinaryPredicate __binary_pred)
9928     {
9929    
9930    
9931    
9932     ;
9933    
9934     for ( ; __first1 != __last1; ++__first1, ++__first2)
9935     if (!__binary_pred(*__first1, *__first2))
9936     return false;
9937     return true;
9938     }
9939     # 741 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9940     template<typename _InputIterator1, typename _InputIterator2>
9941     bool
9942     lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
9943     _InputIterator2 __first2, _InputIterator2 __last2)
9944     {
9945    
9946    
9947    
9948    
9949    
9950    
9951    
9952    
9953    
9954     ;
9955     ;
9956    
9957     for (;__first1 != __last1 && __first2 != __last2; ++__first1, ++__first2)
9958     {
9959     if (*__first1 < *__first2)
9960     return true;
9961     if (*__first2 < *__first1)
9962     return false;
9963     }
9964     return __first1 == __last1 && __first2 != __last2;
9965     }
9966     # 780 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9967     template<typename _InputIterator1, typename _InputIterator2,
9968     typename _Compare>
9969     bool
9970     lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
9971     _InputIterator2 __first2, _InputIterator2 __last2,
9972     _Compare __comp)
9973     {
9974    
9975    
9976    
9977     ;
9978     ;
9979    
9980     for ( ; __first1 != __last1 && __first2 != __last2
9981     ; ++__first1, ++__first2)
9982     {
9983     if (__comp(*__first1, *__first2))
9984     return true;
9985     if (__comp(*__first2, *__first1))
9986     return false;
9987     }
9988     return __first1 == __last1 && __first2 != __last2;
9989     }
9990    
9991     inline bool
9992     lexicographical_compare(const unsigned char* __first1,
9993     const unsigned char* __last1,
9994     const unsigned char* __first2,
9995     const unsigned char* __last2)
9996     {
9997     ;
9998     ;
9999    
10000     const size_t __len1 = __last1 - __first1;
10001     const size_t __len2 = __last2 - __first2;
10002     const int __result = std::memcmp(__first1, __first2,
10003     std::min(__len1, __len2));
10004     return __result != 0 ? __result < 0 : __len1 < __len2;
10005     }
10006    
10007     inline bool
10008     lexicographical_compare(const char* __first1, const char* __last1,
10009     const char* __first2, const char* __last2)
10010     {
10011     ;
10012     ;
10013    
10014    
10015     return std::lexicographical_compare((const signed char*) __first1,
10016     (const signed char*) __last1,
10017     (const signed char*) __first2,
10018     (const signed char*) __last2);
10019    
10020    
10021    
10022    
10023    
10024    
10025     }
10026    
10027     }
10028     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 2 3
10029    
10030    
10031     namespace __gnu_cxx
10032     {
10033     # 62 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 3
10034     template <class _CharT>
10035     struct _Char_types
10036     {
10037     typedef unsigned long int_type;
10038     typedef std::streampos pos_type;
10039     typedef std::streamoff off_type;
10040     typedef std::mbstate_t state_type;
10041     };
10042     # 86 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 3
10043     template<typename _CharT>
10044     struct char_traits
10045     {
10046     typedef _CharT char_type;
10047     typedef typename _Char_types<_CharT>::int_type int_type;
10048     typedef typename _Char_types<_CharT>::pos_type pos_type;
10049     typedef typename _Char_types<_CharT>::off_type off_type;
10050     typedef typename _Char_types<_CharT>::state_type state_type;
10051    
10052     static void
10053     assign(char_type& __c1, const char_type& __c2)
10054     { __c1 = __c2; }
10055    
10056     static bool
10057     eq(const char_type& __c1, const char_type& __c2)
10058     { return __c1 == __c2; }
10059    
10060     static bool
10061     lt(const char_type& __c1, const char_type& __c2)
10062     { return __c1 < __c2; }
10063    
10064     static int
10065     compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
10066    
10067     static std::size_t
10068     length(const char_type* __s);
10069    
10070     static const char_type*
10071     find(const char_type* __s, std::size_t __n, const char_type& __a);
10072    
10073     static char_type*
10074     move(char_type* __s1, const char_type* __s2, std::size_t __n);
10075    
10076     static char_type*
10077     copy(char_type* __s1, const char_type* __s2, std::size_t __n);
10078    
10079     static char_type*
10080     assign(char_type* __s, std::size_t __n, char_type __a);
10081    
10082     static char_type
10083     to_char_type(const int_type& __c)
10084     { return static_cast<char_type>(__c); }
10085    
10086     static int_type
10087     to_int_type(const char_type& __c)
10088     { return static_cast<int_type>(__c); }
10089    
10090     static bool
10091     eq_int_type(const int_type& __c1, const int_type& __c2)
10092     { return __c1 == __c2; }
10093    
10094     static int_type
10095     eof()
10096     { return static_cast<int_type>((-1)); }
10097    
10098     static int_type
10099     not_eof(const int_type& __c)
10100     { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
10101     };
10102    
10103     template<typename _CharT>
10104     int
10105     char_traits<_CharT>::
10106     compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
10107     {
10108     for (size_t __i = 0; __i < __n; ++__i)
10109     if (lt(__s1[__i], __s2[__i]))
10110     return -1;
10111     else if (lt(__s2[__i], __s1[__i]))
10112     return 1;
10113     return 0;
10114     }
10115    
10116     template<typename _CharT>
10117     std::size_t
10118     char_traits<_CharT>::
10119     length(const char_type* __p)
10120     {
10121     std::size_t __i = 0;
10122     while (!eq(__p[__i], char_type()))
10123     ++__i;
10124     return __i;
10125     }
10126    
10127     template<typename _CharT>
10128     const typename char_traits<_CharT>::char_type*
10129     char_traits<_CharT>::
10130     find(const char_type* __s, std::size_t __n, const char_type& __a)
10131     {
10132     for (std::size_t __i = 0; __i < __n; ++__i)
10133     if (eq(__s[__i], __a))
10134     return __s + __i;
10135     return 0;
10136     }
10137    
10138     template<typename _CharT>
10139     typename char_traits<_CharT>::char_type*
10140     char_traits<_CharT>::
10141     move(char_type* __s1, const char_type* __s2, std::size_t __n)
10142     {
10143     return static_cast<_CharT*>(std::memmove(__s1, __s2,
10144     __n * sizeof(char_type)));
10145     }
10146    
10147     template<typename _CharT>
10148     typename char_traits<_CharT>::char_type*
10149     char_traits<_CharT>::
10150     copy(char_type* __s1, const char_type* __s2, std::size_t __n)
10151     {
10152     std::copy(__s2, __s2 + __n, __s1);
10153     return __s1;
10154     }
10155    
10156     template<typename _CharT>
10157     typename char_traits<_CharT>::char_type*
10158     char_traits<_CharT>::
10159     assign(char_type* __s, std::size_t __n, char_type __a)
10160     {
10161     std::fill_n(__s, __n, __a);
10162     return __s;
10163     }
10164     }
10165    
10166     namespace std
10167     {
10168     # 224 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 3
10169     template<class _CharT>
10170     struct char_traits
10171     : public __gnu_cxx::char_traits<_CharT>
10172     { };
10173    
10174    
10175    
10176     template<>
10177     struct char_traits<char>
10178     {
10179     typedef char char_type;
10180     typedef int int_type;
10181     typedef streampos pos_type;
10182     typedef streamoff off_type;
10183     typedef mbstate_t state_type;
10184    
10185     static void
10186     assign(char_type& __c1, const char_type& __c2)
10187     { __c1 = __c2; }
10188    
10189     static bool
10190     eq(const char_type& __c1, const char_type& __c2)
10191     { return __c1 == __c2; }
10192    
10193     static bool
10194     lt(const char_type& __c1, const char_type& __c2)
10195     { return __c1 < __c2; }
10196    
10197     static int
10198     compare(const char_type* __s1, const char_type* __s2, size_t __n)
10199     { return memcmp(__s1, __s2, __n); }
10200    
10201     static size_t
10202     length(const char_type* __s)
10203     { return strlen(__s); }
10204    
10205     static const char_type*
10206     find(const char_type* __s, size_t __n, const char_type& __a)
10207     { return static_cast<const char_type*>(memchr(__s, __a, __n)); }
10208    
10209     static char_type*
10210     move(char_type* __s1, const char_type* __s2, size_t __n)
10211     { return static_cast<char_type*>(memmove(__s1, __s2, __n)); }
10212    
10213     static char_type*
10214     copy(char_type* __s1, const char_type* __s2, size_t __n)
10215     { return static_cast<char_type*>(memcpy(__s1, __s2, __n)); }
10216    
10217     static char_type*
10218     assign(char_type* __s, size_t __n, char_type __a)
10219     { return static_cast<char_type*>(memset(__s, __a, __n)); }
10220    
10221     static char_type
10222     to_char_type(const int_type& __c)
10223     { return static_cast<char_type>(__c); }
10224    
10225    
10226    
10227     static int_type
10228     to_int_type(const char_type& __c)
10229     { return static_cast<int_type>(static_cast<unsigned char>(__c)); }
10230    
10231     static bool
10232     eq_int_type(const int_type& __c1, const int_type& __c2)
10233     { return __c1 == __c2; }
10234    
10235     static int_type
10236     eof() { return static_cast<int_type>((-1)); }
10237    
10238     static int_type
10239     not_eof(const int_type& __c)
10240     { return (__c == eof()) ? 0 : __c; }
10241     };
10242    
10243    
10244    
10245    
10246     template<>
10247     struct char_traits<wchar_t>
10248     {
10249     typedef wchar_t char_type;
10250     typedef wint_t int_type;
10251     typedef streamoff off_type;
10252     typedef wstreampos pos_type;
10253     typedef mbstate_t state_type;
10254    
10255     static void
10256     assign(char_type& __c1, const char_type& __c2)
10257     { __c1 = __c2; }
10258    
10259     static bool
10260     eq(const char_type& __c1, const char_type& __c2)
10261     { return __c1 == __c2; }
10262    
10263     static bool
10264     lt(const char_type& __c1, const char_type& __c2)
10265     { return __c1 < __c2; }
10266    
10267     static int
10268     compare(const char_type* __s1, const char_type* __s2, size_t __n)
10269     { return wmemcmp(__s1, __s2, __n); }
10270    
10271     static size_t
10272     length(const char_type* __s)
10273     { return wcslen(__s); }
10274    
10275     static const char_type*
10276     find(const char_type* __s, size_t __n, const char_type& __a)
10277     { return wmemchr(__s, __a, __n); }
10278    
10279     static char_type*
10280     move(char_type* __s1, const char_type* __s2, size_t __n)
10281     { return wmemmove(__s1, __s2, __n); }
10282    
10283     static char_type*
10284     copy(char_type* __s1, const char_type* __s2, size_t __n)
10285     { return wmemcpy(__s1, __s2, __n); }
10286    
10287     static char_type*
10288     assign(char_type* __s, size_t __n, char_type __a)
10289     { return wmemset(__s, __a, __n); }
10290    
10291     static char_type
10292     to_char_type(const int_type& __c) { return char_type(__c); }
10293    
10294     static int_type
10295     to_int_type(const char_type& __c) { return int_type(__c); }
10296    
10297     static bool
10298     eq_int_type(const int_type& __c1, const int_type& __c2)
10299     { return __c1 == __c2; }
10300    
10301     static int_type
10302     eof() { return static_cast<int_type>((0xffffffffu)); }
10303    
10304     static int_type
10305     not_eof(const int_type& __c)
10306     { return eq_int_type(__c, eof()) ? 0 : __c; }
10307     };
10308    
10309    
10310     template<typename _CharT, typename _Traits>
10311     struct _Char_traits_match
10312     {
10313     _CharT _M_c;
10314     _Char_traits_match(_CharT const& __c) : _M_c(__c) { }
10315    
10316     bool
10317     operator()(_CharT const& __a) { return _Traits::eq(_M_c, __a); }
10318     };
10319     }
10320     # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 2 3
10321     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 1 3
10322     # 52 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
10323    
10324     # 53 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
10325    
10326    
10327     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/allocator.h" 1 3
10328     # 52 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/allocator.h" 3
10329     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h" 1 3
10330     # 34 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h" 3
10331     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ext/new_allocator.h" 1 3
10332     # 35 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ext/new_allocator.h" 3
10333     namespace __gnu_cxx
10334     {
10335     # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ext/new_allocator.h" 3
10336     template<typename _Tp>
10337     class new_allocator
10338     {
10339     public:
10340     typedef size_t size_type;
10341     typedef ptrdiff_t difference_type;
10342     typedef _Tp* pointer;
10343     typedef const _Tp* const_pointer;
10344     typedef _Tp& reference;
10345     typedef const _Tp& const_reference;
10346     typedef _Tp value_type;
10347    
10348     template<typename _Tp1>
10349     struct rebind
10350     { typedef new_allocator<_Tp1> other; };
10351    
10352     new_allocator() throw() { }
10353    
10354     new_allocator(const new_allocator&) throw() { }
10355    
10356     template<typename _Tp1>
10357     new_allocator(const new_allocator<_Tp1>&) throw() { }
10358    
10359     ~new_allocator() throw() { }
10360    
10361     pointer
10362     address(reference __x) const { return &__x; }
10363    
10364     const_pointer
10365     address(const_reference __x) const { return &__x; }
10366    
10367    
10368    
10369     pointer
10370     allocate(size_type __n, const void* = 0)
10371     { return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); }
10372    
10373    
10374     void
10375     deallocate(pointer __p, size_type)
10376     { ::operator delete(__p); }
10377    
10378     size_type
10379     max_size() const throw()
10380     { return size_t(-1) / sizeof(_Tp); }
10381    
10382    
10383    
10384     void
10385     construct(pointer __p, const _Tp& __val)
10386     { ::new(__p) _Tp(__val); }
10387    
10388     void
10389     destroy(pointer __p) { __p->~_Tp(); }
10390     };
10391    
10392     template<typename _Tp>
10393     inline bool
10394     operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
10395     { return true; }
10396    
10397     template<typename _Tp>
10398     inline bool
10399     operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
10400     { return false; }
10401     }
10402     # 35 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h" 2 3
10403     # 53 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/allocator.h" 2 3
10404    
10405     namespace std
10406     {
10407     template<typename _Tp>
10408     class allocator;
10409    
10410     template<>
10411     class allocator<void>
10412     {
10413     public:
10414     typedef size_t size_type;
10415     typedef ptrdiff_t difference_type;
10416     typedef void* pointer;
10417     typedef const void* const_pointer;
10418     typedef void value_type;
10419    
10420     template<typename _Tp1>
10421     struct rebind
10422     { typedef allocator<_Tp1> other; };
10423     };
10424    
10425    
10426    
10427    
10428    
10429    
10430     template<typename _Tp>
10431     class allocator: public __gnu_cxx::new_allocator<_Tp>
10432     {
10433     public:
10434     typedef size_t size_type;
10435     typedef ptrdiff_t difference_type;
10436     typedef _Tp* pointer;
10437     typedef const _Tp* const_pointer;
10438     typedef _Tp& reference;
10439     typedef const _Tp& const_reference;
10440     typedef _Tp value_type;
10441    
10442     template<typename _Tp1>
10443     struct rebind
10444     { typedef allocator<_Tp1> other; };
10445    
10446     allocator() throw() { }
10447    
10448     allocator(const allocator& a) throw()
10449     : __gnu_cxx::new_allocator<_Tp>(a) { }
10450    
10451     template<typename _Tp1>
10452     allocator(const allocator<_Tp1>&) throw() { }
10453    
10454     ~allocator() throw() { }
10455    
10456    
10457     };
10458    
10459     template<typename _T1, typename _T2>
10460     inline bool
10461     operator==(const allocator<_T1>&, const allocator<_T2>&)
10462     { return true; }
10463    
10464     template<typename _T1, typename _T2>
10465     inline bool
10466     operator!=(const allocator<_T1>&, const allocator<_T2>&)
10467     { return false; }
10468    
10469    
10470    
10471    
10472    
10473     extern template class allocator<char>;
10474     extern template class allocator<wchar_t>;
10475    
10476    
10477    
10478    
10479     }
10480     # 56 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 2 3
10481     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h" 1 3
10482     # 67 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h" 3
10483     namespace std
10484     {
10485    
10486    
10487    
10488    
10489    
10490    
10491     template<typename _T1, typename _T2>
10492     inline void
10493     _Construct(_T1* __p, const _T2& __value)
10494     {
10495    
10496    
10497     ::new(static_cast<void*>(__p)) _T1(__value);
10498     }
10499    
10500    
10501    
10502    
10503    
10504    
10505    
10506     template<typename _T1>
10507     inline void
10508     _Construct(_T1* __p)
10509     {
10510    
10511    
10512     ::new(static_cast<void*>(__p)) _T1();
10513     }
10514    
10515    
10516    
10517    
10518    
10519    
10520     template<typename _Tp>
10521     inline void
10522     _Destroy(_Tp* __pointer)
10523     { __pointer->~_Tp(); }
10524     # 116 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h" 3
10525     template<typename _ForwardIterator>
10526     inline void
10527     __destroy_aux(_ForwardIterator __first, _ForwardIterator __last,
10528     __false_type)
10529     { for ( ; __first != __last; ++__first) std::_Destroy(&*__first); }
10530     # 131 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h" 3
10531     template<typename _ForwardIterator>
10532     inline void
10533     __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type)
10534     { }
10535     # 143 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h" 3
10536     template<typename _ForwardIterator>
10537     inline void
10538     _Destroy(_ForwardIterator __first, _ForwardIterator __last)
10539     {
10540     typedef typename iterator_traits<_ForwardIterator>::value_type
10541     _Value_type;
10542     typedef typename __type_traits<_Value_type>::has_trivial_destructor
10543     _Has_trivial_destructor;
10544    
10545     std::__destroy_aux(__first, __last, _Has_trivial_destructor());
10546     }
10547     }
10548     # 57 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 2 3
10549    
10550     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h" 1 3
10551     # 66 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h" 3
10552     namespace std
10553     {
10554    
10555     template<typename _InputIterator, typename _ForwardIterator>
10556     inline _ForwardIterator
10557     __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
10558     _ForwardIterator __result,
10559     __true_type)
10560     { return std::copy(__first, __last, __result); }
10561    
10562     template<typename _InputIterator, typename _ForwardIterator>
10563     inline _ForwardIterator
10564     __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
10565     _ForwardIterator __result,
10566     __false_type)
10567     {
10568     _ForwardIterator __cur = __result;
10569     try
10570     {
10571     for ( ; __first != __last; ++__first, ++__cur)
10572     std::_Construct(&*__cur, *__first);
10573     return __cur;
10574     }
10575     catch(...)
10576     {
10577     std::_Destroy(__result, __cur);
10578     throw;
10579     }
10580     }
10581     # 105 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h" 3
10582     template<typename _InputIterator, typename _ForwardIterator>
10583     inline _ForwardIterator
10584     uninitialized_copy(_InputIterator __first, _InputIterator __last,
10585     _ForwardIterator __result)
10586     {
10587     typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
10588     typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
10589     return std::__uninitialized_copy_aux(__first, __last, __result,
10590     _Is_POD());
10591     }
10592    
10593     inline char*
10594     uninitialized_copy(const char* __first, const char* __last, char* __result)
10595     {
10596     std::memmove(__result, __first, __last - __first);
10597     return __result + (__last - __first);
10598     }
10599    
10600     inline wchar_t*
10601     uninitialized_copy(const wchar_t* __first, const wchar_t* __last,
10602     wchar_t* __result)
10603     {
10604     std::memmove(__result, __first, sizeof(wchar_t) * (__last - __first));
10605     return __result + (__last - __first);
10606     }
10607    
10608    
10609    
10610     template<typename _ForwardIterator, typename _Tp>
10611     inline void
10612     __uninitialized_fill_aux(_ForwardIterator __first,
10613     _ForwardIterator __last,
10614     const _Tp& __x, __true_type)
10615     { std::fill(__first, __last, __x); }
10616    
10617     template<typename _ForwardIterator, typename _Tp>
10618     void
10619     __uninitialized_fill_aux(_ForwardIterator __first, _ForwardIterator __last,
10620     const _Tp& __x, __false_type)
10621     {
10622     _ForwardIterator __cur = __first;
10623     try
10624     {
10625     for ( ; __cur != __last; ++__cur)
10626     std::_Construct(&*__cur, __x);
10627     }
10628     catch(...)
10629     {
10630     std::_Destroy(__first, __cur);
10631     throw;
10632     }
10633     }
10634     # 167 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h" 3
10635     template<typename _ForwardIterator, typename _Tp>
10636     inline void
10637     uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
10638     const _Tp& __x)
10639     {
10640     typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
10641     typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
10642     std::__uninitialized_fill_aux(__first, __last, __x, _Is_POD());
10643     }
10644    
10645    
10646    
10647     template<typename _ForwardIterator, typename _Size, typename _Tp>
10648     inline _ForwardIterator
10649     __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
10650     const _Tp& __x, __true_type)
10651     { return std::fill_n(__first, __n, __x); }
10652    
10653     template<typename _ForwardIterator, typename _Size, typename _Tp>
10654     _ForwardIterator
10655     __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
10656     const _Tp& __x, __false_type)
10657     {
10658     _ForwardIterator __cur = __first;
10659     try
10660     {
10661     for ( ; __n > 0; --__n, ++__cur)
10662     std::_Construct(&*__cur, __x);
10663     return __cur;
10664     }
10665     catch(...)
10666     {
10667     std::_Destroy(__first, __cur);
10668     throw;
10669     }
10670     }
10671     # 213 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h" 3
10672     template<typename _ForwardIterator, typename _Size, typename _Tp>
10673     inline _ForwardIterator
10674     uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
10675     {
10676     typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
10677     typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
10678     return std::__uninitialized_fill_n_aux(__first, __n, __x, _Is_POD());
10679     }
10680     # 230 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h" 3
10681     template<typename _InputIterator1, typename _InputIterator2,
10682     typename _ForwardIterator>
10683     inline _ForwardIterator
10684     __uninitialized_copy_copy(_InputIterator1 __first1,
10685     _InputIterator1 __last1,
10686     _InputIterator2 __first2,
10687     _InputIterator2 __last2,
10688     _ForwardIterator __result)
10689     {
10690     _ForwardIterator __mid = std::uninitialized_copy(__first1, __last1,
10691     __result);
10692     try
10693     {
10694     return std::uninitialized_copy(__first2, __last2, __mid);
10695     }
10696     catch(...)
10697     {
10698     std::_Destroy(__result, __mid);
10699     throw;
10700     }
10701     }
10702    
10703    
10704    
10705    
10706     template<typename _ForwardIterator, typename _Tp, typename _InputIterator>
10707     inline _ForwardIterator
10708     __uninitialized_fill_copy(_ForwardIterator __result, _ForwardIterator __mid,
10709     const _Tp& __x, _InputIterator __first,
10710     _InputIterator __last)
10711     {
10712     std::uninitialized_fill(__result, __mid, __x);
10713     try
10714     {
10715     return std::uninitialized_copy(__first, __last, __mid);
10716     }
10717     catch(...)
10718     {
10719     std::_Destroy(__result, __mid);
10720     throw;
10721     }
10722     }
10723    
10724    
10725    
10726    
10727     template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
10728     inline void
10729     __uninitialized_copy_fill(_InputIterator __first1, _InputIterator __last1,
10730     _ForwardIterator __first2,
10731     _ForwardIterator __last2, const _Tp& __x)
10732     {
10733     _ForwardIterator __mid2 = std::uninitialized_copy(__first1, __last1,
10734     __first2);
10735     try
10736     {
10737     std::uninitialized_fill(__mid2, __last2, __x);
10738     }
10739     catch(...)
10740     {
10741     std::_Destroy(__first2, __mid2);
10742     throw;
10743     }
10744     }
10745    
10746     }
10747     # 59 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 2 3
10748     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_raw_storage_iter.h" 1 3
10749     # 64 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_raw_storage_iter.h" 3
10750     namespace std
10751     {
10752    
10753    
10754    
10755    
10756     template <class _ForwardIterator, class _Tp>
10757     class raw_storage_iterator
10758     : public iterator<output_iterator_tag, void, void, void, void>
10759     {
10760     protected:
10761     _ForwardIterator _M_iter;
10762    
10763     public:
10764     explicit
10765     raw_storage_iterator(_ForwardIterator __x)
10766     : _M_iter(__x) {}
10767    
10768     raw_storage_iterator&
10769     operator*() { return *this; }
10770    
10771     raw_storage_iterator&
10772     operator=(const _Tp& __element)
10773     {
10774     std::_Construct(&*_M_iter, __element);
10775     return *this;
10776     }
10777    
10778     raw_storage_iterator<_ForwardIterator, _Tp>&
10779     operator++()
10780     {
10781     ++_M_iter;
10782     return *this;
10783     }
10784    
10785     raw_storage_iterator<_ForwardIterator, _Tp>
10786     operator++(int)
10787     {
10788     raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this;
10789     ++_M_iter;
10790     return __tmp;
10791     }
10792     };
10793     }
10794     # 60 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 2 3
10795    
10796     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits" 1 3
10797     # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits" 3
10798    
10799     # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits" 3
10800     # 150 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/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     # 192 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/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     # 285 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/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     template<>
10942     struct numeric_limits<bool>
10943     {
10944     static const bool is_specialized = true;
10945    
10946     static bool min() throw()
10947     { return false; }
10948     static bool max() throw()
10949     { return true; }
10950    
10951     static const int digits = 1;
10952     static const int digits10 = 0;
10953     static const bool is_signed = false;
10954     static const bool is_integer = true;
10955     static const bool is_exact = true;
10956     static const int radix = 2;
10957     static bool epsilon() throw()
10958     { return false; }
10959     static bool round_error() throw()
10960     { return false; }
10961    
10962     static const int min_exponent = 0;
10963     static const int min_exponent10 = 0;
10964     static const int max_exponent = 0;
10965     static const int max_exponent10 = 0;
10966    
10967     static const bool has_infinity = false;
10968     static const bool has_quiet_NaN = false;
10969     static const bool has_signaling_NaN = false;
10970     static const float_denorm_style has_denorm = denorm_absent;
10971     static const bool has_denorm_loss = false;
10972    
10973     static bool infinity() throw()
10974     { return false; }
10975     static bool quiet_NaN() throw()
10976     { return false; }
10977     static bool signaling_NaN() throw()
10978     { return false; }
10979     static bool denorm_min() throw()
10980     { return false; }
10981    
10982     static const bool is_iec559 = false;
10983     static const bool is_bounded = true;
10984     static const bool is_modulo = false;
10985    
10986    
10987    
10988    
10989     static const bool traps = true;
10990     static const bool tinyness_before = false;
10991     static const float_round_style round_style = round_toward_zero;
10992     };
10993    
10994     template<>
10995     struct numeric_limits<char>
10996     {
10997     static const bool is_specialized = true;
10998    
10999     static char min() throw()
11000     { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) < 0)) : (char)0); }
11001     static char max() throw()
11002     { return (((char)(-1) < 0) ? ((char)1 << (sizeof(char) * 8 - ((char)(-1) < 0))) - 1 : ~(char)0); }
11003    
11004     static const int digits = (sizeof(char) * 8 - ((char)(-1) < 0));
11005     static const int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643 / 2136);
11006     static const bool is_signed = ((char)(-1) < 0);
11007     static const bool is_integer = true;
11008     static const bool is_exact = true;
11009     static const int radix = 2;
11010     static char epsilon() throw()
11011     { return 0; }
11012     static char round_error() throw()
11013     { return 0; }
11014    
11015     static const int min_exponent = 0;
11016     static const int min_exponent10 = 0;
11017     static const int max_exponent = 0;
11018     static const int max_exponent10 = 0;
11019    
11020     static const bool has_infinity = false;
11021     static const bool has_quiet_NaN = false;
11022     static const bool has_signaling_NaN = false;
11023     static const float_denorm_style has_denorm = denorm_absent;
11024     static const bool has_denorm_loss = false;
11025    
11026     static char infinity() throw()
11027     { return char(); }
11028     static char quiet_NaN() throw()
11029     { return char(); }
11030     static char signaling_NaN() throw()
11031     { return char(); }
11032     static char denorm_min() throw()
11033     { return static_cast<char>(0); }
11034    
11035     static const bool is_iec559 = false;
11036     static const bool is_bounded = true;
11037     static const bool is_modulo = true;
11038    
11039     static const bool traps = true;
11040     static const bool tinyness_before = false;
11041     static const float_round_style round_style = round_toward_zero;
11042     };
11043    
11044     template<>
11045     struct numeric_limits<signed char>
11046     {
11047     static const bool is_specialized = true;
11048    
11049     static signed char min() throw()
11050     { return -127 - 1; }
11051     static signed char max() throw()
11052     { return 127; }
11053    
11054     static const int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0));
11055     static const int digits10 = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643 / 2136);
11056     static const bool is_signed = true;
11057     static const bool is_integer = true;
11058     static const bool is_exact = true;
11059     static const int radix = 2;
11060     static signed char epsilon() throw()
11061     { return 0; }
11062     static signed char round_error() throw()
11063     { return 0; }
11064    
11065     static const int min_exponent = 0;
11066     static const int min_exponent10 = 0;
11067     static const int max_exponent = 0;
11068     static const int max_exponent10 = 0;
11069    
11070     static const bool has_infinity = false;
11071     static const bool has_quiet_NaN = false;
11072     static const bool has_signaling_NaN = false;
11073     static const float_denorm_style has_denorm = denorm_absent;
11074     static const bool has_denorm_loss = false;
11075    
11076     static signed char infinity() throw()
11077     { return static_cast<signed char>(0); }
11078     static signed char quiet_NaN() throw()
11079     { return static_cast<signed char>(0); }
11080     static signed char signaling_NaN() throw()
11081     { return static_cast<signed char>(0); }
11082     static signed char denorm_min() throw()
11083     { return static_cast<signed char>(0); }
11084    
11085     static const bool is_iec559 = false;
11086     static const bool is_bounded = true;
11087     static const bool is_modulo = true;
11088    
11089     static const bool traps = true;
11090     static const bool tinyness_before = false;
11091     static const float_round_style round_style = round_toward_zero;
11092     };
11093    
11094     template<>
11095     struct numeric_limits<unsigned char>
11096     {
11097     static const bool is_specialized = true;
11098    
11099     static unsigned char min() throw()
11100     { return 0; }
11101     static unsigned char max() throw()
11102     { return 127 * 2U + 1; }
11103    
11104     static const int digits = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0));
11105     static const int digits10 = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643 / 2136);
11106     static const bool is_signed = false;
11107     static const bool is_integer = true;
11108     static const bool is_exact = true;
11109     static const int radix = 2;
11110     static unsigned char epsilon() throw()
11111     { return 0; }
11112     static unsigned char round_error() throw()
11113     { return 0; }
11114    
11115     static const int min_exponent = 0;
11116     static const int min_exponent10 = 0;
11117     static const int max_exponent = 0;
11118     static const int max_exponent10 = 0;
11119    
11120     static const bool has_infinity = false;
11121     static const bool has_quiet_NaN = false;
11122     static const bool has_signaling_NaN = false;
11123     static const float_denorm_style has_denorm = denorm_absent;
11124     static const bool has_denorm_loss = false;
11125    
11126     static unsigned char infinity() throw()
11127     { return static_cast<unsigned char>(0); }
11128     static unsigned char quiet_NaN() throw()
11129     { return static_cast<unsigned char>(0); }
11130     static unsigned char signaling_NaN() throw()
11131     { return static_cast<unsigned char>(0); }
11132     static unsigned char denorm_min() throw()
11133     { return static_cast<unsigned char>(0); }
11134    
11135     static const bool is_iec559 = false;
11136     static const bool is_bounded = true;
11137     static const bool is_modulo = true;
11138    
11139     static const bool traps = true;
11140     static const bool tinyness_before = false;
11141     static const float_round_style round_style = round_toward_zero;
11142     };
11143    
11144     template<>
11145     struct numeric_limits<wchar_t>
11146     {
11147     static const bool is_specialized = true;
11148    
11149     static wchar_t min() throw()
11150     { return (((wchar_t)(-1) < 0) ? (wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) : (wchar_t)0); }
11151     static wchar_t max() throw()
11152     { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); }
11153    
11154     static const int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0));
11155     static const int digits10 = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643 / 2136);
11156     static const bool is_signed = ((wchar_t)(-1) < 0);
11157     static const bool is_integer = true;
11158     static const bool is_exact = true;
11159     static const int radix = 2;
11160     static wchar_t epsilon() throw()
11161     { return 0; }
11162     static wchar_t round_error() throw()
11163     { return 0; }
11164    
11165     static const int min_exponent = 0;
11166     static const int min_exponent10 = 0;
11167     static const int max_exponent = 0;
11168     static const int max_exponent10 = 0;
11169    
11170     static const bool has_infinity = false;
11171     static const bool has_quiet_NaN = false;
11172     static const bool has_signaling_NaN = false;
11173     static const float_denorm_style has_denorm = denorm_absent;
11174     static const bool has_denorm_loss = false;
11175    
11176     static wchar_t infinity() throw()
11177     { return wchar_t(); }
11178     static wchar_t quiet_NaN() throw()
11179     { return wchar_t(); }
11180     static wchar_t signaling_NaN() throw()
11181     { return wchar_t(); }
11182     static wchar_t denorm_min() throw()
11183     { return wchar_t(); }
11184    
11185     static const bool is_iec559 = false;
11186     static const bool is_bounded = true;
11187     static const bool is_modulo = true;
11188    
11189     static const bool traps = true;
11190     static const bool tinyness_before = false;
11191     static const float_round_style round_style = round_toward_zero;
11192     };
11193    
11194     template<>
11195     struct numeric_limits<short>
11196     {
11197     static const bool is_specialized = true;
11198    
11199     static short min() throw()
11200     { return -32767 - 1; }
11201     static short max() throw()
11202     { return 32767; }
11203    
11204     static const int digits = (sizeof(short) * 8 - ((short)(-1) < 0));
11205     static const int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643 / 2136);
11206     static const bool is_signed = true;
11207     static const bool is_integer = true;
11208     static const bool is_exact = true;
11209     static const int radix = 2;
11210     static short epsilon() throw()
11211     { return 0; }
11212     static short round_error() throw()
11213     { return 0; }
11214    
11215     static const int min_exponent = 0;
11216     static const int min_exponent10 = 0;
11217     static const int max_exponent = 0;
11218     static const int max_exponent10 = 0;
11219    
11220     static const bool has_infinity = false;
11221     static const bool has_quiet_NaN = false;
11222     static const bool has_signaling_NaN = false;
11223     static const float_denorm_style has_denorm = denorm_absent;
11224     static const bool has_denorm_loss = false;
11225    
11226     static short infinity() throw()
11227     { return short(); }
11228     static short quiet_NaN() throw()
11229     { return short(); }
11230     static short signaling_NaN() throw()
11231     { return short(); }
11232     static short denorm_min() throw()
11233     { return short(); }
11234    
11235     static const bool is_iec559 = false;
11236     static const bool is_bounded = true;
11237     static const bool is_modulo = true;
11238    
11239     static const bool traps = true;
11240     static const bool tinyness_before = false;
11241     static const float_round_style round_style = round_toward_zero;
11242     };
11243    
11244     template<>
11245     struct numeric_limits<unsigned short>
11246     {
11247     static const bool is_specialized = true;
11248    
11249     static unsigned short min() throw()
11250     { return 0; }
11251     static unsigned short max() throw()
11252     { return 32767 * 2U + 1; }
11253    
11254     static const int digits = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0));
11255     static const int digits10 = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643 / 2136);
11256     static const bool is_signed = false;
11257     static const bool is_integer = true;
11258     static const bool is_exact = true;
11259     static const int radix = 2;
11260     static unsigned short epsilon() throw()
11261     { return 0; }
11262     static unsigned short round_error() throw()
11263     { return 0; }
11264    
11265     static const int min_exponent = 0;
11266     static const int min_exponent10 = 0;
11267     static const int max_exponent = 0;
11268     static const int max_exponent10 = 0;
11269    
11270     static const bool has_infinity = false;
11271     static const bool has_quiet_NaN = false;
11272     static const bool has_signaling_NaN = false;
11273     static const float_denorm_style has_denorm = denorm_absent;
11274     static const bool has_denorm_loss = false;
11275    
11276     static unsigned short infinity() throw()
11277     { return static_cast<unsigned short>(0); }
11278     static unsigned short quiet_NaN() throw()
11279     { return static_cast<unsigned short>(0); }
11280     static unsigned short signaling_NaN() throw()
11281     { return static_cast<unsigned short>(0); }
11282     static unsigned short denorm_min() throw()
11283     { return static_cast<unsigned short>(0); }
11284    
11285     static const bool is_iec559 = false;
11286     static const bool is_bounded = true;
11287     static const bool is_modulo = true;
11288    
11289     static const bool traps = true;
11290     static const bool tinyness_before = false;
11291     static const float_round_style round_style = round_toward_zero;
11292     };
11293    
11294     template<>
11295     struct numeric_limits<int>
11296     {
11297     static const bool is_specialized = true;
11298    
11299     static int min() throw()
11300     { return -2147483647 - 1; }
11301     static int max() throw()
11302     { return 2147483647; }
11303    
11304     static const int digits = (sizeof(int) * 8 - ((int)(-1) < 0));
11305     static const int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643 / 2136);
11306     static const bool is_signed = true;
11307     static const bool is_integer = true;
11308     static const bool is_exact = true;
11309     static const int radix = 2;
11310     static int epsilon() throw()
11311     { return 0; }
11312     static int round_error() throw()
11313     { return 0; }
11314    
11315     static const int min_exponent = 0;
11316     static const int min_exponent10 = 0;
11317     static const int max_exponent = 0;
11318     static const int max_exponent10 = 0;
11319    
11320     static const bool has_infinity = false;
11321     static const bool has_quiet_NaN = false;
11322     static const bool has_signaling_NaN = false;
11323     static const float_denorm_style has_denorm = denorm_absent;
11324     static const bool has_denorm_loss = false;
11325    
11326     static int infinity() throw()
11327     { return static_cast<int>(0); }
11328     static int quiet_NaN() throw()
11329     { return static_cast<int>(0); }
11330     static int signaling_NaN() throw()
11331     { return static_cast<int>(0); }
11332     static int denorm_min() throw()
11333     { return static_cast<int>(0); }
11334    
11335     static const bool is_iec559 = false;
11336     static const bool is_bounded = true;
11337     static const bool is_modulo = true;
11338    
11339     static const bool traps = true;
11340     static const bool tinyness_before = false;
11341     static const float_round_style round_style = round_toward_zero;
11342     };
11343    
11344     template<>
11345     struct numeric_limits<unsigned int>
11346     {
11347     static const bool is_specialized = true;
11348    
11349     static unsigned int min() throw()
11350     { return 0; }
11351     static unsigned int max() throw()
11352     { return 2147483647 * 2U + 1; }
11353    
11354     static const int digits = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0));
11355     static const int digits10 = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643 / 2136);
11356     static const bool is_signed = false;
11357     static const bool is_integer = true;
11358     static const bool is_exact = true;
11359     static const int radix = 2;
11360     static unsigned int epsilon() throw()
11361     { return 0; }
11362     static unsigned int round_error() throw()
11363     { return 0; }
11364    
11365     static const int min_exponent = 0;
11366     static const int min_exponent10 = 0;
11367     static const int max_exponent = 0;
11368     static const int max_exponent10 = 0;
11369    
11370     static const bool has_infinity = false;
11371     static const bool has_quiet_NaN = false;
11372     static const bool has_signaling_NaN = false;
11373     static const float_denorm_style has_denorm = denorm_absent;
11374     static const bool has_denorm_loss = false;
11375    
11376     static unsigned int infinity() throw()
11377     { return static_cast<unsigned int>(0); }
11378     static unsigned int quiet_NaN() throw()
11379     { return static_cast<unsigned int>(0); }
11380     static unsigned int signaling_NaN() throw()
11381     { return static_cast<unsigned int>(0); }
11382     static unsigned int denorm_min() throw()
11383     { return static_cast<unsigned int>(0); }
11384    
11385     static const bool is_iec559 = false;
11386     static const bool is_bounded = true;
11387     static const bool is_modulo = true;
11388    
11389     static const bool traps = true;
11390     static const bool tinyness_before = false;
11391     static const float_round_style round_style = round_toward_zero;
11392     };
11393    
11394     template<>
11395     struct numeric_limits<long>
11396     {
11397     static const bool is_specialized = true;
11398    
11399     static long min() throw()
11400     { return -2147483647L - 1; }
11401     static long max() throw()
11402     { return 2147483647L; }
11403    
11404     static const int digits = (sizeof(long) * 8 - ((long)(-1) < 0));
11405     static const int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643 / 2136);
11406     static const bool is_signed = true;
11407     static const bool is_integer = true;
11408     static const bool is_exact = true;
11409     static const int radix = 2;
11410     static long epsilon() throw()
11411     { return 0; }
11412     static long round_error() throw()
11413     { return 0; }
11414    
11415     static const int min_exponent = 0;
11416     static const int min_exponent10 = 0;
11417     static const int max_exponent = 0;
11418     static const int max_exponent10 = 0;
11419    
11420     static const bool has_infinity = false;
11421     static const bool has_quiet_NaN = false;
11422     static const bool has_signaling_NaN = false;
11423     static const float_denorm_style has_denorm = denorm_absent;
11424     static const bool has_denorm_loss = false;
11425    
11426     static long infinity() throw()
11427     { return static_cast<long>(0); }
11428     static long quiet_NaN() throw()
11429     { return static_cast<long>(0); }
11430     static long signaling_NaN() throw()
11431     { return static_cast<long>(0); }
11432     static long denorm_min() throw()
11433     { return static_cast<long>(0); }
11434    
11435     static const bool is_iec559 = false;
11436     static const bool is_bounded = true;
11437     static const bool is_modulo = true;
11438    
11439     static const bool traps = true;
11440     static const bool tinyness_before = false;
11441     static const float_round_style round_style = round_toward_zero;
11442     };
11443    
11444     template<>
11445     struct numeric_limits<unsigned long>
11446     {
11447     static const bool is_specialized = true;
11448    
11449     static unsigned long min() throw()
11450     { return 0; }
11451     static unsigned long max() throw()
11452     { return 2147483647L * 2UL + 1; }
11453    
11454     static const int digits = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0));
11455     static const int digits10 = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643 / 2136);
11456     static const bool is_signed = false;
11457     static const bool is_integer = true;
11458     static const bool is_exact = true;
11459     static const int radix = 2;
11460     static unsigned long epsilon() throw()
11461     { return 0; }
11462     static unsigned long round_error() throw()
11463     { return 0; }
11464    
11465     static const int min_exponent = 0;
11466     static const int min_exponent10 = 0;
11467     static const int max_exponent = 0;
11468     static const int max_exponent10 = 0;
11469    
11470     static const bool has_infinity = false;
11471     static const bool has_quiet_NaN = false;
11472     static const bool has_signaling_NaN = false;
11473     static const float_denorm_style has_denorm = denorm_absent;
11474     static const bool has_denorm_loss = false;
11475    
11476     static unsigned long infinity() throw()
11477     { return static_cast<unsigned long>(0); }
11478     static unsigned long quiet_NaN() throw()
11479     { return static_cast<unsigned long>(0); }
11480     static unsigned long signaling_NaN() throw()
11481     { return static_cast<unsigned long>(0); }
11482     static unsigned long denorm_min() throw()
11483     { return static_cast<unsigned long>(0); }
11484    
11485     static const bool is_iec559 = false;
11486     static const bool is_bounded = true;
11487     static const bool is_modulo = true;
11488    
11489     static const bool traps = true;
11490     static const bool tinyness_before = false;
11491     static const float_round_style round_style = round_toward_zero;
11492     };
11493    
11494     template<>
11495     struct numeric_limits<long long>
11496     {
11497     static const bool is_specialized = true;
11498    
11499     static long long min() throw()
11500     { return -9223372036854775807LL - 1; }
11501     static long long max() throw()
11502     { return 9223372036854775807LL; }
11503    
11504     static const int digits = (sizeof(long long) * 8 - ((long long)(-1) < 0));
11505     static const int digits10 = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643 / 2136);
11506     static const bool is_signed = true;
11507     static const bool is_integer = true;
11508     static const bool is_exact = true;
11509     static const int radix = 2;
11510     static long long epsilon() throw()
11511     { return 0; }
11512     static long long round_error() throw()
11513     { return 0; }
11514    
11515     static const int min_exponent = 0;
11516     static const int min_exponent10 = 0;
11517     static const int max_exponent = 0;
11518     static const int max_exponent10 = 0;
11519    
11520     static const bool has_infinity = false;
11521     static const bool has_quiet_NaN = false;
11522     static const bool has_signaling_NaN = false;
11523     static const float_denorm_style has_denorm = denorm_absent;
11524     static const bool has_denorm_loss = false;
11525    
11526     static long long infinity() throw()
11527     { return static_cast<long long>(0); }
11528     static long long quiet_NaN() throw()
11529     { return static_cast<long long>(0); }
11530     static long long signaling_NaN() throw()
11531     { return static_cast<long long>(0); }
11532     static long long denorm_min() throw()
11533     { return static_cast<long long>(0); }
11534    
11535     static const bool is_iec559 = false;
11536     static const bool is_bounded = true;
11537     static const bool is_modulo = true;
11538    
11539     static const bool traps = true;
11540     static const bool tinyness_before = false;
11541     static const float_round_style round_style = round_toward_zero;
11542     };
11543    
11544     template<>
11545     struct numeric_limits<unsigned long long>
11546     {
11547     static const bool is_specialized = true;
11548    
11549     static unsigned long long min() throw()
11550     { return 0; }
11551     static unsigned long long max() throw()
11552     { return 9223372036854775807LL * 2ULL + 1; }
11553    
11554     static const int digits = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0));
11555     static const int digits10 = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643 / 2136);
11556     static const bool is_signed = false;
11557     static const bool is_integer = true;
11558     static const bool is_exact = true;
11559     static const int radix = 2;
11560     static unsigned long long epsilon() throw()
11561     { return 0; }
11562     static unsigned long long round_error() throw()
11563     { return 0; }
11564    
11565     static const int min_exponent = 0;
11566     static const int min_exponent10 = 0;
11567     static const int max_exponent = 0;
11568     static const int max_exponent10 = 0;
11569    
11570     static const bool has_infinity = false;
11571     static const bool has_quiet_NaN = false;
11572     static const bool has_signaling_NaN = false;
11573     static const float_denorm_style has_denorm = denorm_absent;
11574     static const bool has_denorm_loss = false;
11575    
11576     static unsigned long long infinity() throw()
11577     { return static_cast<unsigned long long>(0); }
11578     static unsigned long long quiet_NaN() throw()
11579     { return static_cast<unsigned long long>(0); }
11580     static unsigned long long signaling_NaN() throw()
11581     { return static_cast<unsigned long long>(0); }
11582     static unsigned long long denorm_min() throw()
11583     { return static_cast<unsigned long long>(0); }
11584    
11585     static const bool is_iec559 = false;
11586     static const bool is_bounded = true;
11587     static const bool is_modulo = true;
11588    
11589     static const bool traps = true;
11590     static const bool tinyness_before = false;
11591     static const float_round_style round_style = round_toward_zero;
11592     };
11593    
11594     template<>
11595     struct numeric_limits<float>
11596     {
11597     static const bool is_specialized = true;
11598    
11599     static float min() throw()
11600     { return 1.17549435e-38F; }
11601     static float max() throw()
11602     { return 3.40282347e+38F; }
11603    
11604     static const int digits = 24;
11605     static const int digits10 = 6;
11606     static const bool is_signed = true;
11607     static const bool is_integer = false;
11608     static const bool is_exact = false;
11609     static const int radix = 2;
11610     static float epsilon() throw()
11611     { return 1.19209290e-7F; }
11612     static float round_error() throw()
11613     { return 0.5F; }
11614    
11615     static const int min_exponent = (-125);
11616     static const int min_exponent10 = (-37);
11617     static const int max_exponent = 128;
11618     static const int max_exponent10 = 38;
11619    
11620     static const bool has_infinity = 1;
11621     static const bool has_quiet_NaN = 1;
11622     static const bool has_signaling_NaN = has_quiet_NaN;
11623     static const float_denorm_style has_denorm
11624     = bool(1.40129846e-45F) ? denorm_present : denorm_absent;
11625     static const bool has_denorm_loss = false;
11626    
11627     static float infinity() throw()
11628     { return __builtin_huge_valf (); }
11629     static float quiet_NaN() throw()
11630     { return __builtin_nanf (""); }
11631     static float signaling_NaN() throw()
11632     { return __builtin_nansf (""); }
11633     static float denorm_min() throw()
11634     { return 1.40129846e-45F; }
11635    
11636     static const bool is_iec559
11637     = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
11638     static const bool is_bounded = true;
11639     static const bool is_modulo = false;
11640    
11641     static const bool traps = false;
11642     static const bool tinyness_before = false;
11643     static const float_round_style round_style = round_to_nearest;
11644     };
11645    
11646    
11647    
11648    
11649    
11650     template<>
11651     struct numeric_limits<double>
11652     {
11653     static const bool is_specialized = true;
11654    
11655     static double min() throw()
11656     { return 2.2250738585072014e-308; }
11657     static double max() throw()
11658     { return 1.7976931348623157e+308; }
11659    
11660     static const int digits = 53;
11661     static const int digits10 = 15;
11662     static const bool is_signed = true;
11663     static const bool is_integer = false;
11664     static const bool is_exact = false;
11665     static const int radix = 2;
11666     static double epsilon() throw()
11667     { return 2.2204460492503131e-16; }
11668     static double round_error() throw()
11669     { return 0.5; }
11670    
11671     static const int min_exponent = (-1021);
11672     static const int min_exponent10 = (-307);
11673     static const int max_exponent = 1024;
11674     static const int max_exponent10 = 308;
11675    
11676     static const bool has_infinity = 1;
11677     static const bool has_quiet_NaN = 1;
11678     static const bool has_signaling_NaN = has_quiet_NaN;
11679     static const float_denorm_style has_denorm
11680     = bool(4.9406564584124654e-324) ? denorm_present : denorm_absent;
11681     static const bool has_denorm_loss = false;
11682    
11683     static double infinity() throw()
11684     { return __builtin_huge_val(); }
11685     static double quiet_NaN() throw()
11686     { return __builtin_nan (""); }
11687     static double signaling_NaN() throw()
11688     { return __builtin_nans (""); }
11689     static double denorm_min() throw()
11690     { return 4.9406564584124654e-324; }
11691    
11692     static const bool is_iec559
11693     = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
11694     static const bool is_bounded = true;
11695     static const bool is_modulo = false;
11696    
11697     static const bool traps = false;
11698     static const bool tinyness_before = false;
11699     static const float_round_style round_style = round_to_nearest;
11700     };
11701    
11702    
11703    
11704    
11705    
11706     template<>
11707     struct numeric_limits<long double>
11708     {
11709     static const bool is_specialized = true;
11710    
11711     static long double min() throw()
11712     { return 3.36210314311209350626e-4932L; }
11713     static long double max() throw()
11714     { return 1.18973149535723176502e+4932L; }
11715    
11716     static const int digits = 64;
11717     static const int digits10 = 18;
11718     static const bool is_signed = true;
11719     static const bool is_integer = false;
11720     static const bool is_exact = false;
11721     static const int radix = 2;
11722     static long double epsilon() throw()
11723     { return 1.08420217248550443401e-19L; }
11724     static long double round_error() throw()
11725     { return 0.5L; }
11726    
11727     static const int min_exponent = (-16381);
11728     static const int min_exponent10 = (-4931);
11729     static const int max_exponent = 16384;
11730     static const int max_exponent10 = 4932;
11731    
11732     static const bool has_infinity = 1;
11733     static const bool has_quiet_NaN = 1;
11734     static const bool has_signaling_NaN = has_quiet_NaN;
11735     static const float_denorm_style has_denorm
11736     = bool(3.64519953188247460253e-4951L) ? denorm_present : denorm_absent;
11737     static const bool has_denorm_loss
11738     = false;
11739    
11740     static long double infinity() throw()
11741     { return __builtin_huge_vall (); }
11742     static long double quiet_NaN() throw()
11743     { return __builtin_nanl (""); }
11744     static long double signaling_NaN() throw()
11745     { return __builtin_nansl (""); }
11746     static long double denorm_min() throw()
11747     { return 3.64519953188247460253e-4951L; }
11748    
11749     static const bool is_iec559
11750     = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
11751     static const bool is_bounded = true;
11752     static const bool is_modulo = false;
11753    
11754     static const bool traps = false;
11755     static const bool tinyness_before = false;
11756     static const float_round_style round_style = round_to_nearest;
11757     };
11758    
11759    
11760    
11761    
11762    
11763     }
11764     # 62 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 2 3
11765    
11766     namespace std
11767     {
11768     # 73 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11769     template<typename _Tp>
11770     pair<_Tp*, ptrdiff_t>
11771     __get_temporary_buffer(ptrdiff_t __len, _Tp*)
11772     {
11773     const ptrdiff_t __max = numeric_limits<ptrdiff_t>::max() / sizeof(_Tp);
11774     if (__len > __max)
11775     __len = __max;
11776    
11777     while (__len > 0)
11778     {
11779     _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
11780     nothrow));
11781     if (__tmp != 0)
11782     return pair<_Tp*, ptrdiff_t>(__tmp, __len);
11783     __len /= 2;
11784     }
11785     return pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
11786     }
11787     # 109 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11788     template<typename _Tp>
11789     inline pair<_Tp*, ptrdiff_t>
11790     get_temporary_buffer(ptrdiff_t __len)
11791     { return std::__get_temporary_buffer(__len, static_cast<_Tp*>(0)); }
11792     # 121 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11793     template<typename _Tp>
11794     void
11795     return_temporary_buffer(_Tp* __p)
11796     { ::operator delete(__p, nothrow); }
11797     # 133 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11798     template<typename _Tp1>
11799     struct auto_ptr_ref
11800     {
11801     _Tp1* _M_ptr;
11802    
11803     explicit
11804     auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
11805     };
11806     # 174 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11807     template<typename _Tp>
11808     class auto_ptr
11809     {
11810     private:
11811     _Tp* _M_ptr;
11812    
11813     public:
11814    
11815     typedef _Tp element_type;
11816    
11817    
11818    
11819    
11820    
11821    
11822    
11823     explicit
11824     auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { }
11825     # 200 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11826     auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { }
11827     # 212 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11828     template<typename _Tp1>
11829     auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { }
11830     # 223 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11831     auto_ptr&
11832     operator=(auto_ptr& __a) throw()
11833     {
11834     reset(__a.release());
11835     return *this;
11836     }
11837     # 240 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11838     template<typename _Tp1>
11839     auto_ptr&
11840     operator=(auto_ptr<_Tp1>& __a) throw()
11841     {
11842     reset(__a.release());
11843     return *this;
11844     }
11845     # 260 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11846     ~auto_ptr() { delete _M_ptr; }
11847     # 270 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11848     element_type&
11849     operator*() const throw()
11850     {
11851     ;
11852     return *_M_ptr;
11853     }
11854    
11855    
11856    
11857    
11858    
11859    
11860    
11861     element_type*
11862     operator->() const throw()
11863     {
11864     ;
11865     return _M_ptr;
11866     }
11867     # 300 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11868     element_type*
11869     get() const throw() { return _M_ptr; }
11870     # 314 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11871     element_type*
11872     release() throw()
11873     {
11874     element_type* __tmp = _M_ptr;
11875     _M_ptr = 0;
11876     return __tmp;
11877     }
11878     # 329 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11879     void
11880     reset(element_type* __p = 0) throw()
11881     {
11882     if (__p != _M_ptr)
11883     {
11884     delete _M_ptr;
11885     _M_ptr = __p;
11886     }
11887     }
11888     # 350 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11889     auto_ptr(auto_ptr_ref<element_type> __ref) throw()
11890     : _M_ptr(__ref._M_ptr) { }
11891    
11892     auto_ptr&
11893     operator=(auto_ptr_ref<element_type> __ref) throw()
11894     {
11895     if (__ref._M_ptr != this->get())
11896     {
11897     delete _M_ptr;
11898     _M_ptr = __ref._M_ptr;
11899     }
11900     return *this;
11901     }
11902    
11903     template<typename _Tp1>
11904     operator auto_ptr_ref<_Tp1>() throw()
11905     { return auto_ptr_ref<_Tp1>(this->release()); }
11906    
11907     template<typename _Tp1>
11908     operator auto_ptr<_Tp1>() throw()
11909     { return auto_ptr<_Tp1>(this->release()); }
11910    
11911     };
11912     }
11913     # 49 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 2 3
11914    
11915    
11916    
11917     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 1 3
11918     # 64 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
11919     namespace std
11920     {
11921     # 101 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
11922     template <class _Arg, class _Result>
11923     struct unary_function
11924     {
11925     typedef _Arg argument_type;
11926    
11927    
11928     typedef _Result result_type;
11929     };
11930    
11931    
11932    
11933    
11934     template <class _Arg1, class _Arg2, class _Result>
11935     struct binary_function
11936     {
11937     typedef _Arg1 first_argument_type;
11938    
11939    
11940     typedef _Arg2 second_argument_type;
11941     typedef _Result result_type;
11942     };
11943     # 133 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
11944     template <class _Tp>
11945     struct plus : public binary_function<_Tp, _Tp, _Tp>
11946     {
11947     _Tp
11948     operator()(const _Tp& __x, const _Tp& __y) const
11949     { return __x + __y; }
11950     };
11951    
11952    
11953     template <class _Tp>
11954     struct minus : public binary_function<_Tp, _Tp, _Tp>
11955     {
11956     _Tp
11957     operator()(const _Tp& __x, const _Tp& __y) const
11958     { return __x - __y; }
11959     };
11960    
11961    
11962     template <class _Tp>
11963     struct multiplies : public binary_function<_Tp, _Tp, _Tp>
11964     {
11965     _Tp
11966     operator()(const _Tp& __x, const _Tp& __y) const
11967     { return __x * __y; }
11968     };
11969    
11970    
11971     template <class _Tp>
11972     struct divides : public binary_function<_Tp, _Tp, _Tp>
11973     {
11974     _Tp
11975     operator()(const _Tp& __x, const _Tp& __y) const
11976     { return __x / __y; }
11977     };
11978    
11979    
11980     template <class _Tp>
11981     struct modulus : public binary_function<_Tp, _Tp, _Tp>
11982     {
11983     _Tp
11984     operator()(const _Tp& __x, const _Tp& __y) const
11985     { return __x % __y; }
11986     };
11987    
11988    
11989     template <class _Tp>
11990     struct negate : public unary_function<_Tp, _Tp>
11991     {
11992     _Tp
11993     operator()(const _Tp& __x) const
11994     { return -__x; }
11995     };
11996     # 195 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
11997     template <class _Tp>
11998     struct equal_to : public binary_function<_Tp, _Tp, bool>
11999     {
12000     bool
12001     operator()(const _Tp& __x, const _Tp& __y) const
12002     { return __x == __y; }
12003     };
12004    
12005    
12006     template <class _Tp>
12007     struct not_equal_to : public binary_function<_Tp, _Tp, bool>
12008     {
12009     bool
12010     operator()(const _Tp& __x, const _Tp& __y) const
12011     { return __x != __y; }
12012     };
12013    
12014    
12015     template <class _Tp>
12016     struct greater : public binary_function<_Tp, _Tp, bool>
12017     {
12018     bool
12019     operator()(const _Tp& __x, const _Tp& __y) const
12020     { return __x > __y; }
12021     };
12022    
12023    
12024     template <class _Tp>
12025     struct less : public binary_function<_Tp, _Tp, bool>
12026     {
12027     bool
12028     operator()(const _Tp& __x, const _Tp& __y) const
12029     { return __x < __y; }
12030     };
12031    
12032    
12033     template <class _Tp>
12034     struct greater_equal : public binary_function<_Tp, _Tp, bool>
12035     {
12036     bool
12037     operator()(const _Tp& __x, const _Tp& __y) const
12038     { return __x >= __y; }
12039     };
12040    
12041    
12042     template <class _Tp>
12043     struct less_equal : public binary_function<_Tp, _Tp, bool>
12044     {
12045     bool
12046     operator()(const _Tp& __x, const _Tp& __y) const
12047     { return __x <= __y; }
12048     };
12049     # 256 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
12050     template <class _Tp>
12051     struct logical_and : public binary_function<_Tp, _Tp, bool>
12052     {
12053     bool
12054     operator()(const _Tp& __x, const _Tp& __y) const
12055     { return __x && __y; }
12056     };
12057    
12058    
12059     template <class _Tp>
12060     struct logical_or : public binary_function<_Tp, _Tp, bool>
12061     {
12062     bool
12063     operator()(const _Tp& __x, const _Tp& __y) const
12064     { return __x || __y; }
12065     };
12066    
12067    
12068     template <class _Tp>
12069     struct logical_not : public unary_function<_Tp, bool>
12070     {
12071     bool
12072     operator()(const _Tp& __x) const
12073     { return !__x; }
12074     };
12075     # 311 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
12076     template <class _Predicate>
12077     class unary_negate
12078     : public unary_function<typename _Predicate::argument_type, bool>
12079     {
12080     protected:
12081     _Predicate _M_pred;
12082     public:
12083     explicit
12084     unary_negate(const _Predicate& __x) : _M_pred(__x) {}
12085    
12086     bool
12087     operator()(const typename _Predicate::argument_type& __x) const
12088     { return !_M_pred(__x); }
12089     };
12090    
12091    
12092     template <class _Predicate>
12093     inline unary_negate<_Predicate>
12094     not1(const _Predicate& __pred)
12095     { return unary_negate<_Predicate>(__pred); }
12096    
12097    
12098     template <class _Predicate>
12099     class binary_negate
12100     : public binary_function<typename _Predicate::first_argument_type,
12101     typename _Predicate::second_argument_type,
12102     bool>
12103     {
12104     protected:
12105     _Predicate _M_pred;
12106     public:
12107     explicit
12108     binary_negate(const _Predicate& __x)
12109     : _M_pred(__x) { }
12110    
12111     bool
12112     operator()(const typename _Predicate::first_argument_type& __x,
12113     const typename _Predicate::second_argument_type& __y) const
12114     { return !_M_pred(__x, __y); }
12115     };
12116    
12117    
12118     template <class _Predicate>
12119     inline binary_negate<_Predicate>
12120     not2(const _Predicate& __pred)
12121     { return binary_negate<_Predicate>(__pred); }
12122     # 391 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
12123     template <class _Operation>
12124     class binder1st
12125     : public unary_function<typename _Operation::second_argument_type,
12126     typename _Operation::result_type>
12127     {
12128     protected:
12129     _Operation op;
12130     typename _Operation::first_argument_type value;
12131     public:
12132     binder1st(const _Operation& __x,
12133     const typename _Operation::first_argument_type& __y)
12134     : op(__x), value(__y) {}
12135    
12136     typename _Operation::result_type
12137     operator()(const typename _Operation::second_argument_type& __x) const
12138     { return op(value, __x); }
12139    
12140    
12141    
12142     typename _Operation::result_type
12143     operator()(typename _Operation::second_argument_type& __x) const
12144     { return op(value, __x); }
12145     };
12146    
12147    
12148     template <class _Operation, class _Tp>
12149     inline binder1st<_Operation>
12150     bind1st(const _Operation& __fn, const _Tp& __x)
12151     {
12152     typedef typename _Operation::first_argument_type _Arg1_type;
12153     return binder1st<_Operation>(__fn, _Arg1_type(__x));
12154     }
12155    
12156    
12157     template <class _Operation>
12158     class binder2nd
12159     : public unary_function<typename _Operation::first_argument_type,
12160     typename _Operation::result_type>
12161     {
12162     protected:
12163     _Operation op;
12164     typename _Operation::second_argument_type value;
12165     public:
12166     binder2nd(const _Operation& __x,
12167     const typename _Operation::second_argument_type& __y)
12168     : op(__x), value(__y) {}
12169    
12170     typename _Operation::result_type
12171     operator()(const typename _Operation::first_argument_type& __x) const
12172     { return op(__x, value); }
12173    
12174    
12175    
12176     typename _Operation::result_type
12177     operator()(typename _Operation::first_argument_type& __x) const
12178     { return op(__x, value); }
12179     };
12180    
12181    
12182     template <class _Operation, class _Tp>
12183     inline binder2nd<_Operation>
12184     bind2nd(const _Operation& __fn, const _Tp& __x)
12185     {
12186     typedef typename _Operation::second_argument_type _Arg2_type;
12187     return binder2nd<_Operation>(__fn, _Arg2_type(__x));
12188     }
12189     # 480 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
12190     template <class _Arg, class _Result>
12191     class pointer_to_unary_function : public unary_function<_Arg, _Result>
12192     {
12193     protected:
12194     _Result (*_M_ptr)(_Arg);
12195     public:
12196     pointer_to_unary_function() {}
12197    
12198     explicit
12199     pointer_to_unary_function(_Result (*__x)(_Arg))
12200     : _M_ptr(__x) {}
12201    
12202     _Result
12203     operator()(_Arg __x) const
12204     { return _M_ptr(__x); }
12205     };
12206    
12207    
12208     template <class _Arg, class _Result>
12209     inline pointer_to_unary_function<_Arg, _Result>
12210     ptr_fun(_Result (*__x)(_Arg))
12211     { return pointer_to_unary_function<_Arg, _Result>(__x); }
12212    
12213    
12214     template <class _Arg1, class _Arg2, class _Result>
12215     class pointer_to_binary_function
12216     : public binary_function<_Arg1, _Arg2, _Result>
12217     {
12218     protected:
12219     _Result (*_M_ptr)(_Arg1, _Arg2);
12220     public:
12221     pointer_to_binary_function() {}
12222    
12223     explicit
12224     pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))
12225     : _M_ptr(__x) {}
12226    
12227     _Result
12228     operator()(_Arg1 __x, _Arg2 __y) const
12229     { return _M_ptr(__x, __y); }
12230     };
12231    
12232    
12233     template <class _Arg1, class _Arg2, class _Result>
12234     inline pointer_to_binary_function<_Arg1, _Arg2, _Result>
12235     ptr_fun(_Result (*__x)(_Arg1, _Arg2))
12236     { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); }
12237    
12238    
12239     template <class _Tp>
12240     struct _Identity : public unary_function<_Tp,_Tp>
12241     {
12242     _Tp&
12243     operator()(_Tp& __x) const
12244     { return __x; }
12245    
12246     const _Tp&
12247     operator()(const _Tp& __x) const
12248     { return __x; }
12249     };
12250    
12251     template <class _Pair>
12252     struct _Select1st : public unary_function<_Pair,
12253     typename _Pair::first_type>
12254     {
12255     typename _Pair::first_type&
12256     operator()(_Pair& __x) const
12257     { return __x.first; }
12258    
12259     const typename _Pair::first_type&
12260     operator()(const _Pair& __x) const
12261     { return __x.first; }
12262     };
12263    
12264     template <class _Pair>
12265     struct _Select2nd : public unary_function<_Pair,
12266     typename _Pair::second_type>
12267     {
12268     typename _Pair::second_type&
12269     operator()(_Pair& __x) const
12270     { return __x.second; }
12271    
12272     const typename _Pair::second_type&
12273     operator()(const _Pair& __x) const
12274     { return __x.second; }
12275     };
12276     # 590 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
12277     template <class _Ret, class _Tp>
12278     class mem_fun_t : public unary_function<_Tp*, _Ret>
12279     {
12280     public:
12281     explicit
12282     mem_fun_t(_Ret (_Tp::*__pf)())
12283     : _M_f(__pf) {}
12284    
12285     _Ret
12286     operator()(_Tp* __p) const
12287     { return (__p->*_M_f)(); }
12288     private:
12289     _Ret (_Tp::*_M_f)();
12290     };
12291    
12292    
12293     template <class _Ret, class _Tp>
12294     class const_mem_fun_t : public unary_function<const _Tp*, _Ret>
12295     {
12296     public:
12297     explicit
12298     const_mem_fun_t(_Ret (_Tp::*__pf)() const)
12299     : _M_f(__pf) {}
12300    
12301     _Ret
12302     operator()(const _Tp* __p) const
12303     { return (__p->*_M_f)(); }
12304     private:
12305     _Ret (_Tp::*_M_f)() const;
12306     };
12307    
12308    
12309     template <class _Ret, class _Tp>
12310     class mem_fun_ref_t : public unary_function<_Tp, _Ret>
12311     {
12312     public:
12313     explicit
12314     mem_fun_ref_t(_Ret (_Tp::*__pf)())
12315     : _M_f(__pf) {}
12316    
12317     _Ret
12318     operator()(_Tp& __r) const
12319     { return (__r.*_M_f)(); }
12320     private:
12321     _Ret (_Tp::*_M_f)();
12322     };
12323    
12324    
12325     template <class _Ret, class _Tp>
12326     class const_mem_fun_ref_t : public unary_function<_Tp, _Ret>
12327     {
12328     public:
12329     explicit
12330     const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const)
12331     : _M_f(__pf) {}
12332    
12333     _Ret
12334     operator()(const _Tp& __r) const
12335     { return (__r.*_M_f)(); }
12336     private:
12337     _Ret (_Tp::*_M_f)() const;
12338     };
12339    
12340    
12341     template <class _Ret, class _Tp, class _Arg>
12342     class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret>
12343     {
12344     public:
12345     explicit
12346     mem_fun1_t(_Ret (_Tp::*__pf)(_Arg))
12347     : _M_f(__pf) {}
12348    
12349     _Ret
12350     operator()(_Tp* __p, _Arg __x) const
12351     { return (__p->*_M_f)(__x); }
12352     private:
12353     _Ret (_Tp::*_M_f)(_Arg);
12354     };
12355    
12356    
12357     template <class _Ret, class _Tp, class _Arg>
12358     class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret>
12359     {
12360     public:
12361     explicit
12362     const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const)
12363     : _M_f(__pf) {}
12364    
12365     _Ret
12366     operator()(const _Tp* __p, _Arg __x) const
12367     { return (__p->*_M_f)(__x); }
12368     private:
12369     _Ret (_Tp::*_M_f)(_Arg) const;
12370     };
12371    
12372    
12373     template <class _Ret, class _Tp, class _Arg>
12374     class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
12375     {
12376     public:
12377     explicit
12378     mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg))
12379     : _M_f(__pf) {}
12380    
12381     _Ret
12382     operator()(_Tp& __r, _Arg __x) const
12383     { return (__r.*_M_f)(__x); }
12384     private:
12385     _Ret (_Tp::*_M_f)(_Arg);
12386     };
12387    
12388    
12389     template <class _Ret, class _Tp, class _Arg>
12390     class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
12391     {
12392     public:
12393     explicit
12394     const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const)
12395     : _M_f(__pf) {}
12396    
12397     _Ret
12398     operator()(const _Tp& __r, _Arg __x) const
12399     { return (__r.*_M_f)(__x); }
12400     private:
12401     _Ret (_Tp::*_M_f)(_Arg) const;
12402     };
12403    
12404    
12405     template <class _Tp>
12406     class mem_fun_t<void, _Tp> : public unary_function<_Tp*, void>
12407     {
12408     public:
12409     explicit
12410     mem_fun_t(void (_Tp::*__pf)())
12411     : _M_f(__pf) {}
12412    
12413     void
12414     operator()(_Tp* __p) const
12415     { (__p->*_M_f)(); }
12416     private:
12417     void (_Tp::*_M_f)();
12418     };
12419    
12420    
12421     template <class _Tp>
12422     class const_mem_fun_t<void, _Tp> : public unary_function<const _Tp*, void>
12423     {
12424     public:
12425     explicit
12426     const_mem_fun_t(void (_Tp::*__pf)() const)
12427     : _M_f(__pf) {}
12428    
12429     void
12430     operator()(const _Tp* __p) const
12431     { (__p->*_M_f)(); }
12432     private:
12433     void (_Tp::*_M_f)() const;
12434     };
12435    
12436    
12437     template <class _Tp>
12438     class mem_fun_ref_t<void, _Tp> : public unary_function<_Tp, void>
12439     {
12440     public:
12441     explicit
12442     mem_fun_ref_t(void (_Tp::*__pf)())
12443     : _M_f(__pf) {}
12444    
12445     void
12446     operator()(_Tp& __r) const
12447     { (__r.*_M_f)(); }
12448     private:
12449     void (_Tp::*_M_f)();
12450     };
12451    
12452    
12453     template <class _Tp>
12454     class const_mem_fun_ref_t<void, _Tp> : public unary_function<_Tp, void>
12455     {
12456     public:
12457     explicit
12458     const_mem_fun_ref_t(void (_Tp::*__pf)() const)
12459     : _M_f(__pf) {}
12460    
12461     void
12462     operator()(const _Tp& __r) const
12463     { (__r.*_M_f)(); }
12464     private:
12465     void (_Tp::*_M_f)() const;
12466     };
12467    
12468    
12469     template <class _Tp, class _Arg>
12470     class mem_fun1_t<void, _Tp, _Arg> : public binary_function<_Tp*, _Arg, void>
12471     {
12472     public:
12473     explicit
12474     mem_fun1_t(void (_Tp::*__pf)(_Arg))
12475     : _M_f(__pf) {}
12476    
12477     void
12478     operator()(_Tp* __p, _Arg __x) const
12479     { (__p->*_M_f)(__x); }
12480     private:
12481     void (_Tp::*_M_f)(_Arg);
12482     };
12483    
12484    
12485     template <class _Tp, class _Arg>
12486     class const_mem_fun1_t<void, _Tp, _Arg>
12487     : public binary_function<const _Tp*, _Arg, void>
12488     {
12489     public:
12490     explicit
12491     const_mem_fun1_t(void (_Tp::*__pf)(_Arg) const)
12492     : _M_f(__pf) {}
12493    
12494     void
12495     operator()(const _Tp* __p, _Arg __x) const
12496     { (__p->*_M_f)(__x); }
12497     private:
12498     void (_Tp::*_M_f)(_Arg) const;
12499     };
12500    
12501    
12502     template <class _Tp, class _Arg>
12503     class mem_fun1_ref_t<void, _Tp, _Arg>
12504     : public binary_function<_Tp, _Arg, void>
12505     {
12506     public:
12507     explicit
12508     mem_fun1_ref_t(void (_Tp::*__pf)(_Arg))
12509     : _M_f(__pf) {}
12510    
12511     void
12512     operator()(_Tp& __r, _Arg __x) const
12513     { (__r.*_M_f)(__x); }
12514     private:
12515     void (_Tp::*_M_f)(_Arg);
12516     };
12517    
12518    
12519     template <class _Tp, class _Arg>
12520     class const_mem_fun1_ref_t<void, _Tp, _Arg>
12521     : public binary_function<_Tp, _Arg, void>
12522     {
12523     public:
12524     explicit
12525     const_mem_fun1_ref_t(void (_Tp::*__pf)(_Arg) const)
12526     : _M_f(__pf) {}
12527    
12528     void
12529     operator()(const _Tp& __r, _Arg __x) const
12530     { (__r.*_M_f)(__x); }
12531     private:
12532     void (_Tp::*_M_f)(_Arg) const;
12533     };
12534    
12535    
12536    
12537     template <class _Ret, class _Tp>
12538     inline mem_fun_t<_Ret, _Tp>
12539     mem_fun(_Ret (_Tp::*__f)())
12540     { return mem_fun_t<_Ret, _Tp>(__f); }
12541    
12542     template <class _Ret, class _Tp>
12543     inline const_mem_fun_t<_Ret, _Tp>
12544     mem_fun(_Ret (_Tp::*__f)() const)
12545     { return const_mem_fun_t<_Ret, _Tp>(__f); }
12546    
12547     template <class _Ret, class _Tp>
12548     inline mem_fun_ref_t<_Ret, _Tp>
12549     mem_fun_ref(_Ret (_Tp::*__f)())
12550     { return mem_fun_ref_t<_Ret, _Tp>(__f); }
12551    
12552     template <class _Ret, class _Tp>
12553     inline const_mem_fun_ref_t<_Ret, _Tp>
12554     mem_fun_ref(_Ret (_Tp::*__f)() const)
12555     { return const_mem_fun_ref_t<_Ret, _Tp>(__f); }
12556    
12557     template <class _Ret, class _Tp, class _Arg>
12558     inline mem_fun1_t<_Ret, _Tp, _Arg>
12559     mem_fun(_Ret (_Tp::*__f)(_Arg))
12560     { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
12561    
12562     template <class _Ret, class _Tp, class _Arg>
12563     inline const_mem_fun1_t<_Ret, _Tp, _Arg>
12564     mem_fun(_Ret (_Tp::*__f)(_Arg) const)
12565     { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
12566    
12567     template <class _Ret, class _Tp, class _Arg>
12568     inline mem_fun1_ref_t<_Ret, _Tp, _Arg>
12569     mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
12570     { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
12571    
12572     template <class _Ret, class _Tp, class _Arg>
12573     inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
12574     mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)
12575     { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
12576    
12577    
12578    
12579     }
12580     # 53 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 2 3
12581     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 1 3
12582     # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12583    
12584     # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12585    
12586     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/atomicity.h" 1 3
12587     # 33 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/atomicity.h" 3
12588     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h" 1 3
12589     # 33 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h" 3
12590     typedef int _Atomic_word;
12591     # 34 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/atomicity.h" 2 3
12592    
12593     namespace __gnu_cxx
12594     {
12595     _Atomic_word
12596     __attribute__ ((__unused__))
12597     __exchange_and_add(volatile _Atomic_word* __mem, int __val);
12598    
12599     void
12600     __attribute__ ((__unused__))
12601     __atomic_add(volatile _Atomic_word* __mem, int __val);
12602     }
12603     # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 2 3
12604    
12605    
12606     namespace std
12607     {
12608     # 109 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12609     template<typename _CharT, typename _Traits, typename _Alloc>
12610     class basic_string
12611     {
12612    
12613     public:
12614     typedef _Traits traits_type;
12615     typedef typename _Traits::char_type value_type;
12616     typedef _Alloc allocator_type;
12617     typedef typename _Alloc::size_type size_type;
12618     typedef typename _Alloc::difference_type difference_type;
12619     typedef typename _Alloc::reference reference;
12620     typedef typename _Alloc::const_reference const_reference;
12621     typedef typename _Alloc::pointer pointer;
12622     typedef typename _Alloc::const_pointer const_pointer;
12623     typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator;
12624     typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
12625     const_iterator;
12626     typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
12627     typedef std::reverse_iterator<iterator> reverse_iterator;
12628    
12629     private:
12630     # 144 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12631     struct _Rep_base
12632     {
12633     size_type _M_length;
12634     size_type _M_capacity;
12635     _Atomic_word _M_refcount;
12636     };
12637    
12638     struct _Rep : _Rep_base
12639     {
12640    
12641     typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
12642     # 169 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12643     static const size_type _S_max_size;
12644     static const _CharT _S_terminal;
12645    
12646    
12647    
12648     static size_type _S_empty_rep_storage[];
12649    
12650     static _Rep&
12651     _S_empty_rep()
12652     { return *reinterpret_cast<_Rep*>(&_S_empty_rep_storage); }
12653    
12654     bool
12655     _M_is_leaked() const
12656     { return this->_M_refcount < 0; }
12657    
12658     bool
12659     _M_is_shared() const
12660     { return this->_M_refcount > 0; }
12661    
12662     void
12663     _M_set_leaked()
12664     { this->_M_refcount = -1; }
12665    
12666     void
12667     _M_set_sharable()
12668     { this->_M_refcount = 0; }
12669    
12670     _CharT*
12671     _M_refdata() throw()
12672     { return reinterpret_cast<_CharT*>(this + 1); }
12673    
12674     _CharT*
12675     _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)
12676     {
12677     return (!_M_is_leaked() && __alloc1 == __alloc2)
12678     ? _M_refcopy() : _M_clone(__alloc1);
12679     }
12680    
12681    
12682     static _Rep*
12683     _S_create(size_type, size_type, const _Alloc&);
12684    
12685     void
12686     _M_dispose(const _Alloc& __a)
12687     {
12688    
12689     if (__builtin_expect(this != &_S_empty_rep(), false))
12690    
12691     if (__gnu_cxx::__exchange_and_add(&this->_M_refcount, -1) <= 0)
12692     _M_destroy(__a);
12693     }
12694    
12695     void
12696     _M_destroy(const _Alloc&) throw();
12697    
12698     _CharT*
12699     _M_refcopy() throw()
12700     {
12701    
12702     if (__builtin_expect(this != &_S_empty_rep(), false))
12703    
12704     __gnu_cxx::__atomic_add(&this->_M_refcount, 1);
12705     return _M_refdata();
12706     }
12707    
12708     _CharT*
12709     _M_clone(const _Alloc&, size_type __res = 0);
12710     };
12711    
12712    
12713     struct _Alloc_hider : _Alloc
12714     {
12715     _Alloc_hider(_CharT* __dat, const _Alloc& __a)
12716     : _Alloc(__a), _M_p(__dat) { }
12717    
12718     _CharT* _M_p;
12719     };
12720    
12721     public:
12722    
12723    
12724    
12725    
12726    
12727     static const size_type npos = static_cast<size_type>(-1);
12728    
12729     private:
12730    
12731     mutable _Alloc_hider _M_dataplus;
12732    
12733     _CharT*
12734     _M_data() const
12735     { return _M_dataplus._M_p; }
12736    
12737     _CharT*
12738     _M_data(_CharT* __p)
12739     { return (_M_dataplus._M_p = __p); }
12740    
12741     _Rep*
12742     _M_rep() const
12743     { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
12744    
12745    
12746    
12747     iterator
12748     _M_ibegin() const { return iterator(_M_data()); }
12749    
12750     iterator
12751     _M_iend() const { return iterator(_M_data() + this->size()); }
12752    
12753     void
12754     _M_leak()
12755     {
12756     if (!_M_rep()->_M_is_leaked())
12757     _M_leak_hard();
12758     }
12759    
12760     size_type
12761     _M_check(size_type __pos, const char* __s) const
12762     {
12763     if (__pos > this->size())
12764     __throw_out_of_range((__s));
12765     return __pos;
12766     }
12767    
12768    
12769     size_type
12770     _M_limit(size_type __pos, size_type __off) const
12771     {
12772     const bool __testoff = __off < this->size() - __pos;
12773     return __testoff ? __off : this->size() - __pos;
12774     }
12775    
12776    
12777    
12778     template<class _Iterator>
12779     static void
12780     _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
12781     {
12782     for (; __k1 != __k2; ++__k1, ++__p)
12783     traits_type::assign(*__p, *__k1);
12784     }
12785    
12786     static void
12787     _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2)
12788     { _S_copy_chars(__p, __k1.base(), __k2.base()); }
12789    
12790     static void
12791     _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
12792     { _S_copy_chars(__p, __k1.base(), __k2.base()); }
12793    
12794     static void
12795     _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2)
12796     { traits_type::copy(__p, __k1, __k2 - __k1); }
12797    
12798     static void
12799     _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
12800     { traits_type::copy(__p, __k1, __k2 - __k1); }
12801    
12802     void
12803     _M_mutate(size_type __pos, size_type __len1, size_type __len2);
12804    
12805     void
12806     _M_leak_hard();
12807    
12808     static _Rep&
12809     _S_empty_rep()
12810     { return _Rep::_S_empty_rep(); }
12811    
12812     public:
12813    
12814    
12815    
12816    
12817    
12818    
12819    
12820     inline
12821     basic_string();
12822    
12823    
12824    
12825    
12826     explicit
12827     basic_string(const _Alloc& __a);
12828    
12829    
12830    
12831    
12832    
12833    
12834     basic_string(const basic_string& __str);
12835    
12836    
12837    
12838    
12839    
12840    
12841     basic_string(const basic_string& __str, size_type __pos,
12842     size_type __n = npos);
12843    
12844    
12845    
12846    
12847    
12848    
12849    
12850     basic_string(const basic_string& __str, size_type __pos,
12851     size_type __n, const _Alloc& __a);
12852     # 388 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12853     basic_string(const _CharT* __s, size_type __n,
12854     const _Alloc& __a = _Alloc());
12855    
12856    
12857    
12858    
12859    
12860     basic_string(const _CharT* __s, const _Alloc& __a = _Alloc());
12861    
12862    
12863    
12864    
12865    
12866    
12867     basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc());
12868    
12869    
12870    
12871    
12872    
12873    
12874    
12875     template<class _InputIterator>
12876     basic_string(_InputIterator __beg, _InputIterator __end,
12877     const _Alloc& __a = _Alloc());
12878    
12879    
12880    
12881    
12882     ~basic_string()
12883     { _M_rep()->_M_dispose(this->get_allocator()); }
12884    
12885    
12886    
12887    
12888    
12889     basic_string&
12890     operator=(const basic_string& __str)
12891     {
12892     this->assign(__str);
12893     return *this;
12894     }
12895    
12896    
12897    
12898    
12899    
12900     basic_string&
12901     operator=(const _CharT* __s)
12902     {
12903     this->assign(__s);
12904     return *this;
12905     }
12906     # 449 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12907     basic_string&
12908     operator=(_CharT __c)
12909     {
12910     this->assign(1, __c);
12911     return *this;
12912     }
12913    
12914    
12915    
12916    
12917    
12918    
12919     iterator
12920     begin()
12921     {
12922     _M_leak();
12923     return iterator(_M_data());
12924     }
12925    
12926    
12927    
12928    
12929    
12930     const_iterator
12931     begin() const
12932     { return const_iterator(_M_data()); }
12933    
12934    
12935    
12936    
12937    
12938     iterator
12939     end()
12940     {
12941     _M_leak();
12942     return iterator(_M_data() + this->size());
12943     }
12944    
12945    
12946    
12947    
12948    
12949     const_iterator
12950     end() const
12951     { return const_iterator(_M_data() + this->size()); }
12952    
12953    
12954    
12955    
12956    
12957    
12958     reverse_iterator
12959     rbegin()
12960     { return reverse_iterator(this->end()); }
12961    
12962    
12963    
12964    
12965    
12966    
12967     const_reverse_iterator
12968     rbegin() const
12969     { return const_reverse_iterator(this->end()); }
12970    
12971    
12972    
12973    
12974    
12975    
12976     reverse_iterator
12977     rend()
12978     { return reverse_iterator(this->begin()); }
12979    
12980    
12981    
12982    
12983    
12984    
12985     const_reverse_iterator
12986     rend() const
12987     { return const_reverse_iterator(this->begin()); }
12988    
12989     public:
12990    
12991    
12992    
12993     size_type
12994     size() const { return _M_rep()->_M_length; }
12995    
12996    
12997    
12998     size_type
12999     length() const { return _M_rep()->_M_length; }
13000    
13001    
13002     size_type
13003     max_size() const { return _Rep::_S_max_size; }
13004     # 557 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13005     void
13006     resize(size_type __n, _CharT __c);
13007     # 570 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13008     void
13009     resize(size_type __n) { this->resize(__n, _CharT()); }
13010    
13011    
13012    
13013    
13014    
13015     size_type
13016     capacity() const { return _M_rep()->_M_capacity; }
13017     # 597 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13018     void
13019     reserve(size_type __res_arg = 0);
13020    
13021    
13022    
13023    
13024     void
13025     clear() { _M_mutate(0, this->size(), 0); }
13026    
13027    
13028    
13029    
13030     bool
13031     empty() const { return this->size() == 0; }
13032     # 623 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13033     const_reference
13034     operator[] (size_type __pos) const
13035     {
13036     ;
13037     return _M_data()[__pos];
13038     }
13039     # 640 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13040     reference
13041     operator[](size_type __pos)
13042     {
13043     ;
13044     _M_leak();
13045     return _M_data()[__pos];
13046     }
13047     # 658 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13048     const_reference
13049     at(size_type __n) const
13050     {
13051     if (__n >= this->size())
13052     __throw_out_of_range(("basic_string::at"));
13053     return _M_data()[__n];
13054     }
13055     # 677 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13056     reference
13057     at(size_type __n)
13058     {
13059     if (__n >= size())
13060     __throw_out_of_range(("basic_string::at"));
13061     _M_leak();
13062     return _M_data()[__n];
13063     }
13064    
13065    
13066    
13067    
13068    
13069    
13070    
13071     basic_string&
13072     operator+=(const basic_string& __str) { return this->append(__str); }
13073    
13074    
13075    
13076    
13077    
13078    
13079     basic_string&
13080     operator+=(const _CharT* __s) { return this->append(__s); }
13081    
13082    
13083    
13084    
13085    
13086    
13087     basic_string&
13088     operator+=(_CharT __c) { return this->append(size_type(1), __c); }
13089    
13090    
13091    
13092    
13093    
13094    
13095     basic_string&
13096     append(const basic_string& __str);
13097     # 731 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13098     basic_string&
13099     append(const basic_string& __str, size_type __pos, size_type __n);
13100    
13101    
13102    
13103    
13104    
13105    
13106    
13107     basic_string&
13108     append(const _CharT* __s, size_type __n);
13109    
13110    
13111    
13112    
13113    
13114    
13115     basic_string&
13116     append(const _CharT* __s)
13117     {
13118     ;
13119     return this->append(__s, traits_type::length(__s));
13120     }
13121     # 763 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13122     basic_string&
13123     append(size_type __n, _CharT __c)
13124     { return _M_replace_aux(this->size(), size_type(0), __n, __c); }
13125     # 775 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13126     template<class _InputIterator>
13127     basic_string&
13128     append(_InputIterator __first, _InputIterator __last)
13129     { return this->replace(_M_iend(), _M_iend(), __first, __last); }
13130    
13131    
13132    
13133    
13134    
13135     void
13136     push_back(_CharT __c)
13137     { _M_replace_aux(this->size(), size_type(0), size_type(1), __c); }
13138    
13139    
13140    
13141    
13142    
13143    
13144     basic_string&
13145     assign(const basic_string& __str);
13146     # 808 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13147     basic_string&
13148     assign(const basic_string& __str, size_type __pos, size_type __n)
13149     { return this->assign(__str._M_data()
13150     + __str._M_check(__pos, "basic_string::assign"),
13151     __str._M_limit(__pos, __n)); }
13152     # 824 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13153     basic_string&
13154     assign(const _CharT* __s, size_type __n);
13155     # 836 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13156     basic_string&
13157     assign(const _CharT* __s)
13158     {
13159     ;
13160     return this->assign(__s, traits_type::length(__s));
13161     }
13162     # 852 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13163     basic_string&
13164     assign(size_type __n, _CharT __c)
13165     { return _M_replace_aux(size_type(0), this->size(), __n, __c); }
13166     # 864 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13167     template<class _InputIterator>
13168     basic_string&
13169     assign(_InputIterator __first, _InputIterator __last)
13170     { return this->replace(_M_ibegin(), _M_iend(), __first, __last); }
13171     # 881 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13172     void
13173     insert(iterator __p, size_type __n, _CharT __c)
13174     { this->replace(__p, __p, __n, __c); }
13175     # 896 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13176     template<class _InputIterator>
13177     void insert(iterator __p, _InputIterator __beg, _InputIterator __end)
13178     { this->replace(__p, __p, __beg, __end); }
13179     # 911 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13180     basic_string&
13181     insert(size_type __pos1, const basic_string& __str)
13182     { return this->insert(__pos1, __str, size_type(0), __str.size()); }
13183     # 933 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13184     basic_string&
13185     insert(size_type __pos1, const basic_string& __str,
13186     size_type __pos2, size_type __n)
13187     { return this->insert(__pos1, __str._M_data()
13188     + __str._M_check(__pos2, "basic_string::insert"),
13189     __str._M_limit(__pos2, __n)); }
13190     # 956 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13191     basic_string&
13192     insert(size_type __pos, const _CharT* __s, size_type __n);
13193     # 974 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13194     basic_string&
13195     insert(size_type __pos, const _CharT* __s)
13196     {
13197     ;
13198     return this->insert(__pos, __s, traits_type::length(__s));
13199     }
13200     # 997 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13201     basic_string&
13202     insert(size_type __pos, size_type __n, _CharT __c)
13203     { return _M_replace_aux(_M_check(__pos, "basic_string::insert"),
13204     size_type(0), __n, __c); }
13205     # 1014 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13206     iterator
13207     insert(iterator __p, _CharT __c)
13208     {
13209     ;
13210     const size_type __pos = __p - _M_ibegin();
13211     _M_replace_aux(__pos, size_type(0), size_type(1), __c);
13212     _M_rep()->_M_set_leaked();
13213     return this->_M_ibegin() + __pos;
13214     }
13215     # 1038 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13216     basic_string&
13217     erase(size_type __pos = 0, size_type __n = npos)
13218     { return _M_replace_safe(_M_check(__pos, "basic_string::erase"),
13219     _M_limit(__pos, __n), __null, size_type(0)); }
13220     # 1051 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13221     iterator
13222     erase(iterator __position)
13223     {
13224     ;
13225    
13226     const size_type __pos = __position - _M_ibegin();
13227     _M_replace_safe(__pos, size_type(1), __null, size_type(0));
13228     _M_rep()->_M_set_leaked();
13229     return _M_ibegin() + __pos;
13230     }
13231     # 1071 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13232     iterator
13233     erase(iterator __first, iterator __last)
13234     {
13235     ;
13236    
13237     const size_type __pos = __first - _M_ibegin();
13238     _M_replace_safe(__pos, __last - __first, __null, size_type(0));
13239     _M_rep()->_M_set_leaked();
13240     return _M_ibegin() + __pos;
13241     }
13242     # 1098 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13243     basic_string&
13244     replace(size_type __pos, size_type __n, const basic_string& __str)
13245     { return this->replace(__pos, __n, __str._M_data(), __str.size()); }
13246     # 1120 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13247     basic_string&
13248     replace(size_type __pos1, size_type __n1, const basic_string& __str,
13249     size_type __pos2, size_type __n2)
13250     { return this->replace(__pos1, __n1, __str._M_data()
13251     + __str._M_check(__pos2, "basic_string::replace"),
13252     __str._M_limit(__pos2, __n2)); }
13253     # 1144 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13254     basic_string&
13255     replace(size_type __pos, size_type __n1, const _CharT* __s,
13256     size_type __n2);
13257     # 1163 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13258     basic_string&
13259     replace(size_type __pos, size_type __n1, const _CharT* __s)
13260     {
13261     ;
13262     return this->replace(__pos, __n1, __s, traits_type::length(__s));
13263     }
13264     # 1186 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13265     basic_string&
13266     replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
13267     { return _M_replace_aux(_M_check(__pos, "basic_string::replace"),
13268     _M_limit(__pos, __n1), __n2, __c); }
13269     # 1204 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13270     basic_string&
13271     replace(iterator __i1, iterator __i2, const basic_string& __str)
13272     { return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
13273     # 1222 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13274     basic_string&
13275     replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n)
13276     {
13277     ;
13278    
13279     return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n);
13280     }
13281     # 1243 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13282     basic_string&
13283     replace(iterator __i1, iterator __i2, const _CharT* __s)
13284     {
13285     ;
13286     return this->replace(__i1, __i2, __s, traits_type::length(__s));
13287     }
13288     # 1264 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13289     basic_string&
13290     replace(iterator __i1, iterator __i2, size_type __n, _CharT __c)
13291     {
13292     ;
13293    
13294     return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c);
13295     }
13296     # 1286 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13297     template<class _InputIterator>
13298     basic_string&
13299     replace(iterator __i1, iterator __i2,
13300     _InputIterator __k1, _InputIterator __k2)
13301     {
13302     ;
13303    
13304     ;
13305     typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
13306     return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral());
13307     }
13308    
13309    
13310    
13311     basic_string&
13312     replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2)
13313     {
13314     ;
13315    
13316     ;
13317     return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
13318     __k1, __k2 - __k1);
13319     }
13320    
13321     basic_string&
13322     replace(iterator __i1, iterator __i2,
13323     const _CharT* __k1, const _CharT* __k2)
13324     {
13325     ;
13326    
13327     ;
13328     return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
13329     __k1, __k2 - __k1);
13330     }
13331    
13332     basic_string&
13333     replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2)
13334     {
13335     ;
13336    
13337     ;
13338     return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
13339     __k1.base(), __k2 - __k1);
13340     }
13341    
13342     basic_string&
13343     replace(iterator __i1, iterator __i2,
13344     const_iterator __k1, const_iterator __k2)
13345     {
13346     ;
13347    
13348     ;
13349     return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
13350     __k1.base(), __k2 - __k1);
13351     }
13352    
13353     private:
13354     template<class _Integer>
13355     basic_string&
13356     _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n,
13357     _Integer __val, __true_type)
13358     { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); }
13359    
13360     template<class _InputIterator>
13361     basic_string&
13362     _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
13363     _InputIterator __k2, __false_type);
13364    
13365     basic_string&
13366     _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
13367     _CharT __c)
13368     {
13369     if (this->max_size() - (this->size() - __n1) < __n2)
13370     __throw_length_error(("basic_string::_M_replace_aux"));
13371     _M_mutate(__pos1, __n1, __n2);
13372     if (__n2 == 1)
13373     _M_data()[__pos1] = __c;
13374     else if (__n2)
13375     traits_type::assign(_M_data() + __pos1, __n2, __c);
13376     return *this;
13377     }
13378    
13379     basic_string&
13380     _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
13381     size_type __n2)
13382     {
13383     _M_mutate(__pos1, __n1, __n2);
13384     if (__n2 == 1)
13385     _M_data()[__pos1] = *__s;
13386     else if (__n2)
13387     traits_type::copy(_M_data() + __pos1, __s, __n2);
13388     return *this;
13389     }
13390    
13391    
13392    
13393     template<class _InIterator>
13394     static _CharT*
13395     _S_construct_aux(_InIterator __beg, _InIterator __end,
13396     const _Alloc& __a, __false_type)
13397     {
13398     typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
13399     return _S_construct(__beg, __end, __a, _Tag());
13400     }
13401    
13402     template<class _InIterator>
13403     static _CharT*
13404     _S_construct_aux(_InIterator __beg, _InIterator __end,
13405     const _Alloc& __a, __true_type)
13406     { return _S_construct(static_cast<size_type>(__beg),
13407     static_cast<value_type>(__end), __a); }
13408    
13409     template<class _InIterator>
13410     static _CharT*
13411     _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a)
13412     {
13413     typedef typename _Is_integer<_InIterator>::_Integral _Integral;
13414     return _S_construct_aux(__beg, __end, __a, _Integral());
13415     }
13416    
13417    
13418     template<class _InIterator>
13419     static _CharT*
13420     _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
13421     input_iterator_tag);
13422    
13423    
13424    
13425     template<class _FwdIterator>
13426     static _CharT*
13427     _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a,
13428     forward_iterator_tag);
13429    
13430     static _CharT*
13431     _S_construct(size_type __req, _CharT __c, const _Alloc& __a);
13432    
13433     public:
13434     # 1435 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13435     size_type
13436     copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
13437     # 1445 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13438     void
13439     swap(basic_string& __s);
13440     # 1455 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13441     const _CharT*
13442     c_str() const { return _M_data(); }
13443    
13444    
13445    
13446    
13447    
13448    
13449    
13450     const _CharT*
13451     data() const { return _M_data(); }
13452    
13453    
13454    
13455    
13456     allocator_type
13457     get_allocator() const { return _M_dataplus; }
13458     # 1484 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13459     size_type
13460     find(const _CharT* __s, size_type __pos, size_type __n) const;
13461     # 1497 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13462     size_type
13463     find(const basic_string& __str, size_type __pos = 0) const
13464     { return this->find(__str.data(), __pos, __str.size()); }
13465     # 1511 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13466     size_type
13467     find(const _CharT* __s, size_type __pos = 0) const
13468     {
13469     ;
13470     return this->find(__s, __pos, traits_type::length(__s));
13471     }
13472     # 1528 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13473     size_type
13474     find(_CharT __c, size_type __pos = 0) const;
13475     # 1541 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13476     size_type
13477     rfind(const basic_string& __str, size_type __pos = npos) const
13478     { return this->rfind(__str.data(), __pos, __str.size()); }
13479     # 1556 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13480     size_type
13481     rfind(const _CharT* __s, size_type __pos, size_type __n) const;
13482     # 1569 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13483     size_type
13484     rfind(const _CharT* __s, size_type __pos = npos) const
13485     {
13486     ;
13487     return this->rfind(__s, __pos, traits_type::length(__s));
13488     }
13489     # 1586 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13490     size_type
13491     rfind(_CharT __c, size_type __pos = npos) const;
13492     # 1599 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13493     size_type
13494     find_first_of(const basic_string& __str, size_type __pos = 0) const
13495     { return this->find_first_of(__str.data(), __pos, __str.size()); }
13496     # 1614 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13497     size_type
13498     find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
13499     # 1627 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13500     size_type
13501     find_first_of(const _CharT* __s, size_type __pos = 0) const
13502     {
13503     ;
13504     return this->find_first_of(__s, __pos, traits_type::length(__s));
13505     }
13506     # 1646 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13507     size_type
13508     find_first_of(_CharT __c, size_type __pos = 0) const
13509     { return this->find(__c, __pos); }
13510     # 1660 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13511     size_type
13512     find_last_of(const basic_string& __str, size_type __pos = npos) const
13513     { return this->find_last_of(__str.data(), __pos, __str.size()); }
13514     # 1675 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13515     size_type
13516     find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
13517     # 1688 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13518     size_type
13519     find_last_of(const _CharT* __s, size_type __pos = npos) const
13520     {
13521     ;
13522     return this->find_last_of(__s, __pos, traits_type::length(__s));
13523     }
13524     # 1707 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13525     size_type
13526     find_last_of(_CharT __c, size_type __pos = npos) const
13527     { return this->rfind(__c, __pos); }
13528     # 1721 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13529     size_type
13530     find_first_not_of(const basic_string& __str, size_type __pos = 0) const
13531     { return this->find_first_not_of(__str.data(), __pos, __str.size()); }
13532     # 1736 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13533     size_type
13534     find_first_not_of(const _CharT* __s, size_type __pos,
13535     size_type __n) const;
13536     # 1750 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13537     size_type
13538     find_first_not_of(const _CharT* __s, size_type __pos = 0) const
13539     {
13540     ;
13541     return this->find_first_not_of(__s, __pos, traits_type::length(__s));
13542     }
13543     # 1767 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13544     size_type
13545     find_first_not_of(_CharT __c, size_type __pos = 0) const;
13546     # 1780 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13547     size_type
13548     find_last_not_of(const basic_string& __str, size_type __pos = npos) const
13549     { return this->find_last_not_of(__str.data(), __pos, __str.size()); }
13550     # 1796 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13551     size_type
13552     find_last_not_of(const _CharT* __s, size_type __pos,
13553     size_type __n) const;
13554     # 1809 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13555     size_type
13556     find_last_not_of(const _CharT* __s, size_type __pos = npos) const
13557     {
13558     ;
13559     return this->find_last_not_of(__s, __pos, traits_type::length(__s));
13560     }
13561     # 1826 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13562     size_type
13563     find_last_not_of(_CharT __c, size_type __pos = npos) const;
13564     # 1841 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13565     basic_string
13566     substr(size_type __pos = 0, size_type __n = npos) const
13567     { return basic_string(*this,
13568     _M_check(__pos, "basic_string::substr"), __n); }
13569     # 1859 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13570     int
13571     compare(const basic_string& __str) const
13572     {
13573     const size_type __size = this->size();
13574     const size_type __osize = __str.size();
13575     const size_type __len = std::min(__size, __osize);
13576    
13577     int __r = traits_type::compare(_M_data(), __str.data(), __len);
13578     if (!__r)
13579     __r = __size - __osize;
13580     return __r;
13581     }
13582     # 1889 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13583     int
13584     compare(size_type __pos, size_type __n, const basic_string& __str) const;
13585     # 1913 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13586     int
13587     compare(size_type __pos1, size_type __n1, const basic_string& __str,
13588     size_type __pos2, size_type __n2) const;
13589     # 1931 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13590     int
13591     compare(const _CharT* __s) const;
13592     # 1954 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13593     int
13594     compare(size_type __pos, size_type __n1, const _CharT* __s) const;
13595     # 1979 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13596     int
13597     compare(size_type __pos, size_type __n1, const _CharT* __s,
13598     size_type __n2) const;
13599     };
13600    
13601     template<typename _CharT, typename _Traits, typename _Alloc>
13602     inline basic_string<_CharT, _Traits, _Alloc>::
13603     basic_string()
13604    
13605     : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
13606     # 2000 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13607     template<typename _CharT, typename _Traits, typename _Alloc>
13608     basic_string<_CharT, _Traits, _Alloc>
13609     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13610     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13611     {
13612     basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
13613     __str.append(__rhs);
13614     return __str;
13615     }
13616    
13617    
13618    
13619    
13620    
13621    
13622    
13623     template<typename _CharT, typename _Traits, typename _Alloc>
13624     basic_string<_CharT,_Traits,_Alloc>
13625     operator+(const _CharT* __lhs,
13626     const basic_string<_CharT,_Traits,_Alloc>& __rhs);
13627    
13628    
13629    
13630    
13631    
13632    
13633    
13634     template<typename _CharT, typename _Traits, typename _Alloc>
13635     basic_string<_CharT,_Traits,_Alloc>
13636     operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs);
13637    
13638    
13639    
13640    
13641    
13642    
13643    
13644     template<typename _CharT, typename _Traits, typename _Alloc>
13645     inline basic_string<_CharT, _Traits, _Alloc>
13646     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13647     const _CharT* __rhs)
13648     {
13649     basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
13650     __str.append(__rhs);
13651     return __str;
13652     }
13653    
13654    
13655    
13656    
13657    
13658    
13659    
13660     template<typename _CharT, typename _Traits, typename _Alloc>
13661     inline basic_string<_CharT, _Traits, _Alloc>
13662     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
13663     {
13664     typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
13665     typedef typename __string_type::size_type __size_type;
13666     __string_type __str(__lhs);
13667     __str.append(__size_type(1), __rhs);
13668     return __str;
13669     }
13670     # 2071 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13671     template<typename _CharT, typename _Traits, typename _Alloc>
13672     inline bool
13673     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13674     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13675     { return __lhs.compare(__rhs) == 0; }
13676    
13677    
13678    
13679    
13680    
13681    
13682    
13683     template<typename _CharT, typename _Traits, typename _Alloc>
13684     inline bool
13685     operator==(const _CharT* __lhs,
13686     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13687     { return __rhs.compare(__lhs) == 0; }
13688    
13689    
13690    
13691    
13692    
13693    
13694    
13695     template<typename _CharT, typename _Traits, typename _Alloc>
13696     inline bool
13697     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13698     const _CharT* __rhs)
13699     { return __lhs.compare(__rhs) == 0; }
13700     # 2108 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13701     template<typename _CharT, typename _Traits, typename _Alloc>
13702     inline bool
13703     operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13704     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13705     { return __rhs.compare(__lhs) != 0; }
13706    
13707    
13708    
13709    
13710    
13711    
13712    
13713     template<typename _CharT, typename _Traits, typename _Alloc>
13714     inline bool
13715     operator!=(const _CharT* __lhs,
13716     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13717     { return __rhs.compare(__lhs) != 0; }
13718    
13719    
13720    
13721    
13722    
13723    
13724    
13725     template<typename _CharT, typename _Traits, typename _Alloc>
13726     inline bool
13727     operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13728     const _CharT* __rhs)
13729     { return __lhs.compare(__rhs) != 0; }
13730     # 2145 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13731     template<typename _CharT, typename _Traits, typename _Alloc>
13732     inline bool
13733     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13734     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13735     { return __lhs.compare(__rhs) < 0; }
13736    
13737    
13738    
13739    
13740    
13741    
13742    
13743     template<typename _CharT, typename _Traits, typename _Alloc>
13744     inline bool
13745     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13746     const _CharT* __rhs)
13747     { return __lhs.compare(__rhs) < 0; }
13748    
13749    
13750    
13751    
13752    
13753    
13754    
13755     template<typename _CharT, typename _Traits, typename _Alloc>
13756     inline bool
13757     operator<(const _CharT* __lhs,
13758     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13759     { return __rhs.compare(__lhs) > 0; }
13760     # 2182 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13761     template<typename _CharT, typename _Traits, typename _Alloc>
13762     inline bool
13763     operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13764     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13765     { return __lhs.compare(__rhs) > 0; }
13766    
13767    
13768    
13769    
13770    
13771    
13772    
13773     template<typename _CharT, typename _Traits, typename _Alloc>
13774     inline bool
13775     operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13776     const _CharT* __rhs)
13777     { return __lhs.compare(__rhs) > 0; }
13778    
13779    
13780    
13781    
13782    
13783    
13784    
13785     template<typename _CharT, typename _Traits, typename _Alloc>
13786     inline bool
13787     operator>(const _CharT* __lhs,
13788     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13789     { return __rhs.compare(__lhs) < 0; }
13790     # 2219 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13791     template<typename _CharT, typename _Traits, typename _Alloc>
13792     inline bool
13793     operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13794     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13795     { return __lhs.compare(__rhs) <= 0; }
13796    
13797    
13798    
13799    
13800    
13801    
13802    
13803     template<typename _CharT, typename _Traits, typename _Alloc>
13804     inline bool
13805     operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13806     const _CharT* __rhs)
13807     { return __lhs.compare(__rhs) <= 0; }
13808    
13809    
13810    
13811    
13812    
13813    
13814    
13815     template<typename _CharT, typename _Traits, typename _Alloc>
13816     inline bool
13817     operator<=(const _CharT* __lhs,
13818     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13819     { return __rhs.compare(__lhs) >= 0; }
13820     # 2256 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13821     template<typename _CharT, typename _Traits, typename _Alloc>
13822     inline bool
13823     operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13824     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13825     { return __lhs.compare(__rhs) >= 0; }
13826    
13827    
13828    
13829    
13830    
13831    
13832    
13833     template<typename _CharT, typename _Traits, typename _Alloc>
13834     inline bool
13835     operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13836     const _CharT* __rhs)
13837     { return __lhs.compare(__rhs) >= 0; }
13838    
13839    
13840    
13841    
13842    
13843    
13844    
13845     template<typename _CharT, typename _Traits, typename _Alloc>
13846     inline bool
13847     operator>=(const _CharT* __lhs,
13848     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13849     { return __rhs.compare(__lhs) <= 0; }
13850     # 2293 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13851     template<typename _CharT, typename _Traits, typename _Alloc>
13852     inline void
13853     swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,
13854     basic_string<_CharT, _Traits, _Alloc>& __rhs)
13855     { __lhs.swap(__rhs); }
13856     # 2310 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13857     template<typename _CharT, typename _Traits, typename _Alloc>
13858     basic_istream<_CharT, _Traits>&
13859     operator>>(basic_istream<_CharT, _Traits>& __is,
13860     basic_string<_CharT, _Traits, _Alloc>& __str);
13861     # 2324 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13862     template<typename _CharT, typename _Traits, typename _Alloc>
13863     basic_ostream<_CharT, _Traits>&
13864     operator<<(basic_ostream<_CharT, _Traits>& __os,
13865     const basic_string<_CharT, _Traits, _Alloc>& __str);
13866     # 2342 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13867     template<typename _CharT, typename _Traits, typename _Alloc>
13868     basic_istream<_CharT,_Traits>&
13869     getline(basic_istream<_CharT, _Traits>& __is,
13870     basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim);
13871     # 2359 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13872     template<typename _CharT, typename _Traits, typename _Alloc>
13873     inline basic_istream<_CharT,_Traits>&
13874     getline(basic_istream<_CharT, _Traits>& __is,
13875     basic_string<_CharT, _Traits, _Alloc>& __str);
13876     }
13877     # 54 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 2 3
13878    
13879    
13880     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/algorithm" 1 3
13881     # 64 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/algorithm" 3
13882    
13883     # 65 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/algorithm" 3
13884    
13885    
13886    
13887    
13888     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 1 3
13889     # 64 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
13890     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 1 3
13891     # 65 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
13892     namespace std
13893     {
13894    
13895    
13896    
13897     template<typename _RandomAccessIterator, typename _Distance>
13898     bool
13899     __is_heap(_RandomAccessIterator __first, _Distance __n)
13900     {
13901     _Distance __parent = 0;
13902     for (_Distance __child = 1; __child < __n; ++__child)
13903     {
13904     if (__first[__parent] < __first[__child])
13905     return false;
13906     if ((__child & 1) == 0)
13907     ++__parent;
13908     }
13909     return true;
13910     }
13911    
13912     template<typename _RandomAccessIterator, typename _Distance,
13913     typename _StrictWeakOrdering>
13914     bool
13915     __is_heap(_RandomAccessIterator __first, _StrictWeakOrdering __comp,
13916     _Distance __n)
13917     {
13918     _Distance __parent = 0;
13919     for (_Distance __child = 1; __child < __n; ++__child)
13920     {
13921     if (__comp(__first[__parent], __first[__child]))
13922     return false;
13923     if ((__child & 1) == 0)
13924     ++__parent;
13925     }
13926     return true;
13927     }
13928    
13929     template<typename _RandomAccessIterator>
13930     bool
13931     __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
13932     { return std::__is_heap(__first, std::distance(__first, __last)); }
13933    
13934     template<typename _RandomAccessIterator, typename _StrictWeakOrdering>
13935     bool
13936     __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
13937     _StrictWeakOrdering __comp)
13938     { return std::__is_heap(__first, __comp, std::distance(__first, __last)); }
13939    
13940    
13941    
13942     template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
13943     void
13944     __push_heap(_RandomAccessIterator __first,
13945     _Distance __holeIndex, _Distance __topIndex, _Tp __value)
13946     {
13947     _Distance __parent = (__holeIndex - 1) / 2;
13948     while (__holeIndex > __topIndex && *(__first + __parent) < __value)
13949     {
13950     *(__first + __holeIndex) = *(__first + __parent);
13951     __holeIndex = __parent;
13952     __parent = (__holeIndex - 1) / 2;
13953     }
13954     *(__first + __holeIndex) = __value;
13955     }
13956     # 139 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
13957     template<typename _RandomAccessIterator>
13958     inline void
13959     push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
13960     {
13961     typedef typename iterator_traits<_RandomAccessIterator>::value_type
13962     _ValueType;
13963     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13964     _DistanceType;
13965    
13966    
13967    
13968    
13969    
13970     ;
13971    
13972    
13973     std::__push_heap(__first, _DistanceType((__last - __first) - 1),
13974     _DistanceType(0), _ValueType(*(__last - 1)));
13975     }
13976    
13977     template<typename _RandomAccessIterator, typename _Distance, typename _Tp,
13978     typename _Compare>
13979     void
13980     __push_heap(_RandomAccessIterator __first, _Distance __holeIndex,
13981     _Distance __topIndex, _Tp __value, _Compare __comp)
13982     {
13983     _Distance __parent = (__holeIndex - 1) / 2;
13984     while (__holeIndex > __topIndex
13985     && __comp(*(__first + __parent), __value))
13986     {
13987     *(__first + __holeIndex) = *(__first + __parent);
13988     __holeIndex = __parent;
13989     __parent = (__holeIndex - 1) / 2;
13990     }
13991     *(__first + __holeIndex) = __value;
13992     }
13993     # 187 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
13994     template<typename _RandomAccessIterator, typename _Compare>
13995     inline void
13996     push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
13997     _Compare __comp)
13998     {
13999     typedef typename iterator_traits<_RandomAccessIterator>::value_type
14000     _ValueType;
14001     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14002     _DistanceType;
14003    
14004    
14005    
14006    
14007     ;
14008     ;
14009    
14010     std::__push_heap(__first, _DistanceType((__last - __first) - 1),
14011     _DistanceType(0), _ValueType(*(__last - 1)), __comp);
14012     }
14013    
14014     template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
14015     void
14016     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
14017     _Distance __len, _Tp __value)
14018     {
14019     const _Distance __topIndex = __holeIndex;
14020     _Distance __secondChild = 2 * __holeIndex + 2;
14021     while (__secondChild < __len)
14022     {
14023     if (*(__first + __secondChild) < *(__first + (__secondChild - 1)))
14024     __secondChild--;
14025     *(__first + __holeIndex) = *(__first + __secondChild);
14026     __holeIndex = __secondChild;
14027     __secondChild = 2 * (__secondChild + 1);
14028     }
14029     if (__secondChild == __len)
14030     {
14031     *(__first + __holeIndex) = *(__first + (__secondChild - 1));
14032     __holeIndex = __secondChild - 1;
14033     }
14034     std::__push_heap(__first, __holeIndex, __topIndex, __value);
14035     }
14036    
14037     template<typename _RandomAccessIterator, typename _Tp>
14038     inline void
14039     __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
14040     _RandomAccessIterator __result, _Tp __value)
14041     {
14042     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14043     _Distance;
14044     *__result = *__first;
14045     std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
14046     __value);
14047     }
14048     # 251 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
14049     template<typename _RandomAccessIterator>
14050     inline void
14051     pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
14052     {
14053     typedef typename iterator_traits<_RandomAccessIterator>::value_type
14054     _ValueType;
14055    
14056    
14057    
14058    
14059    
14060     ;
14061     ;
14062    
14063     std::__pop_heap(__first, __last - 1, __last - 1,
14064     _ValueType(*(__last - 1)));
14065     }
14066    
14067     template<typename _RandomAccessIterator, typename _Distance,
14068     typename _Tp, typename _Compare>
14069     void
14070     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
14071     _Distance __len, _Tp __value, _Compare __comp)
14072     {
14073     const _Distance __topIndex = __holeIndex;
14074     _Distance __secondChild = 2 * __holeIndex + 2;
14075     while (__secondChild < __len)
14076     {
14077     if (__comp(*(__first + __secondChild),
14078     *(__first + (__secondChild - 1))))
14079     __secondChild--;
14080     *(__first + __holeIndex) = *(__first + __secondChild);
14081     __holeIndex = __secondChild;
14082     __secondChild = 2 * (__secondChild + 1);
14083     }
14084     if (__secondChild == __len)
14085     {
14086     *(__first + __holeIndex) = *(__first + (__secondChild - 1));
14087     __holeIndex = __secondChild - 1;
14088     }
14089     std::__push_heap(__first, __holeIndex, __topIndex, __value, __comp);
14090     }
14091    
14092     template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
14093     inline void
14094     __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
14095     _RandomAccessIterator __result, _Tp __value, _Compare __comp)
14096     {
14097     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14098     _Distance;
14099     *__result = *__first;
14100     std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
14101     __value, __comp);
14102     }
14103     # 317 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
14104     template<typename _RandomAccessIterator, typename _Compare>
14105     inline void
14106     pop_heap(_RandomAccessIterator __first,
14107     _RandomAccessIterator __last, _Compare __comp)
14108     {
14109    
14110    
14111    
14112     ;
14113     ;
14114    
14115     typedef typename iterator_traits<_RandomAccessIterator>::value_type
14116     _ValueType;
14117     std::__pop_heap(__first, __last - 1, __last - 1,
14118     _ValueType(*(__last - 1)), __comp);
14119     }
14120     # 342 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
14121     template<typename _RandomAccessIterator>
14122     void
14123     make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
14124     {
14125     typedef typename iterator_traits<_RandomAccessIterator>::value_type
14126     _ValueType;
14127     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14128     _DistanceType;
14129    
14130    
14131    
14132    
14133    
14134     ;
14135    
14136     if (__last - __first < 2)
14137     return;
14138    
14139     const _DistanceType __len = __last - __first;
14140     _DistanceType __parent = (__len - 2) / 2;
14141     while (true)
14142     {
14143     std::__adjust_heap(__first, __parent, __len,
14144     _ValueType(*(__first + __parent)));
14145     if (__parent == 0)
14146     return;
14147     __parent--;
14148     }
14149     }
14150     # 382 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
14151     template<typename _RandomAccessIterator, typename _Compare>
14152     inline void
14153     make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
14154     _Compare __comp)
14155     {
14156     typedef typename iterator_traits<_RandomAccessIterator>::value_type
14157     _ValueType;
14158     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14159     _DistanceType;
14160    
14161    
14162    
14163    
14164     ;
14165    
14166     if (__last - __first < 2)
14167     return;
14168    
14169     const _DistanceType __len = __last - __first;
14170     _DistanceType __parent = (__len - 2) / 2;
14171     while (true)
14172     {
14173     std::__adjust_heap(__first, __parent, __len,
14174     _ValueType(*(__first + __parent)), __comp);
14175     if (__parent == 0)
14176     return;
14177     __parent--;
14178     }
14179     }
14180     # 420 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
14181     template<typename _RandomAccessIterator>
14182     void
14183     sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
14184     {
14185    
14186    
14187    
14188    
14189    
14190     ;
14191    
14192    
14193     while (__last - __first > 1)
14194     std::pop_heap(__first, __last--);
14195     }
14196     # 446 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
14197     template<typename _RandomAccessIterator, typename _Compare>
14198     void
14199     sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
14200     _Compare __comp)
14201     {
14202    
14203    
14204    
14205     ;
14206     ;
14207    
14208     while (__last - __first > 1)
14209     std::pop_heap(__first, __last--, __comp);
14210     }
14211    
14212     }
14213     # 65 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 2 3
14214     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tempbuf.h" 1 3
14215     # 66 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tempbuf.h" 3
14216     namespace std
14217     {
14218    
14219    
14220    
14221    
14222    
14223    
14224    
14225     template<typename _ForwardIterator, typename _Tp>
14226     class _Temporary_buffer
14227     {
14228    
14229    
14230    
14231     public:
14232     typedef _Tp value_type;
14233     typedef value_type* pointer;
14234     typedef pointer iterator;
14235     typedef ptrdiff_t size_type;
14236    
14237     protected:
14238     size_type _M_original_len;
14239     size_type _M_len;
14240     pointer _M_buffer;
14241    
14242     void
14243     _M_initialize_buffer(const _Tp&, __true_type) { }
14244    
14245     void
14246     _M_initialize_buffer(const _Tp& val, __false_type)
14247     { std::uninitialized_fill_n(_M_buffer, _M_len, val); }
14248    
14249     public:
14250    
14251     size_type
14252     size() const
14253     { return _M_len; }
14254    
14255    
14256     size_type
14257     requested_size() const
14258     { return _M_original_len; }
14259    
14260    
14261     iterator
14262     begin()
14263     { return _M_buffer; }
14264    
14265    
14266     iterator
14267     end()
14268     { return _M_buffer + _M_len; }
14269    
14270    
14271    
14272    
14273    
14274     _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last);
14275    
14276     ~_Temporary_buffer()
14277     {
14278     std::_Destroy(_M_buffer, _M_buffer + _M_len);
14279     std::return_temporary_buffer(_M_buffer);
14280     }
14281    
14282     private:
14283    
14284     _Temporary_buffer(const _Temporary_buffer&);
14285    
14286     void
14287     operator=(const _Temporary_buffer&);
14288     };
14289    
14290    
14291     template<typename _ForwardIterator, typename _Tp>
14292     _Temporary_buffer<_ForwardIterator, _Tp>::
14293     _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
14294     : _M_original_len(std::distance(__first, __last)),
14295     _M_len(0), _M_buffer(0)
14296     {
14297    
14298     typedef typename __type_traits<_Tp>::has_trivial_default_constructor
14299     _Trivial;
14300    
14301     try
14302     {
14303     pair<pointer, size_type> __p(get_temporary_buffer<
14304     value_type>(_M_original_len));
14305     _M_buffer = __p.first;
14306     _M_len = __p.second;
14307     if (_M_len > 0)
14308     _M_initialize_buffer(*__first, _Trivial());
14309     }
14310     catch(...)
14311     {
14312     std::return_temporary_buffer(_M_buffer);
14313     _M_buffer = 0;
14314     _M_len = 0;
14315     throw;
14316     }
14317     }
14318     }
14319     # 66 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 2 3
14320    
14321    
14322    
14323    
14324     namespace std
14325     {
14326     # 84 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14327     template<typename _Tp>
14328     inline const _Tp&
14329     __median(const _Tp& __a, const _Tp& __b, const _Tp& __c)
14330     {
14331    
14332    
14333     if (__a < __b)
14334     if (__b < __c)
14335     return __b;
14336     else if (__a < __c)
14337     return __c;
14338     else
14339     return __a;
14340     else if (__a < __c)
14341     return __a;
14342     else if (__b < __c)
14343     return __c;
14344     else
14345     return __b;
14346     }
14347     # 118 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14348     template<typename _Tp, typename _Compare>
14349     inline const _Tp&
14350     __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp)
14351     {
14352    
14353    
14354     if (__comp(__a, __b))
14355     if (__comp(__b, __c))
14356     return __b;
14357     else if (__comp(__a, __c))
14358     return __c;
14359     else
14360     return __a;
14361     else if (__comp(__a, __c))
14362     return __a;
14363     else if (__comp(__b, __c))
14364     return __c;
14365     else
14366     return __b;
14367     }
14368     # 150 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14369     template<typename _InputIterator, typename _Function>
14370     _Function
14371     for_each(_InputIterator __first, _InputIterator __last, _Function __f)
14372     {
14373    
14374    
14375     ;
14376     for ( ; __first != __last; ++__first)
14377     __f(*__first);
14378     return __f;
14379     }
14380    
14381    
14382    
14383    
14384    
14385    
14386     template<typename _InputIterator, typename _Tp>
14387     inline _InputIterator
14388     find(_InputIterator __first, _InputIterator __last,
14389     const _Tp& __val, input_iterator_tag)
14390     {
14391     while (__first != __last && !(*__first == __val))
14392     ++__first;
14393     return __first;
14394     }
14395    
14396    
14397    
14398    
14399    
14400    
14401     template<typename _InputIterator, typename _Predicate>
14402     inline _InputIterator
14403     find_if(_InputIterator __first, _InputIterator __last,
14404     _Predicate __pred, input_iterator_tag)
14405     {
14406     while (__first != __last && !__pred(*__first))
14407     ++__first;
14408     return __first;
14409     }
14410    
14411    
14412    
14413    
14414    
14415    
14416     template<typename _RandomAccessIterator, typename _Tp>
14417     _RandomAccessIterator
14418     find(_RandomAccessIterator __first, _RandomAccessIterator __last,
14419     const _Tp& __val, random_access_iterator_tag)
14420     {
14421     typename iterator_traits<_RandomAccessIterator>::difference_type
14422     __trip_count = (__last - __first) >> 2;
14423    
14424     for ( ; __trip_count > 0 ; --__trip_count)
14425     {
14426     if (*__first == __val)
14427     return __first;
14428     ++__first;
14429    
14430     if (*__first == __val)
14431     return __first;
14432     ++__first;
14433    
14434     if (*__first == __val)
14435     return __first;
14436     ++__first;
14437    
14438     if (*__first == __val)
14439     return __first;
14440     ++__first;
14441     }
14442    
14443     switch (__last - __first)
14444     {
14445     case 3:
14446     if (*__first == __val)
14447     return __first;
14448     ++__first;
14449     case 2:
14450     if (*__first == __val)
14451     return __first;
14452     ++__first;
14453     case 1:
14454     if (*__first == __val)
14455     return __first;
14456     ++__first;
14457     case 0:
14458     default:
14459     return __last;
14460     }
14461     }
14462    
14463    
14464    
14465    
14466    
14467    
14468     template<typename _RandomAccessIterator, typename _Predicate>
14469     _RandomAccessIterator
14470     find_if(_RandomAccessIterator __first, _RandomAccessIterator __last,
14471     _Predicate __pred, random_access_iterator_tag)
14472     {
14473     typename iterator_traits<_RandomAccessIterator>::difference_type
14474     __trip_count = (__last - __first) >> 2;
14475    
14476     for ( ; __trip_count > 0 ; --__trip_count)
14477     {
14478     if (__pred(*__first))
14479     return __first;
14480     ++__first;
14481    
14482     if (__pred(*__first))
14483     return __first;
14484     ++__first;
14485    
14486     if (__pred(*__first))
14487     return __first;
14488     ++__first;
14489    
14490     if (__pred(*__first))
14491     return __first;
14492     ++__first;
14493     }
14494    
14495     switch (__last - __first)
14496     {
14497     case 3:
14498     if (__pred(*__first))
14499     return __first;
14500     ++__first;
14501     case 2:
14502     if (__pred(*__first))
14503     return __first;
14504     ++__first;
14505     case 1:
14506     if (__pred(*__first))
14507     return __first;
14508     ++__first;
14509     case 0:
14510     default:
14511     return __last;
14512     }
14513     }
14514     # 304 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14515     template<typename _InputIterator, typename _Tp>
14516     inline _InputIterator
14517     find(_InputIterator __first, _InputIterator __last,
14518     const _Tp& __val)
14519     {
14520    
14521    
14522    
14523    
14524     ;
14525     return std::find(__first, __last, __val,
14526     std::__iterator_category(__first));
14527     }
14528     # 326 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14529     template<typename _InputIterator, typename _Predicate>
14530     inline _InputIterator
14531     find_if(_InputIterator __first, _InputIterator __last,
14532     _Predicate __pred)
14533     {
14534    
14535    
14536    
14537    
14538     ;
14539     return std::find_if(__first, __last, __pred,
14540     std::__iterator_category(__first));
14541     }
14542     # 348 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14543     template<typename _ForwardIterator>
14544     _ForwardIterator
14545     adjacent_find(_ForwardIterator __first, _ForwardIterator __last)
14546     {
14547    
14548    
14549    
14550    
14551     ;
14552     if (__first == __last)
14553     return __last;
14554     _ForwardIterator __next = __first;
14555     while(++__next != __last)
14556     {
14557     if (*__first == *__next)
14558     return __first;
14559     __first = __next;
14560     }
14561     return __last;
14562     }
14563     # 379 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14564     template<typename _ForwardIterator, typename _BinaryPredicate>
14565     _ForwardIterator
14566     adjacent_find(_ForwardIterator __first, _ForwardIterator __last,
14567     _BinaryPredicate __binary_pred)
14568     {
14569    
14570    
14571    
14572    
14573    
14574     ;
14575     if (__first == __last)
14576     return __last;
14577     _ForwardIterator __next = __first;
14578     while(++__next != __last)
14579     {
14580     if (__binary_pred(*__first, *__next))
14581     return __first;
14582     __first = __next;
14583     }
14584     return __last;
14585     }
14586     # 410 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14587     template<typename _InputIterator, typename _Tp>
14588     typename iterator_traits<_InputIterator>::difference_type
14589     count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
14590     {
14591    
14592    
14593    
14594    
14595    
14596     ;
14597     typename iterator_traits<_InputIterator>::difference_type __n = 0;
14598     for ( ; __first != __last; ++__first)
14599     if (*__first == __value)
14600     ++__n;
14601     return __n;
14602     }
14603     # 435 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14604     template<typename _InputIterator, typename _Predicate>
14605     typename iterator_traits<_InputIterator>::difference_type
14606     count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)
14607     {
14608    
14609    
14610    
14611    
14612     ;
14613     typename iterator_traits<_InputIterator>::difference_type __n = 0;
14614     for ( ; __first != __last; ++__first)
14615     if (__pred(*__first))
14616     ++__n;
14617     return __n;
14618     }
14619     # 474 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14620     template<typename _ForwardIterator1, typename _ForwardIterator2>
14621     _ForwardIterator1
14622     search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
14623     _ForwardIterator2 __first2, _ForwardIterator2 __last2)
14624     {
14625    
14626    
14627    
14628    
14629    
14630    
14631     ;
14632     ;
14633    
14634     if (__first1 == __last1 || __first2 == __last2)
14635     return __first1;
14636    
14637    
14638     _ForwardIterator2 __tmp(__first2);
14639     ++__tmp;
14640     if (__tmp == __last2)
14641     return std::find(__first1, __last1, *__first2);
14642    
14643    
14644     _ForwardIterator2 __p1, __p;
14645     __p1 = __first2; ++__p1;
14646     _ForwardIterator1 __current = __first1;
14647    
14648     while (__first1 != __last1)
14649     {
14650     __first1 = std::find(__first1, __last1, *__first2);
14651     if (__first1 == __last1)
14652     return __last1;
14653    
14654     __p = __p1;
14655     __current = __first1;
14656     if (++__current == __last1)
14657     return __last1;
14658    
14659     while (*__current == *__p)
14660     {
14661     if (++__p == __last2)
14662     return __first1;
14663     if (++__current == __last1)
14664     return __last1;
14665     }
14666     ++__first1;
14667     }
14668     return __first1;
14669     }
14670     # 545 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14671     template<typename _ForwardIterator1, typename _ForwardIterator2,
14672     typename _BinaryPredicate>
14673     _ForwardIterator1
14674     search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
14675     _ForwardIterator2 __first2, _ForwardIterator2 __last2,
14676     _BinaryPredicate __predicate)
14677     {
14678    
14679    
14680    
14681    
14682    
14683    
14684     ;
14685     ;
14686    
14687    
14688     if (__first1 == __last1 || __first2 == __last2)
14689     return __first1;
14690    
14691    
14692     _ForwardIterator2 __tmp(__first2);
14693     ++__tmp;
14694     if (__tmp == __last2)
14695     {
14696     while (__first1 != __last1 && !__predicate(*__first1, *__first2))
14697     ++__first1;
14698     return __first1;
14699     }
14700    
14701    
14702     _ForwardIterator2 __p1, __p;
14703     __p1 = __first2; ++__p1;
14704     _ForwardIterator1 __current = __first1;
14705    
14706     while (__first1 != __last1)
14707     {
14708     while (__first1 != __last1)
14709     {
14710     if (__predicate(*__first1, *__first2))
14711     break;
14712     ++__first1;
14713     }
14714     while (__first1 != __last1 && !__predicate(*__first1, *__first2))
14715     ++__first1;
14716     if (__first1 == __last1)
14717     return __last1;
14718    
14719     __p = __p1;
14720     __current = __first1;
14721     if (++__current == __last1)
14722     return __last1;
14723    
14724     while (__predicate(*__current, *__p))
14725     {
14726     if (++__p == __last2)
14727     return __first1;
14728     if (++__current == __last1)
14729     return __last1;
14730     }
14731     ++__first1;
14732     }
14733     return __first1;
14734     }
14735     # 623 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14736     template<typename _ForwardIterator, typename _Integer, typename _Tp>
14737     _ForwardIterator
14738     search_n(_ForwardIterator __first, _ForwardIterator __last,
14739     _Integer __count, const _Tp& __val)
14740     {
14741    
14742    
14743    
14744    
14745    
14746     ;
14747    
14748     if (__count <= 0)
14749     return __first;
14750     else
14751     {
14752     __first = std::find(__first, __last, __val);
14753     while (__first != __last)
14754     {
14755     typename iterator_traits<_ForwardIterator>::difference_type
14756     __n = __count;
14757     _ForwardIterator __i = __first;
14758     ++__i;
14759     while (__i != __last && __n != 1 && *__i == __val)
14760     {
14761     ++__i;
14762     --__n;
14763     }
14764     if (__n == 1)
14765     return __first;
14766     else
14767     __first = std::find(__i, __last, __val);
14768     }
14769     return __last;
14770     }
14771     }
14772     # 675 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14773     template<typename _ForwardIterator, typename _Integer, typename _Tp,
14774     typename _BinaryPredicate>
14775     _ForwardIterator
14776     search_n(_ForwardIterator __first, _ForwardIterator __last,
14777     _Integer __count, const _Tp& __val,
14778     _BinaryPredicate __binary_pred)
14779     {
14780    
14781    
14782    
14783    
14784     ;
14785    
14786     if (__count <= 0)
14787     return __first;
14788     else
14789     {
14790     while (__first != __last)
14791     {
14792     if (__binary_pred(*__first, __val))
14793     break;
14794     ++__first;
14795     }
14796     while (__first != __last)
14797     {
14798     typename iterator_traits<_ForwardIterator>::difference_type
14799     __n = __count;
14800     _ForwardIterator __i = __first;
14801     ++__i;
14802     while (__i != __last && __n != 1 && __binary_pred(*__i, __val))
14803     {
14804     ++__i;
14805     --__n;
14806     }
14807     if (__n == 1)
14808     return __first;
14809     else
14810     {
14811     while (__i != __last)
14812     {
14813     if (__binary_pred(*__i, __val))
14814     break;
14815     ++__i;
14816     }
14817     __first = __i;
14818     }
14819     }
14820     return __last;
14821     }
14822     }
14823     # 737 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14824     template<typename _ForwardIterator1, typename _ForwardIterator2>
14825     _ForwardIterator2
14826     swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
14827     _ForwardIterator2 __first2)
14828     {
14829    
14830    
14831    
14832    
14833    
14834    
14835    
14836    
14837    
14838    
14839    
14840     ;
14841    
14842     for ( ; __first1 != __last1; ++__first1, ++__first2)
14843     std::iter_swap(__first1, __first2);
14844     return __first2;
14845     }
14846     # 775 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14847     template<typename _InputIterator, typename _OutputIterator,
14848     typename _UnaryOperation>
14849     _OutputIterator
14850     transform(_InputIterator __first, _InputIterator __last,
14851     _OutputIterator __result, _UnaryOperation __unary_op)
14852     {
14853    
14854    
14855    
14856    
14857    
14858     ;
14859    
14860     for ( ; __first != __last; ++__first, ++__result)
14861     *__result = __unary_op(*__first);
14862     return __result;
14863     }
14864     # 810 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14865     template<typename _InputIterator1, typename _InputIterator2,
14866     typename _OutputIterator, typename _BinaryOperation>
14867     _OutputIterator
14868     transform(_InputIterator1 __first1, _InputIterator1 __last1,
14869     _InputIterator2 __first2, _OutputIterator __result,
14870     _BinaryOperation __binary_op)
14871     {
14872    
14873    
14874    
14875    
14876    
14877    
14878     ;
14879    
14880     for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
14881     *__result = __binary_op(*__first1, *__first2);
14882     return __result;
14883     }
14884     # 842 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14885     template<typename _ForwardIterator, typename _Tp>
14886     void
14887     replace(_ForwardIterator __first, _ForwardIterator __last,
14888     const _Tp& __old_value, const _Tp& __new_value)
14889     {
14890    
14891    
14892    
14893    
14894    
14895    
14896    
14897     ;
14898    
14899     for ( ; __first != __last; ++__first)
14900     if (*__first == __old_value)
14901     *__first = __new_value;
14902     }
14903     # 873 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14904     template<typename _ForwardIterator, typename _Predicate, typename _Tp>
14905     void
14906     replace_if(_ForwardIterator __first, _ForwardIterator __last,
14907     _Predicate __pred, const _Tp& __new_value)
14908     {
14909    
14910    
14911    
14912    
14913    
14914    
14915    
14916     ;
14917    
14918     for ( ; __first != __last; ++__first)
14919     if (__pred(*__first))
14920     *__first = __new_value;
14921     }
14922     # 906 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14923     template<typename _InputIterator, typename _OutputIterator, typename _Tp>
14924     _OutputIterator
14925     replace_copy(_InputIterator __first, _InputIterator __last,
14926     _OutputIterator __result,
14927     const _Tp& __old_value, const _Tp& __new_value)
14928     {
14929    
14930    
14931    
14932    
14933    
14934    
14935     ;
14936    
14937     for ( ; __first != __last; ++__first, ++__result)
14938     *__result = *__first == __old_value ? __new_value : *__first;
14939     return __result;
14940     }
14941     # 939 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14942     template<typename _InputIterator, typename _OutputIterator,
14943     typename _Predicate, typename _Tp>
14944     _OutputIterator
14945     replace_copy_if(_InputIterator __first, _InputIterator __last,
14946     _OutputIterator __result,
14947     _Predicate __pred, const _Tp& __new_value)
14948     {
14949    
14950    
14951    
14952    
14953    
14954    
14955     ;
14956    
14957     for ( ; __first != __last; ++__first, ++__result)
14958     *__result = __pred(*__first) ? __new_value : *__first;
14959     return __result;
14960     }
14961     # 970 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14962     template<typename _ForwardIterator, typename _Generator>
14963     void
14964     generate(_ForwardIterator __first, _ForwardIterator __last,
14965     _Generator __gen)
14966     {
14967    
14968    
14969    
14970    
14971     ;
14972    
14973     for ( ; __first != __last; ++__first)
14974     *__first = __gen();
14975     }
14976     # 996 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14977     template<typename _OutputIterator, typename _Size, typename _Generator>
14978     _OutputIterator
14979     generate_n(_OutputIterator __first, _Size __n, _Generator __gen)
14980     {
14981    
14982    
14983    
14984    
14985    
14986     for ( ; __n > 0; --__n, ++__first)
14987     *__first = __gen();
14988     return __first;
14989     }
14990     # 1023 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14991     template<typename _InputIterator, typename _OutputIterator, typename _Tp>
14992     _OutputIterator
14993     remove_copy(_InputIterator __first, _InputIterator __last,
14994     _OutputIterator __result, const _Tp& __value)
14995     {
14996    
14997    
14998    
14999    
15000    
15001    
15002     ;
15003    
15004     for ( ; __first != __last; ++__first)
15005     if (!(*__first == __value))
15006     {
15007     *__result = *__first;
15008     ++__result;
15009     }
15010     return __result;
15011     }
15012     # 1059 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15013     template<typename _InputIterator, typename _OutputIterator,
15014     typename _Predicate>
15015     _OutputIterator
15016     remove_copy_if(_InputIterator __first, _InputIterator __last,
15017     _OutputIterator __result, _Predicate __pred)
15018     {
15019    
15020    
15021    
15022    
15023    
15024    
15025     ;
15026    
15027     for ( ; __first != __last; ++__first)
15028     if (!__pred(*__first))
15029     {
15030     *__result = *__first;
15031     ++__result;
15032     }
15033     return __result;
15034     }
15035     # 1098 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15036     template<typename _ForwardIterator, typename _Tp>
15037     _ForwardIterator
15038     remove(_ForwardIterator __first, _ForwardIterator __last,
15039     const _Tp& __value)
15040     {
15041    
15042    
15043    
15044    
15045    
15046     ;
15047    
15048     __first = std::find(__first, __last, __value);
15049     _ForwardIterator __i = __first;
15050     return __first == __last ? __first
15051     : std::remove_copy(++__i, __last,
15052     __first, __value);
15053     }
15054     # 1133 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15055     template<typename _ForwardIterator, typename _Predicate>
15056     _ForwardIterator
15057     remove_if(_ForwardIterator __first, _ForwardIterator __last,
15058     _Predicate __pred)
15059     {
15060    
15061    
15062    
15063    
15064    
15065     ;
15066    
15067     __first = std::find_if(__first, __last, __pred);
15068     _ForwardIterator __i = __first;
15069     return __first == __last ? __first
15070     : std::remove_copy_if(++__i, __last,
15071     __first, __pred);
15072     }
15073     # 1159 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15074     template<typename _InputIterator, typename _OutputIterator>
15075     _OutputIterator
15076     __unique_copy(_InputIterator __first, _InputIterator __last,
15077     _OutputIterator __result,
15078     output_iterator_tag)
15079     {
15080    
15081     typename iterator_traits<_InputIterator>::value_type __value = *__first;
15082     *__result = __value;
15083     while (++__first != __last)
15084     if (!(__value == *__first))
15085     {
15086     __value = *__first;
15087     *++__result = __value;
15088     }
15089     return ++__result;
15090     }
15091     # 1184 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15092     template<typename _InputIterator, typename _ForwardIterator>
15093     _ForwardIterator
15094     __unique_copy(_InputIterator __first, _InputIterator __last,
15095     _ForwardIterator __result,
15096     forward_iterator_tag)
15097     {
15098    
15099     *__result = *__first;
15100     while (++__first != __last)
15101     if (!(*__result == *__first))
15102     *++__result = *__first;
15103     return ++__result;
15104     }
15105     # 1206 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15106     template<typename _InputIterator, typename _OutputIterator,
15107     typename _BinaryPredicate>
15108     _OutputIterator
15109     __unique_copy(_InputIterator __first, _InputIterator __last,
15110     _OutputIterator __result,
15111     _BinaryPredicate __binary_pred,
15112     output_iterator_tag)
15113     {
15114    
15115    
15116    
15117    
15118    
15119     typename iterator_traits<_InputIterator>::value_type __value = *__first;
15120     *__result = __value;
15121     while (++__first != __last)
15122     if (!__binary_pred(__value, *__first))
15123     {
15124     __value = *__first;
15125     *++__result = __value;
15126     }
15127     return ++__result;
15128     }
15129     # 1238 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15130     template<typename _InputIterator, typename _ForwardIterator,
15131     typename _BinaryPredicate>
15132     _ForwardIterator
15133     __unique_copy(_InputIterator __first, _InputIterator __last,
15134     _ForwardIterator __result,
15135     _BinaryPredicate __binary_pred,
15136     forward_iterator_tag)
15137     {
15138    
15139    
15140    
15141    
15142    
15143     *__result = *__first;
15144     while (++__first != __last)
15145     if (!__binary_pred(*__result, *__first)) *++__result = *__first;
15146     return ++__result;
15147     }
15148     # 1270 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15149     template<typename _InputIterator, typename _OutputIterator>
15150     inline _OutputIterator
15151     unique_copy(_InputIterator __first, _InputIterator __last,
15152     _OutputIterator __result)
15153     {
15154    
15155    
15156    
15157    
15158    
15159    
15160     ;
15161    
15162     typedef typename iterator_traits<_OutputIterator>::iterator_category
15163     _IterType;
15164    
15165     if (__first == __last) return __result;
15166     return std::__unique_copy(__first, __last, __result, _IterType());
15167     }
15168     # 1305 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15169     template<typename _InputIterator, typename _OutputIterator,
15170     typename _BinaryPredicate>
15171     inline _OutputIterator
15172     unique_copy(_InputIterator __first, _InputIterator __last,
15173     _OutputIterator __result,
15174     _BinaryPredicate __binary_pred)
15175     {
15176    
15177    
15178    
15179    
15180     ;
15181    
15182     typedef typename iterator_traits<_OutputIterator>::iterator_category
15183     _IterType;
15184    
15185     if (__first == __last) return __result;
15186     return std::__unique_copy(__first, __last, __result,
15187     __binary_pred, _IterType());
15188     }
15189     # 1339 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15190     template<typename _ForwardIterator>
15191     _ForwardIterator
15192     unique(_ForwardIterator __first, _ForwardIterator __last)
15193     {
15194    
15195    
15196    
15197    
15198    
15199     ;
15200    
15201    
15202     __first = std::adjacent_find(__first, __last);
15203     if (__first == __last)
15204     return __last;
15205    
15206    
15207     _ForwardIterator __dest = __first;
15208     ++__first;
15209     while (++__first != __last)
15210     if (!(*__dest == *__first))
15211     *++__dest = *__first;
15212     return ++__dest;
15213     }
15214     # 1378 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15215     template<typename _ForwardIterator, typename _BinaryPredicate>
15216     _ForwardIterator
15217     unique(_ForwardIterator __first, _ForwardIterator __last,
15218     _BinaryPredicate __binary_pred)
15219     {
15220    
15221    
15222    
15223    
15224    
15225    
15226     ;
15227    
15228    
15229     __first = std::adjacent_find(__first, __last, __binary_pred);
15230     if (__first == __last)
15231     return __last;
15232    
15233    
15234     _ForwardIterator __dest = __first;
15235     ++__first;
15236     while (++__first != __last)
15237     if (!__binary_pred(*__dest, *__first))
15238     *++__dest = *__first;
15239     return ++__dest;
15240     }
15241     # 1412 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15242     template<typename _BidirectionalIterator>
15243     void
15244     __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last,
15245     bidirectional_iterator_tag)
15246     {
15247     while (true)
15248     if (__first == __last || __first == --__last)
15249     return;
15250     else
15251     std::iter_swap(__first++, __last);
15252     }
15253     # 1431 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15254     template<typename _RandomAccessIterator>
15255     void
15256     __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last,
15257     random_access_iterator_tag)
15258     {
15259     while (__first < __last)
15260     std::iter_swap(__first++, --__last);
15261     }
15262     # 1451 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15263     template<typename _BidirectionalIterator>
15264     inline void
15265     reverse(_BidirectionalIterator __first, _BidirectionalIterator __last)
15266     {
15267    
15268    
15269    
15270     ;
15271     std::__reverse(__first, __last, std::__iterator_category(__first));
15272     }
15273     # 1477 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15274     template<typename _BidirectionalIterator, typename _OutputIterator>
15275     _OutputIterator
15276     reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last,
15277     _OutputIterator __result)
15278     {
15279    
15280    
15281    
15282    
15283    
15284     ;
15285    
15286     while (__first != __last)
15287     {
15288     --__last;
15289     *__result = *__last;
15290     ++__result;
15291     }
15292     return __result;
15293     }
15294     # 1505 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15295     template<typename _EuclideanRingElement>
15296     _EuclideanRingElement
15297     __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)
15298     {
15299     while (__n != 0)
15300     {
15301     _EuclideanRingElement __t = __m % __n;
15302     __m = __n;
15303     __n = __t;
15304     }
15305     return __m;
15306     }
15307    
15308    
15309    
15310    
15311    
15312    
15313     template<typename _ForwardIterator>
15314     void
15315     __rotate(_ForwardIterator __first,
15316     _ForwardIterator __middle,
15317     _ForwardIterator __last,
15318     forward_iterator_tag)
15319     {
15320     if ((__first == __middle) || (__last == __middle))
15321     return;
15322    
15323     _ForwardIterator __first2 = __middle;
15324     do
15325     {
15326     swap(*__first++, *__first2++);
15327     if (__first == __middle)
15328     __middle = __first2;
15329     }
15330     while (__first2 != __last);
15331    
15332     __first2 = __middle;
15333    
15334     while (__first2 != __last)
15335     {
15336     swap(*__first++, *__first2++);
15337     if (__first == __middle)
15338     __middle = __first2;
15339     else if (__first2 == __last)
15340     __first2 = __middle;
15341     }
15342     }
15343    
15344    
15345    
15346    
15347    
15348    
15349     template<typename _BidirectionalIterator>
15350     void
15351     __rotate(_BidirectionalIterator __first,
15352     _BidirectionalIterator __middle,
15353     _BidirectionalIterator __last,
15354     bidirectional_iterator_tag)
15355     {
15356    
15357    
15358    
15359    
15360     if ((__first == __middle) || (__last == __middle))
15361     return;
15362    
15363     std::__reverse(__first, __middle, bidirectional_iterator_tag());
15364     std::__reverse(__middle, __last, bidirectional_iterator_tag());
15365    
15366     while (__first != __middle && __middle != __last)
15367     swap(*__first++, *--__last);
15368    
15369     if (__first == __middle)
15370     std::__reverse(__middle, __last, bidirectional_iterator_tag());
15371     else
15372     std::__reverse(__first, __middle, bidirectional_iterator_tag());
15373     }
15374    
15375    
15376    
15377    
15378    
15379    
15380     template<typename _RandomAccessIterator>
15381     void
15382     __rotate(_RandomAccessIterator __first,
15383     _RandomAccessIterator __middle,
15384     _RandomAccessIterator __last,
15385     random_access_iterator_tag)
15386     {
15387    
15388    
15389    
15390    
15391     if ((__first == __middle) || (__last == __middle))
15392     return;
15393    
15394     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
15395     _Distance;
15396     typedef typename iterator_traits<_RandomAccessIterator>::value_type
15397     _ValueType;
15398    
15399     const _Distance __n = __last - __first;
15400     const _Distance __k = __middle - __first;
15401     const _Distance __l = __n - __k;
15402    
15403     if (__k == __l)
15404     {
15405     std::swap_ranges(__first, __middle, __middle);
15406     return;
15407     }
15408    
15409     const _Distance __d = __gcd(__n, __k);
15410    
15411     for (_Distance __i = 0; __i < __d; __i++)
15412     {
15413     const _ValueType __tmp = *__first;
15414     _RandomAccessIterator __p = __first;
15415    
15416     if (__k < __l)
15417     {
15418     for (_Distance __j = 0; __j < __l / __d; __j++)
15419     {
15420     if (__p > __first + __l)
15421     {
15422     *__p = *(__p - __l);
15423     __p -= __l;
15424     }
15425    
15426     *__p = *(__p + __k);
15427     __p += __k;
15428     }
15429     }
15430     else
15431     {
15432     for (_Distance __j = 0; __j < __k / __d - 1; __j ++)
15433     {
15434     if (__p < __last - __k)
15435     {
15436     *__p = *(__p + __k);
15437     __p += __k;
15438     }
15439     *__p = * (__p - __l);
15440     __p -= __l;
15441     }
15442     }
15443    
15444     *__p = __tmp;
15445     ++__first;
15446     }
15447     }
15448     # 1677 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15449     template<typename _ForwardIterator>
15450     inline void
15451     rotate(_ForwardIterator __first, _ForwardIterator __middle,
15452     _ForwardIterator __last)
15453     {
15454    
15455    
15456    
15457     ;
15458     ;
15459    
15460     typedef typename iterator_traits<_ForwardIterator>::iterator_category
15461     _IterType;
15462     std::__rotate(__first, __middle, __last, _IterType());
15463     }
15464     # 1710 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15465     template<typename _ForwardIterator, typename _OutputIterator>
15466     _OutputIterator
15467     rotate_copy(_ForwardIterator __first, _ForwardIterator __middle,
15468     _ForwardIterator __last, _OutputIterator __result)
15469     {
15470    
15471    
15472    
15473    
15474     ;
15475     ;
15476    
15477     return std::copy(__first, __middle, copy(__middle, __last, __result));
15478     }
15479     # 1735 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15480     template<typename _RandomAccessIterator>
15481     inline void
15482     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
15483     {
15484    
15485    
15486    
15487     ;
15488    
15489     if (__first != __last)
15490     for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
15491     std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1)));
15492     }
15493     # 1762 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15494     template<typename _RandomAccessIterator, typename _RandomNumberGenerator>
15495     void
15496     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
15497     _RandomNumberGenerator& __rand)
15498     {
15499    
15500    
15501    
15502     ;
15503    
15504     if (__first == __last)
15505     return;
15506     for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
15507     std::iter_swap(__i, __first + __rand((__i - __first) + 1));
15508     }
15509    
15510    
15511    
15512    
15513    
15514    
15515    
15516     template<typename _ForwardIterator, typename _Predicate>
15517     _ForwardIterator
15518     __partition(_ForwardIterator __first, _ForwardIterator __last,
15519     _Predicate __pred,
15520     forward_iterator_tag)
15521     {
15522     if (__first == __last)
15523     return __first;
15524    
15525     while (__pred(*__first))
15526     if (++__first == __last)
15527     return __first;
15528    
15529     _ForwardIterator __next = __first;
15530    
15531     while (++__next != __last)
15532     if (__pred(*__next))
15533     {
15534     swap(*__first, *__next);
15535     ++__first;
15536     }
15537    
15538     return __first;
15539     }
15540    
15541    
15542    
15543    
15544    
15545    
15546     template<typename _BidirectionalIterator, typename _Predicate>
15547     _BidirectionalIterator
15548     __partition(_BidirectionalIterator __first, _BidirectionalIterator __last,
15549     _Predicate __pred,
15550     bidirectional_iterator_tag)
15551     {
15552     while (true)
15553     {
15554     while (true)
15555     if (__first == __last)
15556     return __first;
15557     else if (__pred(*__first))
15558     ++__first;
15559     else
15560     break;
15561     --__last;
15562     while (true)
15563     if (__first == __last)
15564     return __first;
15565     else if (!__pred(*__last))
15566     --__last;
15567     else
15568     break;
15569     std::iter_swap(__first, __last);
15570     ++__first;
15571     }
15572     }
15573     # 1856 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15574     template<typename _ForwardIterator, typename _Predicate>
15575     inline _ForwardIterator
15576     partition(_ForwardIterator __first, _ForwardIterator __last,
15577     _Predicate __pred)
15578     {
15579    
15580    
15581    
15582    
15583    
15584     ;
15585    
15586     return std::__partition(__first, __last, __pred,
15587     std::__iterator_category(__first));
15588     }
15589    
15590    
15591    
15592    
15593    
15594    
15595    
15596     template<typename _ForwardIterator, typename _Predicate, typename _Distance>
15597     _ForwardIterator
15598     __inplace_stable_partition(_ForwardIterator __first,
15599     _ForwardIterator __last,
15600     _Predicate __pred, _Distance __len)
15601     {
15602     if (__len == 1)
15603     return __pred(*__first) ? __last : __first;
15604     _ForwardIterator __middle = __first;
15605     std::advance(__middle, __len / 2);
15606     _ForwardIterator __begin = std::__inplace_stable_partition(__first,
15607     __middle,
15608     __pred,
15609     __len / 2);
15610     _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last,
15611     __pred,
15612     __len
15613     - __len / 2);
15614     std::rotate(__begin, __middle, __end);
15615     std::advance(__begin, std::distance(__middle, __end));
15616     return __begin;
15617     }
15618    
15619    
15620    
15621    
15622    
15623    
15624     template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
15625     typename _Distance>
15626     _ForwardIterator
15627     __stable_partition_adaptive(_ForwardIterator __first,
15628     _ForwardIterator __last,
15629     _Predicate __pred, _Distance __len,
15630     _Pointer __buffer,
15631     _Distance __buffer_size)
15632     {
15633     if (__len <= __buffer_size)
15634     {
15635     _ForwardIterator __result1 = __first;
15636     _Pointer __result2 = __buffer;
15637     for ( ; __first != __last ; ++__first)
15638     if (__pred(*__first))
15639     {
15640     *__result1 = *__first;
15641     ++__result1;
15642     }
15643     else
15644     {
15645     *__result2 = *__first;
15646     ++__result2;
15647     }
15648     std::copy(__buffer, __result2, __result1);
15649     return __result1;
15650     }
15651     else
15652     {
15653     _ForwardIterator __middle = __first;
15654     std::advance(__middle, __len / 2);
15655     _ForwardIterator __begin =
15656     std::__stable_partition_adaptive(__first, __middle, __pred,
15657     __len / 2, __buffer,
15658     __buffer_size);
15659     _ForwardIterator __end =
15660     std::__stable_partition_adaptive(__middle, __last, __pred,
15661     __len - __len / 2,
15662     __buffer, __buffer_size);
15663     std::rotate(__begin, __middle, __end);
15664     std::advance(__begin, std::distance(__middle, __end));
15665     return __begin;
15666     }
15667     }
15668     # 1967 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15669     template<typename _ForwardIterator, typename _Predicate>
15670     _ForwardIterator
15671     stable_partition(_ForwardIterator __first, _ForwardIterator __last,
15672     _Predicate __pred)
15673     {
15674    
15675    
15676    
15677    
15678    
15679     ;
15680    
15681     if (__first == __last)
15682     return __first;
15683     else
15684     {
15685     typedef typename iterator_traits<_ForwardIterator>::value_type
15686     _ValueType;
15687     typedef typename iterator_traits<_ForwardIterator>::difference_type
15688     _DistanceType;
15689    
15690     _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first,
15691     __last);
15692     if (__buf.size() > 0)
15693     return
15694     std::__stable_partition_adaptive(__first, __last, __pred,
15695     _DistanceType(__buf.requested_size()),
15696     __buf.begin(), __buf.size());
15697     else
15698     return
15699     std::__inplace_stable_partition(__first, __last, __pred,
15700     _DistanceType(__buf.requested_size()));
15701     }
15702     }
15703    
15704    
15705    
15706    
15707    
15708    
15709     template<typename _RandomAccessIterator, typename _Tp>
15710     _RandomAccessIterator
15711     __unguarded_partition(_RandomAccessIterator __first,
15712     _RandomAccessIterator __last, _Tp __pivot)
15713     {
15714     while (true)
15715     {
15716     while (*__first < __pivot)
15717     ++__first;
15718     --__last;
15719     while (__pivot < *__last)
15720     --__last;
15721     if (!(__first < __last))
15722     return __first;
15723     std::iter_swap(__first, __last);
15724     ++__first;
15725     }
15726     }
15727    
15728    
15729    
15730    
15731    
15732    
15733     template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
15734     _RandomAccessIterator
15735     __unguarded_partition(_RandomAccessIterator __first,
15736     _RandomAccessIterator __last,
15737     _Tp __pivot, _Compare __comp)
15738     {
15739     while (true)
15740     {
15741     while (__comp(*__first, __pivot))
15742     ++__first;
15743     --__last;
15744     while (__comp(__pivot, *__last))
15745     --__last;
15746     if (!(__first < __last))
15747     return __first;
15748     std::iter_swap(__first, __last);
15749     ++__first;
15750     }
15751     }
15752    
15753    
15754    
15755    
15756    
15757    
15758    
15759     enum { _S_threshold = 16 };
15760    
15761    
15762    
15763    
15764    
15765    
15766     template<typename _RandomAccessIterator, typename _Tp>
15767     void
15768     __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val)
15769     {
15770     _RandomAccessIterator __next = __last;
15771     --__next;
15772     while (__val < *__next)
15773     {
15774     *__last = *__next;
15775     __last = __next;
15776     --__next;
15777     }
15778     *__last = __val;
15779     }
15780    
15781    
15782    
15783    
15784    
15785    
15786     template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
15787     void
15788     __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val,
15789     _Compare __comp)
15790     {
15791     _RandomAccessIterator __next = __last;
15792     --__next;
15793     while (__comp(__val, *__next))
15794     {
15795     *__last = *__next;
15796     __last = __next;
15797     --__next;
15798     }
15799     *__last = __val;
15800     }
15801    
15802    
15803    
15804    
15805    
15806    
15807     template<typename _RandomAccessIterator>
15808     void
15809     __insertion_sort(_RandomAccessIterator __first,
15810     _RandomAccessIterator __last)
15811     {
15812     if (__first == __last)
15813     return;
15814    
15815     for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
15816     {
15817     typename iterator_traits<_RandomAccessIterator>::value_type
15818     __val = *__i;
15819     if (__val < *__first)
15820     {
15821     std::copy_backward(__first, __i, __i + 1);
15822     *__first = __val;
15823     }
15824     else
15825     std::__unguarded_linear_insert(__i, __val);
15826     }
15827     }
15828    
15829    
15830    
15831    
15832    
15833    
15834     template<typename _RandomAccessIterator, typename _Compare>
15835     void
15836     __insertion_sort(_RandomAccessIterator __first,
15837     _RandomAccessIterator __last, _Compare __comp)
15838     {
15839     if (__first == __last) return;
15840    
15841     for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
15842     {
15843     typename iterator_traits<_RandomAccessIterator>::value_type
15844     __val = *__i;
15845     if (__comp(__val, *__first))
15846     {
15847     std::copy_backward(__first, __i, __i + 1);
15848     *__first = __val;
15849     }
15850     else
15851     std::__unguarded_linear_insert(__i, __val, __comp);
15852     }
15853     }
15854    
15855    
15856    
15857    
15858    
15859    
15860     template<typename _RandomAccessIterator>
15861     inline void
15862     __unguarded_insertion_sort(_RandomAccessIterator __first,
15863     _RandomAccessIterator __last)
15864     {
15865     typedef typename iterator_traits<_RandomAccessIterator>::value_type
15866     _ValueType;
15867    
15868     for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
15869     std::__unguarded_linear_insert(__i, _ValueType(*__i));
15870     }
15871    
15872    
15873    
15874    
15875    
15876    
15877     template<typename _RandomAccessIterator, typename _Compare>
15878     inline void
15879     __unguarded_insertion_sort(_RandomAccessIterator __first,
15880     _RandomAccessIterator __last, _Compare __comp)
15881     {
15882     typedef typename iterator_traits<_RandomAccessIterator>::value_type
15883     _ValueType;
15884    
15885     for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
15886     std::__unguarded_linear_insert(__i, _ValueType(*__i), __comp);
15887     }
15888    
15889    
15890    
15891    
15892    
15893    
15894     template<typename _RandomAccessIterator>
15895     void
15896     __final_insertion_sort(_RandomAccessIterator __first,
15897     _RandomAccessIterator __last)
15898     {
15899     if (__last - __first > _S_threshold)
15900     {
15901     std::__insertion_sort(__first, __first + _S_threshold);
15902     std::__unguarded_insertion_sort(__first + _S_threshold, __last);
15903     }
15904     else
15905     std::__insertion_sort(__first, __last);
15906     }
15907    
15908    
15909    
15910    
15911    
15912    
15913     template<typename _RandomAccessIterator, typename _Compare>
15914     void
15915     __final_insertion_sort(_RandomAccessIterator __first,
15916     _RandomAccessIterator __last, _Compare __comp)
15917     {
15918     if (__last - __first > _S_threshold)
15919     {
15920     std::__insertion_sort(__first, __first + _S_threshold, __comp);
15921     std::__unguarded_insertion_sort(__first + _S_threshold, __last,
15922     __comp);
15923     }
15924     else
15925     std::__insertion_sort(__first, __last, __comp);
15926     }
15927    
15928    
15929    
15930    
15931    
15932    
15933     template<typename _Size>
15934     inline _Size
15935     __lg(_Size __n)
15936     {
15937     _Size __k;
15938     for (__k = 0; __n != 1; __n >>= 1)
15939     ++__k;
15940     return __k;
15941     }
15942     # 2256 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15943     template<typename _RandomAccessIterator>
15944     void
15945     partial_sort(_RandomAccessIterator __first,
15946     _RandomAccessIterator __middle,
15947     _RandomAccessIterator __last)
15948     {
15949     typedef typename iterator_traits<_RandomAccessIterator>::value_type
15950     _ValueType;
15951    
15952    
15953    
15954    
15955    
15956     ;
15957     ;
15958    
15959     std::make_heap(__first, __middle);
15960     for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
15961     if (*__i < *__first)
15962     std::__pop_heap(__first, __middle, __i, _ValueType(*__i));
15963     std::sort_heap(__first, __middle);
15964     }
15965     # 2297 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15966     template<typename _RandomAccessIterator, typename _Compare>
15967     void
15968     partial_sort(_RandomAccessIterator __first,
15969     _RandomAccessIterator __middle,
15970     _RandomAccessIterator __last,
15971     _Compare __comp)
15972     {
15973     typedef typename iterator_traits<_RandomAccessIterator>::value_type
15974     _ValueType;
15975    
15976    
15977    
15978    
15979    
15980    
15981     ;
15982     ;
15983    
15984     std::make_heap(__first, __middle, __comp);
15985     for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
15986     if (__comp(*__i, *__first))
15987     std::__pop_heap(__first, __middle, __i, _ValueType(*__i), __comp);
15988     std::sort_heap(__first, __middle, __comp);
15989     }
15990     # 2339 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15991     template<typename _InputIterator, typename _RandomAccessIterator>
15992     _RandomAccessIterator
15993     partial_sort_copy(_InputIterator __first, _InputIterator __last,
15994     _RandomAccessIterator __result_first,
15995     _RandomAccessIterator __result_last)
15996     {
15997     typedef typename iterator_traits<_InputIterator>::value_type
15998     _InputValueType;
15999     typedef typename iterator_traits<_RandomAccessIterator>::value_type
16000     _OutputValueType;
16001     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
16002     _DistanceType;
16003    
16004    
16005    
16006    
16007    
16008    
16009    
16010     ;
16011     ;
16012    
16013     if (__result_first == __result_last)
16014     return __result_last;
16015     _RandomAccessIterator __result_real_last = __result_first;
16016     while(__first != __last && __result_real_last != __result_last)
16017     {
16018     *__result_real_last = *__first;
16019     ++__result_real_last;
16020     ++__first;
16021     }
16022     std::make_heap(__result_first, __result_real_last);
16023     while (__first != __last)
16024     {
16025     if (*__first < *__result_first)
16026     std::__adjust_heap(__result_first, _DistanceType(0),
16027     _DistanceType(__result_real_last
16028     - __result_first),
16029     _InputValueType(*__first));
16030     ++__first;
16031     }
16032     std::sort_heap(__result_first, __result_real_last);
16033     return __result_real_last;
16034     }
16035     # 2403 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16036     template<typename _InputIterator, typename _RandomAccessIterator, typename _Compare>
16037     _RandomAccessIterator
16038     partial_sort_copy(_InputIterator __first, _InputIterator __last,
16039     _RandomAccessIterator __result_first,
16040     _RandomAccessIterator __result_last,
16041     _Compare __comp)
16042     {
16043     typedef typename iterator_traits<_InputIterator>::value_type
16044     _InputValueType;
16045     typedef typename iterator_traits<_RandomAccessIterator>::value_type
16046     _OutputValueType;
16047     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
16048     _DistanceType;
16049    
16050    
16051    
16052    
16053    
16054    
16055    
16056    
16057    
16058     ;
16059     ;
16060    
16061     if (__result_first == __result_last)
16062     return __result_last;
16063     _RandomAccessIterator __result_real_last = __result_first;
16064     while(__first != __last && __result_real_last != __result_last)
16065     {
16066     *__result_real_last = *__first;
16067     ++__result_real_last;
16068     ++__first;
16069     }
16070     std::make_heap(__result_first, __result_real_last, __comp);
16071     while (__first != __last)
16072     {
16073     if (__comp(*__first, *__result_first))
16074     std::__adjust_heap(__result_first, _DistanceType(0),
16075     _DistanceType(__result_real_last
16076     - __result_first),
16077     _InputValueType(*__first),
16078     __comp);
16079     ++__first;
16080     }
16081     std::sort_heap(__result_first, __result_real_last, __comp);
16082     return __result_real_last;
16083     }
16084    
16085    
16086    
16087    
16088    
16089    
16090     template<typename _RandomAccessIterator, typename _Size>
16091     void
16092     __introsort_loop(_RandomAccessIterator __first,
16093     _RandomAccessIterator __last,
16094     _Size __depth_limit)
16095     {
16096     typedef typename iterator_traits<_RandomAccessIterator>::value_type
16097     _ValueType;
16098    
16099     while (__last - __first > _S_threshold)
16100     {
16101     if (__depth_limit == 0)
16102     {
16103     std::partial_sort(__first, __last, __last);
16104     return;
16105     }
16106     --__depth_limit;
16107     _RandomAccessIterator __cut =
16108     std::__unguarded_partition(__first, __last,
16109     _ValueType(std::__median(*__first,
16110     *(__first
16111     + (__last
16112     - __first)
16113     / 2),
16114     *(__last
16115     - 1))));
16116     std::__introsort_loop(__cut, __last, __depth_limit);
16117     __last = __cut;
16118     }
16119     }
16120    
16121    
16122    
16123    
16124    
16125    
16126     template<typename _RandomAccessIterator, typename _Size, typename _Compare>
16127     void
16128     __introsort_loop(_RandomAccessIterator __first,
16129     _RandomAccessIterator __last,
16130     _Size __depth_limit, _Compare __comp)
16131     {
16132     typedef typename iterator_traits<_RandomAccessIterator>::value_type
16133     _ValueType;
16134    
16135     while (__last - __first > _S_threshold)
16136     {
16137     if (__depth_limit == 0)
16138     {
16139     std::partial_sort(__first, __last, __last, __comp);
16140     return;
16141     }
16142     --__depth_limit;
16143     _RandomAccessIterator __cut =
16144     std::__unguarded_partition(__first, __last,
16145     _ValueType(std::__median(*__first,
16146     *(__first
16147     + (__last
16148     - __first)
16149     / 2),
16150     *(__last - 1),
16151     __comp)),
16152     __comp);
16153     std::__introsort_loop(__cut, __last, __depth_limit, __comp);
16154     __last = __cut;
16155     }
16156     }
16157     # 2538 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16158     template<typename _RandomAccessIterator>
16159     inline void
16160     sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
16161     {
16162     typedef typename iterator_traits<_RandomAccessIterator>::value_type
16163     _ValueType;
16164    
16165    
16166    
16167    
16168    
16169     ;
16170    
16171     if (__first != __last)
16172     {
16173     std::__introsort_loop(__first, __last, __lg(__last - __first) * 2);
16174     std::__final_insertion_sort(__first, __last);
16175     }
16176     }
16177     # 2572 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16178     template<typename _RandomAccessIterator, typename _Compare>
16179     inline void
16180     sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
16181     _Compare __comp)
16182     {
16183     typedef typename iterator_traits<_RandomAccessIterator>::value_type
16184     _ValueType;
16185    
16186    
16187    
16188    
16189    
16190    
16191     ;
16192    
16193     if (__first != __last)
16194     {
16195     std::__introsort_loop(__first, __last, __lg(__last - __first) * 2,
16196     __comp);
16197     std::__final_insertion_sort(__first, __last, __comp);
16198     }
16199     }
16200     # 2605 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16201     template<typename _ForwardIterator, typename _Tp>
16202     _ForwardIterator
16203     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
16204     const _Tp& __val)
16205     {
16206     typedef typename iterator_traits<_ForwardIterator>::value_type
16207     _ValueType;
16208     typedef typename iterator_traits<_ForwardIterator>::difference_type
16209     _DistanceType;
16210    
16211    
16212    
16213    
16214    
16215    
16216    
16217    
16218    
16219     ;
16220    
16221     _DistanceType __len = std::distance(__first, __last);
16222     _DistanceType __half;
16223     _ForwardIterator __middle;
16224    
16225     while (__len > 0)
16226     {
16227     __half = __len >> 1;
16228     __middle = __first;
16229     std::advance(__middle, __half);
16230     if (*__middle < __val)
16231     {
16232     __first = __middle;
16233     ++__first;
16234     __len = __len - __half - 1;
16235     }
16236     else
16237     __len = __half;
16238     }
16239     return __first;
16240     }
16241     # 2660 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16242     template<typename _ForwardIterator, typename _Tp, typename _Compare>
16243     _ForwardIterator
16244     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
16245     const _Tp& __val, _Compare __comp)
16246     {
16247     typedef typename iterator_traits<_ForwardIterator>::value_type
16248     _ValueType;
16249     typedef typename iterator_traits<_ForwardIterator>::difference_type
16250     _DistanceType;
16251    
16252    
16253    
16254    
16255    
16256     ;
16257    
16258     _DistanceType __len = std::distance(__first, __last);
16259     _DistanceType __half;
16260     _ForwardIterator __middle;
16261    
16262     while (__len > 0)
16263     {
16264     __half = __len >> 1;
16265     __middle = __first;
16266     std::advance(__middle, __half);
16267     if (__comp(*__middle, __val))
16268     {
16269     __first = __middle;
16270     ++__first;
16271     __len = __len - __half - 1;
16272     }
16273     else
16274     __len = __half;
16275     }
16276     return __first;
16277     }
16278     # 2707 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16279     template<typename _ForwardIterator, typename _Tp>
16280     _ForwardIterator
16281     upper_bound(_ForwardIterator __first, _ForwardIterator __last,
16282     const _Tp& __val)
16283     {
16284     typedef typename iterator_traits<_ForwardIterator>::value_type
16285     _ValueType;
16286     typedef typename iterator_traits<_ForwardIterator>::difference_type
16287     _DistanceType;
16288    
16289    
16290    
16291    
16292    
16293    
16294     ;
16295    
16296     _DistanceType __len = std::distance(__first, __last);
16297     _DistanceType __half;
16298     _ForwardIterator __middle;
16299    
16300     while (__len > 0)
16301     {
16302     __half = __len >> 1;
16303     __middle = __first;
16304     std::advance(__middle, __half);
16305     if (__val < *__middle)
16306     __len = __half;
16307     else
16308     {
16309     __first = __middle;
16310     ++__first;
16311     __len = __len - __half - 1;
16312     }
16313     }
16314     return __first;
16315     }
16316     # 2759 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16317     template<typename _ForwardIterator, typename _Tp, typename _Compare>
16318     _ForwardIterator
16319     upper_bound(_ForwardIterator __first, _ForwardIterator __last,
16320     const _Tp& __val, _Compare __comp)
16321     {
16322     typedef typename iterator_traits<_ForwardIterator>::value_type
16323     _ValueType;
16324     typedef typename iterator_traits<_ForwardIterator>::difference_type
16325     _DistanceType;
16326    
16327    
16328    
16329    
16330    
16331     ;
16332    
16333     _DistanceType __len = std::distance(__first, __last);
16334     _DistanceType __half;
16335     _ForwardIterator __middle;
16336    
16337     while (__len > 0)
16338     {
16339     __half = __len >> 1;
16340     __middle = __first;
16341     std::advance(__middle, __half);
16342     if (__comp(__val, *__middle))
16343     __len = __half;
16344     else
16345     {
16346     __first = __middle;
16347     ++__first;
16348     __len = __len - __half - 1;
16349     }
16350     }
16351     return __first;
16352     }
16353    
16354    
16355    
16356    
16357    
16358    
16359     template<typename _BidirectionalIterator, typename _Distance>
16360     void
16361     __merge_without_buffer(_BidirectionalIterator __first,
16362     _BidirectionalIterator __middle,
16363     _BidirectionalIterator __last,
16364     _Distance __len1, _Distance __len2)
16365     {
16366     if (__len1 == 0 || __len2 == 0)
16367     return;
16368     if (__len1 + __len2 == 2)
16369     {
16370     if (*__middle < *__first)
16371     std::iter_swap(__first, __middle);
16372     return;
16373     }
16374     _BidirectionalIterator __first_cut = __first;
16375     _BidirectionalIterator __second_cut = __middle;
16376     _Distance __len11 = 0;
16377     _Distance __len22 = 0;
16378     if (__len1 > __len2)
16379     {
16380     __len11 = __len1 / 2;
16381     std::advance(__first_cut, __len11);
16382     __second_cut = std::lower_bound(__middle, __last, *__first_cut);
16383     __len22 = std::distance(__middle, __second_cut);
16384     }
16385     else
16386     {
16387     __len22 = __len2 / 2;
16388     std::advance(__second_cut, __len22);
16389     __first_cut = std::upper_bound(__first, __middle, *__second_cut);
16390     __len11 = std::distance(__first, __first_cut);
16391     }
16392     std::rotate(__first_cut, __middle, __second_cut);
16393     _BidirectionalIterator __new_middle = __first_cut;
16394     std::advance(__new_middle, std::distance(__middle, __second_cut));
16395     std::__merge_without_buffer(__first, __first_cut, __new_middle,
16396     __len11, __len22);
16397     std::__merge_without_buffer(__new_middle, __second_cut, __last,
16398     __len1 - __len11, __len2 - __len22);
16399     }
16400    
16401    
16402    
16403    
16404    
16405    
16406     template<typename _BidirectionalIterator, typename _Distance,
16407     typename _Compare>
16408     void
16409     __merge_without_buffer(_BidirectionalIterator __first,
16410     _BidirectionalIterator __middle,
16411     _BidirectionalIterator __last,
16412     _Distance __len1, _Distance __len2,
16413     _Compare __comp)
16414     {
16415     if (__len1 == 0 || __len2 == 0)
16416     return;
16417     if (__len1 + __len2 == 2)
16418     {
16419     if (__comp(*__middle, *__first))
16420     std::iter_swap(__first, __middle);
16421     return;
16422     }
16423     _BidirectionalIterator __first_cut = __first;
16424     _BidirectionalIterator __second_cut = __middle;
16425     _Distance __len11 = 0;
16426     _Distance __len22 = 0;
16427     if (__len1 > __len2)
16428     {
16429     __len11 = __len1 / 2;
16430     std::advance(__first_cut, __len11);
16431     __second_cut = std::lower_bound(__middle, __last, *__first_cut,
16432     __comp);
16433     __len22 = std::distance(__middle, __second_cut);
16434     }
16435     else
16436     {
16437     __len22 = __len2 / 2;
16438     std::advance(__second_cut, __len22);
16439     __first_cut = std::upper_bound(__first, __middle, *__second_cut,
16440     __comp);
16441     __len11 = std::distance(__first, __first_cut);
16442     }
16443     std::rotate(__first_cut, __middle, __second_cut);
16444     _BidirectionalIterator __new_middle = __first_cut;
16445     std::advance(__new_middle, std::distance(__middle, __second_cut));
16446     std::__merge_without_buffer(__first, __first_cut, __new_middle,
16447     __len11, __len22, __comp);
16448     std::__merge_without_buffer(__new_middle, __second_cut, __last,
16449     __len1 - __len11, __len2 - __len22, __comp);
16450     }
16451    
16452    
16453    
16454    
16455    
16456    
16457     template<typename _RandomAccessIterator>
16458     void
16459     __inplace_stable_sort(_RandomAccessIterator __first,
16460     _RandomAccessIterator __last)
16461     {
16462     if (__last - __first < 15)
16463     {
16464     std::__insertion_sort(__first, __last);
16465     return;
16466     }
16467     _RandomAccessIterator __middle = __first + (__last - __first) / 2;
16468     std::__inplace_stable_sort(__first, __middle);
16469     std::__inplace_stable_sort(__middle, __last);
16470     std::__merge_without_buffer(__first, __middle, __last,
16471     __middle - __first,
16472     __last - __middle);
16473     }
16474    
16475    
16476    
16477    
16478    
16479    
16480     template<typename _RandomAccessIterator, typename _Compare>
16481     void
16482     __inplace_stable_sort(_RandomAccessIterator __first,
16483     _RandomAccessIterator __last, _Compare __comp)
16484     {
16485     if (__last - __first < 15)
16486     {
16487     std::__insertion_sort(__first, __last, __comp);
16488     return;
16489     }
16490     _RandomAccessIterator __middle = __first + (__last - __first) / 2;
16491     std::__inplace_stable_sort(__first, __middle, __comp);
16492     std::__inplace_stable_sort(__middle, __last, __comp);
16493     std::__merge_without_buffer(__first, __middle, __last,
16494     __middle - __first,
16495     __last - __middle,
16496     __comp);
16497     }
16498     # 2957 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16499     template<typename _InputIterator1, typename _InputIterator2,
16500     typename _OutputIterator>
16501     _OutputIterator
16502     merge(_InputIterator1 __first1, _InputIterator1 __last1,
16503     _InputIterator2 __first2, _InputIterator2 __last2,
16504     _OutputIterator __result)
16505     {
16506    
16507    
16508    
16509    
16510    
16511    
16512    
16513    
16514    
16515    
16516     ;
16517     ;
16518    
16519     while (__first1 != __last1 && __first2 != __last2)
16520     {
16521     if (*__first2 < *__first1)
16522     {
16523     *__result = *__first2;
16524     ++__first2;
16525     }
16526     else
16527     {
16528     *__result = *__first1;
16529     ++__first1;
16530     }
16531     ++__result;
16532     }
16533     return std::copy(__first2, __last2, std::copy(__first1, __last1,
16534     __result));
16535     }
16536     # 3015 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16537     template<typename _InputIterator1, typename _InputIterator2,
16538     typename _OutputIterator, typename _Compare>
16539     _OutputIterator
16540     merge(_InputIterator1 __first1, _InputIterator1 __last1,
16541     _InputIterator2 __first2, _InputIterator2 __last2,
16542     _OutputIterator __result, _Compare __comp)
16543     {
16544    
16545    
16546    
16547    
16548    
16549    
16550    
16551    
16552    
16553    
16554    
16555     ;
16556     ;
16557    
16558     while (__first1 != __last1 && __first2 != __last2)
16559     {
16560     if (__comp(*__first2, *__first1))
16561     {
16562     *__result = *__first2;
16563     ++__first2;
16564     }
16565     else
16566     {
16567     *__result = *__first1;
16568     ++__first1;
16569     }
16570     ++__result;
16571     }
16572     return std::copy(__first2, __last2, std::copy(__first1, __last1,
16573     __result));
16574     }
16575    
16576     template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
16577     typename _Distance>
16578     void
16579     __merge_sort_loop(_RandomAccessIterator1 __first,
16580     _RandomAccessIterator1 __last,
16581     _RandomAccessIterator2 __result,
16582     _Distance __step_size)
16583     {
16584     const _Distance __two_step = 2 * __step_size;
16585    
16586     while (__last - __first >= __two_step)
16587     {
16588     __result = std::merge(__first, __first + __step_size,
16589     __first + __step_size, __first + __two_step,
16590     __result);
16591     __first += __two_step;
16592     }
16593    
16594     __step_size = std::min(_Distance(__last - __first), __step_size);
16595     std::merge(__first, __first + __step_size, __first + __step_size, __last,
16596     __result);
16597     }
16598    
16599     template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
16600     typename _Distance, typename _Compare>
16601     void
16602     __merge_sort_loop(_RandomAccessIterator1 __first,
16603     _RandomAccessIterator1 __last,
16604     _RandomAccessIterator2 __result, _Distance __step_size,
16605     _Compare __comp)
16606     {
16607     const _Distance __two_step = 2 * __step_size;
16608    
16609     while (__last - __first >= __two_step)
16610     {
16611     __result = std::merge(__first, __first + __step_size,
16612     __first + __step_size, __first + __two_step,
16613     __result,
16614     __comp);
16615     __first += __two_step;
16616     }
16617     __step_size = std::min(_Distance(__last - __first), __step_size);
16618    
16619     std::merge(__first, __first + __step_size,
16620     __first + __step_size, __last,
16621     __result,
16622     __comp);
16623     }
16624    
16625     enum { _S_chunk_size = 7 };
16626    
16627     template<typename _RandomAccessIterator, typename _Distance>
16628     void
16629     __chunk_insertion_sort(_RandomAccessIterator __first,
16630     _RandomAccessIterator __last,
16631     _Distance __chunk_size)
16632     {
16633     while (__last - __first >= __chunk_size)
16634     {
16635     std::__insertion_sort(__first, __first + __chunk_size);
16636     __first += __chunk_size;
16637     }
16638     std::__insertion_sort(__first, __last);
16639     }
16640    
16641     template<typename _RandomAccessIterator, typename _Distance, typename _Compare>
16642     void
16643     __chunk_insertion_sort(_RandomAccessIterator __first,
16644     _RandomAccessIterator __last,
16645     _Distance __chunk_size, _Compare __comp)
16646     {
16647     while (__last - __first >= __chunk_size)
16648     {
16649     std::__insertion_sort(__first, __first + __chunk_size, __comp);
16650     __first += __chunk_size;
16651     }
16652     std::__insertion_sort(__first, __last, __comp);
16653     }
16654    
16655     template<typename _RandomAccessIterator, typename _Pointer>
16656     void
16657     __merge_sort_with_buffer(_RandomAccessIterator __first,
16658     _RandomAccessIterator __last,
16659     _Pointer __buffer)
16660     {
16661     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
16662     _Distance;
16663    
16664     const _Distance __len = __last - __first;
16665     const _Pointer __buffer_last = __buffer + __len;
16666    
16667     _Distance __step_size = _S_chunk_size;
16668     std::__chunk_insertion_sort(__first, __last, __step_size);
16669    
16670     while (__step_size < __len)
16671     {
16672     std::__merge_sort_loop(__first, __last, __buffer, __step_size);
16673     __step_size *= 2;
16674     std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size);
16675     __step_size *= 2;
16676     }
16677     }
16678    
16679     template<typename _RandomAccessIterator, typename _Pointer, typename _Compare>
16680     void
16681     __merge_sort_with_buffer(_RandomAccessIterator __first,
16682     _RandomAccessIterator __last,
16683     _Pointer __buffer, _Compare __comp)
16684     {
16685     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
16686     _Distance;
16687    
16688     const _Distance __len = __last - __first;
16689     const _Pointer __buffer_last = __buffer + __len;
16690    
16691     _Distance __step_size = _S_chunk_size;
16692     std::__chunk_insertion_sort(__first, __last, __step_size, __comp);
16693    
16694     while (__step_size < __len)
16695     {
16696     std::__merge_sort_loop(__first, __last, __buffer,
16697     __step_size, __comp);
16698     __step_size *= 2;
16699     std::__merge_sort_loop(__buffer, __buffer_last, __first,
16700     __step_size, __comp);
16701     __step_size *= 2;
16702     }
16703     }
16704    
16705    
16706    
16707    
16708    
16709    
16710     template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
16711     typename _BidirectionalIterator3>
16712     _BidirectionalIterator3
16713     __merge_backward(_BidirectionalIterator1 __first1,
16714     _BidirectionalIterator1 __last1,
16715     _BidirectionalIterator2 __first2,
16716     _BidirectionalIterator2 __last2,
16717     _BidirectionalIterator3 __result)
16718     {
16719     if (__first1 == __last1)
16720     return std::copy_backward(__first2, __last2, __result);
16721     if (__first2 == __last2)
16722     return std::copy_backward(__first1, __last1, __result);
16723     --__last1;
16724     --__last2;
16725     while (true)
16726     {
16727     if (*__last2 < *__last1)
16728     {
16729     *--__result = *__last1;
16730     if (__first1 == __last1)
16731     return std::copy_backward(__first2, ++__last2, __result);
16732     --__last1;
16733     }
16734     else
16735     {
16736     *--__result = *__last2;
16737     if (__first2 == __last2)
16738     return std::copy_backward(__first1, ++__last1, __result);
16739     --__last2;
16740     }
16741     }
16742     }
16743    
16744    
16745    
16746    
16747    
16748    
16749     template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
16750     typename _BidirectionalIterator3, typename _Compare>
16751     _BidirectionalIterator3
16752     __merge_backward(_BidirectionalIterator1 __first1,
16753     _BidirectionalIterator1 __last1,
16754     _BidirectionalIterator2 __first2,
16755     _BidirectionalIterator2 __last2,
16756     _BidirectionalIterator3 __result,
16757     _Compare __comp)
16758     {
16759     if (__first1 == __last1)
16760     return std::copy_backward(__first2, __last2, __result);
16761     if (__first2 == __last2)
16762     return std::copy_backward(__first1, __last1, __result);
16763     --__last1;
16764     --__last2;
16765     while (true)
16766     {
16767     if (__comp(*__last2, *__last1))
16768     {
16769     *--__result = *__last1;
16770     if (__first1 == __last1)
16771     return std::copy_backward(__first2, ++__last2, __result);
16772     --__last1;
16773     }
16774     else
16775     {
16776     *--__result = *__last2;
16777     if (__first2 == __last2)
16778     return std::copy_backward(__first1, ++__last1, __result);
16779     --__last2;
16780     }
16781     }
16782     }
16783    
16784    
16785    
16786    
16787    
16788    
16789     template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
16790     typename _Distance>
16791     _BidirectionalIterator1
16792     __rotate_adaptive(_BidirectionalIterator1 __first,
16793     _BidirectionalIterator1 __middle,
16794     _BidirectionalIterator1 __last,
16795     _Distance __len1, _Distance __len2,
16796     _BidirectionalIterator2 __buffer,
16797     _Distance __buffer_size)
16798     {
16799     _BidirectionalIterator2 __buffer_end;
16800     if (__len1 > __len2 && __len2 <= __buffer_size)
16801     {
16802     __buffer_end = std::copy(__middle, __last, __buffer);
16803     std::copy_backward(__first, __middle, __last);
16804     return std::copy(__buffer, __buffer_end, __first);
16805     }
16806     else if (__len1 <= __buffer_size)
16807     {
16808     __buffer_end = std::copy(__first, __middle, __buffer);
16809     std::copy(__middle, __last, __first);
16810     return std::copy_backward(__buffer, __buffer_end, __last);
16811     }
16812     else
16813     {
16814     std::rotate(__first, __middle, __last);
16815     std::advance(__first, std::distance(__middle, __last));
16816     return __first;
16817     }
16818     }
16819    
16820    
16821    
16822    
16823    
16824    
16825     template<typename _BidirectionalIterator, typename _Distance,
16826     typename _Pointer>
16827     void
16828     __merge_adaptive(_BidirectionalIterator __first,
16829     _BidirectionalIterator __middle,
16830     _BidirectionalIterator __last,
16831     _Distance __len1, _Distance __len2,
16832     _Pointer __buffer, _Distance __buffer_size)
16833     {
16834     if (__len1 <= __len2 && __len1 <= __buffer_size)
16835     {
16836     _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
16837     std::merge(__buffer, __buffer_end, __middle, __last, __first);
16838     }
16839     else if (__len2 <= __buffer_size)
16840     {
16841     _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
16842     std::__merge_backward(__first, __middle, __buffer,
16843     __buffer_end, __last);
16844     }
16845     else
16846     {
16847     _BidirectionalIterator __first_cut = __first;
16848     _BidirectionalIterator __second_cut = __middle;
16849     _Distance __len11 = 0;
16850     _Distance __len22 = 0;
16851     if (__len1 > __len2)
16852     {
16853     __len11 = __len1 / 2;
16854     std::advance(__first_cut, __len11);
16855     __second_cut = std::lower_bound(__middle, __last,
16856     *__first_cut);
16857     __len22 = std::distance(__middle, __second_cut);
16858     }
16859     else
16860     {
16861     __len22 = __len2 / 2;
16862     std::advance(__second_cut, __len22);
16863     __first_cut = std::upper_bound(__first, __middle,
16864     *__second_cut);
16865     __len11 = std::distance(__first, __first_cut);
16866     }
16867     _BidirectionalIterator __new_middle =
16868     std::__rotate_adaptive(__first_cut, __middle, __second_cut,
16869     __len1 - __len11, __len22, __buffer,
16870     __buffer_size);
16871     std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
16872     __len22, __buffer, __buffer_size);
16873     std::__merge_adaptive(__new_middle, __second_cut, __last,
16874     __len1 - __len11,
16875     __len2 - __len22, __buffer, __buffer_size);
16876     }
16877     }
16878    
16879    
16880    
16881    
16882    
16883    
16884     template<typename _BidirectionalIterator, typename _Distance, typename _Pointer,
16885     typename _Compare>
16886     void
16887     __merge_adaptive(_BidirectionalIterator __first,
16888     _BidirectionalIterator __middle,
16889     _BidirectionalIterator __last,
16890     _Distance __len1, _Distance __len2,
16891     _Pointer __buffer, _Distance __buffer_size,
16892     _Compare __comp)
16893     {
16894     if (__len1 <= __len2 && __len1 <= __buffer_size)
16895     {
16896     _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
16897     std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
16898     }
16899     else if (__len2 <= __buffer_size)
16900     {
16901     _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
16902     std::__merge_backward(__first, __middle, __buffer, __buffer_end,
16903     __last, __comp);
16904     }
16905     else
16906     {
16907     _BidirectionalIterator __first_cut = __first;
16908     _BidirectionalIterator __second_cut = __middle;
16909     _Distance __len11 = 0;
16910     _Distance __len22 = 0;
16911     if (__len1 > __len2)
16912     {
16913     __len11 = __len1 / 2;
16914     std::advance(__first_cut, __len11);
16915     __second_cut = std::lower_bound(__middle, __last, *__first_cut,
16916     __comp);
16917     __len22 = std::distance(__middle, __second_cut);
16918     }
16919     else
16920     {
16921     __len22 = __len2 / 2;
16922     std::advance(__second_cut, __len22);
16923     __first_cut = std::upper_bound(__first, __middle, *__second_cut,
16924     __comp);
16925     __len11 = std::distance(__first, __first_cut);
16926     }
16927     _BidirectionalIterator __new_middle =
16928     std::__rotate_adaptive(__first_cut, __middle, __second_cut,
16929     __len1 - __len11, __len22, __buffer,
16930     __buffer_size);
16931     std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
16932     __len22, __buffer, __buffer_size, __comp);
16933     std::__merge_adaptive(__new_middle, __second_cut, __last,
16934     __len1 - __len11,
16935     __len2 - __len22, __buffer,
16936     __buffer_size, __comp);
16937     }
16938     }
16939     # 3435 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16940     template<typename _BidirectionalIterator>
16941     void
16942     inplace_merge(_BidirectionalIterator __first,
16943     _BidirectionalIterator __middle,
16944     _BidirectionalIterator __last)
16945     {
16946     typedef typename iterator_traits<_BidirectionalIterator>::value_type
16947     _ValueType;
16948     typedef typename iterator_traits<_BidirectionalIterator>::difference_type
16949     _DistanceType;
16950    
16951    
16952    
16953    
16954    
16955     ;
16956     ;
16957    
16958     if (__first == __middle || __middle == __last)
16959     return;
16960    
16961     _DistanceType __len1 = std::distance(__first, __middle);
16962     _DistanceType __len2 = std::distance(__middle, __last);
16963    
16964     _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
16965     __last);
16966     if (__buf.begin() == 0)
16967     std::__merge_without_buffer(__first, __middle, __last, __len1, __len2);
16968     else
16969     std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
16970     __buf.begin(), _DistanceType(__buf.size()));
16971     }
16972     # 3489 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16973     template<typename _BidirectionalIterator, typename _Compare>
16974     void
16975     inplace_merge(_BidirectionalIterator __first,
16976     _BidirectionalIterator __middle,
16977     _BidirectionalIterator __last,
16978     _Compare __comp)
16979     {
16980     typedef typename iterator_traits<_BidirectionalIterator>::value_type
16981     _ValueType;
16982     typedef typename iterator_traits<_BidirectionalIterator>::difference_type
16983     _DistanceType;
16984    
16985    
16986    
16987    
16988    
16989    
16990     ;
16991     ;
16992    
16993     if (__first == __middle || __middle == __last)
16994     return;
16995    
16996     const _DistanceType __len1 = std::distance(__first, __middle);
16997     const _DistanceType __len2 = std::distance(__middle, __last);
16998    
16999     _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
17000     __last);
17001     if (__buf.begin() == 0)
17002     std::__merge_without_buffer(__first, __middle, __last, __len1,
17003     __len2, __comp);
17004     else
17005     std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
17006     __buf.begin(), _DistanceType(__buf.size()),
17007     __comp);
17008     }
17009    
17010     template<typename _RandomAccessIterator, typename _Pointer,
17011     typename _Distance>
17012     void
17013     __stable_sort_adaptive(_RandomAccessIterator __first,
17014     _RandomAccessIterator __last,
17015     _Pointer __buffer, _Distance __buffer_size)
17016     {
17017     const _Distance __len = (__last - __first + 1) / 2;
17018     const _RandomAccessIterator __middle = __first + __len;
17019     if (__len > __buffer_size)
17020     {
17021     std::__stable_sort_adaptive(__first, __middle,
17022     __buffer, __buffer_size);
17023     std::__stable_sort_adaptive(__middle, __last,
17024     __buffer, __buffer_size);
17025     }
17026     else
17027     {
17028     std::__merge_sort_with_buffer(__first, __middle, __buffer);
17029     std::__merge_sort_with_buffer(__middle, __last, __buffer);
17030     }
17031     std::__merge_adaptive(__first, __middle, __last,
17032     _Distance(__middle - __first),
17033     _Distance(__last - __middle),
17034     __buffer, __buffer_size);
17035     }
17036    
17037     template<typename _RandomAccessIterator, typename _Pointer,
17038     typename _Distance, typename _Compare>
17039     void
17040     __stable_sort_adaptive(_RandomAccessIterator __first,
17041     _RandomAccessIterator __last,
17042     _Pointer __buffer, _Distance __buffer_size,
17043     _Compare __comp)
17044     {
17045     const _Distance __len = (__last - __first + 1) / 2;
17046     const _RandomAccessIterator __middle = __first + __len;
17047     if (__len > __buffer_size)
17048     {
17049     std::__stable_sort_adaptive(__first, __middle, __buffer,
17050     __buffer_size, __comp);
17051     std::__stable_sort_adaptive(__middle, __last, __buffer,
17052     __buffer_size, __comp);
17053     }
17054     else
17055     {
17056     std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp);
17057     std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp);
17058     }
17059     std::__merge_adaptive(__first, __middle, __last,
17060     _Distance(__middle - __first),
17061     _Distance(__last - __middle),
17062     __buffer, __buffer_size,
17063     __comp);
17064     }
17065     # 3598 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17066     template<typename _RandomAccessIterator>
17067     inline void
17068     stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
17069     {
17070     typedef typename iterator_traits<_RandomAccessIterator>::value_type
17071     _ValueType;
17072     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
17073     _DistanceType;
17074    
17075    
17076    
17077    
17078    
17079     ;
17080    
17081     _Temporary_buffer<_RandomAccessIterator, _ValueType>
17082     buf(__first, __last);
17083     if (buf.begin() == 0)
17084     std::__inplace_stable_sort(__first, __last);
17085     else
17086     std::__stable_sort_adaptive(__first, __last, buf.begin(),
17087     _DistanceType(buf.size()));
17088     }
17089     # 3639 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17090     template<typename _RandomAccessIterator, typename _Compare>
17091     inline void
17092     stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
17093     _Compare __comp)
17094     {
17095     typedef typename iterator_traits<_RandomAccessIterator>::value_type
17096     _ValueType;
17097     typedef typename iterator_traits<_RandomAccessIterator>::difference_type
17098     _DistanceType;
17099    
17100    
17101    
17102    
17103    
17104    
17105    
17106     ;
17107    
17108     _Temporary_buffer<_RandomAccessIterator, _ValueType> buf(__first, __last);
17109     if (buf.begin() == 0)
17110     std::__inplace_stable_sort(__first, __last, __comp);
17111     else
17112     std::__stable_sort_adaptive(__first, __last, buf.begin(),
17113     _DistanceType(buf.size()), __comp);
17114     }
17115     # 3680 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17116     template<typename _RandomAccessIterator>
17117     void
17118     nth_element(_RandomAccessIterator __first,
17119     _RandomAccessIterator __nth,
17120     _RandomAccessIterator __last)
17121     {
17122     typedef typename iterator_traits<_RandomAccessIterator>::value_type
17123     _ValueType;
17124    
17125    
17126    
17127    
17128    
17129     ;
17130     ;
17131    
17132     while (__last - __first > 3)
17133     {
17134     _RandomAccessIterator __cut =
17135     std::__unguarded_partition(__first, __last,
17136     _ValueType(std::__median(*__first,
17137     *(__first
17138     + (__last
17139     - __first)
17140     / 2),
17141     *(__last
17142     - 1))));
17143     if (__cut <= __nth)
17144     __first = __cut;
17145     else
17146     __last = __cut;
17147     }
17148     std::__insertion_sort(__first, __last);
17149     }
17150     # 3731 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17151     template<typename _RandomAccessIterator, typename _Compare>
17152     void
17153     nth_element(_RandomAccessIterator __first,
17154     _RandomAccessIterator __nth,
17155     _RandomAccessIterator __last,
17156     _Compare __comp)
17157     {
17158     typedef typename iterator_traits<_RandomAccessIterator>::value_type
17159     _ValueType;
17160    
17161    
17162    
17163    
17164    
17165    
17166     ;
17167     ;
17168    
17169     while (__last - __first > 3)
17170     {
17171     _RandomAccessIterator __cut =
17172     std::__unguarded_partition(__first, __last,
17173     _ValueType(std::__median(*__first,
17174     *(__first
17175     + (__last
17176     - __first)
17177     / 2),
17178     *(__last - 1),
17179     __comp)), __comp);
17180     if (__cut <= __nth)
17181     __first = __cut;
17182     else
17183     __last = __cut;
17184     }
17185     std::__insertion_sort(__first, __last, __comp);
17186     }
17187     # 3784 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17188     template<typename _ForwardIterator, typename _Tp>
17189     pair<_ForwardIterator, _ForwardIterator>
17190     equal_range(_ForwardIterator __first, _ForwardIterator __last,
17191     const _Tp& __val)
17192     {
17193     typedef typename iterator_traits<_ForwardIterator>::value_type
17194     _ValueType;
17195     typedef typename iterator_traits<_ForwardIterator>::difference_type
17196     _DistanceType;
17197    
17198    
17199    
17200    
17201    
17202    
17203     ;
17204    
17205     _DistanceType __len = std::distance(__first, __last);
17206     _DistanceType __half;
17207     _ForwardIterator __middle, __left, __right;
17208    
17209     while (__len > 0)
17210     {
17211     __half = __len >> 1;
17212     __middle = __first;
17213     std::advance(__middle, __half);
17214     if (*__middle < __val)
17215     {
17216     __first = __middle;
17217     ++__first;
17218     __len = __len - __half - 1;
17219     }
17220     else if (__val < *__middle)
17221     __len = __half;
17222     else
17223     {
17224     __left = std::lower_bound(__first, __middle, __val);
17225     std::advance(__first, __len);
17226     __right = std::upper_bound(++__middle, __first, __val);
17227     return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
17228     }
17229     }
17230     return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
17231     }
17232     # 3846 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17233     template<typename _ForwardIterator, typename _Tp, typename _Compare>
17234     pair<_ForwardIterator, _ForwardIterator>
17235     equal_range(_ForwardIterator __first, _ForwardIterator __last,
17236     const _Tp& __val,
17237     _Compare __comp)
17238     {
17239     typedef typename iterator_traits<_ForwardIterator>::value_type
17240     _ValueType;
17241     typedef typename iterator_traits<_ForwardIterator>::difference_type
17242     _DistanceType;
17243    
17244    
17245    
17246    
17247    
17248    
17249    
17250     ;
17251    
17252     _DistanceType __len = std::distance(__first, __last);
17253     _DistanceType __half;
17254     _ForwardIterator __middle, __left, __right;
17255    
17256     while (__len > 0)
17257     {
17258     __half = __len >> 1;
17259     __middle = __first;
17260     std::advance(__middle, __half);
17261     if (__comp(*__middle, __val))
17262     {
17263     __first = __middle;
17264     ++__first;
17265     __len = __len - __half - 1;
17266     }
17267     else if (__comp(__val, *__middle))
17268     __len = __half;
17269     else
17270     {
17271     __left = std::lower_bound(__first, __middle, __val, __comp);
17272     std::advance(__first, __len);
17273     __right = std::upper_bound(++__middle, __first, __val, __comp);
17274     return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
17275     }
17276     }
17277     return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
17278     }
17279     # 3904 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17280     template<typename _ForwardIterator, typename _Tp>
17281     bool
17282     binary_search(_ForwardIterator __first, _ForwardIterator __last,
17283     const _Tp& __val)
17284     {
17285    
17286    
17287    
17288    
17289    
17290    
17291     ;
17292    
17293     _ForwardIterator __i = std::lower_bound(__first, __last, __val);
17294     return __i != __last && !(__val < *__i);
17295     }
17296     # 3936 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17297     template<typename _ForwardIterator, typename _Tp, typename _Compare>
17298     bool
17299     binary_search(_ForwardIterator __first, _ForwardIterator __last,
17300     const _Tp& __val, _Compare __comp)
17301     {
17302    
17303    
17304    
17305    
17306    
17307    
17308     ;
17309    
17310     _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp);
17311     return __i != __last && !__comp(__val, *__i);
17312     }
17313     # 3974 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17314     template<typename _InputIterator1, typename _InputIterator2>
17315     bool
17316     includes(_InputIterator1 __first1, _InputIterator1 __last1,
17317     _InputIterator2 __first2, _InputIterator2 __last2)
17318     {
17319    
17320    
17321    
17322    
17323    
17324    
17325    
17326    
17327     ;
17328     ;
17329    
17330     while (__first1 != __last1 && __first2 != __last2)
17331     if (*__first2 < *__first1)
17332     return false;
17333     else if(*__first1 < *__first2)
17334     ++__first1;
17335     else
17336     ++__first1, ++__first2;
17337    
17338     return __first2 == __last2;
17339     }
17340     # 4020 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17341     template<typename _InputIterator1, typename _InputIterator2,
17342     typename _Compare>
17343     bool
17344     includes(_InputIterator1 __first1, _InputIterator1 __last1,
17345     _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
17346     {
17347    
17348    
17349    
17350    
17351    
17352    
17353    
17354    
17355    
17356     ;
17357     ;
17358    
17359     while (__first1 != __last1 && __first2 != __last2)
17360     if (__comp(*__first2, *__first1))
17361     return false;
17362     else if(__comp(*__first1, *__first2))
17363     ++__first1;
17364     else
17365     ++__first1, ++__first2;
17366    
17367     return __first2 == __last2;
17368     }
17369     # 4066 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17370     template<typename _InputIterator1, typename _InputIterator2,
17371     typename _OutputIterator>
17372     _OutputIterator
17373     set_union(_InputIterator1 __first1, _InputIterator1 __last1,
17374     _InputIterator2 __first2, _InputIterator2 __last2,
17375     _OutputIterator __result)
17376     {
17377    
17378    
17379    
17380    
17381    
17382    
17383    
17384    
17385    
17386    
17387     ;
17388     ;
17389    
17390     while (__first1 != __last1 && __first2 != __last2)
17391     {
17392     if (*__first1 < *__first2)
17393     {
17394     *__result = *__first1;
17395     ++__first1;
17396     }
17397     else if (*__first2 < *__first1)
17398     {
17399     *__result = *__first2;
17400     ++__first2;
17401     }
17402     else
17403     {
17404     *__result = *__first1;
17405     ++__first1;
17406     ++__first2;
17407     }
17408     ++__result;
17409     }
17410     return std::copy(__first2, __last2, std::copy(__first1, __last1,
17411     __result));
17412     }
17413     # 4128 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17414     template<typename _InputIterator1, typename _InputIterator2,
17415     typename _OutputIterator, typename _Compare>
17416     _OutputIterator
17417     set_union(_InputIterator1 __first1, _InputIterator1 __last1,
17418     _InputIterator2 __first2, _InputIterator2 __last2,
17419     _OutputIterator __result, _Compare __comp)
17420     {
17421    
17422    
17423    
17424    
17425    
17426    
17427    
17428    
17429    
17430    
17431    
17432     ;
17433     ;
17434    
17435     while (__first1 != __last1 && __first2 != __last2)
17436     {
17437     if (__comp(*__first1, *__first2))
17438     {
17439     *__result = *__first1;
17440     ++__first1;
17441     }
17442     else if (__comp(*__first2, *__first1))
17443     {
17444     *__result = *__first2;
17445     ++__first2;
17446     }
17447     else
17448     {
17449     *__result = *__first1;
17450     ++__first1;
17451     ++__first2;
17452     }
17453     ++__result;
17454     }
17455     return std::copy(__first2, __last2, std::copy(__first1, __last1,
17456     __result));
17457     }
17458     # 4189 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17459     template<typename _InputIterator1, typename _InputIterator2,
17460     typename _OutputIterator>
17461     _OutputIterator
17462     set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
17463     _InputIterator2 __first2, _InputIterator2 __last2,
17464     _OutputIterator __result)
17465     {
17466    
17467    
17468    
17469    
17470    
17471    
17472    
17473    
17474    
17475    
17476     ;
17477     ;
17478    
17479     while (__first1 != __last1 && __first2 != __last2)
17480     if (*__first1 < *__first2)
17481     ++__first1;
17482     else if (*__first2 < *__first1)
17483     ++__first2;
17484     else
17485     {
17486     *__result = *__first1;
17487     ++__first1;
17488     ++__first2;
17489     ++__result;
17490     }
17491     return __result;
17492     }
17493     # 4243 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17494     template<typename _InputIterator1, typename _InputIterator2,
17495     typename _OutputIterator, typename _Compare>
17496     _OutputIterator
17497     set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
17498     _InputIterator2 __first2, _InputIterator2 __last2,
17499     _OutputIterator __result, _Compare __comp)
17500     {
17501    
17502    
17503    
17504    
17505    
17506    
17507    
17508    
17509    
17510    
17511    
17512     ;
17513     ;
17514    
17515     while (__first1 != __last1 && __first2 != __last2)
17516     if (__comp(*__first1, *__first2))
17517     ++__first1;
17518     else if (__comp(*__first2, *__first1))
17519     ++__first2;
17520     else
17521     {
17522     *__result = *__first1;
17523     ++__first1;
17524     ++__first2;
17525     ++__result;
17526     }
17527     return __result;
17528     }
17529     # 4297 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17530     template<typename _InputIterator1, typename _InputIterator2,
17531     typename _OutputIterator>
17532     _OutputIterator
17533     set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
17534     _InputIterator2 __first2, _InputIterator2 __last2,
17535     _OutputIterator __result)
17536     {
17537    
17538    
17539    
17540    
17541    
17542    
17543    
17544    
17545    
17546    
17547     ;
17548     ;
17549    
17550     while (__first1 != __last1 && __first2 != __last2)
17551     if (*__first1 < *__first2)
17552     {
17553     *__result = *__first1;
17554     ++__first1;
17555     ++__result;
17556     }
17557     else if (*__first2 < *__first1)
17558     ++__first2;
17559     else
17560     {
17561     ++__first1;
17562     ++__first2;
17563     }
17564     return std::copy(__first1, __last1, __result);
17565     }
17566     # 4355 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17567     template<typename _InputIterator1, typename _InputIterator2,
17568     typename _OutputIterator, typename _Compare>
17569     _OutputIterator
17570     set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
17571     _InputIterator2 __first2, _InputIterator2 __last2,
17572     _OutputIterator __result, _Compare __comp)
17573     {
17574    
17575    
17576    
17577    
17578    
17579    
17580    
17581    
17582    
17583    
17584    
17585     ;
17586     ;
17587    
17588     while (__first1 != __last1 && __first2 != __last2)
17589     if (__comp(*__first1, *__first2))
17590     {
17591     *__result = *__first1;
17592     ++__first1;
17593     ++__result;
17594     }
17595     else if (__comp(*__first2, *__first1))
17596     ++__first2;
17597     else
17598     {
17599     ++__first1;
17600     ++__first2;
17601     }
17602     return std::copy(__first1, __last1, __result);
17603     }
17604     # 4409 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17605     template<typename _InputIterator1, typename _InputIterator2,
17606     typename _OutputIterator>
17607     _OutputIterator
17608     set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
17609     _InputIterator2 __first2, _InputIterator2 __last2,
17610     _OutputIterator __result)
17611     {
17612    
17613    
17614    
17615    
17616    
17617    
17618    
17619    
17620    
17621    
17622     ;
17623     ;
17624    
17625     while (__first1 != __last1 && __first2 != __last2)
17626     if (*__first1 < *__first2)
17627     {
17628     *__result = *__first1;
17629     ++__first1;
17630     ++__result;
17631     }
17632     else if (*__first2 < *__first1)
17633     {
17634     *__result = *__first2;
17635     ++__first2;
17636     ++__result;
17637     }
17638     else
17639     {
17640     ++__first1;
17641     ++__first2;
17642     }
17643     return std::copy(__first2, __last2, std::copy(__first1,
17644     __last1, __result));
17645     }
17646     # 4470 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17647     template<typename _InputIterator1, typename _InputIterator2,
17648     typename _OutputIterator, typename _Compare>
17649     _OutputIterator
17650     set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
17651     _InputIterator2 __first2, _InputIterator2 __last2,
17652     _OutputIterator __result,
17653     _Compare __comp)
17654     {
17655    
17656    
17657    
17658    
17659    
17660    
17661    
17662    
17663    
17664    
17665    
17666     ;
17667     ;
17668    
17669     while (__first1 != __last1 && __first2 != __last2)
17670     if (__comp(*__first1, *__first2))
17671     {
17672     *__result = *__first1;
17673     ++__first1;
17674     ++__result;
17675     }
17676     else if (__comp(*__first2, *__first1))
17677     {
17678     *__result = *__first2;
17679     ++__first2;
17680     ++__result;
17681     }
17682     else
17683     {
17684     ++__first1;
17685     ++__first2;
17686     }
17687     return std::copy(__first2, __last2, std::copy(__first1,
17688     __last1, __result));
17689     }
17690     # 4523 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17691     template<typename _ForwardIterator>
17692     _ForwardIterator
17693     max_element(_ForwardIterator __first, _ForwardIterator __last)
17694     {
17695    
17696    
17697    
17698    
17699     ;
17700    
17701     if (__first == __last)
17702     return __first;
17703     _ForwardIterator __result = __first;
17704     while (++__first != __last)
17705     if (*__result < *__first)
17706     __result = __first;
17707     return __result;
17708     }
17709     # 4550 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17710     template<typename _ForwardIterator, typename _Compare>
17711     _ForwardIterator
17712     max_element(_ForwardIterator __first, _ForwardIterator __last,
17713     _Compare __comp)
17714     {
17715    
17716    
17717    
17718    
17719    
17720     ;
17721    
17722     if (__first == __last) return __first;
17723     _ForwardIterator __result = __first;
17724     while (++__first != __last)
17725     if (__comp(*__result, *__first)) __result = __first;
17726     return __result;
17727     }
17728    
17729    
17730    
17731    
17732    
17733    
17734    
17735     template<typename _ForwardIterator>
17736     _ForwardIterator
17737     min_element(_ForwardIterator __first, _ForwardIterator __last)
17738     {
17739    
17740    
17741    
17742    
17743     ;
17744    
17745     if (__first == __last)
17746     return __first;
17747     _ForwardIterator __result = __first;
17748     while (++__first != __last)
17749     if (*__first < *__result)
17750     __result = __first;
17751     return __result;
17752     }
17753     # 4602 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17754     template<typename _ForwardIterator, typename _Compare>
17755     _ForwardIterator
17756     min_element(_ForwardIterator __first, _ForwardIterator __last,
17757     _Compare __comp)
17758     {
17759    
17760    
17761    
17762    
17763    
17764     ;
17765    
17766     if (__first == __last)
17767     return __first;
17768     _ForwardIterator __result = __first;
17769     while (++__first != __last)
17770     if (__comp(*__first, *__result))
17771     __result = __first;
17772     return __result;
17773     }
17774     # 4637 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17775     template<typename _BidirectionalIterator>
17776     bool
17777     next_permutation(_BidirectionalIterator __first,
17778     _BidirectionalIterator __last)
17779     {
17780    
17781    
17782    
17783    
17784    
17785     ;
17786    
17787     if (__first == __last)
17788     return false;
17789     _BidirectionalIterator __i = __first;
17790     ++__i;
17791     if (__i == __last)
17792     return false;
17793     __i = __last;
17794     --__i;
17795    
17796     for(;;)
17797     {
17798     _BidirectionalIterator __ii = __i;
17799     --__i;
17800     if (*__i < *__ii)
17801     {
17802     _BidirectionalIterator __j = __last;
17803     while (!(*__i < *--__j))
17804     {}
17805     std::iter_swap(__i, __j);
17806     std::reverse(__ii, __last);
17807     return true;
17808     }
17809     if (__i == __first)
17810     {
17811     std::reverse(__first, __last);
17812     return false;
17813     }
17814     }
17815     }
17816     # 4693 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17817     template<typename _BidirectionalIterator, typename _Compare>
17818     bool
17819     next_permutation(_BidirectionalIterator __first,
17820     _BidirectionalIterator __last, _Compare __comp)
17821     {
17822    
17823    
17824    
17825    
17826    
17827    
17828     ;
17829    
17830     if (__first == __last)
17831     return false;
17832     _BidirectionalIterator __i = __first;
17833     ++__i;
17834     if (__i == __last)
17835     return false;
17836     __i = __last;
17837     --__i;
17838    
17839     for(;;)
17840     {
17841     _BidirectionalIterator __ii = __i;
17842     --__i;
17843     if (__comp(*__i, *__ii))
17844     {
17845     _BidirectionalIterator __j = __last;
17846     while (!__comp(*__i, *--__j))
17847     {}
17848     std::iter_swap(__i, __j);
17849     std::reverse(__ii, __last);
17850     return true;
17851     }
17852     if (__i == __first)
17853     {
17854     std::reverse(__first, __last);
17855     return false;
17856     }
17857     }
17858     }
17859     # 4748 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17860     template<typename _BidirectionalIterator>
17861     bool
17862     prev_permutation(_BidirectionalIterator __first,
17863     _BidirectionalIterator __last)
17864     {
17865    
17866    
17867    
17868    
17869    
17870     ;
17871    
17872     if (__first == __last)
17873     return false;
17874     _BidirectionalIterator __i = __first;
17875     ++__i;
17876     if (__i == __last)
17877     return false;
17878     __i = __last;
17879     --__i;
17880    
17881     for(;;)
17882     {
17883     _BidirectionalIterator __ii = __i;
17884     --__i;
17885     if (*__ii < *__i)
17886     {
17887     _BidirectionalIterator __j = __last;
17888     while (!(*--__j < *__i))
17889     {}
17890     std::iter_swap(__i, __j);
17891     std::reverse(__ii, __last);
17892     return true;
17893     }
17894     if (__i == __first)
17895     {
17896     std::reverse(__first, __last);
17897     return false;
17898     }
17899     }
17900     }
17901     # 4804 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17902     template<typename _BidirectionalIterator, typename _Compare>
17903     bool
17904     prev_permutation(_BidirectionalIterator __first,
17905     _BidirectionalIterator __last, _Compare __comp)
17906     {
17907    
17908    
17909    
17910    
17911    
17912    
17913     ;
17914    
17915     if (__first == __last)
17916     return false;
17917     _BidirectionalIterator __i = __first;
17918     ++__i;
17919     if (__i == __last)
17920     return false;
17921     __i = __last;
17922     --__i;
17923    
17924     for(;;)
17925     {
17926     _BidirectionalIterator __ii = __i;
17927     --__i;
17928     if (__comp(*__ii, *__i))
17929     {
17930     _BidirectionalIterator __j = __last;
17931     while (!__comp(*--__j, *__i))
17932     {}
17933     std::iter_swap(__i, __j);
17934     std::reverse(__ii, __last);
17935     return true;
17936     }
17937     if (__i == __first)
17938     {
17939     std::reverse(__first, __last);
17940     return false;
17941     }
17942     }
17943     }
17944     # 4863 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17945     template<typename _InputIterator, typename _ForwardIterator>
17946     _InputIterator
17947     find_first_of(_InputIterator __first1, _InputIterator __last1,
17948     _ForwardIterator __first2, _ForwardIterator __last2)
17949     {
17950    
17951    
17952    
17953    
17954    
17955    
17956     ;
17957     ;
17958    
17959     for ( ; __first1 != __last1; ++__first1)
17960     for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
17961     if (*__first1 == *__iter)
17962     return __first1;
17963     return __last1;
17964     }
17965     # 4899 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17966     template<typename _InputIterator, typename _ForwardIterator,
17967     typename _BinaryPredicate>
17968     _InputIterator
17969     find_first_of(_InputIterator __first1, _InputIterator __last1,
17970     _ForwardIterator __first2, _ForwardIterator __last2,
17971     _BinaryPredicate __comp)
17972     {
17973    
17974    
17975    
17976    
17977    
17978    
17979     ;
17980     ;
17981    
17982     for ( ; __first1 != __last1; ++__first1)
17983     for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
17984     if (__comp(*__first1, *__iter))
17985     return __first1;
17986     return __last1;
17987     }
17988     # 4929 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17989     template<typename _ForwardIterator1, typename _ForwardIterator2>
17990     _ForwardIterator1
17991     __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
17992     _ForwardIterator2 __first2, _ForwardIterator2 __last2,
17993     forward_iterator_tag, forward_iterator_tag)
17994     {
17995     if (__first2 == __last2)
17996     return __last1;
17997     else
17998     {
17999     _ForwardIterator1 __result = __last1;
18000     while (1)
18001     {
18002     _ForwardIterator1 __new_result
18003     = std::search(__first1, __last1, __first2, __last2);
18004     if (__new_result == __last1)
18005     return __result;
18006     else
18007     {
18008     __result = __new_result;
18009     __first1 = __new_result;
18010     ++__first1;
18011     }
18012     }
18013     }
18014     }
18015    
18016     template<typename _ForwardIterator1, typename _ForwardIterator2,
18017     typename _BinaryPredicate>
18018     _ForwardIterator1
18019     __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
18020     _ForwardIterator2 __first2, _ForwardIterator2 __last2,
18021     forward_iterator_tag, forward_iterator_tag,
18022     _BinaryPredicate __comp)
18023     {
18024     if (__first2 == __last2)
18025     return __last1;
18026     else
18027     {
18028     _ForwardIterator1 __result = __last1;
18029     while (1)
18030     {
18031     _ForwardIterator1 __new_result
18032     = std::search(__first1, __last1, __first2, __last2, __comp);
18033     if (__new_result == __last1)
18034     return __result;
18035     else
18036     {
18037     __result = __new_result;
18038     __first1 = __new_result;
18039     ++__first1;
18040     }
18041     }
18042     }
18043     }
18044    
18045    
18046     template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
18047     _BidirectionalIterator1
18048     __find_end(_BidirectionalIterator1 __first1,
18049     _BidirectionalIterator1 __last1,
18050     _BidirectionalIterator2 __first2,
18051     _BidirectionalIterator2 __last2,
18052     bidirectional_iterator_tag, bidirectional_iterator_tag)
18053     {
18054    
18055    
18056    
18057    
18058    
18059    
18060     typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
18061     typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
18062    
18063     _RevIterator1 __rlast1(__first1);
18064     _RevIterator2 __rlast2(__first2);
18065     _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
18066     _RevIterator2(__last2), __rlast2);
18067    
18068     if (__rresult == __rlast1)
18069     return __last1;
18070     else
18071     {
18072     _BidirectionalIterator1 __result = __rresult.base();
18073     std::advance(__result, -std::distance(__first2, __last2));
18074     return __result;
18075     }
18076     }
18077    
18078     template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
18079     typename _BinaryPredicate>
18080     _BidirectionalIterator1
18081     __find_end(_BidirectionalIterator1 __first1,
18082     _BidirectionalIterator1 __last1,
18083     _BidirectionalIterator2 __first2,
18084     _BidirectionalIterator2 __last2,
18085     bidirectional_iterator_tag, bidirectional_iterator_tag,
18086     _BinaryPredicate __comp)
18087     {
18088    
18089    
18090    
18091    
18092    
18093    
18094     typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
18095     typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
18096    
18097     _RevIterator1 __rlast1(__first1);
18098     _RevIterator2 __rlast2(__first2);
18099     _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
18100     _RevIterator2(__last2), __rlast2,
18101     __comp);
18102    
18103     if (__rresult == __rlast1)
18104     return __last1;
18105     else
18106     {
18107     _BidirectionalIterator1 __result = __rresult.base();
18108     std::advance(__result, -std::distance(__first2, __last2));
18109     return __result;
18110     }
18111     }
18112     # 5079 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
18113     template<typename _ForwardIterator1, typename _ForwardIterator2>
18114     inline _ForwardIterator1
18115     find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
18116     _ForwardIterator2 __first2, _ForwardIterator2 __last2)
18117     {
18118    
18119    
18120    
18121    
18122    
18123    
18124     ;
18125     ;
18126    
18127     return std::__find_end(__first1, __last1, __first2, __last2,
18128     std::__iterator_category(__first1),
18129     std::__iterator_category(__first2));
18130     }
18131     # 5124 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
18132     template<typename _ForwardIterator1, typename _ForwardIterator2,
18133     typename _BinaryPredicate>
18134     inline _ForwardIterator1
18135     find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
18136     _ForwardIterator2 __first2, _ForwardIterator2 __last2,
18137     _BinaryPredicate __comp)
18138     {
18139    
18140    
18141    
18142    
18143    
18144    
18145     ;
18146     ;
18147    
18148     return std::__find_end(__first1, __last1, __first2, __last2,
18149     std::__iterator_category(__first1),
18150     std::__iterator_category(__first2),
18151     __comp);
18152     }
18153    
18154     }
18155     # 70 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/algorithm" 2 3
18156     # 57 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 2 3
18157     # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc" 1 3
18158     # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc" 3
18159    
18160     # 45 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc" 3
18161    
18162     namespace std
18163     {
18164     template<typename _Type>
18165     inline bool
18166     __is_null_pointer(_Type* __ptr)
18167     { return __ptr == 0; }
18168    
18169     template<typename _Type>
18170     inline bool
18171     __is_null_pointer(_Type)
18172     { return false; }
18173    
18174     template<typename _CharT, typename _Traits, typename _Alloc>
18175     const typename basic_string<_CharT, _Traits, _Alloc>::size_type
18176     basic_string<_CharT, _Traits, _Alloc>::
18177     _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4;
18178    
18179     template<typename _CharT, typename _Traits, typename _Alloc>
18180     const _CharT
18181     basic_string<_CharT, _Traits, _Alloc>::
18182     _Rep::_S_terminal = _CharT();
18183    
18184     template<typename _CharT, typename _Traits, typename _Alloc>
18185     const typename basic_string<_CharT, _Traits, _Alloc>::size_type
18186     basic_string<_CharT, _Traits, _Alloc>::npos;
18187    
18188    
18189    
18190     template<typename _CharT, typename _Traits, typename _Alloc>
18191     typename basic_string<_CharT, _Traits, _Alloc>::size_type
18192     basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[
18193     (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) /
18194     sizeof(size_type)];
18195    
18196    
18197    
18198    
18199    
18200     template<typename _CharT, typename _Traits, typename _Alloc>
18201     template<typename _InIterator>
18202     _CharT*
18203     basic_string<_CharT, _Traits, _Alloc>::
18204     _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
18205     input_iterator_tag)
18206     {
18207    
18208     if (__beg == __end && __a == _Alloc())
18209     return _S_empty_rep()._M_refdata();
18210    
18211    
18212     _CharT __buf[128];
18213     size_type __len = 0;
18214     while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT))
18215     {
18216     __buf[__len++] = *__beg;
18217     ++__beg;
18218     }
18219     _Rep* __r = _Rep::_S_create(__len, size_type(0), __a);
18220     traits_type::copy(__r->_M_refdata(), __buf, __len);
18221     try
18222     {
18223     while (__beg != __end)
18224     {
18225     if (__len == __r->_M_capacity)
18226     {
18227    
18228     _Rep* __another = _Rep::_S_create(__len + 1, __len, __a);
18229     traits_type::copy(__another->_M_refdata(),
18230     __r->_M_refdata(), __len);
18231     __r->_M_destroy(__a);
18232     __r = __another;
18233     }
18234     __r->_M_refdata()[__len++] = *__beg;
18235     ++__beg;
18236     }
18237     }
18238     catch(...)
18239     {
18240     __r->_M_destroy(__a);
18241     throw;
18242     }
18243     __r->_M_length = __len;
18244     __r->_M_refdata()[__len] = _Rep::_S_terminal;
18245     return __r->_M_refdata();
18246     }
18247    
18248     template<typename _CharT, typename _Traits, typename _Alloc>
18249     template <typename _InIterator>
18250     _CharT*
18251     basic_string<_CharT, _Traits, _Alloc>::
18252     _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
18253     forward_iterator_tag)
18254     {
18255    
18256     if (__beg == __end && __a == _Alloc())
18257     return _S_empty_rep()._M_refdata();
18258    
18259    
18260     if (__builtin_expect(__is_null_pointer(__beg) && __beg != __end, 0))
18261     __throw_logic_error(("basic_string::_S_construct NULL not valid"));
18262    
18263     const size_type __dnew = static_cast<size_type>(std::distance(__beg,
18264     __end));
18265    
18266     _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
18267     try
18268     { _S_copy_chars(__r->_M_refdata(), __beg, __end); }
18269     catch(...)
18270     {
18271     __r->_M_destroy(__a);
18272     throw;
18273     }
18274     __r->_M_length = __dnew;
18275     __r->_M_refdata()[__dnew] = _Rep::_S_terminal;
18276     return __r->_M_refdata();
18277     }
18278    
18279     template<typename _CharT, typename _Traits, typename _Alloc>
18280     _CharT*
18281     basic_string<_CharT, _Traits, _Alloc>::
18282     _S_construct(size_type __n, _CharT __c, const _Alloc& __a)
18283     {
18284    
18285     if (__n == 0 && __a == _Alloc())
18286     return _S_empty_rep()._M_refdata();
18287    
18288    
18289     _Rep* __r = _Rep::_S_create(__n, size_type(0), __a);
18290     if (__n)
18291     traits_type::assign(__r->_M_refdata(), __n, __c);
18292    
18293     __r->_M_length = __n;
18294     __r->_M_refdata()[__n] = _Rep::_S_terminal;
18295     return __r->_M_refdata();
18296     }
18297    
18298     template<typename _CharT, typename _Traits, typename _Alloc>
18299     basic_string<_CharT, _Traits, _Alloc>::
18300     basic_string(const basic_string& __str)
18301     : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()),
18302     __str.get_allocator()),
18303     __str.get_allocator())
18304     { }
18305    
18306     template<typename _CharT, typename _Traits, typename _Alloc>
18307     basic_string<_CharT, _Traits, _Alloc>::
18308     basic_string(const _Alloc& __a)
18309     : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)
18310     { }
18311    
18312     template<typename _CharT, typename _Traits, typename _Alloc>
18313     basic_string<_CharT, _Traits, _Alloc>::
18314     basic_string(const basic_string& __str, size_type __pos, size_type __n)
18315     : _M_dataplus(_S_construct(__str._M_data()
18316     + __str._M_check(__pos,
18317     "basic_string::basic_string"),
18318     __str._M_data() + __str._M_limit(__pos, __n)
18319     + __pos, _Alloc()), _Alloc())
18320     { }
18321    
18322     template<typename _CharT, typename _Traits, typename _Alloc>
18323     basic_string<_CharT, _Traits, _Alloc>::
18324     basic_string(const basic_string& __str, size_type __pos,
18325     size_type __n, const _Alloc& __a)
18326     : _M_dataplus(_S_construct(__str._M_data()
18327     + __str._M_check(__pos,
18328     "basic_string::basic_string"),
18329     __str._M_data() + __str._M_limit(__pos, __n)
18330     + __pos, __a), __a)
18331     { }
18332    
18333    
18334     template<typename _CharT, typename _Traits, typename _Alloc>
18335     basic_string<_CharT, _Traits, _Alloc>::
18336     basic_string(const _CharT* __s, size_type __n, const _Alloc& __a)
18337     : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)
18338     { }
18339    
18340    
18341     template<typename _CharT, typename _Traits, typename _Alloc>
18342     basic_string<_CharT, _Traits, _Alloc>::
18343     basic_string(const _CharT* __s, const _Alloc& __a)
18344     : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) :
18345     __s + npos, __a), __a)
18346     { }
18347    
18348     template<typename _CharT, typename _Traits, typename _Alloc>
18349     basic_string<_CharT, _Traits, _Alloc>::
18350     basic_string(size_type __n, _CharT __c, const _Alloc& __a)
18351     : _M_dataplus(_S_construct(__n, __c, __a), __a)
18352     { }
18353    
18354    
18355     template<typename _CharT, typename _Traits, typename _Alloc>
18356     template<typename _InputIterator>
18357     basic_string<_CharT, _Traits, _Alloc>::
18358     basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a)
18359     : _M_dataplus(_S_construct(__beg, __end, __a), __a)
18360     { }
18361    
18362     template<typename _CharT, typename _Traits, typename _Alloc>
18363     basic_string<_CharT, _Traits, _Alloc>&
18364     basic_string<_CharT, _Traits, _Alloc>::
18365     assign(const basic_string& __str)
18366     {
18367     if (_M_rep() != __str._M_rep())
18368     {
18369    
18370     const allocator_type __a = this->get_allocator();
18371     _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator());
18372     _M_rep()->_M_dispose(__a);
18373     _M_data(__tmp);
18374     }
18375     return *this;
18376     }
18377    
18378     template<typename _CharT, typename _Traits, typename _Alloc>
18379     basic_string<_CharT, _Traits, _Alloc>&
18380     basic_string<_CharT, _Traits, _Alloc>::
18381     assign(const _CharT* __s, size_type __n)
18382     {
18383     ;
18384     if (__n > this->max_size())
18385     __throw_length_error(("basic_string::assign"));
18386     if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
18387     || less<const _CharT*>()(_M_data() + this->size(), __s))
18388     return _M_replace_safe(size_type(0), this->size(), __s, __n);
18389     else
18390     {
18391    
18392     const size_type __pos = __s - _M_data();
18393     if (__pos >= __n)
18394     traits_type::copy(_M_data(), __s, __n);
18395     else if (__pos)
18396     traits_type::move(_M_data(), __s, __n);
18397     _M_rep()->_M_set_sharable();
18398     _M_rep()->_M_length = __n;
18399     _M_data()[__n] = _Rep::_S_terminal;
18400     return *this;
18401     }
18402     }
18403    
18404     template<typename _CharT, typename _Traits, typename _Alloc>
18405     basic_string<_CharT, _Traits, _Alloc>&
18406     basic_string<_CharT, _Traits, _Alloc>::
18407     insert(size_type __pos, const _CharT* __s, size_type __n)
18408     {
18409     ;
18410     _M_check(__pos, "basic_string::insert");
18411     if (this->max_size() - this->size() < __n)
18412     __throw_length_error(("basic_string::insert"));
18413     if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
18414     || less<const _CharT*>()(_M_data() + this->size(), __s))
18415     return _M_replace_safe(__pos, size_type(0), __s, __n);
18416     else
18417     {
18418    
18419    
18420    
18421     const size_type __off = __s - _M_data();
18422     _M_mutate(__pos, 0, __n);
18423     __s = _M_data() + __off;
18424     _CharT* __p = _M_data() + __pos;
18425     if (__s + __n <= __p)
18426     traits_type::copy(__p, __s, __n);
18427     else if (__s >= __p)
18428     traits_type::copy(__p, __s + __n, __n);
18429     else
18430     {
18431     const size_type __nleft = __p - __s;
18432     traits_type::copy(__p, __s, __nleft);
18433     traits_type::copy(__p + __nleft, __p + __n, __n - __nleft);
18434     }
18435     return *this;
18436     }
18437     }
18438    
18439     template<typename _CharT, typename _Traits, typename _Alloc>
18440     basic_string<_CharT, _Traits, _Alloc>&
18441     basic_string<_CharT, _Traits, _Alloc>::
18442     replace(size_type __pos, size_type __n1, const _CharT* __s,
18443     size_type __n2)
18444     {
18445     ;
18446     _M_check(__pos, "basic_string::replace");
18447     __n1 = _M_limit(__pos, __n1);
18448     if (this->max_size() - (this->size() - __n1) < __n2)
18449     __throw_length_error(("basic_string::replace"));
18450     bool __left;
18451     if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
18452     || less<const _CharT*>()(_M_data() + this->size(), __s))
18453     return _M_replace_safe(__pos, __n1, __s, __n2);
18454     else if ((__left = __s + __n2 <= _M_data() + __pos)
18455     || _M_data() + __pos + __n1 <= __s)
18456     {
18457    
18458     const size_type __off = __s - _M_data();
18459     _M_mutate(__pos, __n1, __n2);
18460     if (__left)
18461     traits_type::copy(_M_data() + __pos,
18462     _M_data() + __off, __n2);
18463     else
18464     traits_type::copy(_M_data() + __pos,
18465     _M_data() + __off + __n2 - __n1, __n2);
18466     return *this;
18467     }
18468     else
18469     {
18470    
18471     const basic_string __tmp(__s, __n2);
18472     return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2);
18473     }
18474     }
18475    
18476     template<typename _CharT, typename _Traits, typename _Alloc>
18477     void
18478     basic_string<_CharT, _Traits, _Alloc>::_Rep::
18479     _M_destroy(const _Alloc& __a) throw ()
18480     {
18481    
18482     if (this == &_S_empty_rep())
18483     return;
18484    
18485     const size_type __size = sizeof(_Rep_base) +
18486     (this->_M_capacity + 1) * sizeof(_CharT);
18487     _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
18488     }
18489    
18490     template<typename _CharT, typename _Traits, typename _Alloc>
18491     void
18492     basic_string<_CharT, _Traits, _Alloc>::_M_leak_hard()
18493     {
18494    
18495     if (_M_rep() == &_S_empty_rep())
18496     return;
18497    
18498     if (_M_rep()->_M_is_shared())
18499     _M_mutate(0, 0, 0);
18500     _M_rep()->_M_set_leaked();
18501     }
18502    
18503     template<typename _CharT, typename _Traits, typename _Alloc>
18504     void
18505     basic_string<_CharT, _Traits, _Alloc>::
18506     _M_mutate(size_type __pos, size_type __len1, size_type __len2)
18507     {
18508     const size_type __old_size = this->size();
18509     const size_type __new_size = __old_size + __len2 - __len1;
18510     const size_type __how_much = __old_size - __pos - __len1;
18511    
18512     if (__new_size > capacity() || _M_rep()->_M_is_shared())
18513     {
18514    
18515     const allocator_type __a = get_allocator();
18516     _Rep* __r = _Rep::_S_create(__new_size, capacity(), __a);
18517    
18518     if (__pos)
18519     traits_type::copy(__r->_M_refdata(), _M_data(), __pos);
18520     if (__how_much)
18521     traits_type::copy(__r->_M_refdata() + __pos + __len2,
18522     _M_data() + __pos + __len1, __how_much);
18523    
18524     _M_rep()->_M_dispose(__a);
18525     _M_data(__r->_M_refdata());
18526     }
18527     else if (__how_much && __len1 != __len2)
18528     {
18529    
18530     traits_type::move(_M_data() + __pos + __len2,
18531     _M_data() + __pos + __len1, __how_much);
18532     }
18533     _M_rep()->_M_set_sharable();
18534     _M_rep()->_M_length = __new_size;
18535     _M_data()[__new_size] = _Rep::_S_terminal;
18536    
18537     }
18538    
18539     template<typename _CharT, typename _Traits, typename _Alloc>
18540     void
18541     basic_string<_CharT, _Traits, _Alloc>::reserve(size_type __res)
18542     {
18543     if (__res != this->capacity() || _M_rep()->_M_is_shared())
18544     {
18545     if (__res > this->max_size())
18546     __throw_length_error(("basic_string::reserve"));
18547    
18548     if (__res < this->size())
18549     __res = this->size();
18550     const allocator_type __a = get_allocator();
18551     _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size());
18552     _M_rep()->_M_dispose(__a);
18553     _M_data(__tmp);
18554     }
18555     }
18556    
18557     template<typename _CharT, typename _Traits, typename _Alloc>
18558     void basic_string<_CharT, _Traits, _Alloc>::swap(basic_string& __s)
18559     {
18560     if (_M_rep()->_M_is_leaked())
18561     _M_rep()->_M_set_sharable();
18562     if (__s._M_rep()->_M_is_leaked())
18563     __s._M_rep()->_M_set_sharable();
18564     if (this->get_allocator() == __s.get_allocator())
18565     {
18566     _CharT* __tmp = _M_data();
18567     _M_data(__s._M_data());
18568     __s._M_data(__tmp);
18569     }
18570    
18571     else
18572     {
18573     const basic_string __tmp1(_M_ibegin(), _M_iend(),
18574     __s.get_allocator());
18575     const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(),
18576     this->get_allocator());
18577     *this = __tmp2;
18578     __s = __tmp1;
18579     }
18580     }
18581    
18582     template<typename _CharT, typename _Traits, typename _Alloc>
18583     typename basic_string<_CharT, _Traits, _Alloc>::_Rep*
18584     basic_string<_CharT, _Traits, _Alloc>::_Rep::
18585     _S_create(size_type __capacity, size_type __old_capacity,
18586     const _Alloc& __alloc)
18587     {
18588     typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
18589    
18590    
18591     if (__capacity > _S_max_size)
18592     __throw_length_error(("basic_string::_S_create"));
18593     # 501 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc" 3
18594     const size_type __pagesize = 4096;
18595     const size_type __subpagesize = 128;
18596     const size_type __malloc_header_size = 4 * sizeof (void*);
18597     # 513 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc" 3
18598     const size_type __page_capacity = ((__pagesize - __malloc_header_size
18599     - sizeof(_Rep) - sizeof(_CharT))
18600     / sizeof(_CharT));
18601    
18602     if (__capacity > __old_capacity && __capacity < 2 * __old_capacity
18603     && __capacity > __page_capacity)
18604     __capacity = 2 * __old_capacity;
18605    
18606    
18607    
18608    
18609     size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
18610    
18611     const size_type __adj_size = __size + __malloc_header_size;
18612     if (__adj_size > __pagesize)
18613     {
18614     const size_type __extra = __pagesize - __adj_size % __pagesize;
18615     __capacity += __extra / sizeof(_CharT);
18616    
18617     if (__capacity > _S_max_size)
18618     __capacity = _S_max_size;
18619     __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
18620     }
18621     else if (__size > __subpagesize)
18622     {
18623     const size_type __extra = __subpagesize - __adj_size % __subpagesize;
18624     __capacity += __extra / sizeof(_CharT);
18625     __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
18626     }
18627    
18628    
18629    
18630     void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
18631     _Rep *__p = new (__place) _Rep;
18632     __p->_M_capacity = __capacity;
18633     __p->_M_set_sharable();
18634     __p->_M_length = 0;
18635     return __p;
18636     }
18637    
18638     template<typename _CharT, typename _Traits, typename _Alloc>
18639     _CharT*
18640     basic_string<_CharT, _Traits, _Alloc>::_Rep::
18641     _M_clone(const _Alloc& __alloc, size_type __res)
18642     {
18643    
18644     const size_type __requested_cap = this->_M_length + __res;
18645     _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity,
18646     __alloc);
18647     if (this->_M_length)
18648     traits_type::copy(__r->_M_refdata(), _M_refdata(),
18649     this->_M_length);
18650    
18651     __r->_M_length = this->_M_length;
18652     __r->_M_refdata()[this->_M_length] = _Rep::_S_terminal;
18653     return __r->_M_refdata();
18654     }
18655    
18656     template<typename _CharT, typename _Traits, typename _Alloc>
18657     void
18658     basic_string<_CharT, _Traits, _Alloc>::resize(size_type __n, _CharT __c)
18659     {
18660     if (__n > max_size())
18661     __throw_length_error(("basic_string::resize"));
18662     const size_type __size = this->size();
18663     if (__size < __n)
18664     this->append(__n - __size, __c);
18665     else if (__n < __size)
18666     this->erase(__n);
18667    
18668     }
18669    
18670     template<typename _CharT, typename _Traits, typename _Alloc>
18671     template<typename _InputIterator>
18672     basic_string<_CharT, _Traits, _Alloc>&
18673     basic_string<_CharT, _Traits, _Alloc>::
18674     _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
18675     _InputIterator __k2, __false_type)
18676     {
18677     const basic_string __s(__k1, __k2);
18678     const size_type __n1 = __i2 - __i1;
18679     if (this->max_size() - (this->size() - __n1) < __s.size())
18680     __throw_length_error(("basic_string::_M_replace_dispatch"));
18681     return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(),
18682     __s.size());
18683     }
18684    
18685     template<typename _CharT, typename _Traits, typename _Alloc>
18686     basic_string<_CharT, _Traits, _Alloc>&
18687     basic_string<_CharT, _Traits, _Alloc>::
18688     append(const basic_string& __str)
18689     {
18690    
18691    
18692    
18693     const size_type __size = __str.size();
18694     const size_type __len = __size + this->size();
18695     if (__len > this->capacity())
18696     this->reserve(__len);
18697     return _M_replace_safe(this->size(), size_type(0), __str._M_data(),
18698     __str.size());
18699     }
18700    
18701     template<typename _CharT, typename _Traits, typename _Alloc>
18702     basic_string<_CharT, _Traits, _Alloc>&
18703     basic_string<_CharT, _Traits, _Alloc>::
18704     append(const basic_string& __str, size_type __pos, size_type __n)
18705     {
18706    
18707    
18708    
18709     __str._M_check(__pos, "basic_string::append");
18710     __n = __str._M_limit(__pos, __n);
18711     const size_type __len = __n + this->size();
18712     if (__len > this->capacity())
18713     this->reserve(__len);
18714     return _M_replace_safe(this->size(), size_type(0), __str._M_data()
18715     + __pos, __n);
18716     }
18717    
18718     template<typename _CharT, typename _Traits, typename _Alloc>
18719     basic_string<_CharT, _Traits, _Alloc>&
18720     basic_string<_CharT, _Traits, _Alloc>::
18721     append(const _CharT* __s, size_type __n)
18722     {
18723     ;
18724     const size_type __len = __n + this->size();
18725     if (__len > this->capacity())
18726     this->reserve(__len);
18727     return _M_replace_safe(this->size(), size_type(0), __s, __n);
18728     }
18729    
18730     template<typename _CharT, typename _Traits, typename _Alloc>
18731     basic_string<_CharT, _Traits, _Alloc>
18732     operator+(const _CharT* __lhs,
18733     const basic_string<_CharT, _Traits, _Alloc>& __rhs)
18734     {
18735     ;
18736     typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
18737     typedef typename __string_type::size_type __size_type;
18738     const __size_type __len = _Traits::length(__lhs);
18739     __string_type __str;
18740     __str.reserve(__len + __rhs.size());
18741     __str.append(__lhs, __len);
18742     __str.append(__rhs);
18743     return __str;
18744     }
18745    
18746     template<typename _CharT, typename _Traits, typename _Alloc>
18747     basic_string<_CharT, _Traits, _Alloc>
18748     operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
18749     {
18750     typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
18751     typedef typename __string_type::size_type __size_type;
18752     __string_type __str;
18753     const __size_type __len = __rhs.size();
18754     __str.reserve(__len + 1);
18755     __str.append(__size_type(1), __lhs);
18756     __str.append(__rhs);
18757     return __str;
18758     }
18759    
18760     template<typename _CharT, typename _Traits, typename _Alloc>
18761     typename basic_string<_CharT, _Traits, _Alloc>::size_type
18762     basic_string<_CharT, _Traits, _Alloc>::
18763     copy(_CharT* __s, size_type __n, size_type __pos) const
18764     {
18765     _M_check(__pos, "basic_string::copy");
18766     __n = _M_limit(__pos, __n);
18767     ;
18768     if (__n)
18769     traits_type::copy(__s, _M_data() + __pos, __n);
18770    
18771     return __n;
18772     }
18773    
18774     template<typename _CharT, typename _Traits, typename _Alloc>
18775     typename basic_string<_CharT, _Traits, _Alloc>::size_type
18776     basic_string<_CharT, _Traits, _Alloc>::
18777     find(const _CharT* __s, size_type __pos, size_type __n) const
18778     {
18779     ;
18780     const size_type __size = this->size();
18781     const _CharT* __data = _M_data();
18782     for (; __pos + __n <= __size; ++__pos)
18783     if (traits_type::compare(__data + __pos, __s, __n) == 0)
18784     return __pos;
18785     return npos;
18786     }
18787    
18788     template<typename _CharT, typename _Traits, typename _Alloc>
18789     typename basic_string<_CharT, _Traits, _Alloc>::size_type
18790     basic_string<_CharT, _Traits, _Alloc>::
18791     find(_CharT __c, size_type __pos) const
18792     {
18793     const size_type __size = this->size();
18794     size_type __ret = npos;
18795     if (__pos < __size)
18796     {
18797     const _CharT* __data = _M_data();
18798     const size_type __n = __size - __pos;
18799     const _CharT* __p = traits_type::find(__data + __pos, __n, __c);
18800     if (__p)
18801     __ret = __p - __data;
18802     }
18803     return __ret;
18804     }
18805    
18806     template<typename _CharT, typename _Traits, typename _Alloc>
18807     typename basic_string<_CharT, _Traits, _Alloc>::size_type
18808     basic_string<_CharT, _Traits, _Alloc>::
18809     rfind(const _CharT* __s, size_type __pos, size_type __n) const
18810     {
18811     ;
18812     const size_type __size = this->size();
18813     if (__n <= __size)
18814     {
18815     __pos = std::min(size_type(__size - __n), __pos);
18816     const _CharT* __data = _M_data();
18817     do
18818     {
18819     if (traits_type::compare(__data + __pos, __s, __n) == 0)
18820     return __pos;
18821     }
18822     while (__pos-- > 0);
18823     }
18824     return npos;
18825     }
18826    
18827     template<typename _CharT, typename _Traits, typename _Alloc>
18828     typename basic_string<_CharT, _Traits, _Alloc>::size_type
18829     basic_string<_CharT, _Traits, _Alloc>::
18830     rfind(_CharT __c, size_type __pos) const
18831     {
18832     size_type __size = this->size();
18833     if (__size)
18834     {
18835     if (--__size > __pos)
18836     __size = __pos;
18837     for (++__size; __size-- > 0; )
18838     if (traits_type::eq(_M_data()[__size], __c))
18839     return __size;
18840     }
18841     return npos;
18842     }
18843    
18844     template<typename _CharT, typename _Traits, typename _Alloc>
18845     typename basic_string<_CharT, _Traits, _Alloc>::size_type
18846     basic_string<_CharT, _Traits, _Alloc>::
18847     find_first_of(const _CharT* __s, size_type __pos, size_type __n) const
18848     {
18849     ;
18850     for (; __n && __pos < this->size(); ++__pos)
18851     {
18852     const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]);
18853     if (__p)
18854     return __pos;
18855     }
18856     return npos;
18857     }
18858    
18859     template<typename _CharT, typename _Traits, typename _Alloc>
18860     typename basic_string<_CharT, _Traits, _Alloc>::size_type
18861     basic_string<_CharT, _Traits, _Alloc>::
18862     find_last_of(const _CharT* __s, size_type __pos, size_type __n) const
18863     {
18864     ;
18865     size_type __size = this->size();
18866     if (__size && __n)
18867     {
18868     if (--__size > __pos)
18869     __size = __pos;
18870     do
18871     {
18872     if (traits_type::find(__s, __n, _M_data()[__size]))
18873     return __size;
18874     }
18875     while (__size-- != 0);
18876     }
18877     return npos;
18878     }
18879    
18880     template<typename _CharT, typename _Traits, typename _Alloc>
18881     typename basic_string<_CharT, _Traits, _Alloc>::size_type
18882     basic_string<_CharT, _Traits, _Alloc>::
18883     find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const
18884     {
18885     ;
18886     for (; __pos < this->size(); ++__pos)
18887     if (!traits_type::find(__s, __n, _M_data()[__pos]))
18888     return __pos;
18889     return npos;
18890     }
18891    
18892     template<typename _CharT, typename _Traits, typename _Alloc>
18893     typename basic_string<_CharT, _Traits, _Alloc>::size_type
18894     basic_string<_CharT, _Traits, _Alloc>::
18895     find_first_not_of(_CharT __c, size_type __pos) const
18896     {
18897     for (; __pos < this->size(); ++__pos)
18898     if (!traits_type::eq(_M_data()[__pos], __c))
18899     return __pos;
18900     return npos;
18901     }
18902    
18903     template<typename _CharT, typename _Traits, typename _Alloc>
18904     typename basic_string<_CharT, _Traits, _Alloc>::size_type
18905     basic_string<_CharT, _Traits, _Alloc>::
18906     find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const
18907     {
18908     ;
18909     size_type __size = this->size();
18910     if (__size)
18911     {
18912     if (--__size > __pos)
18913     __size = __pos;
18914     do
18915     {
18916     if (!traits_type::find(__s, __n, _M_data()[__size]))
18917     return __size;
18918     }
18919     while (__size--);
18920     }
18921     return npos;
18922     }
18923    
18924     template<typename _CharT, typename _Traits, typename _Alloc>
18925     typename basic_string<_CharT, _Traits, _Alloc>::size_type
18926     basic_string<_CharT, _Traits, _Alloc>::
18927     find_last_not_of(_CharT __c, size_type __pos) const
18928     {
18929     size_type __size = this->size();
18930     if (__size)
18931     {
18932     if (--__size > __pos)
18933     __size = __pos;
18934     do
18935     {
18936     if (!traits_type::eq(_M_data()[__size], __c))
18937     return __size;
18938     }
18939     while (__size--);
18940     }
18941     return npos;
18942     }
18943    
18944     template<typename _CharT, typename _Traits, typename _Alloc>
18945     int
18946     basic_string<_CharT, _Traits, _Alloc>::
18947     compare(size_type __pos, size_type __n, const basic_string& __str) const
18948     {
18949     _M_check(__pos, "basic_string::compare");
18950     __n = _M_limit(__pos, __n);
18951     const size_type __osize = __str.size();
18952     const size_type __len = std::min(__n, __osize);
18953     int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len);
18954     if (!__r)
18955     __r = __n - __osize;
18956     return __r;
18957     }
18958    
18959     template<typename _CharT, typename _Traits, typename _Alloc>
18960     int
18961     basic_string<_CharT, _Traits, _Alloc>::
18962     compare(size_type __pos1, size_type __n1, const basic_string& __str,
18963     size_type __pos2, size_type __n2) const
18964     {
18965     _M_check(__pos1, "basic_string::compare");
18966     __str._M_check(__pos2, "basic_string::compare");
18967     __n1 = _M_limit(__pos1, __n1);
18968     __n2 = __str._M_limit(__pos2, __n2);
18969     const size_type __len = std::min(__n1, __n2);
18970     int __r = traits_type::compare(_M_data() + __pos1,
18971     __str.data() + __pos2, __len);
18972     if (!__r)
18973     __r = __n1 - __n2;
18974     return __r;
18975     }
18976    
18977     template<typename _CharT, typename _Traits, typename _Alloc>
18978     int
18979     basic_string<_CharT, _Traits, _Alloc>::
18980     compare(const _CharT* __s) const
18981     {
18982     ;
18983     const size_type __size = this->size();
18984     const size_type __osize = traits_type::length(__s);
18985     const size_type __len = std::min(__size, __osize);
18986     int __r = traits_type::compare(_M_data(), __s, __len);
18987     if (!__r)
18988     __r = __size - __osize;
18989     return __r;
18990     }
18991    
18992     template<typename _CharT, typename _Traits, typename _Alloc>
18993     int
18994     basic_string <_CharT, _Traits, _Alloc>::
18995     compare(size_type __pos, size_type __n1, const _CharT* __s) const
18996     {
18997     ;
18998     _M_check(__pos, "basic_string::compare");
18999     __n1 = _M_limit(__pos, __n1);
19000     const size_type __osize = traits_type::length(__s);
19001     const size_type __len = std::min(__n1, __osize);
19002     int __r = traits_type::compare(_M_data() + __pos, __s, __len);
19003     if (!__r)
19004     __r = __n1 - __osize;
19005     return __r;
19006     }
19007    
19008     template<typename _CharT, typename _Traits, typename _Alloc>
19009     int
19010     basic_string <_CharT, _Traits, _Alloc>::
19011     compare(size_type __pos, size_type __n1, const _CharT* __s,
19012     size_type __n2) const
19013     {
19014     ;
19015     _M_check(__pos, "basic_string::compare");
19016     __n1 = _M_limit(__pos, __n1);
19017     const size_type __len = std::min(__n1, __n2);
19018     int __r = traits_type::compare(_M_data() + __pos, __s, __len);
19019     if (!__r)
19020     __r = __n1 - __n2;
19021     return __r;
19022     }
19023    
19024    
19025    
19026    
19027    
19028     extern template class basic_string<char>;
19029     extern template
19030     basic_istream<char>&
19031     operator>>(basic_istream<char>&, string&);
19032     extern template
19033     basic_ostream<char>&
19034     operator<<(basic_ostream<char>&, const string&);
19035     extern template
19036     basic_istream<char>&
19037     getline(basic_istream<char>&, string&, char);
19038     extern template
19039     basic_istream<char>&
19040     getline(basic_istream<char>&, string&);
19041    
19042    
19043     extern template class basic_string<wchar_t>;
19044     extern template
19045     basic_istream<wchar_t>&
19046     operator>>(basic_istream<wchar_t>&, wstring&);
19047     extern template
19048     basic_ostream<wchar_t>&
19049     operator<<(basic_ostream<wchar_t>&, const wstring&);
19050     extern template
19051     basic_istream<wchar_t>&
19052     getline(basic_istream<wchar_t>&, wstring&, wchar_t);
19053     extern template
19054     basic_istream<wchar_t>&
19055     getline(basic_istream<wchar_t>&, wstring&);
19056    
19057    
19058     }
19059     # 58 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 2 3
19060     # 45 "/cern/ROOT/include/TString.h" 2
19061    
19062    
19063    
19064    
19065    
19066     class TRegexp;
19067     class TPRegexp;
19068     class TString;
19069     class TSubString;
19070     class TObjArray;
19071     class TVirtualMutex;
19072    
19073     extern TVirtualMutex *gStringMutex;
19074    
19075     TString operator+(const TString &s1, const TString &s2);
19076     TString operator+(const TString &s, const char *cs);
19077     TString operator+(const char *cs, const TString &s);
19078     TString operator+(const TString &s, char c);
19079     TString operator+(const TString &s, Long_t i);
19080     TString operator+(const TString &s, ULong_t i);
19081     TString operator+(const TString &s, Long64_t i);
19082     TString operator+(const TString &s, ULong64_t i);
19083     TString operator+(char c, const TString &s);
19084     TString operator+(Long_t i, const TString &s);
19085     TString operator+(ULong_t i, const TString &s);
19086     TString operator+(Long64_t i, const TString &s);
19087     TString operator+(ULong64_t i, const TString &s);
19088     Bool_t operator==(const TString &s1, const TString &s2);
19089     Bool_t operator==(const TString &s1, const char *s2);
19090     Bool_t operator==(const TSubString &s1, const TSubString &s2);
19091     Bool_t operator==(const TSubString &s1, const TString &s2);
19092     Bool_t operator==(const TSubString &s1, const char *s2);
19093     # 88 "/cern/ROOT/include/TString.h"
19094     class TStringRef : public TRefCnt {
19095    
19096     friend class TString;
19097     friend class TStringLong;
19098     friend class TSubString;
19099    
19100     private:
19101     Ssiz_t fCapacity;
19102     Ssiz_t fNchars;
19103    
19104     void UnLink();
19105    
19106     Ssiz_t Length() const { return fNchars; }
19107     Ssiz_t Capacity() const { return fCapacity; }
19108     char *Data() const { return (char*)(this+1); }
19109    
19110     char &operator[](Ssiz_t i) { return ((char*)(this+1))[i]; }
19111     char operator[](Ssiz_t i) const { return ((char*)(this+1))[i]; }
19112    
19113     Ssiz_t First(char c) const;
19114     Ssiz_t First(const char *s) const;
19115     UInt_t Hash() const;
19116     UInt_t HashFoldCase() const;
19117     Ssiz_t Last(char) const;
19118    
19119     static TStringRef *GetRep(Ssiz_t capac, Ssiz_t nchar);
19120     };
19121     # 125 "/cern/ROOT/include/TString.h"
19122     class TSubString {
19123    
19124     friend class TStringLong;
19125     friend class TString;
19126    
19127     friend Bool_t operator==(const TSubString &s1, const TSubString &s2);
19128     friend Bool_t operator==(const TSubString &s1, const TString &s2);
19129     friend Bool_t operator==(const TSubString &s1, const char *s2);
19130    
19131     private:
19132     TString &fStr;
19133     Ssiz_t fBegin;
19134     Ssiz_t fExtent;
19135    
19136    
19137     TSubString(const TString &s, Ssiz_t start, Ssiz_t len);
19138    
19139     protected:
19140     void SubStringError(Ssiz_t, Ssiz_t, Ssiz_t) const;
19141     void AssertElement(Ssiz_t i) const;
19142    
19143     public:
19144     TSubString(const TSubString &s)
19145     : fStr(s.fStr), fBegin(s.fBegin), fExtent(s.fExtent) { }
19146    
19147     TSubString &operator=(const char *s);
19148     TSubString &operator=(const TString &s);
19149     TSubString &operator=(const TSubString &s);
19150     char &operator()(Ssiz_t i);
19151     char &operator[](Ssiz_t i);
19152     char operator()(Ssiz_t i) const;
19153     char operator[](Ssiz_t i) const;
19154    
19155     const char *Data() const;
19156     Ssiz_t Length() const { return fExtent; }
19157     Ssiz_t Start() const { return fBegin; }
19158     TString& String() { return fStr; }
19159     void ToLower();
19160     void ToUpper();
19161    
19162    
19163     Bool_t IsNull() const { return fBegin == kNPOS; }
19164     int operator!() const { return fBegin == kNPOS; }
19165     };
19166    
19167    
19168    
19169    
19170    
19171    
19172    
19173     class TString {
19174    
19175     friend class TSubString;
19176     friend class TStringRef;
19177    
19178     friend TString operator+(const TString &s1, const TString &s2);
19179     friend TString operator+(const TString &s, const char *cs);
19180     friend TString operator+(const char *cs, const TString &s);
19181     friend TString operator+(const TString &s, char c);
19182     friend TString operator+(const TString &s, Long_t i);
19183     friend TString operator+(const TString &s, ULong_t i);
19184     friend TString operator+(const TString &s, Long64_t i);
19185     friend TString operator+(const TString &s, ULong64_t i);
19186     friend TString operator+(char c, const TString &s);
19187     friend TString operator+(Long_t i, const TString &s);
19188     friend TString operator+(ULong_t i, const TString &s);
19189     friend TString operator+(Long64_t i, const TString &s);
19190     friend TString operator+(ULong64_t i, const TString &s);
19191     friend Bool_t operator==(const TString &s1, const TString &s2);
19192     friend Bool_t operator==(const TString &s1, const char *s2);
19193    
19194     private:
19195     static Ssiz_t fgInitialCapac;
19196     static Ssiz_t fgResizeInc;
19197     static Ssiz_t fgFreeboard;
19198    
19199     void Clone();
19200     void Clone(Ssiz_t nc);
19201     void FormImp(const char *fmt, va_list ap);
19202    
19203     protected:
19204     char *fData;
19205    
19206    
19207     TString(const char *a1, Ssiz_t n1, const char *a2, Ssiz_t n2);
19208     TStringRef *Pref() const { return (((TStringRef*) fData) - 1); }
19209     void AssertElement(Ssiz_t nc) const;
19210     void Clobber(Ssiz_t nc);
19211     void Cow();
19212     void Cow(Ssiz_t nc);
19213     static Ssiz_t AdjustCapacity(Ssiz_t nc);
19214     void InitChar(char c);
19215    
19216     public:
19217     enum EStripType { kLeading = 0x1, kTrailing = 0x2, kBoth = 0x3 };
19218     enum ECaseCompare { kExact, kIgnoreCase };
19219    
19220     TString();
19221     TString(Ssiz_t ic);
19222     TString(const TString &s) :
19223     fData(s.fData) { Pref()->AddReference(); }
19224    
19225     TString(const char *s);
19226     TString(const char *s, Ssiz_t n);
19227     TString(const std::string &s);
19228     TString(char c) : fData(0) { InitChar(c); }
19229     TString(char c, Ssiz_t s);
19230     TString(const TSubString &sub);
19231    
19232     virtual ~TString();
19233    
19234    
19235     virtual void FillBuffer(char *&buffer);
19236     virtual void ReadBuffer(char *&buffer);
19237     virtual Int_t Sizeof() const;
19238    
19239     static TString *ReadString(TBuffer &b, const TClass *clReq);
19240     static void WriteString(TBuffer &b, const TString *a);
19241    
19242     friend TBuffer &operator<<(TBuffer &b, const TString *obj);
19243    
19244    
19245     Bool_t Gets(FILE *fp, Bool_t chop=kTRUE);
19246     void Puts(FILE *fp);
19247    
19248    
19249     operator const char*() const { return fData; }
19250    
19251    
19252     TString &operator=(char s);
19253     TString &operator=(const char *s);
19254     TString &operator=(const TString &s);
19255     TString &operator=(const std::string &s);
19256     TString &operator=(const TSubString &s);
19257     TString &operator+=(const char *s);
19258     TString &operator+=(const TString &s);
19259     TString &operator+=(char c);
19260     TString &operator+=(Short_t i);
19261     TString &operator+=(UShort_t i);
19262     TString &operator+=(Int_t i);
19263     TString &operator+=(UInt_t i);
19264     TString &operator+=(Long_t i);
19265     TString &operator+=(ULong_t i);
19266     TString &operator+=(Float_t f);
19267     TString &operator+=(Double_t f);
19268     TString &operator+=(Long64_t i);
19269     TString &operator+=(ULong64_t i);
19270    
19271    
19272     char &operator[](Ssiz_t i);
19273     char &operator()(Ssiz_t i);
19274     TSubString operator()(Ssiz_t start, Ssiz_t len);
19275     TSubString operator()(const TRegexp &re);
19276     TSubString operator()(const TRegexp &re, Ssiz_t start);
19277     TSubString operator()(TPRegexp &re);
19278     TSubString operator()(TPRegexp &re, Ssiz_t start);
19279     TSubString SubString(const char *pat, Ssiz_t start = 0,
19280     ECaseCompare cmp = kExact);
19281     char operator[](Ssiz_t i) const;
19282     char operator()(Ssiz_t i) const;
19283     TSubString operator()(Ssiz_t start, Ssiz_t len) const;
19284     TSubString operator()(const TRegexp &re) const;
19285     TSubString operator()(const TRegexp &re, Ssiz_t start) const;
19286     TSubString operator()(TPRegexp &re) const;
19287     TSubString operator()(TPRegexp &re, Ssiz_t start) const;
19288     TSubString SubString(const char *pat, Ssiz_t start = 0,
19289     ECaseCompare cmp = kExact) const;
19290    
19291    
19292     TString &Append(const char *cs);
19293     TString &Append(const char *cs, Ssiz_t n);
19294     TString &Append(const TString &s);
19295     TString &Append(const TString &s, Ssiz_t n);
19296     TString &Append(char c, Ssiz_t rep = 1);
19297     Int_t Atoi() const;
19298     Long64_t Atoll() const;
19299     Double_t Atof() const;
19300     Bool_t BeginsWith(const char *s, ECaseCompare cmp = kExact) const;
19301     Bool_t BeginsWith(const TString &pat, ECaseCompare cmp = kExact) const;
19302     Ssiz_t Capacity() const { return Pref()->Capacity(); }
19303     Ssiz_t Capacity(Ssiz_t n);
19304     TString &Chop();
19305     int CompareTo(const char *cs, ECaseCompare cmp = kExact) const;
19306     int CompareTo(const TString &st, ECaseCompare cmp = kExact) const;
19307     Bool_t Contains(const char *pat, ECaseCompare cmp = kExact) const;
19308     Bool_t Contains(const TString &pat, ECaseCompare cmp = kExact) const;
19309     Bool_t Contains(const TRegexp &pat) const;
19310     Bool_t Contains(TPRegexp &pat) const;
19311     Int_t CountChar(Int_t c) const;
19312     TString Copy() const;
19313     const char *Data() const { return fData; }
19314     Bool_t EndsWith(const char *pat, ECaseCompare cmp = kExact) const;
19315     Ssiz_t First(char c) const { return Pref()->First(c); }
19316     Ssiz_t First(const char *cs) const { return Pref()->First(cs); }
19317     void Form(const char *fmt, ...);
19318     UInt_t Hash(ECaseCompare cmp = kExact) const;
19319     Ssiz_t Index(const char *pat, Ssiz_t i = 0,
19320     ECaseCompare cmp = kExact) const;
19321     Ssiz_t Index(const TString &s, Ssiz_t i = 0,
19322     ECaseCompare cmp = kExact) const;
19323     Ssiz_t Index(const char *pat, Ssiz_t patlen, Ssiz_t i,
19324     ECaseCompare cmp) const;
19325     Ssiz_t Index(const TString &s, Ssiz_t patlen, Ssiz_t i,
19326     ECaseCompare cmp) const;
19327     Ssiz_t Index(const TRegexp &pat, Ssiz_t i = 0) const;
19328     Ssiz_t Index(const TRegexp &pat, Ssiz_t *ext, Ssiz_t i = 0) const;
19329     Ssiz_t Index(TPRegexp &pat, Ssiz_t i = 0) const;
19330     Ssiz_t Index(TPRegexp &pat, Ssiz_t *ext, Ssiz_t i = 0) const;
19331     TString &Insert(Ssiz_t pos, const char *s);
19332     TString &Insert(Ssiz_t pos, const char *s, Ssiz_t extent);
19333     TString &Insert(Ssiz_t pos, const TString &s);
19334     TString &Insert(Ssiz_t pos, const TString &s, Ssiz_t extent);
19335     Bool_t IsAscii() const;
19336     Bool_t IsAlpha() const;
19337     Bool_t IsAlnum() const;
19338     Bool_t IsDigit() const;
19339     Bool_t IsFloat() const;
19340     Bool_t IsHex() const;
19341     Bool_t IsNull() const { return Pref()->fNchars == 0; }
19342     Bool_t IsWhitespace() const { return (Length() == CountChar(' ')); }
19343     Ssiz_t Last(char c) const { return Pref()->Last(c); }
19344     Ssiz_t Length() const { return Pref()->fNchars; }
19345     Bool_t MaybeRegexp() const;
19346     Bool_t MaybeWildcard() const;
19347     TString &Prepend(const char *cs);
19348     TString &Prepend(const char *cs, Ssiz_t n);
19349     TString &Prepend(const TString &s);
19350     TString &Prepend(const TString &s, Ssiz_t n);
19351     TString &Prepend(char c, Ssiz_t rep = 1);
19352     istream &ReadFile(istream &str);
19353     istream &ReadLine(istream &str,
19354     Bool_t skipWhite = kTRUE);
19355     istream &ReadString(istream &str);
19356     istream &ReadToDelim(istream &str, char delim = '\n');
19357     istream &ReadToken(istream &str);
19358     TString &Remove(Ssiz_t pos);
19359     TString &Remove(Ssiz_t pos, Ssiz_t n);
19360     TString &Remove(EStripType s, char c);
19361     TString &Replace(Ssiz_t pos, Ssiz_t n, const char *s);
19362     TString &Replace(Ssiz_t pos, Ssiz_t n, const char *s, Ssiz_t ns);
19363     TString &Replace(Ssiz_t pos, Ssiz_t n, const TString &s);
19364     TString &Replace(Ssiz_t pos, Ssiz_t n1, const TString &s, Ssiz_t n2);
19365     TString &ReplaceAll(const TString &s1, const TString &s2);
19366     TString &ReplaceAll(const TString &s1, const char *s2);
19367     TString &ReplaceAll(const char *s1, const TString &s2);
19368     TString &ReplaceAll(const char *s1, const char *s2);
19369     TString &ReplaceAll(const char *s1, Ssiz_t ls1, const char *s2, Ssiz_t ls2);
19370     void Resize(Ssiz_t n);
19371     TSubString Strip(EStripType s = kTrailing, char c = ' ');
19372     TSubString Strip(EStripType s = kTrailing, char c = ' ') const;
19373     void ToLower();
19374     void ToUpper();
19375     TObjArray *Tokenize(const TString &delim) const;
19376     Bool_t Tokenize(TString &tok, Ssiz_t &from, const char *delim = " ") const;
19377    
19378    
19379     static ULong_t Hash(const void *txt, Int_t ntxt);
19380     static Ssiz_t InitialCapacity(Ssiz_t ic = 15);
19381     static Ssiz_t MaxWaste(Ssiz_t mw = 15);
19382     static Ssiz_t ResizeIncrement(Ssiz_t ri = 16);
19383     static Ssiz_t GetInitialCapacity();
19384     static Ssiz_t GetResizeIncrement();
19385     static Ssiz_t GetMaxWaste();
19386     static TString Format(const char *fmt, ...);
19387    
19388     private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TString::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TString::Streamer(b); } static const char *DeclFileName() { return "/cern/ROOT/include/TString.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 391; }
19389     };
19390    
19391    
19392     istream &operator>>(istream &str, TString &s);
19393     ostream &operator<<(ostream &str, const TString &s);
19394    
19395    
19396    
19397     TBuffer &operator>>(TBuffer &buf, TString *&sp);
19398    
19399     TString ToLower(const TString &s);
19400     TString ToUpper(const TString &s);
19401    
19402     inline UInt_t Hash(const TString &s) { return s.Hash(); }
19403     inline UInt_t Hash(const TString *s) { return s->Hash(); }
19404     UInt_t Hash(const char *s);
19405    
19406     extern char *Form(const char *fmt, ...);
19407     extern void Printf(const char *fmt, ...);
19408     extern char *Strip(const char *str, char c = ' ');
19409     extern char *StrDup(const char *str);
19410     extern char *Compress(const char *str);
19411     extern int EscChar(const char *src, char *dst, int dstlen, char *specchars,
19412     char escchar);
19413     extern int UnEscChar(const char *src, char *dst, int dstlen, char *specchars,
19414     char escchar);
19415     # 431 "/cern/ROOT/include/TString.h"
19416     inline void TStringRef::UnLink()
19417     { if (RemoveReference() == 0) delete [] (char*)this; }
19418    
19419     inline void TString::Cow()
19420     { if (Pref()->References() > 1) Clone(); }
19421    
19422     inline void TString::Cow(Ssiz_t nc)
19423     { if (Pref()->References() > 1 || Capacity() < nc) Clone(nc); }
19424    
19425     inline TString &TString::Append(const char *cs)
19426     { return Replace(Length(), 0, cs, cs ? strlen(cs) : 0); }
19427    
19428     inline TString &TString::Append(const char *cs, Ssiz_t n)
19429     { return Replace(Length(), 0, cs, n); }
19430    
19431     inline TString &TString::Append(const TString &s)
19432     { return Replace(Length(), 0, s.Data(), s.Length()); }
19433    
19434     inline TString &TString::Append(const TString &s, Ssiz_t n)
19435     { return Replace(Length(), 0, s.Data(), TMath::Min(n, s.Length())); }
19436    
19437     inline TString &TString::operator+=(const char *cs)
19438     { return Append(cs, cs ? strlen(cs) : 0); }
19439    
19440     inline TString &TString::operator+=(const TString &s)
19441     { return Append(s.Data(), s.Length()); }
19442    
19443     inline TString &TString::operator+=(char c)
19444     { return Append(c); }
19445    
19446     inline TString &TString::operator+=(Long_t i)
19447     { return operator+=(::Form("%ld", i)); }
19448    
19449     inline TString &TString::operator+=(ULong_t i)
19450     { return operator+=(::Form("%lu", i)); }
19451    
19452     inline TString &TString::operator+=(Short_t i)
19453     { return operator+=((Long_t) i); }
19454    
19455     inline TString &TString::operator+=(UShort_t i)
19456     { return operator+=((ULong_t) i); }
19457    
19458     inline TString &TString::operator+=(Int_t i)
19459     { return operator+=((Long_t) i); }
19460    
19461     inline TString &TString::operator+=(UInt_t i)
19462     { return operator+=((ULong_t) i); }
19463    
19464     inline TString &TString::operator+=(Double_t f)
19465     { return operator+=(::Form("%9.9g", f)); }
19466    
19467     inline TString &TString::operator+=(Float_t f)
19468     { return operator+=((Double_t) f); }
19469    
19470     inline TString &TString::operator+=(Long64_t l)
19471     { return operator+=(::Form("%lld", l)); }
19472    
19473     inline TString &TString::operator+=(ULong64_t ul)
19474     { return operator+=(::Form("%llu", ul)); }
19475    
19476     inline Bool_t TString::BeginsWith(const char *s, ECaseCompare cmp) const
19477     { return Index(s, s ? strlen(s) : (Ssiz_t)0, (Ssiz_t)0, cmp) == 0; }
19478    
19479     inline Bool_t TString::BeginsWith(const TString &pat, ECaseCompare cmp) const
19480     { return Index(pat.Data(), pat.Length(), (Ssiz_t)0, cmp) == 0; }
19481    
19482     inline Bool_t TString::Contains(const TString &pat, ECaseCompare cmp) const
19483     { return Index(pat.Data(), pat.Length(), (Ssiz_t)0, cmp) != kNPOS; }
19484    
19485     inline Bool_t TString::Contains(const char *s, ECaseCompare cmp) const
19486     { return Index(s, s ? strlen(s) : 0, (Ssiz_t)0, cmp) != kNPOS; }
19487    
19488     inline Bool_t TString::Contains(const TRegexp &pat) const
19489     { return Index(pat, (Ssiz_t)0) != kNPOS; }
19490    
19491     inline Bool_t TString::Contains(TPRegexp &pat) const
19492     { return Index(pat, (Ssiz_t)0) != kNPOS; }
19493    
19494     inline Ssiz_t TString::Index(const char *s, Ssiz_t i, ECaseCompare cmp) const
19495     { return Index(s, s ? strlen(s) : 0, i, cmp); }
19496    
19497     inline Ssiz_t TString::Index(const TString &s, Ssiz_t i, ECaseCompare cmp) const
19498     { return Index(s.Data(), s.Length(), i, cmp); }
19499    
19500     inline Ssiz_t TString::Index(const TString &pat, Ssiz_t patlen, Ssiz_t i,
19501     ECaseCompare cmp) const
19502     { return Index(pat.Data(), patlen, i, cmp); }
19503    
19504     inline TString &TString::Insert(Ssiz_t pos, const char *cs)
19505     { return Replace(pos, 0, cs, cs ? strlen(cs) : 0); }
19506    
19507     inline TString &TString::Insert(Ssiz_t pos, const char *cs, Ssiz_t n)
19508     { return Replace(pos, 0, cs, n); }
19509    
19510     inline TString &TString::Insert(Ssiz_t pos, const TString &s)
19511     { return Replace(pos, 0, s.Data(), s.Length()); }
19512    
19513     inline TString &TString::Insert(Ssiz_t pos, const TString &s, Ssiz_t n)
19514     { return Replace(pos, 0, s.Data(), TMath::Min(n, s.Length())); }
19515    
19516     inline TString &TString::Prepend(const char *cs)
19517     { return Replace(0, 0, cs, cs ? strlen(cs) : 0); }
19518    
19519     inline TString &TString::Prepend(const char *cs, Ssiz_t n)
19520     { return Replace(0, 0, cs, n); }
19521    
19522     inline TString &TString::Prepend(const TString &s)
19523     { return Replace(0, 0, s.Data(), s.Length()); }
19524    
19525     inline TString &TString::Prepend(const TString &s, Ssiz_t n)
19526     { return Replace(0, 0, s.Data(), TMath::Min(n, s.Length())); }
19527    
19528     inline TString &TString::Remove(Ssiz_t pos)
19529     { return Replace(pos, TMath::Max(0, Length()-pos), 0, 0); }
19530    
19531     inline TString &TString::Remove(Ssiz_t pos, Ssiz_t n)
19532     { return Replace(pos, n, 0, 0); }
19533    
19534     inline TString &TString::Chop()
19535     { return Remove(TMath::Max(0, Length()-1)); }
19536    
19537     inline TString &TString::Replace(Ssiz_t pos, Ssiz_t n, const char *cs)
19538     { return Replace(pos, n, cs, cs ? strlen(cs) : 0); }
19539    
19540     inline TString &TString::Replace(Ssiz_t pos, Ssiz_t n, const TString& s)
19541     { return Replace(pos, n, s.Data(), s.Length()); }
19542    
19543     inline TString &TString::Replace(Ssiz_t pos, Ssiz_t n1, const TString &s,
19544     Ssiz_t n2)
19545     { return Replace(pos, n1, s.Data(), TMath::Min(s.Length(), n2)); }
19546    
19547     inline TString &TString::ReplaceAll(const TString &s1, const TString &s2)
19548     { return ReplaceAll(s1.Data(), s1.Length(), s2.Data(), s2.Length()) ; }
19549    
19550     inline TString &TString::ReplaceAll(const TString &s1, const char *s2)
19551     { return ReplaceAll(s1.Data(), s1.Length(), s2, s2 ? strlen(s2) : 0); }
19552    
19553     inline TString &TString::ReplaceAll(const char *s1, const TString &s2)
19554     { return ReplaceAll(s1, s1 ? strlen(s1) : 0, s2.Data(), s2.Length()); }
19555    
19556     inline TString &TString::ReplaceAll(const char *s1,const char *s2)
19557     { return ReplaceAll(s1, s1 ? strlen(s1) : 0, s2, s2 ? strlen(s2) : 0); }
19558    
19559     inline char &TString::operator()(Ssiz_t i)
19560     { Cow(); return fData[i]; }
19561    
19562     inline char TString::operator[](Ssiz_t i) const
19563     { AssertElement(i); return fData[i]; }
19564    
19565     inline char TString::operator()(Ssiz_t i) const
19566     { return fData[i]; }
19567    
19568     inline const char *TSubString::Data() const
19569     { return fStr.Data() + fBegin; }
19570    
19571    
19572     inline char TSubString::operator[](Ssiz_t i) const
19573     { AssertElement(i); return fStr.fData[fBegin+i]; }
19574    
19575     inline char TSubString::operator()(Ssiz_t i) const
19576     { return fStr.fData[fBegin+i]; }
19577    
19578     inline TSubString &TSubString::operator=(const TSubString &s)
19579     { fStr = s.fStr; fBegin = s.fBegin; fExtent = s.fExtent; return *this; }
19580    
19581    
19582    
19583    
19584     inline Bool_t operator==(const TString &s1, const TString &s2)
19585     {
19586     return ((s1.Length() == s2.Length()) &&
19587     !memcmp(s1.Data(), s2.Data(), s1.Length()));
19588     }
19589    
19590    
19591     inline Bool_t operator!=(const TString &s1, const TString &s2)
19592     { return !(s1 == s2); }
19593    
19594     inline Bool_t operator<(const TString &s1, const TString &s2)
19595     { return s1.CompareTo(s2) < 0; }
19596    
19597     inline Bool_t operator>(const TString &s1, const TString &s2)
19598     { return s1.CompareTo(s2) > 0; }
19599    
19600     inline Bool_t operator<=(const TString &s1, const TString &s2)
19601     { return s1.CompareTo(s2) <= 0; }
19602    
19603     inline Bool_t operator>=(const TString &s1, const TString &s2)
19604     { return s1.CompareTo(s2) >= 0; }
19605    
19606    
19607     inline Bool_t operator!=(const TString &s1, const char *s2)
19608     { return !(s1 == s2); }
19609    
19610     inline Bool_t operator<(const TString &s1, const char *s2)
19611     { return s1.CompareTo(s2) < 0; }
19612    
19613     inline Bool_t operator>(const TString &s1, const char *s2)
19614     { return s1.CompareTo(s2) > 0; }
19615    
19616     inline Bool_t operator<=(const TString &s1, const char *s2)
19617     { return s1.CompareTo(s2) <= 0; }
19618    
19619     inline Bool_t operator>=(const TString &s1, const char *s2)
19620     { return s1.CompareTo(s2) >= 0; }
19621    
19622     inline Bool_t operator==(const char *s1, const TString &s2)
19623     { return (s2 == s1); }
19624    
19625     inline Bool_t operator!=(const char *s1, const TString &s2)
19626     { return !(s2 == s1); }
19627    
19628     inline Bool_t operator<(const char *s1, const TString &s2)
19629     { return s2.CompareTo(s1) > 0; }
19630    
19631     inline Bool_t operator>(const char *s1, const TString &s2)
19632     { return s2.CompareTo(s1) < 0; }
19633    
19634     inline Bool_t operator<=(const char *s1, const TString &s2)
19635     { return s2.CompareTo(s1) >= 0; }
19636    
19637     inline Bool_t operator>=(const char *s1, const TString &s2)
19638     { return s2.CompareTo(s1) <= 0; }
19639    
19640    
19641    
19642    
19643    
19644     inline Bool_t operator==(const TString &s1, const TSubString &s2)
19645     { return (s2 == s1); }
19646    
19647     inline Bool_t operator==(const char *s1, const TSubString &s2)
19648     { return (s2 == s1); }
19649    
19650     inline Bool_t operator!=(const TSubString &s1, const char *s2)
19651     { return !(s1 == s2); }
19652    
19653     inline Bool_t operator!=(const TSubString &s1, const TString &s2)
19654     { return !(s1 == s2); }
19655    
19656     inline Bool_t operator!=(const TSubString &s1, const TSubString &s2)
19657     { return !(s1 == s2); }
19658    
19659     inline Bool_t operator!=(const TString &s1, const TSubString &s2)
19660     { return !(s2 == s1); }
19661    
19662     inline Bool_t operator!=(const char *s1, const TSubString &s2)
19663     { return !(s2 == s1); }
19664     # 4 "include/PamVMCGeoID.h" 2
19665    
19666     struct pGeoID {
19667    
19668     };
19669    
19670     class PamVMCGeoID {
19671    
19672     protected:
19673    
19674     TString fvolname;
19675     Int_t fvoffset;
19676    
19677     public:
19678    
19679     PamVMCGeoID(): fvoffset(0), fvolname("none") {};
19680     PamVMCGeoID(const char *vname,Int_t voff): fvoffset(voff), fvolname(vname) {};
19681     virtual ~PamVMCGeoID(){};
19682    
19683     virtual void FillVolID(pGeoID * gid) = 0;
19684     void SetVolName(const char *vname) {fvolname=vname;}
19685     void SetVolOffset(Int_t voff) {fvoffset=voff;}
19686    
19687     const char *GetVolName() { return fvolname.Data();}
19688    
19689     Int_t GetVolOffset() { return fvoffset;}
19690    
19691     void Print() const {
19692     };
19693    
19694     };
19695     # 5 "include/PamVMCCaloID.h" 2
19696    
19697    
19698    
19699    
19700     struct pCalID: public pGeoID {
19701     Int_t casiNo;
19702     Int_t caplNo;
19703     Int_t castNo;
19704    
19705     pCalID(): casiNo(-1), caplNo(-1), castNo(-1) {};
19706    
19707     };
19708    
19709     class PamVMCCaloID : public PamVMCGeoID {
19710     private:
19711    
19712     pCalID fcalid;
19713    
19714     public:
19715     PamVMCCaloID() {};
19716     PamVMCCaloID( "CAST" ,3): PamVMCGeoID( "CAST" ,3) {};
19717     void FillVolID(pGeoID *gid){ };
19718    
19719    
19720     };
19721     # 2 "src/PamVMCCaloID.cxx" 2

  ViewVC Help
Powered by ViewVC 1.1.23