// /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/cc1plus -quiet -Isrc -D_GNU_SOURCE -DTT_SIMMODE=1 -DTT_TASK_VIRTUAL_PUTMSG -D_GNU_SOURCE -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -isystem /home/jas/.tt/ttsetup/opt/include src/bp/bp_b.cc -D_FORTIFY_SOURCE=2 -quiet -dumpbase bp_b.cc -mtune=generic -march=x86-64 -auxbase-strip .obj/linux/bp/bp_b.o -ggdb -Wall -std=c++0x -fno-deduce-init-list -fstack-protector -o - -frandom-seed=0 # 1 "src/bp/bp_b.cc" # 1 "/home/jas/taritentrading//" # 1 "" # 1 "" # 1 "src/bp/bp_b.cc" # 9 "src/bp/bp_b.cc" # 1 "/usr/include/stdio.h" 1 3 4 # 28 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 323 "/usr/include/features.h" 3 4 # 1 "/usr/include/bits/predefs.h" 1 3 4 # 324 "/usr/include/features.h" 2 3 4 # 356 "/usr/include/features.h" 3 4 # 1 "/usr/include/sys/cdefs.h" 1 3 4 # 353 "/usr/include/sys/cdefs.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 354 "/usr/include/sys/cdefs.h" 2 3 4 # 357 "/usr/include/features.h" 2 3 4 # 388 "/usr/include/features.h" 3 4 # 1 "/usr/include/gnu/stubs.h" 1 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 5 "/usr/include/gnu/stubs.h" 2 3 4 # 1 "/usr/include/gnu/stubs-64.h" 1 3 4 # 10 "/usr/include/gnu/stubs.h" 2 3 4 # 389 "/usr/include/features.h" 2 3 4 # 29 "/usr/include/stdio.h" 2 3 4 extern "C" { # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 211 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 3 4 typedef long unsigned int size_t; # 35 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/bits/types.h" 1 3 4 # 28 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 29 "/usr/include/bits/types.h" 2 3 4 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; typedef signed long int __int64_t; typedef unsigned long int __uint64_t; typedef long int __quad_t; typedef unsigned long int __u_quad_t; # 131 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/typesizes.h" 1 3 4 # 132 "/usr/include/bits/types.h" 2 3 4 typedef unsigned long int __dev_t; typedef unsigned int __uid_t; typedef unsigned int __gid_t; typedef unsigned long int __ino_t; typedef unsigned long int __ino64_t; typedef unsigned int __mode_t; typedef unsigned long int __nlink_t; typedef long int __off_t; typedef long int __off64_t; typedef int __pid_t; typedef struct { int __val[2]; } __fsid_t; typedef long int __clock_t; typedef unsigned long int __rlim_t; typedef unsigned long int __rlim64_t; typedef unsigned int __id_t; typedef long int __time_t; typedef unsigned int __useconds_t; typedef long int __suseconds_t; typedef int __daddr_t; typedef long int __swblk_t; typedef int __key_t; typedef int __clockid_t; typedef void * __timer_t; typedef long int __blksize_t; typedef long int __blkcnt_t; typedef long int __blkcnt64_t; typedef unsigned long int __fsblkcnt_t; typedef unsigned long int __fsblkcnt64_t; typedef unsigned long int __fsfilcnt_t; typedef unsigned long int __fsfilcnt64_t; typedef long int __ssize_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; typedef long int __intptr_t; typedef unsigned int __socklen_t; # 37 "/usr/include/stdio.h" 2 3 4 # 45 "/usr/include/stdio.h" 3 4 struct _IO_FILE; typedef struct _IO_FILE FILE; # 65 "/usr/include/stdio.h" 3 4 typedef struct _IO_FILE __FILE; # 75 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/libio.h" 1 3 4 # 32 "/usr/include/libio.h" 3 4 # 1 "/usr/include/_G_config.h" 1 3 4 # 15 "/usr/include/_G_config.h" 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 16 "/usr/include/_G_config.h" 2 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 83 "/usr/include/wchar.h" 3 4 typedef struct { int __count; union { unsigned int __wch; char __wchb[4]; } __value; } __mbstate_t; # 21 "/usr/include/_G_config.h" 2 3 4 typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t; typedef struct { __off64_t __pos; __mbstate_t __state; } _G_fpos64_t; # 53 "/usr/include/_G_config.h" 3 4 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); # 33 "/usr/include/libio.h" 2 3 4 # 53 "/usr/include/libio.h" 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h" 1 3 4 # 40 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 54 "/usr/include/libio.h" 2 3 4 # 170 "/usr/include/libio.h" 3 4 struct _IO_jump_t; struct _IO_FILE; # 180 "/usr/include/libio.h" 3 4 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 203 "/usr/include/libio.h" 3 4 }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; # 271 "/usr/include/libio.h" 3 4 struct _IO_FILE { int _flags; char* _IO_read_ptr; char* _IO_read_end; char* _IO_read_base; char* _IO_write_base; char* _IO_write_ptr; char* _IO_write_end; char* _IO_buf_base; char* _IO_buf_end; char *_IO_save_base; char *_IO_backup_base; char *_IO_save_end; struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _flags2; __off_t _old_offset; unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; # 319 "/usr/include/libio.h" 3 4 __off64_t _offset; # 328 "/usr/include/libio.h" 3 4 void *__pad1; void *__pad2; void *__pad3; void *__pad4; size_t __pad5; int _mode; char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; }; struct _IO_FILE_plus; extern struct _IO_FILE_plus _IO_2_1_stdin_; extern struct _IO_FILE_plus _IO_2_1_stdout_; extern struct _IO_FILE_plus _IO_2_1_stderr_; # 364 "/usr/include/libio.h" 3 4 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, size_t __n); typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); typedef int __io_close_fn (void *__cookie); typedef __io_read_fn cookie_read_function_t; typedef __io_write_fn cookie_write_function_t; typedef __io_seek_fn cookie_seek_function_t; typedef __io_close_fn cookie_close_function_t; typedef struct { __io_read_fn *read; __io_write_fn *write; __io_seek_fn *seek; __io_close_fn *close; } _IO_cookie_io_functions_t; typedef _IO_cookie_io_functions_t cookie_io_functions_t; struct _IO_cookie_file; extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, void *__cookie, _IO_cookie_io_functions_t __fns); extern "C" { extern int __underflow (_IO_FILE *); extern int __uflow (_IO_FILE *); extern int __overflow (_IO_FILE *, int); # 460 "/usr/include/libio.h" 3 4 extern int _IO_getc (_IO_FILE *__fp); extern int _IO_putc (int __c, _IO_FILE *__fp); extern int _IO_feof (_IO_FILE *__fp) throw (); extern int _IO_ferror (_IO_FILE *__fp) throw (); extern int _IO_peekc_locked (_IO_FILE *__fp); extern void _IO_flockfile (_IO_FILE *) throw (); extern void _IO_funlockfile (_IO_FILE *) throw (); extern int _IO_ftrylockfile (_IO_FILE *) throw (); # 490 "/usr/include/libio.h" 3 4 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, __gnuc_va_list, int *__restrict); extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, __gnuc_va_list); extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); extern void _IO_free_backup_area (_IO_FILE *) throw (); # 552 "/usr/include/libio.h" 3 4 } # 76 "/usr/include/stdio.h" 2 3 4 typedef __gnuc_va_list va_list; # 91 "/usr/include/stdio.h" 3 4 typedef __off_t off_t; typedef __off64_t off64_t; typedef __ssize_t ssize_t; typedef _G_fpos_t fpos_t; typedef _G_fpos64_t fpos64_t; # 161 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 162 "/usr/include/stdio.h" 2 3 4 extern struct _IO_FILE *stdin; extern struct _IO_FILE *stdout; extern struct _IO_FILE *stderr; extern int remove (__const char *__filename) throw (); extern int rename (__const char *__old, __const char *__new) throw (); extern int renameat (int __oldfd, __const char *__old, int __newfd, __const char *__new) throw (); extern FILE *tmpfile (void) ; # 202 "/usr/include/stdio.h" 3 4 extern FILE *tmpfile64 (void) ; extern char *tmpnam (char *__s) throw () ; extern char *tmpnam_r (char *__s) throw () ; # 224 "/usr/include/stdio.h" 3 4 extern char *tempnam (__const char *__dir, __const char *__pfx) throw () __attribute__ ((__malloc__)) ; extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); # 249 "/usr/include/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 259 "/usr/include/stdio.h" 3 4 extern int fcloseall (void); extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) ; extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) ; # 292 "/usr/include/stdio.h" 3 4 extern FILE *fopen64 (__const char *__restrict __filename, __const char *__restrict __modes) ; extern FILE *freopen64 (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) ; extern FILE *fdopen (int __fd, __const char *__modes) throw () ; extern FILE *fopencookie (void *__restrict __magic_cookie, __const char *__restrict __modes, _IO_cookie_io_functions_t __io_funcs) throw () ; extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) throw () ; extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ; extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) throw (); extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) throw (); extern void setlinebuf (FILE *__stream) throw (); extern int fprintf (FILE *__restrict __stream, __const char *__restrict __format, ...); extern int printf (__const char *__restrict __format, ...); extern int sprintf (char *__restrict __s, __const char *__restrict __format, ...) throw (); extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg); extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); extern int vsprintf (char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) throw (); extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) throw () __attribute__ ((__format__ (__printf__, 3, 4))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__printf__, 3, 0))); extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__printf__, 2, 0))) ; extern int __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))) ; extern int asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))) ; # 414 "/usr/include/stdio.h" 3 4 extern int vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int dprintf (int __fd, __const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) ; extern int scanf (__const char *__restrict __format, ...) ; extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) throw (); # 465 "/usr/include/stdio.h" 3 4 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))) ; extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))) ; extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__scanf__, 2, 0))); # 524 "/usr/include/stdio.h" 3 4 extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); # 552 "/usr/include/stdio.h" 3 4 extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 563 "/usr/include/stdio.h" 3 4 extern int fgetc_unlocked (FILE *__stream); extern int fputc (int __c, FILE *__stream); extern int putc (int __c, FILE *__stream); extern int putchar (int __c); # 596 "/usr/include/stdio.h" 3 4 extern int fputc_unlocked (int __c, FILE *__stream); extern int putc_unlocked (int __c, FILE *__stream); extern int putchar_unlocked (int __c); extern int getw (FILE *__stream); extern int putw (int __w, FILE *__stream); extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) ; extern char *gets (char *__s) ; # 642 "/usr/include/stdio.h" 3 4 extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) ; # 658 "/usr/include/stdio.h" 3 4 extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) ; extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) ; extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) ; extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); extern int puts (__const char *__s); extern int ungetc (int __c, FILE *__stream); extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ; extern size_t fwrite (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s); # 719 "/usr/include/stdio.h" 3 4 extern int fputs_unlocked (__const char *__restrict __s, FILE *__restrict __stream); # 730 "/usr/include/stdio.h" 3 4 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ; extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); extern int fseek (FILE *__stream, long int __off, int __whence); extern long int ftell (FILE *__stream) ; extern void rewind (FILE *__stream); # 766 "/usr/include/stdio.h" 3 4 extern int fseeko (FILE *__stream, __off_t __off, int __whence); extern __off_t ftello (FILE *__stream) ; # 785 "/usr/include/stdio.h" 3 4 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); extern int fsetpos (FILE *__stream, __const fpos_t *__pos); # 808 "/usr/include/stdio.h" 3 4 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); extern __off64_t ftello64 (FILE *__stream) ; extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); extern void clearerr (FILE *__stream) throw (); extern int feof (FILE *__stream) throw () ; extern int ferror (FILE *__stream) throw () ; extern void clearerr_unlocked (FILE *__stream) throw (); extern int feof_unlocked (FILE *__stream) throw () ; extern int ferror_unlocked (FILE *__stream) throw () ; extern void perror (__const char *__s); # 1 "/usr/include/bits/sys_errlist.h" 1 3 4 # 27 "/usr/include/bits/sys_errlist.h" 3 4 extern int sys_nerr; extern __const char *__const sys_errlist[]; extern int _sys_nerr; extern __const char *__const _sys_errlist[]; # 847 "/usr/include/stdio.h" 2 3 4 extern int fileno (FILE *__stream) throw () ; extern int fileno_unlocked (FILE *__stream) throw () ; # 866 "/usr/include/stdio.h" 3 4 extern FILE *popen (__const char *__command, __const char *__modes) ; extern int pclose (FILE *__stream); extern char *ctermid (char *__s) throw (); extern char *cuserid (char *__s); struct obstack; extern int obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __format, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))); extern int obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __format, __gnuc_va_list __args) throw () __attribute__ ((__format__ (__printf__, 2, 0))); extern void flockfile (FILE *__stream) throw (); extern int ftrylockfile (FILE *__stream) throw () ; extern void funlockfile (FILE *__stream) throw (); # 936 "/usr/include/stdio.h" 3 4 } # 10 "src/bp/bp_b.cc" 2 # 1 "/usr/include/sys/stat.h" 1 3 4 # 39 "/usr/include/sys/stat.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 74 "/usr/include/time.h" 3 4 typedef __time_t time_t; # 120 "/usr/include/time.h" 3 4 struct timespec { __time_t tv_sec; long int tv_nsec; }; # 40 "/usr/include/sys/stat.h" 2 3 4 typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __ino_t ino_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; # 84 "/usr/include/sys/stat.h" 3 4 typedef __uid_t uid_t; typedef __blkcnt_t blkcnt_t; typedef __blksize_t blksize_t; extern "C" { # 1 "/usr/include/bits/stat.h" 1 3 4 # 46 "/usr/include/bits/stat.h" 3 4 struct stat { __dev_t st_dev; __ino_t st_ino; __nlink_t st_nlink; __mode_t st_mode; __uid_t st_uid; __gid_t st_gid; int __pad0; __dev_t st_rdev; __off_t st_size; __blksize_t st_blksize; __blkcnt_t st_blocks; # 91 "/usr/include/bits/stat.h" 3 4 struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 106 "/usr/include/bits/stat.h" 3 4 long int __unused[3]; # 115 "/usr/include/bits/stat.h" 3 4 }; struct stat64 { __dev_t st_dev; __ino64_t st_ino; __nlink_t st_nlink; __mode_t st_mode; __uid_t st_uid; __gid_t st_gid; int __pad0; __dev_t st_rdev; __off_t st_size; __blksize_t st_blksize; __blkcnt64_t st_blocks; struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 167 "/usr/include/bits/stat.h" 3 4 long int __unused[3]; }; # 108 "/usr/include/sys/stat.h" 2 3 4 # 211 "/usr/include/sys/stat.h" 3 4 extern int stat (__const char *__restrict __file, struct stat *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); extern int fstat (int __fd, struct stat *__buf) throw () __attribute__ ((__nonnull__ (2))); # 230 "/usr/include/sys/stat.h" 3 4 extern int stat64 (__const char *__restrict __file, struct stat64 *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); extern int fstat64 (int __fd, struct stat64 *__buf) throw () __attribute__ ((__nonnull__ (2))); extern int fstatat (int __fd, __const char *__restrict __file, struct stat *__restrict __buf, int __flag) throw () __attribute__ ((__nonnull__ (2, 3))); # 255 "/usr/include/sys/stat.h" 3 4 extern int fstatat64 (int __fd, __const char *__restrict __file, struct stat64 *__restrict __buf, int __flag) throw () __attribute__ ((__nonnull__ (2, 3))); extern int lstat (__const char *__restrict __file, struct stat *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); # 278 "/usr/include/sys/stat.h" 3 4 extern int lstat64 (__const char *__restrict __file, struct stat64 *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); extern int chmod (__const char *__file, __mode_t __mode) throw () __attribute__ ((__nonnull__ (1))); extern int lchmod (__const char *__file, __mode_t __mode) throw () __attribute__ ((__nonnull__ (1))); extern int fchmod (int __fd, __mode_t __mode) throw (); extern int fchmodat (int __fd, __const char *__file, __mode_t __mode, int __flag) throw () __attribute__ ((__nonnull__ (2))) ; extern __mode_t umask (__mode_t __mask) throw (); extern __mode_t getumask (void) throw (); extern int mkdir (__const char *__path, __mode_t __mode) throw () __attribute__ ((__nonnull__ (1))); extern int mkdirat (int __fd, __const char *__path, __mode_t __mode) throw () __attribute__ ((__nonnull__ (2))); extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) throw () __attribute__ ((__nonnull__ (1))); extern int mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev) throw () __attribute__ ((__nonnull__ (2))); extern int mkfifo (__const char *__path, __mode_t __mode) throw () __attribute__ ((__nonnull__ (1))); extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode) throw () __attribute__ ((__nonnull__ (2))); extern int utimensat (int __fd, __const char *__path, __const struct timespec __times[2], int __flags) throw () __attribute__ ((__nonnull__ (2))); extern int futimens (int __fd, __const struct timespec __times[2]) throw (); # 401 "/usr/include/sys/stat.h" 3 4 extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) throw () __attribute__ ((__nonnull__ (3))); extern int __xstat (int __ver, __const char *__filename, struct stat *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); extern int __lxstat (int __ver, __const char *__filename, struct stat *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); extern int __fxstatat (int __ver, int __fildes, __const char *__filename, struct stat *__stat_buf, int __flag) throw () __attribute__ ((__nonnull__ (3, 4))); # 434 "/usr/include/sys/stat.h" 3 4 extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (3))); extern int __xstat64 (int __ver, __const char *__filename, struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); extern int __lxstat64 (int __ver, __const char *__filename, struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); extern int __fxstatat64 (int __ver, int __fildes, __const char *__filename, struct stat64 *__stat_buf, int __flag) throw () __attribute__ ((__nonnull__ (3, 4))); extern int __xmknod (int __ver, __const char *__path, __mode_t __mode, __dev_t *__dev) throw () __attribute__ ((__nonnull__ (2, 4))); extern int __xmknodat (int __ver, int __fd, __const char *__path, __mode_t __mode, __dev_t *__dev) throw () __attribute__ ((__nonnull__ (3, 5))); # 536 "/usr/include/sys/stat.h" 3 4 } # 11 "src/bp/bp_b.cc" 2 # 1 "/usr/include/assert.h" 1 3 4 # 68 "/usr/include/assert.h" 3 4 extern "C" { extern void __assert_fail (__const char *__assertion, __const char *__file, unsigned int __line, __const char *__function) throw () __attribute__ ((__noreturn__)); extern void __assert_perror_fail (int __errnum, __const char *__file, unsigned int __line, __const char *__function) throw () __attribute__ ((__noreturn__)); extern void __assert (const char *__assertion, const char *__file, int __line) throw () __attribute__ ((__noreturn__)); } # 12 "src/bp/bp_b.cc" 2 # 1 "/usr/include/execinfo.h" 1 3 4 # 24 "/usr/include/execinfo.h" 3 4 extern "C" { extern int backtrace (void **__array, int __size) __attribute__ ((__nonnull__ (1))); extern char **backtrace_symbols (void *__const *__array, int __size) throw () __attribute__ ((__nonnull__ (1))); extern void backtrace_symbols_fd (void *__const *__array, int __size, int __fd) throw () __attribute__ ((__nonnull__ (1))); } # 13 "src/bp/bp_b.cc" 2 # 1 "/usr/include/signal.h" 1 3 4 # 31 "/usr/include/signal.h" 3 4 extern "C" { # 1 "/usr/include/bits/sigset.h" 1 3 4 # 24 "/usr/include/bits/sigset.h" 3 4 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 104 "/usr/include/bits/sigset.h" 3 4 extern int __sigismember (__const __sigset_t *, int); extern int __sigaddset (__sigset_t *, int); extern int __sigdelset (__sigset_t *, int); # 34 "/usr/include/signal.h" 2 3 4 typedef __sig_atomic_t sig_atomic_t; typedef __sigset_t sigset_t; # 1 "/usr/include/bits/signum.h" 1 3 4 # 59 "/usr/include/signal.h" 2 3 4 typedef __pid_t pid_t; # 76 "/usr/include/signal.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 77 "/usr/include/signal.h" 2 3 4 # 1 "/usr/include/bits/siginfo.h" 1 3 4 # 25 "/usr/include/bits/siginfo.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 26 "/usr/include/bits/siginfo.h" 2 3 4 typedef union sigval { int sival_int; void *sival_ptr; } sigval_t; # 51 "/usr/include/bits/siginfo.h" 3 4 typedef struct siginfo { int si_signo; int si_errno; int si_code; union { int _pad[((128 / sizeof (int)) - 4)]; struct { __pid_t si_pid; __uid_t si_uid; } _kill; struct { int si_tid; int si_overrun; sigval_t si_sigval; } _timer; struct { __pid_t si_pid; __uid_t si_uid; sigval_t si_sigval; } _rt; struct { __pid_t si_pid; __uid_t si_uid; int si_status; __clock_t si_utime; __clock_t si_stime; } _sigchld; struct { void *si_addr; } _sigfault; struct { long int si_band; int si_fd; } _sigpoll; } _sifields; } siginfo_t; # 129 "/usr/include/bits/siginfo.h" 3 4 enum { SI_ASYNCNL = -60, SI_TKILL = -6, SI_SIGIO, SI_ASYNCIO, SI_MESGQ, SI_TIMER, SI_QUEUE, SI_USER, SI_KERNEL = 0x80 }; enum { ILL_ILLOPC = 1, ILL_ILLOPN, ILL_ILLADR, ILL_ILLTRP, ILL_PRVOPC, ILL_PRVREG, ILL_COPROC, ILL_BADSTK }; enum { FPE_INTDIV = 1, FPE_INTOVF, FPE_FLTDIV, FPE_FLTOVF, FPE_FLTUND, FPE_FLTRES, FPE_FLTINV, FPE_FLTSUB }; enum { SEGV_MAPERR = 1, SEGV_ACCERR }; enum { BUS_ADRALN = 1, BUS_ADRERR, BUS_OBJERR }; enum { TRAP_BRKPT = 1, TRAP_TRACE }; enum { CLD_EXITED = 1, CLD_KILLED, CLD_DUMPED, CLD_TRAPPED, CLD_STOPPED, CLD_CONTINUED }; enum { POLL_IN = 1, POLL_OUT, POLL_MSG, POLL_ERR, POLL_PRI, POLL_HUP }; # 273 "/usr/include/bits/siginfo.h" 3 4 typedef struct sigevent { sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[((64 / sizeof (int)) - 4)]; __pid_t _tid; struct { void (*_function) (sigval_t); void *_attribute; } _sigev_thread; } _sigev_un; } sigevent_t; enum { SIGEV_SIGNAL = 0, SIGEV_NONE, SIGEV_THREAD, SIGEV_THREAD_ID = 4 }; # 80 "/usr/include/signal.h" 2 3 4 typedef void (*__sighandler_t) (int); extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) throw (); extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) throw (); extern __sighandler_t signal (int __sig, __sighandler_t __handler) throw (); # 113 "/usr/include/signal.h" 3 4 extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) throw (); extern int kill (__pid_t __pid, int __sig) throw (); extern int killpg (__pid_t __pgrp, int __sig) throw (); extern int raise (int __sig) throw (); extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) throw (); extern int gsignal (int __sig) throw (); extern void psignal (int __sig, __const char *__s); extern void psiginfo (__const siginfo_t *__pinfo, __const char *__s); # 168 "/usr/include/signal.h" 3 4 extern int __sigpause (int __sig_or_mask, int __is_sig); # 177 "/usr/include/signal.h" 3 4 extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); # 196 "/usr/include/signal.h" 3 4 extern int sigblock (int __mask) throw () __attribute__ ((__deprecated__)); extern int sigsetmask (int __mask) throw () __attribute__ ((__deprecated__)); extern int siggetmask (void) throw () __attribute__ ((__deprecated__)); # 211 "/usr/include/signal.h" 3 4 typedef __sighandler_t sighandler_t; typedef __sighandler_t sig_t; extern int sigemptyset (sigset_t *__set) throw () __attribute__ ((__nonnull__ (1))); extern int sigfillset (sigset_t *__set) throw () __attribute__ ((__nonnull__ (1))); extern int sigaddset (sigset_t *__set, int __signo) throw () __attribute__ ((__nonnull__ (1))); extern int sigdelset (sigset_t *__set, int __signo) throw () __attribute__ ((__nonnull__ (1))); extern int sigismember (__const sigset_t *__set, int __signo) throw () __attribute__ ((__nonnull__ (1))); extern int sigisemptyset (__const sigset_t *__set) throw () __attribute__ ((__nonnull__ (1))); extern int sigandset (sigset_t *__set, __const sigset_t *__left, __const sigset_t *__right) throw () __attribute__ ((__nonnull__ (1, 2, 3))); extern int sigorset (sigset_t *__set, __const sigset_t *__left, __const sigset_t *__right) throw () __attribute__ ((__nonnull__ (1, 2, 3))); # 1 "/usr/include/bits/sigaction.h" 1 3 4 # 25 "/usr/include/bits/sigaction.h" 3 4 struct sigaction { union { __sighandler_t sa_handler; void (*sa_sigaction) (int, siginfo_t *, void *); } __sigaction_handler; __sigset_t sa_mask; int sa_flags; void (*sa_restorer) (void); }; # 253 "/usr/include/signal.h" 2 3 4 extern int sigprocmask (int __how, __const sigset_t *__restrict __set, sigset_t *__restrict __oset) throw (); extern int sigsuspend (__const sigset_t *__set) __attribute__ ((__nonnull__ (1))); extern int sigaction (int __sig, __const struct sigaction *__restrict __act, struct sigaction *__restrict __oact) throw (); extern int sigpending (sigset_t *__set) throw () __attribute__ ((__nonnull__ (1))); extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig) __attribute__ ((__nonnull__ (1, 2))); extern int sigwaitinfo (__const sigset_t *__restrict __set, siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1))); extern int sigtimedwait (__const sigset_t *__restrict __set, siginfo_t *__restrict __info, __const struct timespec *__restrict __timeout) __attribute__ ((__nonnull__ (1))); extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val) throw (); # 310 "/usr/include/signal.h" 3 4 extern __const char *__const _sys_siglist[65]; extern __const char *__const sys_siglist[65]; struct sigvec { __sighandler_t sv_handler; int sv_mask; int sv_flags; }; # 334 "/usr/include/signal.h" 3 4 extern int sigvec (int __sig, __const struct sigvec *__vec, struct sigvec *__ovec) throw (); # 1 "/usr/include/bits/sigcontext.h" 1 3 4 # 26 "/usr/include/bits/sigcontext.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 27 "/usr/include/bits/sigcontext.h" 2 3 4 struct _fpreg { unsigned short significand[4]; unsigned short exponent; }; struct _fpxreg { unsigned short significand[4]; unsigned short exponent; unsigned short padding[3]; }; struct _xmmreg { __uint32_t element[4]; }; # 109 "/usr/include/bits/sigcontext.h" 3 4 struct _fpstate { __uint16_t cwd; __uint16_t swd; __uint16_t ftw; __uint16_t fop; __uint64_t rip; __uint64_t rdp; __uint32_t mxcsr; __uint32_t mxcr_mask; struct _fpxreg _st[8]; struct _xmmreg _xmm[16]; __uint32_t padding[24]; }; struct sigcontext { unsigned long r8; unsigned long r9; unsigned long r10; unsigned long r11; unsigned long r12; unsigned long r13; unsigned long r14; unsigned long r15; unsigned long rdi; unsigned long rsi; unsigned long rbp; unsigned long rbx; unsigned long rdx; unsigned long rax; unsigned long rcx; unsigned long rsp; unsigned long rip; unsigned long eflags; unsigned short cs; unsigned short gs; unsigned short fs; unsigned short __pad0; unsigned long err; unsigned long trapno; unsigned long oldmask; unsigned long cr2; struct _fpstate * fpstate; unsigned long __reserved1 [8]; }; # 340 "/usr/include/signal.h" 2 3 4 extern int sigreturn (struct sigcontext *__scp) throw (); # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 350 "/usr/include/signal.h" 2 3 4 extern int siginterrupt (int __sig, int __interrupt) throw (); # 1 "/usr/include/bits/sigstack.h" 1 3 4 # 26 "/usr/include/bits/sigstack.h" 3 4 struct sigstack { void *ss_sp; int ss_onstack; }; enum { SS_ONSTACK = 1, SS_DISABLE }; # 50 "/usr/include/bits/sigstack.h" 3 4 typedef struct sigaltstack { void *ss_sp; int ss_flags; size_t ss_size; } stack_t; # 357 "/usr/include/signal.h" 2 3 4 # 1 "/usr/include/sys/ucontext.h" 1 3 4 # 23 "/usr/include/sys/ucontext.h" 3 4 # 1 "/usr/include/signal.h" 1 3 4 # 24 "/usr/include/sys/ucontext.h" 2 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 25 "/usr/include/sys/ucontext.h" 2 3 4 # 33 "/usr/include/sys/ucontext.h" 3 4 typedef long int greg_t; typedef greg_t gregset_t[23]; enum { REG_R8 = 0, REG_R9, REG_R10, REG_R11, REG_R12, REG_R13, REG_R14, REG_R15, REG_RDI, REG_RSI, REG_RBP, REG_RBX, REG_RDX, REG_RAX, REG_RCX, REG_RSP, REG_RIP, REG_EFL, REG_CSGSFS, REG_ERR, REG_TRAPNO, REG_OLDMASK, REG_CR2 }; struct _libc_fpxreg { unsigned short int significand[4]; unsigned short int exponent; unsigned short int padding[3]; }; struct _libc_xmmreg { __uint32_t element[4]; }; struct _libc_fpstate { __uint16_t cwd; __uint16_t swd; __uint16_t ftw; __uint16_t fop; __uint64_t rip; __uint64_t rdp; __uint32_t mxcsr; __uint32_t mxcr_mask; struct _libc_fpxreg _st[8]; struct _libc_xmmreg _xmm[16]; __uint32_t padding[24]; }; typedef struct _libc_fpstate *fpregset_t; typedef struct { gregset_t gregs; fpregset_t fpregs; unsigned long __reserved1 [8]; } mcontext_t; typedef struct ucontext { unsigned long int uc_flags; struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; __sigset_t uc_sigmask; struct _libc_fpstate __fpregs_mem; } ucontext_t; # 360 "/usr/include/signal.h" 2 3 4 extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) throw () __attribute__ ((__deprecated__)); extern int sigaltstack (__const struct sigaltstack *__restrict __ss, struct sigaltstack *__restrict __oss) throw (); extern int sighold (int __sig) throw (); extern int sigrelse (int __sig) throw (); extern int sigignore (int __sig) throw (); extern __sighandler_t sigset (int __sig, __sighandler_t __disp) throw (); # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 # 23 "/usr/include/bits/pthreadtypes.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 # 50 "/usr/include/bits/pthreadtypes.h" 3 4 typedef unsigned long int pthread_t; typedef union { char __size[56]; long int __align; } pthread_attr_t; typedef struct __pthread_internal_list { struct __pthread_internal_list *__prev; struct __pthread_internal_list *__next; } __pthread_list_t; # 76 "/usr/include/bits/pthreadtypes.h" 3 4 typedef union { struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; unsigned int __nusers; int __kind; int __spins; __pthread_list_t __list; # 101 "/usr/include/bits/pthreadtypes.h" 3 4 } __data; char __size[40]; long int __align; } pthread_mutex_t; typedef union { char __size[4]; int __align; } pthread_mutexattr_t; typedef union { struct { int __lock; unsigned int __futex; __extension__ unsigned long long int __total_seq; __extension__ unsigned long long int __wakeup_seq; __extension__ unsigned long long int __woken_seq; void *__mutex; unsigned int __nwaiters; unsigned int __broadcast_seq; } __data; char __size[48]; __extension__ long long int __align; } pthread_cond_t; typedef union { char __size[4]; int __align; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef int pthread_once_t; typedef union { struct { int __lock; unsigned int __nr_readers; unsigned int __readers_wakeup; unsigned int __writer_wakeup; unsigned int __nr_readers_queued; unsigned int __nr_writers_queued; int __writer; int __shared; unsigned long int __pad1; unsigned long int __pad2; unsigned int __flags; } __data; # 187 "/usr/include/bits/pthreadtypes.h" 3 4 char __size[56]; long int __align; } pthread_rwlock_t; typedef union { char __size[8]; long int __align; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef union { char __size[32]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 395 "/usr/include/signal.h" 2 3 4 # 1 "/usr/include/bits/sigthread.h" 1 3 4 # 31 "/usr/include/bits/sigthread.h" 3 4 extern int pthread_sigmask (int __how, __const __sigset_t *__restrict __newmask, __sigset_t *__restrict __oldmask)throw (); extern int pthread_kill (pthread_t __threadid, int __signo) throw (); extern int pthread_sigqueue (pthread_t __threadid, int __signo, const union sigval __value) throw (); # 396 "/usr/include/signal.h" 2 3 4 extern int __libc_current_sigrtmin (void) throw (); extern int __libc_current_sigrtmax (void) throw (); } # 14 "src/bp/bp_b.cc" 2 # 1 "/usr/include/unistd.h" 1 3 4 # 28 "/usr/include/unistd.h" 3 4 extern "C" { # 203 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/bits/posix_opt.h" 1 3 4 # 204 "/usr/include/unistd.h" 2 3 4 # 1 "/usr/include/bits/environments.h" 1 3 4 # 23 "/usr/include/bits/environments.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 24 "/usr/include/bits/environments.h" 2 3 4 # 208 "/usr/include/unistd.h" 2 3 4 # 227 "/usr/include/unistd.h" 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 228 "/usr/include/unistd.h" 2 3 4 # 256 "/usr/include/unistd.h" 3 4 typedef __useconds_t useconds_t; # 268 "/usr/include/unistd.h" 3 4 typedef __intptr_t intptr_t; typedef __socklen_t socklen_t; # 288 "/usr/include/unistd.h" 3 4 extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1))); extern int euidaccess (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1))); extern int eaccess (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1))); extern int faccessat (int __fd, __const char *__file, int __type, int __flag) throw () __attribute__ ((__nonnull__ (2))) ; # 331 "/usr/include/unistd.h" 3 4 extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw (); # 342 "/usr/include/unistd.h" 3 4 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) throw (); extern int close (int __fd); extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ; extern ssize_t write (int __fd, __const void *__buf, size_t __n) ; # 373 "/usr/include/unistd.h" 3 4 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) ; extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, __off_t __offset) ; # 401 "/usr/include/unistd.h" 3 4 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) ; extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, __off64_t __offset) ; extern int pipe (int __pipedes[2]) throw () ; extern int pipe2 (int __pipedes[2], int __flags) throw () ; # 429 "/usr/include/unistd.h" 3 4 extern unsigned int alarm (unsigned int __seconds) throw (); # 441 "/usr/include/unistd.h" 3 4 extern unsigned int sleep (unsigned int __seconds); extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) throw (); extern int usleep (__useconds_t __useconds); # 466 "/usr/include/unistd.h" 3 4 extern int pause (void); extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) throw () __attribute__ ((__nonnull__ (1))) ; extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () ; extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) throw () __attribute__ ((__nonnull__ (1))) ; extern int fchownat (int __fd, __const char *__file, __uid_t __owner, __gid_t __group, int __flag) throw () __attribute__ ((__nonnull__ (2))) ; extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ; extern int fchdir (int __fd) throw () ; # 508 "/usr/include/unistd.h" 3 4 extern char *getcwd (char *__buf, size_t __size) throw () ; extern char *get_current_dir_name (void) throw (); extern char *getwd (char *__buf) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ; extern int dup (int __fd) throw () ; extern int dup2 (int __fd, int __fd2) throw (); extern int dup3 (int __fd, int __fd2, int __flags) throw (); extern char **__environ; extern char **environ; extern int execve (__const char *__path, char *__const __argv[], char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1, 2))); extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) throw () __attribute__ ((__nonnull__ (2))); extern int execv (__const char *__path, char *__const __argv[]) throw () __attribute__ ((__nonnull__ (1, 2))); extern int execle (__const char *__path, __const char *__arg, ...) throw () __attribute__ ((__nonnull__ (1, 2))); extern int execl (__const char *__path, __const char *__arg, ...) throw () __attribute__ ((__nonnull__ (1, 2))); extern int execvp (__const char *__file, char *__const __argv[]) throw () __attribute__ ((__nonnull__ (1, 2))); extern int execlp (__const char *__file, __const char *__arg, ...) throw () __attribute__ ((__nonnull__ (1, 2))); extern int execvpe (__const char *__file, char *__const __argv[], char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1, 2))); extern int nice (int __inc) throw () ; extern void _exit (int __status) __attribute__ ((__noreturn__)); # 1 "/usr/include/bits/confname.h" 1 3 4 # 26 "/usr/include/bits/confname.h" 3 4 enum { _PC_LINK_MAX, _PC_MAX_CANON, _PC_MAX_INPUT, _PC_NAME_MAX, _PC_PATH_MAX, _PC_PIPE_BUF, _PC_CHOWN_RESTRICTED, _PC_NO_TRUNC, _PC_VDISABLE, _PC_SYNC_IO, _PC_ASYNC_IO, _PC_PRIO_IO, _PC_SOCK_MAXBUF, _PC_FILESIZEBITS, _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE, _PC_REC_MIN_XFER_SIZE, _PC_REC_XFER_ALIGN, _PC_ALLOC_SIZE_MIN, _PC_SYMLINK_MAX, _PC_2_SYMLINKS }; enum { _SC_ARG_MAX, _SC_CHILD_MAX, _SC_CLK_TCK, _SC_NGROUPS_MAX, _SC_OPEN_MAX, _SC_STREAM_MAX, _SC_TZNAME_MAX, _SC_JOB_CONTROL, _SC_SAVED_IDS, _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS, _SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO, _SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE, _SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS, _SC_AIO_LISTIO_MAX, _SC_AIO_MAX, _SC_AIO_PRIO_DELTA_MAX, _SC_DELAYTIMER_MAX, _SC_MQ_OPEN_MAX, _SC_MQ_PRIO_MAX, _SC_VERSION, _SC_PAGESIZE, _SC_RTSIG_MAX, _SC_SEM_NSEMS_MAX, _SC_SEM_VALUE_MAX, _SC_SIGQUEUE_MAX, _SC_TIMER_MAX, _SC_BC_BASE_MAX, _SC_BC_DIM_MAX, _SC_BC_SCALE_MAX, _SC_BC_STRING_MAX, _SC_COLL_WEIGHTS_MAX, _SC_EQUIV_CLASS_MAX, _SC_EXPR_NEST_MAX, _SC_LINE_MAX, _SC_RE_DUP_MAX, _SC_CHARCLASS_NAME_MAX, _SC_2_VERSION, _SC_2_C_BIND, _SC_2_C_DEV, _SC_2_FORT_DEV, _SC_2_FORT_RUN, _SC_2_SW_DEV, _SC_2_LOCALEDEF, _SC_PII, _SC_PII_XTI, _SC_PII_SOCKET, _SC_PII_INTERNET, _SC_PII_OSI, _SC_POLL, _SC_SELECT, _SC_UIO_MAXIOV, _SC_IOV_MAX = _SC_UIO_MAXIOV, _SC_PII_INTERNET_STREAM, _SC_PII_INTERNET_DGRAM, _SC_PII_OSI_COTS, _SC_PII_OSI_CLTS, _SC_PII_OSI_M, _SC_T_IOV_MAX, _SC_THREADS, _SC_THREAD_SAFE_FUNCTIONS, _SC_GETGR_R_SIZE_MAX, _SC_GETPW_R_SIZE_MAX, _SC_LOGIN_NAME_MAX, _SC_TTY_NAME_MAX, _SC_THREAD_DESTRUCTOR_ITERATIONS, _SC_THREAD_KEYS_MAX, _SC_THREAD_STACK_MIN, _SC_THREAD_THREADS_MAX, _SC_THREAD_ATTR_STACKADDR, _SC_THREAD_ATTR_STACKSIZE, _SC_THREAD_PRIORITY_SCHEDULING, _SC_THREAD_PRIO_INHERIT, _SC_THREAD_PRIO_PROTECT, _SC_THREAD_PROCESS_SHARED, _SC_NPROCESSORS_CONF, _SC_NPROCESSORS_ONLN, _SC_PHYS_PAGES, _SC_AVPHYS_PAGES, _SC_ATEXIT_MAX, _SC_PASS_MAX, _SC_XOPEN_VERSION, _SC_XOPEN_XCU_VERSION, _SC_XOPEN_UNIX, _SC_XOPEN_CRYPT, _SC_XOPEN_ENH_I18N, _SC_XOPEN_SHM, _SC_2_CHAR_TERM, _SC_2_C_VERSION, _SC_2_UPE, _SC_XOPEN_XPG2, _SC_XOPEN_XPG3, _SC_XOPEN_XPG4, _SC_CHAR_BIT, _SC_CHAR_MAX, _SC_CHAR_MIN, _SC_INT_MAX, _SC_INT_MIN, _SC_LONG_BIT, _SC_WORD_BIT, _SC_MB_LEN_MAX, _SC_NZERO, _SC_SSIZE_MAX, _SC_SCHAR_MAX, _SC_SCHAR_MIN, _SC_SHRT_MAX, _SC_SHRT_MIN, _SC_UCHAR_MAX, _SC_UINT_MAX, _SC_ULONG_MAX, _SC_USHRT_MAX, _SC_NL_ARGMAX, _SC_NL_LANGMAX, _SC_NL_MSGMAX, _SC_NL_NMAX, _SC_NL_SETMAX, _SC_NL_TEXTMAX, _SC_XBS5_ILP32_OFF32, _SC_XBS5_ILP32_OFFBIG, _SC_XBS5_LP64_OFF64, _SC_XBS5_LPBIG_OFFBIG, _SC_XOPEN_LEGACY, _SC_XOPEN_REALTIME, _SC_XOPEN_REALTIME_THREADS, _SC_ADVISORY_INFO, _SC_BARRIERS, _SC_BASE, _SC_C_LANG_SUPPORT, _SC_C_LANG_SUPPORT_R, _SC_CLOCK_SELECTION, _SC_CPUTIME, _SC_THREAD_CPUTIME, _SC_DEVICE_IO, _SC_DEVICE_SPECIFIC, _SC_DEVICE_SPECIFIC_R, _SC_FD_MGMT, _SC_FIFO, _SC_PIPE, _SC_FILE_ATTRIBUTES, _SC_FILE_LOCKING, _SC_FILE_SYSTEM, _SC_MONOTONIC_CLOCK, _SC_MULTI_PROCESS, _SC_SINGLE_PROCESS, _SC_NETWORKING, _SC_READER_WRITER_LOCKS, _SC_SPIN_LOCKS, _SC_REGEXP, _SC_REGEX_VERSION, _SC_SHELL, _SC_SIGNALS, _SC_SPAWN, _SC_SPORADIC_SERVER, _SC_THREAD_SPORADIC_SERVER, _SC_SYSTEM_DATABASE, _SC_SYSTEM_DATABASE_R, _SC_TIMEOUTS, _SC_TYPED_MEMORY_OBJECTS, _SC_USER_GROUPS, _SC_USER_GROUPS_R, _SC_2_PBS, _SC_2_PBS_ACCOUNTING, _SC_2_PBS_LOCATE, _SC_2_PBS_MESSAGE, _SC_2_PBS_TRACK, _SC_SYMLOOP_MAX, _SC_STREAMS, _SC_2_PBS_CHECKPOINT, _SC_V6_ILP32_OFF32, _SC_V6_ILP32_OFFBIG, _SC_V6_LP64_OFF64, _SC_V6_LPBIG_OFFBIG, _SC_HOST_NAME_MAX, _SC_TRACE, _SC_TRACE_EVENT_FILTER, _SC_TRACE_INHERIT, _SC_TRACE_LOG, _SC_LEVEL1_ICACHE_SIZE, _SC_LEVEL1_ICACHE_ASSOC, _SC_LEVEL1_ICACHE_LINESIZE, _SC_LEVEL1_DCACHE_SIZE, _SC_LEVEL1_DCACHE_ASSOC, _SC_LEVEL1_DCACHE_LINESIZE, _SC_LEVEL2_CACHE_SIZE, _SC_LEVEL2_CACHE_ASSOC, _SC_LEVEL2_CACHE_LINESIZE, _SC_LEVEL3_CACHE_SIZE, _SC_LEVEL3_CACHE_ASSOC, _SC_LEVEL3_CACHE_LINESIZE, _SC_LEVEL4_CACHE_SIZE, _SC_LEVEL4_CACHE_ASSOC, _SC_LEVEL4_CACHE_LINESIZE, _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, _SC_RAW_SOCKETS, _SC_V7_ILP32_OFF32, _SC_V7_ILP32_OFFBIG, _SC_V7_LP64_OFF64, _SC_V7_LPBIG_OFFBIG, _SC_SS_REPL_MAX, _SC_TRACE_EVENT_NAME_MAX, _SC_TRACE_NAME_MAX, _SC_TRACE_SYS_MAX, _SC_TRACE_USER_EVENT_MAX, _SC_XOPEN_STREAMS, _SC_THREAD_ROBUST_PRIO_INHERIT, _SC_THREAD_ROBUST_PRIO_PROTECT }; enum { _CS_PATH, _CS_V6_WIDTH_RESTRICTED_ENVS, _CS_GNU_LIBC_VERSION, _CS_GNU_LIBPTHREAD_VERSION, _CS_V5_WIDTH_RESTRICTED_ENVS, _CS_V7_WIDTH_RESTRICTED_ENVS, _CS_LFS_CFLAGS = 1000, _CS_LFS_LDFLAGS, _CS_LFS_LIBS, _CS_LFS_LINTFLAGS, _CS_LFS64_CFLAGS, _CS_LFS64_LDFLAGS, _CS_LFS64_LIBS, _CS_LFS64_LINTFLAGS, _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, _CS_XBS5_ILP32_OFF32_LDFLAGS, _CS_XBS5_ILP32_OFF32_LIBS, _CS_XBS5_ILP32_OFF32_LINTFLAGS, _CS_XBS5_ILP32_OFFBIG_CFLAGS, _CS_XBS5_ILP32_OFFBIG_LDFLAGS, _CS_XBS5_ILP32_OFFBIG_LIBS, _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, _CS_XBS5_LP64_OFF64_CFLAGS, _CS_XBS5_LP64_OFF64_LDFLAGS, _CS_XBS5_LP64_OFF64_LIBS, _CS_XBS5_LP64_OFF64_LINTFLAGS, _CS_XBS5_LPBIG_OFFBIG_CFLAGS, _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, _CS_XBS5_LPBIG_OFFBIG_LIBS, _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, _CS_POSIX_V6_ILP32_OFF32_CFLAGS, _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, _CS_POSIX_V6_ILP32_OFF32_LIBS, _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LIBS, _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, _CS_POSIX_V6_LP64_OFF64_CFLAGS, _CS_POSIX_V6_LP64_OFF64_LDFLAGS, _CS_POSIX_V6_LP64_OFF64_LIBS, _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, _CS_POSIX_V7_ILP32_OFF32_CFLAGS, _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, _CS_POSIX_V7_ILP32_OFF32_LIBS, _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V7_ILP32_OFFBIG_LIBS, _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, _CS_POSIX_V7_LP64_OFF64_CFLAGS, _CS_POSIX_V7_LP64_OFF64_LDFLAGS, _CS_POSIX_V7_LP64_OFF64_LIBS, _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, _CS_V6_ENV, _CS_V7_ENV }; # 607 "/usr/include/unistd.h" 2 3 4 extern long int pathconf (__const char *__path, int __name) throw () __attribute__ ((__nonnull__ (1))); extern long int fpathconf (int __fd, int __name) throw (); extern long int sysconf (int __name) throw (); extern size_t confstr (int __name, char *__buf, size_t __len) throw (); extern __pid_t getpid (void) throw (); extern __pid_t getppid (void) throw (); extern __pid_t getpgrp (void) throw (); # 643 "/usr/include/unistd.h" 3 4 extern __pid_t __getpgid (__pid_t __pid) throw (); extern __pid_t getpgid (__pid_t __pid) throw (); extern int setpgid (__pid_t __pid, __pid_t __pgid) throw (); # 669 "/usr/include/unistd.h" 3 4 extern int setpgrp (void) throw (); # 686 "/usr/include/unistd.h" 3 4 extern __pid_t setsid (void) throw (); extern __pid_t getsid (__pid_t __pid) throw (); extern __uid_t getuid (void) throw (); extern __uid_t geteuid (void) throw (); extern __gid_t getgid (void) throw (); extern __gid_t getegid (void) throw (); extern int getgroups (int __size, __gid_t __list[]) throw () ; extern int group_member (__gid_t __gid) throw (); extern int setuid (__uid_t __uid) throw (); extern int setreuid (__uid_t __ruid, __uid_t __euid) throw (); extern int seteuid (__uid_t __uid) throw (); extern int setgid (__gid_t __gid) throw (); extern int setregid (__gid_t __rgid, __gid_t __egid) throw (); extern int setegid (__gid_t __gid) throw (); extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) throw (); extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) throw (); extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) throw (); extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) throw (); extern __pid_t fork (void) throw (); extern __pid_t vfork (void) throw (); extern char *ttyname (int __fd) throw (); extern int ttyname_r (int __fd, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))) ; extern int isatty (int __fd) throw (); extern int ttyslot (void) throw (); extern int link (__const char *__from, __const char *__to) throw () __attribute__ ((__nonnull__ (1, 2))) ; extern int linkat (int __fromfd, __const char *__from, int __tofd, __const char *__to, int __flags) throw () __attribute__ ((__nonnull__ (2, 4))) ; extern int symlink (__const char *__from, __const char *__to) throw () __attribute__ ((__nonnull__ (1, 2))) ; extern ssize_t readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (1, 2))) ; extern int symlinkat (__const char *__from, int __tofd, __const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) ; extern ssize_t readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (2, 3))) ; extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); extern int unlinkat (int __fd, __const char *__name, int __flag) throw () __attribute__ ((__nonnull__ (2))); extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))); extern __pid_t tcgetpgrp (int __fd) throw (); extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw (); extern char *getlogin (void); extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); # 890 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/getopt.h" 1 3 4 # 50 "/usr/include/getopt.h" 3 4 extern "C" { # 59 "/usr/include/getopt.h" 3 4 extern char *optarg; # 73 "/usr/include/getopt.h" 3 4 extern int optind; extern int opterr; extern int optopt; # 152 "/usr/include/getopt.h" 3 4 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) throw (); # 187 "/usr/include/getopt.h" 3 4 } # 891 "/usr/include/unistd.h" 2 3 4 extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))); extern int sethostname (__const char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))) ; extern int sethostid (long int __id) throw () ; extern int getdomainname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))) ; extern int setdomainname (__const char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))) ; extern int vhangup (void) throw (); extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1))) ; extern int profil (unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) throw () __attribute__ ((__nonnull__ (1))); extern int acct (__const char *__name) throw (); extern char *getusershell (void) throw (); extern void endusershell (void) throw (); extern void setusershell (void) throw (); extern int daemon (int __nochdir, int __noclose) throw () ; extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ; extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1))); # 976 "/usr/include/unistd.h" 3 4 extern int fsync (int __fd); extern long int gethostid (void); extern void sync (void) throw (); extern int getpagesize (void) throw () __attribute__ ((__const__)); extern int getdtablesize (void) throw (); # 1007 "/usr/include/unistd.h" 3 4 extern int truncate (__const char *__file, __off_t __length) throw () __attribute__ ((__nonnull__ (1))) ; # 1019 "/usr/include/unistd.h" 3 4 extern int truncate64 (__const char *__file, __off64_t __length) throw () __attribute__ ((__nonnull__ (1))) ; # 1029 "/usr/include/unistd.h" 3 4 extern int ftruncate (int __fd, __off_t __length) throw () ; # 1039 "/usr/include/unistd.h" 3 4 extern int ftruncate64 (int __fd, __off64_t __length) throw () ; # 1050 "/usr/include/unistd.h" 3 4 extern int brk (void *__addr) throw () ; extern void *sbrk (intptr_t __delta) throw (); # 1071 "/usr/include/unistd.h" 3 4 extern long int syscall (long int __sysno, ...) throw (); # 1094 "/usr/include/unistd.h" 3 4 extern int lockf (int __fd, int __cmd, __off_t __len) ; # 1104 "/usr/include/unistd.h" 3 4 extern int lockf64 (int __fd, int __cmd, __off64_t __len) ; # 1125 "/usr/include/unistd.h" 3 4 extern int fdatasync (int __fildes); extern char *crypt (__const char *__key, __const char *__salt) throw () __attribute__ ((__nonnull__ (1, 2))); extern void encrypt (char *__libc_block, int __edflag) throw () __attribute__ ((__nonnull__ (1))); extern void swab (__const void *__restrict __from, void *__restrict __to, ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *ctermid (char *__s) throw (); # 1163 "/usr/include/unistd.h" 3 4 } # 15 "src/bp/bp_b.cc" 2 # 1 "/usr/include/time.h" 1 3 4 # 30 "/usr/include/time.h" 3 4 extern "C" { # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 39 "/usr/include/time.h" 2 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 43 "/usr/include/time.h" 2 3 4 # 58 "/usr/include/time.h" 3 4 typedef __clock_t clock_t; # 92 "/usr/include/time.h" 3 4 typedef __clockid_t clockid_t; # 104 "/usr/include/time.h" 3 4 typedef __timer_t timer_t; # 131 "/usr/include/time.h" 3 4 struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; long int tm_gmtoff; __const char *tm_zone; }; struct itimerspec { struct timespec it_interval; struct timespec it_value; }; struct sigevent; # 180 "/usr/include/time.h" 3 4 extern clock_t clock (void) throw (); extern time_t time (time_t *__timer) throw (); extern double difftime (time_t __time1, time_t __time0) throw () __attribute__ ((__const__)); extern time_t mktime (struct tm *__tp) throw (); extern size_t strftime (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) throw (); extern char *strptime (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp) throw (); # 1 "/usr/include/xlocale.h" 1 3 4 # 28 "/usr/include/xlocale.h" 3 4 typedef struct __locale_struct { struct __locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; } *__locale_t; typedef __locale_t locale_t; # 216 "/usr/include/time.h" 2 3 4 extern size_t strftime_l (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp, __locale_t __loc) throw (); extern char *strptime_l (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp, __locale_t __loc) throw (); extern struct tm *gmtime (__const time_t *__timer) throw (); extern struct tm *localtime (__const time_t *__timer) throw (); extern struct tm *gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) throw (); extern struct tm *localtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) throw (); extern char *asctime (__const struct tm *__tp) throw (); extern char *ctime (__const time_t *__timer) throw (); extern char *asctime_r (__const struct tm *__restrict __tp, char *__restrict __buf) throw (); extern char *ctime_r (__const time_t *__restrict __timer, char *__restrict __buf) throw (); extern char *__tzname[2]; extern int __daylight; extern long int __timezone; extern char *tzname[2]; extern void tzset (void) throw (); extern int daylight; extern long int timezone; extern int stime (__const time_t *__when) throw (); # 313 "/usr/include/time.h" 3 4 extern time_t timegm (struct tm *__tp) throw (); extern time_t timelocal (struct tm *__tp) throw (); extern int dysize (int __year) throw () __attribute__ ((__const__)); # 328 "/usr/include/time.h" 3 4 extern int nanosleep (__const struct timespec *__requested_time, struct timespec *__remaining); extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) throw (); extern int clock_nanosleep (clockid_t __clock_id, int __flags, __const struct timespec *__req, struct timespec *__rem); extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); extern int timer_create (clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) throw (); extern int timer_delete (timer_t __timerid) throw (); extern int timer_settime (timer_t __timerid, int __flags, __const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) throw (); extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) throw (); extern int timer_getoverrun (timer_t __timerid) throw (); # 390 "/usr/include/time.h" 3 4 extern int getdate_err; # 399 "/usr/include/time.h" 3 4 extern struct tm *getdate (__const char *__string); # 413 "/usr/include/time.h" 3 4 extern int getdate_r (__const char *__restrict __string, struct tm *__restrict __resbufp); } # 16 "src/bp/bp_b.cc" 2 # 1 "/usr/include/sys/syscall.h" 1 3 4 # 25 "/usr/include/sys/syscall.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/asm/unistd.h" 1 3 4 # 1 "/usr/include/x86_64-linux-gnu/asm/unistd_64.h" 1 3 4 # 16 "/usr/include/x86_64-linux-gnu/asm/unistd_64.h" 3 4 # 5 "/usr/include/x86_64-linux-gnu/asm/unistd.h" 2 3 4 # 26 "/usr/include/sys/syscall.h" 2 3 4 # 1 "/usr/include/bits/syscall.h" 1 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 8 "/usr/include/bits/syscall.h" 2 3 4 # 33 "/usr/include/sys/syscall.h" 2 3 4 # 17 "src/bp/bp_b.cc" 2 # 1 "/usr/include/sys/types.h" 1 3 4 # 28 "/usr/include/sys/types.h" 3 4 extern "C" { typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; # 56 "/usr/include/sys/types.h" 3 4 typedef __ino64_t ino64_t; # 105 "/usr/include/sys/types.h" 3 4 typedef __id_t id_t; # 116 "/usr/include/sys/types.h" 3 4 typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 141 "/usr/include/sys/types.h" 3 4 typedef __suseconds_t suseconds_t; # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 148 "/usr/include/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 195 "/usr/include/sys/types.h" 3 4 typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 217 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/endian.h" 1 3 4 # 37 "/usr/include/endian.h" 3 4 # 1 "/usr/include/bits/endian.h" 1 3 4 # 38 "/usr/include/endian.h" 2 3 4 # 61 "/usr/include/endian.h" 3 4 # 1 "/usr/include/bits/byteswap.h" 1 3 4 # 28 "/usr/include/bits/byteswap.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 29 "/usr/include/bits/byteswap.h" 2 3 4 # 62 "/usr/include/endian.h" 2 3 4 # 218 "/usr/include/sys/types.h" 2 3 4 # 1 "/usr/include/sys/select.h" 1 3 4 # 31 "/usr/include/sys/select.h" 3 4 # 1 "/usr/include/bits/select.h" 1 3 4 # 23 "/usr/include/bits/select.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 24 "/usr/include/bits/select.h" 2 3 4 # 32 "/usr/include/sys/select.h" 2 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 35 "/usr/include/sys/select.h" 2 3 4 # 46 "/usr/include/sys/select.h" 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 75 "/usr/include/bits/time.h" 3 4 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 47 "/usr/include/sys/select.h" 2 3 4 # 55 "/usr/include/sys/select.h" 3 4 typedef long int __fd_mask; # 67 "/usr/include/sys/select.h" 3 4 typedef struct { __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 99 "/usr/include/sys/select.h" 3 4 extern "C" { # 109 "/usr/include/sys/select.h" 3 4 extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 121 "/usr/include/sys/select.h" 3 4 extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); } # 221 "/usr/include/sys/types.h" 2 3 4 # 1 "/usr/include/sys/sysmacros.h" 1 3 4 # 30 "/usr/include/sys/sysmacros.h" 3 4 __extension__ extern unsigned int gnu_dev_major (unsigned long long int __dev) throw (); __extension__ extern unsigned int gnu_dev_minor (unsigned long long int __dev) throw (); __extension__ extern unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw (); # 224 "/usr/include/sys/types.h" 2 3 4 # 240 "/usr/include/sys/types.h" 3 4 typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; # 263 "/usr/include/sys/types.h" 3 4 typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; # 274 "/usr/include/sys/types.h" 3 4 } # 18 "src/bp/bp_b.cc" 2 # 1 "src/core/tt.h" 1 # 9 "src/core/tt.h" # 1 "src/core/tt_defs.h" 1 # 9 "src/core/tt_defs.h" namespace tt { # 65 "src/core/tt_defs.h" const short NANOS_PER_MICROSECOND = 1000; const int NANOS_PER_MILLISECOND = 1000 * NANOS_PER_MICROSECOND; const long long NANOS_PER_SECOND = 1000 * NANOS_PER_MILLISECOND; const long long NANOS_PER_MINUTE = 60 * NANOS_PER_SECOND; const long long NANOS_PER_HOUR = 60 * NANOS_PER_MINUTE; const unsigned int MKT_OPEN_SEC = 9.5 * 3600; const unsigned int MKT_CLOSE_SEC = 16 * 3600; const unsigned long long MKT_OPEN_NANOS = MKT_OPEN_SEC * NANOS_PER_SECOND; const unsigned long long MKT_CLOSE_NANOS = MKT_CLOSE_SEC * NANOS_PER_SECOND; const unsigned int MKT_TRADING_SECS = (16 - 9.5) * 3600; const unsigned long long MKT_TRADING_NANOS = MKT_TRADING_SECS * NANOS_PER_SECOND; } # 10 "src/core/tt.h" 2 # 1 "src/core/tt_time.h" 1 # 10 "src/core/tt_time.h" const int TZ_CST_UTC_OFFSET = -6 * 3600; const int TZ_EST_UTC_OFFSET = -5 * 3600; long long nanos_since_midnight_eastern_tz(); inline long long timespec_to_nanos(const timespec& x) { return ((1000000000) * (long long) x.tv_sec) + x.tv_nsec; } struct delta_timer { timespec ts_beg, ts_end, x; void start() { ::clock_gettime(0, &ts_beg); } long long stop() { ::clock_gettime(0, &ts_end); const long long diffns = ts_end.tv_nsec - ts_beg.tv_nsec; if (diffns < 0) { x.tv_sec = ts_end.tv_sec - ts_beg.tv_sec - 1; x.tv_nsec = (1000000000) + diffns; } else { x.tv_sec = ts_end.tv_sec - ts_beg.tv_sec; x.tv_nsec = diffns; } return timespec_to_nanos(x); } }; # 11 "src/core/tt.h" 2 # 19 "src/bp/bp_b.cc" 2 # 1 "src/bp/bp.h" 1 # 1 "/usr/include/c++/4.5/string" 1 3 # 38 "/usr/include/c++/4.5/string" 3 # 39 "/usr/include/c++/4.5/string" 3 # 1 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h" 1 3 # 275 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h" 3 # 1 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h" 1 3 # 276 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h" 2 3 # 1 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h" 1 3 # 279 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h" 2 3 # 41 "/usr/include/c++/4.5/string" 2 3 # 1 "/usr/include/c++/4.5/bits/stringfwd.h" 1 3 # 39 "/usr/include/c++/4.5/bits/stringfwd.h" 3 # 40 "/usr/include/c++/4.5/bits/stringfwd.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template class allocator; template struct char_traits; template, typename _Alloc = allocator<_CharT> > class basic_string; template<> struct char_traits; typedef basic_string string; template<> struct char_traits; typedef basic_string wstring; template<> struct char_traits; template<> struct char_traits; typedef basic_string u16string; typedef basic_string u32string; } # 42 "/usr/include/c++/4.5/string" 2 3 # 1 "/usr/include/c++/4.5/bits/char_traits.h" 1 3 # 39 "/usr/include/c++/4.5/bits/char_traits.h" 3 # 40 "/usr/include/c++/4.5/bits/char_traits.h" 3 # 1 "/usr/include/c++/4.5/bits/stl_algobase.h" 1 3 # 61 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 149 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 3 4 typedef long int ptrdiff_t; # 45 "/usr/include/c++/4.5/cstddef" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { using ::ptrdiff_t; using ::size_t; } # 62 "/usr/include/c++/4.5/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.5/bits/functexcept.h" 1 3 # 37 "/usr/include/c++/4.5/bits/functexcept.h" 3 # 1 "/usr/include/c++/4.5/exception_defines.h" 1 3 # 38 "/usr/include/c++/4.5/bits/functexcept.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { void __throw_bad_exception(void) __attribute__((__noreturn__)); void __throw_bad_alloc(void) __attribute__((__noreturn__)); void __throw_bad_cast(void) __attribute__((__noreturn__)); void __throw_bad_typeid(void) __attribute__((__noreturn__)); void __throw_logic_error(const char*) __attribute__((__noreturn__)); void __throw_domain_error(const char*) __attribute__((__noreturn__)); void __throw_invalid_argument(const char*) __attribute__((__noreturn__)); void __throw_length_error(const char*) __attribute__((__noreturn__)); void __throw_out_of_range(const char*) __attribute__((__noreturn__)); void __throw_runtime_error(const char*) __attribute__((__noreturn__)); void __throw_range_error(const char*) __attribute__((__noreturn__)); void __throw_overflow_error(const char*) __attribute__((__noreturn__)); void __throw_underflow_error(const char*) __attribute__((__noreturn__)); void __throw_ios_failure(const char*) __attribute__((__noreturn__)); void __throw_system_error(int) __attribute__((__noreturn__)); void __throw_future_error(int) __attribute__((__noreturn__)); void __throw_bad_function_call() __attribute__((__noreturn__)); } # 63 "/usr/include/c++/4.5/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.5/bits/cpp_type_traits.h" 1 3 # 36 "/usr/include/c++/4.5/bits/cpp_type_traits.h" 3 # 37 "/usr/include/c++/4.5/bits/cpp_type_traits.h" 3 # 69 "/usr/include/c++/4.5/bits/cpp_type_traits.h" 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { template class __normal_iterator; } namespace std __attribute__ ((__visibility__ ("default"))) { struct __true_type { }; struct __false_type { }; template struct __truth_type { typedef __false_type __type; }; template<> struct __truth_type { typedef __true_type __type; }; template struct __traitor { enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; typedef typename __truth_type<__value>::__type __type; }; template struct __are_same { enum { __value = 0 }; typedef __false_type __type; }; template struct __are_same<_Tp, _Tp> { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_void { enum { __value = 0 }; typedef __false_type __type; }; template<> struct __is_void { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_integer { enum { __value = 0 }; typedef __false_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_floating { enum { __value = 0 }; typedef __false_type __type; }; template<> struct __is_floating { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_floating { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_floating { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_pointer { enum { __value = 0 }; typedef __false_type __type; }; template struct __is_pointer<_Tp*> { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_normal_iterator { enum { __value = 0 }; typedef __false_type __type; }; template struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, _Container> > { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_arithmetic : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > { }; template struct __is_fundamental : public __traitor<__is_void<_Tp>, __is_arithmetic<_Tp> > { }; template struct __is_scalar : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > { }; template struct __is_char { enum { __value = 0 }; typedef __false_type __type; }; template<> struct __is_char { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_char { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_byte { enum { __value = 0 }; typedef __false_type __type; }; template<> struct __is_byte { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_byte { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_byte { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_move_iterator { enum { __value = 0 }; typedef __false_type __type; }; template class move_iterator; template struct __is_move_iterator< move_iterator<_Iterator> > { enum { __value = 1 }; typedef __true_type __type; }; template class __is_iterator_helper { typedef char __one; typedef struct { char __arr[2]; } __two; template struct _Wrap_type { }; template static __one __test(_Wrap_type*); template static __two __test(...); public: static const bool __value = (sizeof(__test<_Tp>(0)) == 1 || __is_pointer<_Tp>::__value); }; template struct __is_iterator { enum { __value = __is_iterator_helper<_Tp>::__value }; typedef typename __truth_type<__value>::__type __type; }; } # 64 "/usr/include/c++/4.5/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.5/ext/type_traits.h" 1 3 # 32 "/usr/include/c++/4.5/ext/type_traits.h" 3 # 33 "/usr/include/c++/4.5/ext/type_traits.h" 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { template struct __enable_if { }; template struct __enable_if { typedef _Tp __type; }; template struct __conditional_type { typedef _Iftrue __type; }; template struct __conditional_type { typedef _Iffalse __type; }; template struct __add_unsigned { private: typedef __enable_if::__value, _Tp> __if_type; public: typedef typename __if_type::__type __type; }; template<> struct __add_unsigned { typedef unsigned char __type; }; template<> struct __add_unsigned { typedef unsigned char __type; }; template<> struct __add_unsigned { typedef unsigned short __type; }; template<> struct __add_unsigned { typedef unsigned int __type; }; template<> struct __add_unsigned { typedef unsigned long __type; }; template<> struct __add_unsigned { typedef unsigned long long __type; }; template<> struct __add_unsigned; template<> struct __add_unsigned; template struct __remove_unsigned { private: typedef __enable_if::__value, _Tp> __if_type; public: typedef typename __if_type::__type __type; }; template<> struct __remove_unsigned { typedef signed char __type; }; template<> struct __remove_unsigned { typedef signed char __type; }; template<> struct __remove_unsigned { typedef short __type; }; template<> struct __remove_unsigned { typedef int __type; }; template<> struct __remove_unsigned { typedef long __type; }; template<> struct __remove_unsigned { typedef long long __type; }; template<> struct __remove_unsigned; template<> struct __remove_unsigned; template inline bool __is_null_pointer(_Type* __ptr) { return __ptr == 0; } template inline bool __is_null_pointer(_Type) { return false; } template::__value> struct __promote { typedef double __type; }; template struct __promote<_Tp, false> { typedef _Tp __type; }; template struct __promote_2 { private: typedef typename __promote<_Tp>::__type __type1; typedef typename __promote<_Up>::__type __type2; public: typedef __typeof__(__type1() + __type2()) __type; }; template struct __promote_3 { private: typedef typename __promote<_Tp>::__type __type1; typedef typename __promote<_Up>::__type __type2; typedef typename __promote<_Vp>::__type __type3; public: typedef __typeof__(__type1() + __type2() + __type3()) __type; }; template struct __promote_4 { private: typedef typename __promote<_Tp>::__type __type1; typedef typename __promote<_Up>::__type __type2; typedef typename __promote<_Vp>::__type __type3; typedef typename __promote<_Wp>::__type __type4; public: typedef __typeof__(__type1() + __type2() + __type3() + __type4()) __type; }; } # 65 "/usr/include/c++/4.5/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.5/ext/numeric_traits.h" 1 3 # 32 "/usr/include/c++/4.5/ext/numeric_traits.h" 3 # 33 "/usr/include/c++/4.5/ext/numeric_traits.h" 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { # 52 "/usr/include/c++/4.5/ext/numeric_traits.h" 3 template struct __numeric_traits_integer { static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0); static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0); static const bool __is_signed = ((_Value)(-1) < 0); static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)); }; template const _Value __numeric_traits_integer<_Value>::__min; template const _Value __numeric_traits_integer<_Value>::__max; template const bool __numeric_traits_integer<_Value>::__is_signed; template const int __numeric_traits_integer<_Value>::__digits; # 97 "/usr/include/c++/4.5/ext/numeric_traits.h" 3 template struct __numeric_traits_floating { static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 3010 / 10000); static const bool __is_signed = true; static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18); static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); }; template const int __numeric_traits_floating<_Value>::__max_digits10; template const bool __numeric_traits_floating<_Value>::__is_signed; template const int __numeric_traits_floating<_Value>::__digits10; template const int __numeric_traits_floating<_Value>::__max_exponent10; template struct __numeric_traits : public __conditional_type::__value, __numeric_traits_integer<_Value>, __numeric_traits_floating<_Value> >::__type { }; } # 66 "/usr/include/c++/4.5/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.5/bits/stl_pair.h" 1 3 # 60 "/usr/include/c++/4.5/bits/stl_pair.h" 3 # 1 "/usr/include/c++/4.5/bits/move.h" 1 3 # 34 "/usr/include/c++/4.5/bits/move.h" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 35 "/usr/include/c++/4.5/bits/move.h" 2 3 # 1 "/usr/include/c++/4.5/bits/concept_check.h" 1 3 # 33 "/usr/include/c++/4.5/bits/concept_check.h" 3 # 34 "/usr/include/c++/4.5/bits/concept_check.h" 3 # 36 "/usr/include/c++/4.5/bits/move.h" 2 3 # 1 "/usr/include/c++/4.5/type_traits" 1 3 # 32 "/usr/include/c++/4.5/type_traits" 3 # 33 "/usr/include/c++/4.5/type_traits" 3 # 42 "/usr/include/c++/4.5/type_traits" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 43 "/usr/include/c++/4.5/type_traits" 2 3 # 51 "/usr/include/c++/4.5/type_traits" 3 # 1 "/usr/include/c++/4.5/tr1_impl/type_traits" 1 3 # 30 "/usr/include/c++/4.5/tr1_impl/type_traits" 3 namespace std { # 43 "/usr/include/c++/4.5/tr1_impl/type_traits" 3 struct __sfinae_types { typedef char __one; typedef struct { char __arr[2]; } __two; }; # 66 "/usr/include/c++/4.5/tr1_impl/type_traits" 3 template struct integral_constant { static const _Tp value = __v; typedef _Tp value_type; typedef integral_constant<_Tp, __v> type; }; typedef integral_constant true_type; typedef integral_constant false_type; template const _Tp integral_constant<_Tp, __v>::value; template struct remove_cv; template struct __is_void_helper : public false_type { }; template<> struct __is_void_helper : public integral_constant { }; template struct is_void : public integral_constant::type>::value)> { }; template struct __is_integral_helper : public false_type { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template<> struct __is_integral_helper : public integral_constant { }; template struct is_integral : public integral_constant::type>::value)> { }; template struct __is_floating_point_helper : public false_type { }; template<> struct __is_floating_point_helper : public integral_constant { }; template<> struct __is_floating_point_helper : public integral_constant { }; template<> struct __is_floating_point_helper : public integral_constant { }; template struct is_floating_point : public integral_constant::type>::value)> { }; template struct is_array : public false_type { }; template struct is_array<_Tp[_Size]> : public true_type { }; template struct is_array<_Tp[]> : public true_type { }; template struct __is_pointer_helper : public false_type { }; template struct __is_pointer_helper<_Tp*> : public integral_constant { }; template struct is_pointer : public integral_constant::type>::value)> { }; template struct is_reference; template struct is_function; template struct __is_member_object_pointer_helper : public false_type { }; template struct __is_member_object_pointer_helper<_Tp _Cp::*> : public integral_constant::value> { }; template struct is_member_object_pointer : public integral_constant::type>::value)> { }; template struct __is_member_function_pointer_helper : public false_type { }; template struct __is_member_function_pointer_helper<_Tp _Cp::*> : public integral_constant::value> { }; template struct is_member_function_pointer : public integral_constant::type>::value)> { }; template struct is_enum : public integral_constant { }; template struct is_union : public integral_constant { }; template struct is_class : public integral_constant { }; template struct is_function : public false_type { }; template struct is_function<_Res(_ArgTypes...)> : public true_type { }; template struct is_function<_Res(_ArgTypes......)> : public true_type { }; template struct is_function<_Res(_ArgTypes...) const> : public true_type { }; template struct is_function<_Res(_ArgTypes......) const> : public true_type { }; template struct is_function<_Res(_ArgTypes...) volatile> : public true_type { }; template struct is_function<_Res(_ArgTypes......) volatile> : public true_type { }; template struct is_function<_Res(_ArgTypes...) const volatile> : public true_type { }; template struct is_function<_Res(_ArgTypes......) const volatile> : public true_type { }; template struct is_arithmetic : public integral_constant::value || is_floating_point<_Tp>::value)> { }; template struct is_fundamental : public integral_constant::value || is_void<_Tp>::value)> { }; template struct is_object : public integral_constant::value || is_reference<_Tp>::value || is_void<_Tp>::value)> { }; template struct is_member_pointer; template struct is_scalar : public integral_constant::value || is_enum<_Tp>::value || is_pointer<_Tp>::value || is_member_pointer<_Tp>::value)> { }; template struct is_compound : public integral_constant::value> { }; template struct __is_member_pointer_helper : public false_type { }; template struct __is_member_pointer_helper<_Tp _Cp::*> : public integral_constant { }; template struct is_member_pointer : public integral_constant::type>::value)> { }; template struct is_const : public false_type { }; template struct is_const<_Tp const> : public true_type { }; template struct is_volatile : public false_type { }; template struct is_volatile<_Tp volatile> : public true_type { }; template struct is_empty : public integral_constant { }; template struct is_polymorphic : public integral_constant { }; template struct is_abstract : public integral_constant { }; template struct has_virtual_destructor : public integral_constant { }; template struct alignment_of : public integral_constant { }; template struct rank : public integral_constant { }; template struct rank<_Tp[_Size]> : public integral_constant::value> { }; template struct rank<_Tp[]> : public integral_constant::value> { }; template struct extent : public integral_constant { }; template struct extent<_Tp[_Size], _Uint> : public integral_constant::value> { }; template struct extent<_Tp[], _Uint> : public integral_constant::value> { }; template struct is_same : public false_type { }; template struct is_same<_Tp, _Tp> : public true_type { }; template struct remove_const { typedef _Tp type; }; template struct remove_const<_Tp const> { typedef _Tp type; }; template struct remove_volatile { typedef _Tp type; }; template struct remove_volatile<_Tp volatile> { typedef _Tp type; }; template struct remove_cv { typedef typename remove_const::type>::type type; }; template struct add_const { typedef _Tp const type; }; template struct add_volatile { typedef _Tp volatile type; }; template struct add_cv { typedef typename add_const::type>::type type; }; template struct remove_extent { typedef _Tp type; }; template struct remove_extent<_Tp[_Size]> { typedef _Tp type; }; template struct remove_extent<_Tp[]> { typedef _Tp type; }; template struct remove_all_extents { typedef _Tp type; }; template struct remove_all_extents<_Tp[_Size]> { typedef typename remove_all_extents<_Tp>::type type; }; template struct remove_all_extents<_Tp[]> { typedef typename remove_all_extents<_Tp>::type type; }; template struct __remove_pointer_helper { typedef _Tp type; }; template struct __remove_pointer_helper<_Tp, _Up*> { typedef _Up type; }; template struct remove_pointer : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> { }; template struct remove_reference; template struct add_pointer { typedef typename remove_reference<_Tp>::type* type; }; # 501 "/usr/include/c++/4.5/tr1_impl/type_traits" 3 } # 52 "/usr/include/c++/4.5/type_traits" 2 3 namespace std { # 68 "/usr/include/c++/4.5/type_traits" 3 template struct is_lvalue_reference : public false_type { }; template struct is_lvalue_reference<_Tp&> : public true_type { }; template struct is_rvalue_reference : public false_type { }; template struct is_rvalue_reference<_Tp&&> : public true_type { }; template struct is_reference : public integral_constant::value || is_rvalue_reference<_Tp>::value)> { }; template struct remove_reference { typedef _Tp type; }; template struct remove_reference<_Tp&> { typedef _Tp type; }; template struct remove_reference<_Tp&&> { typedef _Tp type; }; template::value && !is_void<_Tp>::value, bool = is_rvalue_reference<_Tp>::value> struct __add_lvalue_reference_helper { typedef _Tp type; }; template struct __add_lvalue_reference_helper<_Tp, true, false> { typedef _Tp& type; }; template struct __add_lvalue_reference_helper<_Tp, false, true> { typedef typename remove_reference<_Tp>::type& type; }; template struct add_lvalue_reference : public __add_lvalue_reference_helper<_Tp> { }; template::value && !is_void<_Tp>::value> struct __add_rvalue_reference_helper { typedef _Tp type; }; template struct __add_rvalue_reference_helper<_Tp, true> { typedef _Tp&& type; }; template struct add_rvalue_reference : public __add_rvalue_reference_helper<_Tp> { }; template::value, bool = is_floating_point<_Tp>::value> struct __is_signed_helper : public false_type { }; template struct __is_signed_helper<_Tp, false, true> : public true_type { }; template struct __is_signed_helper<_Tp, true, false> : public integral_constant(_Tp(-1) < _Tp(0))> { }; template struct is_signed : public integral_constant::value> { }; template struct is_unsigned : public integral_constant::value && !is_signed<_Tp>::value)> { }; template struct is_trivial : public integral_constant { }; template struct is_standard_layout : public integral_constant { }; template struct is_pod : public integral_constant { }; template typename add_rvalue_reference<_Tp>::type declval(); template class __is_constructible_helper : public __sfinae_types { template static decltype(_Tp1(declval<_Args1>()...), __one()) __test(int); template static __two __test(...); public: static const bool __value = sizeof(__test<_Tp, _Args...>(0)) == 1; }; template class __is_constructible_helper<_Tp, _Arg> : public __sfinae_types { template static decltype(static_cast<_Tp1>(declval<_Arg1>()), __one()) __test(int); template static __two __test(...); public: static const bool __value = sizeof(__test<_Tp, _Arg>(0)) == 1; }; template struct is_constructible : public integral_constant::__value> { }; template struct has_trivial_default_constructor : public integral_constant { }; template struct has_trivial_copy_constructor : public integral_constant { }; template struct has_trivial_assign : public integral_constant { }; template struct has_trivial_destructor : public integral_constant { }; template struct has_nothrow_default_constructor : public integral_constant { }; template struct has_nothrow_copy_constructor : public integral_constant { }; template struct has_nothrow_assign : public integral_constant { }; template struct is_base_of : public integral_constant { }; template::value || is_void<_To>::value || is_function<_To>::value || is_array<_To>::value)> struct __is_convertible_helper { static const bool __value = (is_void<_From>::value && is_void<_To>::value); }; template class __is_convertible_helper<_From, _To, false> : public __sfinae_types { static __one __test(_To); static __two __test(...); public: static const bool __value = sizeof(__test(declval<_From>())) == 1; }; template struct is_convertible : public integral_constant::__value> { }; template struct is_explicitly_convertible : public is_constructible<_To, _From> { }; template struct __aligned_storage_msa { union __type { unsigned char __data[_Len]; struct __attribute__((__aligned__)) { } __align; }; }; # 340 "/usr/include/c++/4.5/type_traits" 3 template::__type)> struct aligned_storage { union type { unsigned char __data[_Len]; struct __attribute__((__aligned__((_Align)))) { } __align; }; }; template struct enable_if { }; template struct enable_if { typedef _Tp type; }; template struct conditional { typedef _Iftrue type; }; template struct conditional { typedef _Iffalse type; }; template::value, bool _IsFunction = is_function<_Up>::value> struct __decay_selector; template struct __decay_selector<_Up, false, false> { typedef typename remove_cv<_Up>::type __type; }; template struct __decay_selector<_Up, true, false> { typedef typename remove_extent<_Up>::type* __type; }; template struct __decay_selector<_Up, false, true> { typedef typename add_pointer<_Up>::type __type; }; template class decay { typedef typename remove_reference<_Tp>::type __remove_type; public: typedef typename __decay_selector<__remove_type>::__type type; }; template struct __cv_selector; template struct __cv_selector<_Unqualified, false, false> { typedef _Unqualified __type; }; template struct __cv_selector<_Unqualified, false, true> { typedef volatile _Unqualified __type; }; template struct __cv_selector<_Unqualified, true, false> { typedef const _Unqualified __type; }; template struct __cv_selector<_Unqualified, true, true> { typedef const volatile _Unqualified __type; }; template::value, bool _IsVol = is_volatile<_Qualified>::value> class __match_cv_qualifiers { typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; public: typedef typename __match::__type __type; }; template struct __make_unsigned { typedef _Tp __type; }; template<> struct __make_unsigned { typedef unsigned char __type; }; template<> struct __make_unsigned { typedef unsigned char __type; }; template<> struct __make_unsigned { typedef unsigned short __type; }; template<> struct __make_unsigned { typedef unsigned int __type; }; template<> struct __make_unsigned { typedef unsigned long __type; }; template<> struct __make_unsigned { typedef unsigned long long __type; }; template::value, bool _IsEnum = is_enum<_Tp>::value> class __make_unsigned_selector; template class __make_unsigned_selector<_Tp, true, false> { typedef __make_unsigned::type> __unsignedt; typedef typename __unsignedt::__type __unsigned_type; typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; public: typedef typename __cv_unsigned::__type __type; }; template class __make_unsigned_selector<_Tp, false, true> { typedef unsigned char __smallest; static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest); static const bool __b1 = sizeof(_Tp) <= sizeof(unsigned short); static const bool __b2 = sizeof(_Tp) <= sizeof(unsigned int); typedef conditional<__b2, unsigned int, unsigned long> __cond2; typedef typename __cond2::type __cond2_type; typedef conditional<__b1, unsigned short, __cond2_type> __cond1; typedef typename __cond1::type __cond1_type; public: typedef typename conditional<__b0, __smallest, __cond1_type>::type __type; }; template struct make_unsigned { typedef typename __make_unsigned_selector<_Tp>::__type type; }; template<> struct make_unsigned; template struct __make_signed { typedef _Tp __type; }; template<> struct __make_signed { typedef signed char __type; }; template<> struct __make_signed { typedef signed char __type; }; template<> struct __make_signed { typedef signed short __type; }; template<> struct __make_signed { typedef signed int __type; }; template<> struct __make_signed { typedef signed long __type; }; template<> struct __make_signed { typedef signed long long __type; }; template::value, bool _IsEnum = is_enum<_Tp>::value> class __make_signed_selector; template class __make_signed_selector<_Tp, true, false> { typedef __make_signed::type> __signedt; typedef typename __signedt::__type __signed_type; typedef __match_cv_qualifiers<_Tp, __signed_type> __cv_signed; public: typedef typename __cv_signed::__type __type; }; template class __make_signed_selector<_Tp, false, true> { typedef signed char __smallest; static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest); static const bool __b1 = sizeof(_Tp) <= sizeof(signed short); static const bool __b2 = sizeof(_Tp) <= sizeof(signed int); typedef conditional<__b2, signed int, signed long> __cond2; typedef typename __cond2::type __cond2_type; typedef conditional<__b1, signed short, __cond2_type> __cond1; typedef typename __cond1::type __cond1_type; public: typedef typename conditional<__b0, __smallest, __cond1_type>::type __type; }; template struct make_signed { typedef typename __make_signed_selector<_Tp>::__type type; }; template<> struct make_signed; template struct common_type; template struct common_type<_Tp> { typedef _Tp type; }; template struct common_type<_Tp, _Up> { typedef decltype(true ? declval<_Tp>() : declval<_Up>()) type; }; template struct common_type<_Tp, _Up, _Vp...> { typedef typename common_type::type, _Vp...>::type type; }; template struct __declval_protector { static const bool __stop = false; static typename add_rvalue_reference<_Tp>::type __delegate(); }; template inline typename add_rvalue_reference<_Tp>::type declval() { static_assert(__declval_protector<_Tp>::__stop, "declval() must not be used!"); return __declval_protector<_Tp>::__delegate(); } } # 39 "/usr/include/c++/4.5/bits/move.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { template struct identity { typedef _Tp type; }; template inline typename enable_if::value, _Tp&&>::type forward(typename std::identity<_Tp>::type& __t) { return static_cast<_Tp&&>(__t); } template inline typename enable_if::value, _Tp&&>::type forward(typename std::identity<_Tp>::type&& __t) { return static_cast<_Tp&&>(__t); } template inline typename enable_if::value, _Tp>::type forward(typename std::identity<_Tp>::type __t) { return __t; } template inline typename enable_if::value, _Tp>::type forward(typename std::remove_reference<_Tp>::type&& __t) = delete; template inline typename std::remove_reference<_Tp>::type&& move(_Tp&& __t) { return static_cast::type&&>(__t); } } # 95 "/usr/include/c++/4.5/bits/move.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 104 "/usr/include/c++/4.5/bits/move.h" 3 template inline void swap(_Tp& __a, _Tp& __b) { _Tp __tmp = std::move(__a); __a = std::move(__b); __b = std::move(__tmp); } template inline void swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) { for (size_t __n = 0; __n < _Nm; ++__n) swap(__a[__n], __b[__n]); } } # 61 "/usr/include/c++/4.5/bits/stl_pair.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { template struct pair { typedef _T1 first_type; typedef _T2 second_type; _T1 first; _T2 second; pair() : first(), second() { } pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) { } template::value>::type> pair(_U1&& __x, const _T2& __y) : first(std::forward<_U1>(__x)), second(__y) { } template::value>::type> pair(const _T1& __x, _U2&& __y) : first(__x), second(std::forward<_U2>(__y)) { } template::value && std::is_convertible<_U2, _T2>::value>::type> pair(_U1&& __x, _U2&& __y) : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } template pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) { } template pair(pair<_U1, _U2>&& __p) : first(std::forward<_U1>(__p.first)), second(std::forward<_U2>(__p.second)) { } pair& operator=(pair&& __p) { first = std::move(__p.first); second = std::move(__p.second); return *this; } template pair& operator=(pair<_U1, _U2>&& __p) { first = std::move(__p.first); second = std::move(__p.second); return *this; } void swap(pair& __p) { using std::swap; swap(first, __p.first); swap(second, __p.second); } }; template inline bool operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first == __y.first && __x.second == __y.second; } template inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first < __y.first || (!(__y.first < __x.first) && __x.second < __y.second); } template inline bool operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__x == __y); } template inline bool operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __y < __x; } template inline bool operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__y < __x); } template inline bool operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__x < __y); } template inline void swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) { __x.swap(__y); } # 216 "/usr/include/c++/4.5/bits/stl_pair.h" 3 template class reference_wrapper; template struct __strip_reference_wrapper { typedef _Tp __type; }; template struct __strip_reference_wrapper > { typedef _Tp& __type; }; template struct __strip_reference_wrapper > { typedef _Tp& __type; }; template struct __decay_and_strip { typedef typename __strip_reference_wrapper< typename decay<_Tp>::type>::__type __type; }; template inline pair::__type, typename __decay_and_strip<_T2>::__type> make_pair(_T1&& __x, _T2&& __y) { return pair::__type, typename __decay_and_strip<_T2>::__type> (std::forward<_T1>(__x), std::forward<_T2>(__y)); } } # 67 "/usr/include/c++/4.5/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.5/bits/stl_iterator_base_types.h" 1 3 # 63 "/usr/include/c++/4.5/bits/stl_iterator_base_types.h" 3 # 64 "/usr/include/c++/4.5/bits/stl_iterator_base_types.h" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 67 "/usr/include/c++/4.5/bits/stl_iterator_base_types.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 85 "/usr/include/c++/4.5/bits/stl_iterator_base_types.h" 3 struct input_iterator_tag { }; struct output_iterator_tag { }; struct forward_iterator_tag : public input_iterator_tag { }; struct bidirectional_iterator_tag : public forward_iterator_tag { }; struct random_access_iterator_tag : public bidirectional_iterator_tag { }; # 112 "/usr/include/c++/4.5/bits/stl_iterator_base_types.h" 3 template struct iterator { typedef _Category iterator_category; typedef _Tp value_type; typedef _Distance difference_type; typedef _Pointer pointer; typedef _Reference reference; }; # 136 "/usr/include/c++/4.5/bits/stl_iterator_base_types.h" 3 template struct iterator_traits { typedef typename _Iterator::iterator_category iterator_category; typedef typename _Iterator::value_type value_type; typedef typename _Iterator::difference_type difference_type; typedef typename _Iterator::pointer pointer; typedef typename _Iterator::reference reference; }; template struct iterator_traits<_Tp*> { typedef random_access_iterator_tag iterator_category; typedef _Tp value_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef _Tp& reference; }; template struct iterator_traits { typedef random_access_iterator_tag iterator_category; typedef _Tp value_type; typedef ptrdiff_t difference_type; typedef const _Tp* pointer; typedef const _Tp& reference; }; template inline typename iterator_traits<_Iter>::iterator_category __iterator_category(const _Iter&) { return typename iterator_traits<_Iter>::iterator_category(); } } # 68 "/usr/include/c++/4.5/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h" 1 3 # 63 "/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h" 3 # 64 "/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template inline typename iterator_traits<_InputIterator>::difference_type __distance(_InputIterator __first, _InputIterator __last, input_iterator_tag) { typename iterator_traits<_InputIterator>::difference_type __n = 0; while (__first != __last) { ++__first; ++__n; } return __n; } template inline typename iterator_traits<_RandomAccessIterator>::difference_type __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) { return __last - __first; } # 109 "/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h" 3 template inline typename iterator_traits<_InputIterator>::difference_type distance(_InputIterator __first, _InputIterator __last) { return std::__distance(__first, __last, std::__iterator_category(__first)); } template inline void __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) { while (__n--) ++__i; } template inline void __advance(_BidirectionalIterator& __i, _Distance __n, bidirectional_iterator_tag) { if (__n > 0) while (__n--) ++__i; else while (__n++) --__i; } template inline void __advance(_RandomAccessIterator& __i, _Distance __n, random_access_iterator_tag) { __i += __n; } # 167 "/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h" 3 template inline void advance(_InputIterator& __i, _Distance __n) { typename iterator_traits<_InputIterator>::difference_type __d = __n; std::__advance(__i, __d, std::__iterator_category(__i)); } } namespace std __attribute__ ((__visibility__ ("default"))) { template inline typename __gnu_cxx::__enable_if<__is_iterator<_ForwardIterator>::__value, _ForwardIterator>::__type next(_ForwardIterator __x, typename iterator_traits<_ForwardIterator>::difference_type __n = 1) { std::advance(__x, __n); return __x; } template inline typename __gnu_cxx::__enable_if<__is_iterator<_BidirectionalIterator>::__value, _BidirectionalIterator>::__type prev(_BidirectionalIterator __x, typename iterator_traits<_BidirectionalIterator>::difference_type __n = 1) { std::advance(__x, -__n); return __x; } } # 69 "/usr/include/c++/4.5/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.5/bits/stl_iterator.h" 1 3 # 68 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 94 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 template class reverse_iterator : public iterator::iterator_category, typename iterator_traits<_Iterator>::value_type, typename iterator_traits<_Iterator>::difference_type, typename iterator_traits<_Iterator>::pointer, typename iterator_traits<_Iterator>::reference> { protected: _Iterator current; typedef iterator_traits<_Iterator> __traits_type; public: typedef _Iterator iterator_type; typedef typename __traits_type::difference_type difference_type; typedef typename __traits_type::pointer pointer; typedef typename __traits_type::reference reference; reverse_iterator() : current() { } explicit reverse_iterator(iterator_type __x) : current(__x) { } reverse_iterator(const reverse_iterator& __x) : current(__x.current) { } template reverse_iterator(const reverse_iterator<_Iter>& __x) : current(__x.base()) { } iterator_type base() const { return current; } reference operator*() const { _Iterator __tmp = current; return *--__tmp; } pointer operator->() const { return &(operator*()); } reverse_iterator& operator++() { --current; return *this; } reverse_iterator operator++(int) { reverse_iterator __tmp = *this; --current; return __tmp; } reverse_iterator& operator--() { ++current; return *this; } reverse_iterator operator--(int) { reverse_iterator __tmp = *this; ++current; return __tmp; } reverse_iterator operator+(difference_type __n) const { return reverse_iterator(current - __n); } reverse_iterator& operator+=(difference_type __n) { current -= __n; return *this; } reverse_iterator operator-(difference_type __n) const { return reverse_iterator(current + __n); } reverse_iterator& operator-=(difference_type __n) { current += __n; return *this; } reference operator[](difference_type __n) const { return *(*this + __n); } }; # 281 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 template inline bool operator==(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __x.base() == __y.base(); } template inline bool operator<(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y.base() < __x.base(); } template inline bool operator!=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__x == __y); } template inline bool operator>(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y < __x; } template inline bool operator<=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__y < __x); } template inline bool operator>=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__x < __y); } template inline typename reverse_iterator<_Iterator>::difference_type operator-(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y.base() - __x.base(); } template inline reverse_iterator<_Iterator> operator+(typename reverse_iterator<_Iterator>::difference_type __n, const reverse_iterator<_Iterator>& __x) { return reverse_iterator<_Iterator>(__x.base() - __n); } template inline bool operator==(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return __x.base() == __y.base(); } template inline bool operator<(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return __y.base() < __x.base(); } template inline bool operator!=(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return !(__x == __y); } template inline bool operator>(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return __y < __x; } template inline bool operator<=(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return !(__y < __x); } template inline bool operator>=(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return !(__x < __y); } template inline auto operator-(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) -> decltype(__y.base() - __x.base()) { return __y.base() - __x.base(); } # 393 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 template class back_insert_iterator : public iterator { protected: _Container* container; public: typedef _Container container_type; explicit back_insert_iterator(_Container& __x) : container(&__x) { } # 427 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 back_insert_iterator& operator=(const typename _Container::value_type& __value) { container->push_back(__value); return *this; } back_insert_iterator& operator=(typename _Container::value_type&& __value) { container->push_back(std::move(__value)); return *this; } back_insert_iterator& operator*() { return *this; } back_insert_iterator& operator++() { return *this; } back_insert_iterator operator++(int) { return *this; } }; # 469 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 template inline back_insert_iterator<_Container> back_inserter(_Container& __x) { return back_insert_iterator<_Container>(__x); } # 484 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 template class front_insert_iterator : public iterator { protected: _Container* container; public: typedef _Container container_type; explicit front_insert_iterator(_Container& __x) : container(&__x) { } # 517 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 front_insert_iterator& operator=(const typename _Container::value_type& __value) { container->push_front(__value); return *this; } front_insert_iterator& operator=(typename _Container::value_type&& __value) { container->push_front(std::move(__value)); return *this; } front_insert_iterator& operator*() { return *this; } front_insert_iterator& operator++() { return *this; } front_insert_iterator operator++(int) { return *this; } }; # 559 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 template inline front_insert_iterator<_Container> front_inserter(_Container& __x) { return front_insert_iterator<_Container>(__x); } # 578 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 template class insert_iterator : public iterator { protected: _Container* container; typename _Container::iterator iter; public: typedef _Container container_type; insert_iterator(_Container& __x, typename _Container::iterator __i) : container(&__x), iter(__i) {} # 629 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 insert_iterator& operator=(const typename _Container::value_type& __value) { iter = container->insert(iter, __value); ++iter; return *this; } insert_iterator& operator=(typename _Container::value_type&& __value) { iter = container->insert(iter, std::move(__value)); ++iter; return *this; } insert_iterator& operator*() { return *this; } insert_iterator& operator++() { return *this; } insert_iterator& operator++(int) { return *this; } }; # 673 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 template inline insert_iterator<_Container> inserter(_Container& __x, _Iterator __i) { return insert_iterator<_Container>(__x, typename _Container::iterator(__i)); } } namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { # 694 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 using std::iterator_traits; using std::iterator; template class __normal_iterator { protected: _Iterator _M_current; typedef iterator_traits<_Iterator> __traits_type; public: typedef _Iterator iterator_type; typedef typename __traits_type::iterator_category iterator_category; typedef typename __traits_type::value_type value_type; typedef typename __traits_type::difference_type difference_type; typedef typename __traits_type::reference reference; typedef typename __traits_type::pointer pointer; __normal_iterator() : _M_current(_Iterator()) { } explicit __normal_iterator(const _Iterator& __i) : _M_current(__i) { } template __normal_iterator(const __normal_iterator<_Iter, typename __enable_if< (std::__are_same<_Iter, typename _Container::pointer>::__value), _Container>::__type>& __i) : _M_current(__i.base()) { } reference operator*() const { return *_M_current; } pointer operator->() const { return _M_current; } __normal_iterator& operator++() { ++_M_current; return *this; } __normal_iterator operator++(int) { return __normal_iterator(_M_current++); } __normal_iterator& operator--() { --_M_current; return *this; } __normal_iterator operator--(int) { return __normal_iterator(_M_current--); } reference operator[](const difference_type& __n) const { return _M_current[__n]; } __normal_iterator& operator+=(const difference_type& __n) { _M_current += __n; return *this; } __normal_iterator operator+(const difference_type& __n) const { return __normal_iterator(_M_current + __n); } __normal_iterator& operator-=(const difference_type& __n) { _M_current -= __n; return *this; } __normal_iterator operator-(const difference_type& __n) const { return __normal_iterator(_M_current - __n); } const _Iterator& base() const { return _M_current; } }; # 792 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 template inline bool operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() == __rhs.base(); } template inline bool operator==(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() == __rhs.base(); } template inline bool operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } template inline bool operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } template inline bool operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() < __rhs.base(); } template inline bool operator<(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() < __rhs.base(); } template inline bool operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() > __rhs.base(); } template inline bool operator>(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() > __rhs.base(); } template inline bool operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() <= __rhs.base(); } template inline bool operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() <= __rhs.base(); } template inline bool operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() >= __rhs.base(); } template inline bool operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() >= __rhs.base(); } template inline auto operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) -> decltype(__lhs.base() - __rhs.base()) { return __lhs.base() - __rhs.base(); } template inline typename __normal_iterator<_Iterator, _Container>::difference_type operator-(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() - __rhs.base(); } template inline __normal_iterator<_Iterator, _Container> operator+(typename __normal_iterator<_Iterator, _Container>::difference_type __n, const __normal_iterator<_Iterator, _Container>& __i) { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } } namespace std __attribute__ ((__visibility__ ("default"))) { # 915 "/usr/include/c++/4.5/bits/stl_iterator.h" 3 template class move_iterator { protected: _Iterator _M_current; typedef iterator_traits<_Iterator> __traits_type; public: typedef _Iterator iterator_type; typedef typename __traits_type::iterator_category iterator_category; typedef typename __traits_type::value_type value_type; typedef typename __traits_type::difference_type difference_type; typedef _Iterator pointer; typedef value_type&& reference; move_iterator() : _M_current() { } explicit move_iterator(iterator_type __i) : _M_current(__i) { } template move_iterator(const move_iterator<_Iter>& __i) : _M_current(__i.base()) { } iterator_type base() const { return _M_current; } reference operator*() const { return std::move(*_M_current); } pointer operator->() const { return _M_current; } move_iterator& operator++() { ++_M_current; return *this; } move_iterator operator++(int) { move_iterator __tmp = *this; ++_M_current; return __tmp; } move_iterator& operator--() { --_M_current; return *this; } move_iterator operator--(int) { move_iterator __tmp = *this; --_M_current; return __tmp; } move_iterator operator+(difference_type __n) const { return move_iterator(_M_current + __n); } move_iterator& operator+=(difference_type __n) { _M_current += __n; return *this; } move_iterator operator-(difference_type __n) const { return move_iterator(_M_current - __n); } move_iterator& operator-=(difference_type __n) { _M_current -= __n; return *this; } reference operator[](difference_type __n) const { return std::move(_M_current[__n]); } }; template inline bool operator==(const move_iterator<_IteratorL>& __x, const move_iterator<_IteratorR>& __y) { return __x.base() == __y.base(); } template inline bool operator!=(const move_iterator<_IteratorL>& __x, const move_iterator<_IteratorR>& __y) { return !(__x == __y); } template inline bool operator<(const move_iterator<_IteratorL>& __x, const move_iterator<_IteratorR>& __y) { return __x.base() < __y.base(); } template inline bool operator<=(const move_iterator<_IteratorL>& __x, const move_iterator<_IteratorR>& __y) { return !(__y < __x); } template inline bool operator>(const move_iterator<_IteratorL>& __x, const move_iterator<_IteratorR>& __y) { return __y < __x; } template inline bool operator>=(const move_iterator<_IteratorL>& __x, const move_iterator<_IteratorR>& __y) { return !(__x < __y); } template inline auto operator-(const move_iterator<_IteratorL>& __x, const move_iterator<_IteratorR>& __y) -> decltype(__x.base() - __y.base()) { return __x.base() - __y.base(); } template inline move_iterator<_Iterator> operator+(typename move_iterator<_Iterator>::difference_type __n, const move_iterator<_Iterator>& __x) { return __x + __n; } template inline move_iterator<_Iterator> make_move_iterator(const _Iterator& __i) { return move_iterator<_Iterator>(__i); } } # 70 "/usr/include/c++/4.5/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.5/debug/debug.h" 1 3 # 47 "/usr/include/c++/4.5/debug/debug.h" 3 namespace std { namespace __debug { } } namespace __gnu_debug { using namespace std::__debug; } # 72 "/usr/include/c++/4.5/bits/stl_algobase.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { template struct __iter_swap { template static void iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) { typedef typename iterator_traits<_ForwardIterator1>::value_type _ValueType1; _ValueType1 __tmp = std::move(*__a); *__a = std::move(*__b); *__b = std::move(__tmp); } }; template<> struct __iter_swap { template static void iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) { swap(*__a, *__b); } }; # 115 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline void iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) { typedef typename iterator_traits<_ForwardIterator1>::value_type _ValueType1; typedef typename iterator_traits<_ForwardIterator2>::value_type _ValueType2; typedef typename iterator_traits<_ForwardIterator1>::reference _ReferenceType1; typedef typename iterator_traits<_ForwardIterator2>::reference _ReferenceType2; std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value && __are_same<_ValueType1&, _ReferenceType1>::__value && __are_same<_ValueType2&, _ReferenceType2>::__value>:: iter_swap(__a, __b); } # 156 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template _ForwardIterator2 swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2) { ; for (; __first1 != __last1; ++__first1, ++__first2) std::iter_swap(__first1, __first2); return __first2; } # 184 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline const _Tp& min(const _Tp& __a, const _Tp& __b) { if (__b < __a) return __b; return __a; } # 207 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline const _Tp& max(const _Tp& __a, const _Tp& __b) { if (__a < __b) return __b; return __a; } # 230 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline const _Tp& min(const _Tp& __a, const _Tp& __b, _Compare __comp) { if (__comp(__b, __a)) return __b; return __a; } # 251 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline const _Tp& max(const _Tp& __a, const _Tp& __b, _Compare __comp) { if (__comp(__a, __b)) return __b; return __a; } template struct _Iter_base { typedef _Iterator iterator_type; static iterator_type _S_base(_Iterator __it) { return __it; } }; template struct _Iter_base<_Iterator, true> { typedef typename _Iterator::iterator_type iterator_type; static iterator_type _S_base(_Iterator __it) { return __it.base(); } }; template struct _Niter_base : _Iter_base<_Iterator, __is_normal_iterator<_Iterator>::__value> { }; template inline typename _Niter_base<_Iterator>::iterator_type __niter_base(_Iterator __it) { return std::_Niter_base<_Iterator>::_S_base(__it); } template struct _Miter_base : _Iter_base<_Iterator, __is_move_iterator<_Iterator>::__value> { }; template inline typename _Miter_base<_Iterator>::iterator_type __miter_base(_Iterator __it) { return std::_Miter_base<_Iterator>::_S_base(__it); } template struct __copy_move { template static _OI __copy_m(_II __first, _II __last, _OI __result) { for (; __first != __last; ++__result, ++__first) *__result = *__first; return __result; } }; template struct __copy_move { template static _OI __copy_m(_II __first, _II __last, _OI __result) { for (; __first != __last; ++__result, ++__first) *__result = std::move(*__first); return __result; } }; template<> struct __copy_move { template static _OI __copy_m(_II __first, _II __last, _OI __result) { typedef typename iterator_traits<_II>::difference_type _Distance; for(_Distance __n = __last - __first; __n > 0; --__n) { *__result = *__first; ++__first; ++__result; } return __result; } }; template<> struct __copy_move { template static _OI __copy_m(_II __first, _II __last, _OI __result) { typedef typename iterator_traits<_II>::difference_type _Distance; for(_Distance __n = __last - __first; __n > 0; --__n) { *__result = std::move(*__first); ++__first; ++__result; } return __result; } }; template struct __copy_move<_IsMove, true, random_access_iterator_tag> { template static _Tp* __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) { const ptrdiff_t _Num = __last - __first; if (_Num) __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); return __result + _Num; } }; template inline _OI __copy_move_a(_II __first, _II __last, _OI __result) { typedef typename iterator_traits<_II>::value_type _ValueTypeI; typedef typename iterator_traits<_OI>::value_type _ValueTypeO; typedef typename iterator_traits<_II>::iterator_category _Category; const bool __simple = (__is_pod(_ValueTypeI) && __is_pointer<_II>::__value && __is_pointer<_OI>::__value && __are_same<_ValueTypeI, _ValueTypeO>::__value); return std::__copy_move<_IsMove, __simple, _Category>::__copy_m(__first, __last, __result); } template struct char_traits; template class istreambuf_iterator; template class ostreambuf_iterator; template typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type __copy_move_a2(_CharT*, _CharT*, ostreambuf_iterator<_CharT, char_traits<_CharT> >); template typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type __copy_move_a2(const _CharT*, const _CharT*, ostreambuf_iterator<_CharT, char_traits<_CharT> >); template typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, _CharT*>::__type __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); template inline _OI __copy_move_a2(_II __first, _II __last, _OI __result) { return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first), std::__niter_base(__last), std::__niter_base(__result))); } # 462 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline _OI copy(_II __first, _II __last, _OI __result) { ; return (std::__copy_move_a2<__is_move_iterator<_II>::__value> (std::__miter_base(__first), std::__miter_base(__last), __result)); } # 495 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline _OI move(_II __first, _II __last, _OI __result) { ; return std::__copy_move_a2(std::__miter_base(__first), std::__miter_base(__last), __result); } template struct __copy_move_backward { template static _BI2 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) { while (__first != __last) *--__result = *--__last; return __result; } }; template struct __copy_move_backward { template static _BI2 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) { while (__first != __last) *--__result = std::move(*--__last); return __result; } }; template<> struct __copy_move_backward { template static _BI2 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) { typename iterator_traits<_BI1>::difference_type __n; for (__n = __last - __first; __n > 0; --__n) *--__result = *--__last; return __result; } }; template<> struct __copy_move_backward { template static _BI2 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) { typename iterator_traits<_BI1>::difference_type __n; for (__n = __last - __first; __n > 0; --__n) *--__result = std::move(*--__last); return __result; } }; template struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> { template static _Tp* __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) { const ptrdiff_t _Num = __last - __first; if (_Num) __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); return __result - _Num; } }; template inline _BI2 __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) { typedef typename iterator_traits<_BI1>::value_type _ValueType1; typedef typename iterator_traits<_BI2>::value_type _ValueType2; typedef typename iterator_traits<_BI1>::iterator_category _Category; const bool __simple = (__is_pod(_ValueType1) && __is_pointer<_BI1>::__value && __is_pointer<_BI2>::__value && __are_same<_ValueType1, _ValueType2>::__value); return std::__copy_move_backward<_IsMove, __simple, _Category>::__copy_move_b(__first, __last, __result); } template inline _BI2 __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) { return _BI2(std::__copy_move_backward_a<_IsMove> (std::__niter_base(__first), std::__niter_base(__last), std::__niter_base(__result))); } # 631 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline _BI2 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) { ; return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value> (std::__miter_base(__first), std::__miter_base(__last), __result)); } # 667 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline _BI2 move_backward(_BI1 __first, _BI1 __last, _BI2 __result) { ; return std::__copy_move_backward_a2(std::__miter_base(__first), std::__miter_base(__last), __result); } template inline typename __gnu_cxx::__enable_if::__value, void>::__type __fill_a(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) { for (; __first != __last; ++__first) *__first = __value; } template inline typename __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type __fill_a(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) { const _Tp __tmp = __value; for (; __first != __last; ++__first) *__first = __tmp; } template inline typename __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c) { const _Tp __tmp = __c; __builtin_memset(__first, static_cast(__tmp), __last - __first); } # 733 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline void fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) { ; std::__fill_a(std::__niter_base(__first), std::__niter_base(__last), __value); } template inline typename __gnu_cxx::__enable_if::__value, _OutputIterator>::__type __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) { for (; __n > 0; --__n, ++__first) *__first = __value; return __first; } template inline typename __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) { const _Tp __tmp = __value; for (; __n > 0; --__n, ++__first) *__first = __tmp; return __first; } template inline typename __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c) { std::__fill_a(__first, __first + __n, __c); return __first + __n; } # 791 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline _OI fill_n(_OI __first, _Size __n, const _Tp& __value) { return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value)); } template struct __equal { template static bool equal(_II1 __first1, _II1 __last1, _II2 __first2) { for (; __first1 != __last1; ++__first1, ++__first2) if (!(*__first1 == *__first2)) return false; return true; } }; template<> struct __equal { template static bool equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) { return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * (__last1 - __first1)); } }; template inline bool __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) { typedef typename iterator_traits<_II1>::value_type _ValueType1; typedef typename iterator_traits<_II2>::value_type _ValueType2; const bool __simple = (__is_integer<_ValueType1>::__value && __is_pointer<_II1>::__value && __is_pointer<_II2>::__value && __are_same<_ValueType1, _ValueType2>::__value); return std::__equal<__simple>::equal(__first1, __last1, __first2); } template struct __lc_rai { template static _II1 __newlast1(_II1, _II1 __last1, _II2, _II2) { return __last1; } template static bool __cnd2(_II __first, _II __last) { return __first != __last; } }; template<> struct __lc_rai { template static _RAI1 __newlast1(_RAI1 __first1, _RAI1 __last1, _RAI2 __first2, _RAI2 __last2) { const typename iterator_traits<_RAI1>::difference_type __diff1 = __last1 - __first1; const typename iterator_traits<_RAI2>::difference_type __diff2 = __last2 - __first2; return __diff2 < __diff1 ? __first1 + __diff2 : __last1; } template static bool __cnd2(_RAI, _RAI) { return true; } }; template struct __lexicographical_compare { template static bool __lc(_II1, _II1, _II2, _II2); }; template template bool __lexicographical_compare<_BoolType>:: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) { typedef typename iterator_traits<_II1>::iterator_category _Category1; typedef typename iterator_traits<_II2>::iterator_category _Category2; typedef std::__lc_rai<_Category1, _Category2> __rai_type; __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); ++__first1, ++__first2) { if (*__first1 < *__first2) return true; if (*__first2 < *__first1) return false; } return __first1 == __last1 && __first2 != __last2; } template<> struct __lexicographical_compare { template static bool __lc(const _Tp* __first1, const _Tp* __last1, const _Up* __first2, const _Up* __last2) { const size_t __len1 = __last1 - __first1; const size_t __len2 = __last2 - __first2; const int __result = __builtin_memcmp(__first1, __first2, std::min(__len1, __len2)); return __result != 0 ? __result < 0 : __len1 < __len2; } }; template inline bool __lexicographical_compare_aux(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) { typedef typename iterator_traits<_II1>::value_type _ValueType1; typedef typename iterator_traits<_II2>::value_type _ValueType2; const bool __simple = (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed && __is_pointer<_II1>::__value && __is_pointer<_II2>::__value); return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, __first2, __last2); } # 952 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template _ForwardIterator lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; ; _DistanceType __len = std::distance(__first, __last); _DistanceType __half; _ForwardIterator __middle; while (__len > 0) { __half = __len >> 1; __middle = __first; std::advance(__middle, __half); if (*__middle < __val) { __first = __middle; ++__first; __len = __len - __half - 1; } else __len = __half; } return __first; } template inline _Size __lg(_Size __n) { _Size __k; for (__k = 0; __n != 0; __n >>= 1) ++__k; return __k - 1; } inline int __lg(int __n) { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } inline long __lg(long __n) { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } inline long long __lg(long long __n) { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } } namespace std __attribute__ ((__visibility__ ("default"))) { # 1028 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline bool equal(_II1 __first1, _II1 __last1, _II2 __first2) { ; return std::__equal_aux(std::__niter_base(__first1), std::__niter_base(__last1), std::__niter_base(__first2)); } # 1060 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline bool equal(_IIter1 __first1, _IIter1 __last1, _IIter2 __first2, _BinaryPredicate __binary_pred) { ; for (; __first1 != __last1; ++__first1, ++__first2) if (!bool(__binary_pred(*__first1, *__first2))) return false; return true; } # 1091 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template inline bool lexicographical_compare(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) { typedef typename iterator_traits<_II1>::value_type _ValueType1; typedef typename iterator_traits<_II2>::value_type _ValueType2; ; ; return std::__lexicographical_compare_aux(std::__niter_base(__first1), std::__niter_base(__last1), std::__niter_base(__first2), std::__niter_base(__last2)); } # 1125 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template bool lexicographical_compare(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, _Compare __comp) { typedef typename iterator_traits<_II1>::iterator_category _Category1; typedef typename iterator_traits<_II2>::iterator_category _Category2; typedef std::__lc_rai<_Category1, _Category2> __rai_type; ; ; __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); ++__first1, ++__first2) { if (__comp(*__first1, *__first2)) return true; if (__comp(*__first2, *__first1)) return false; } return __first1 == __last1 && __first2 != __last2; } # 1165 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template pair<_InputIterator1, _InputIterator2> mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2) { ; while (__first1 != __last1 && *__first1 == *__first2) { ++__first1; ++__first2; } return pair<_InputIterator1, _InputIterator2>(__first1, __first2); } # 1202 "/usr/include/c++/4.5/bits/stl_algobase.h" 3 template pair<_InputIterator1, _InputIterator2> mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _BinaryPredicate __binary_pred) { ; while (__first1 != __last1 && bool(__binary_pred(*__first1, *__first2))) { ++__first1; ++__first2; } return pair<_InputIterator1, _InputIterator2>(__first1, __first2); } } # 42 "/usr/include/c++/4.5/bits/char_traits.h" 2 3 # 1 "/usr/include/c++/4.5/bits/postypes.h" 1 3 # 40 "/usr/include/c++/4.5/bits/postypes.h" 3 # 41 "/usr/include/c++/4.5/bits/postypes.h" 3 # 1 "/usr/include/c++/4.5/cwchar" 1 3 # 41 "/usr/include/c++/4.5/cwchar" 3 # 42 "/usr/include/c++/4.5/cwchar" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 45 "/usr/include/c++/4.5/cwchar" 2 3 # 1 "/usr/include/wchar.h" 1 3 4 # 40 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h" 1 3 4 # 41 "/usr/include/wchar.h" 2 3 4 # 1 "/usr/include/bits/wchar.h" 1 3 4 # 43 "/usr/include/wchar.h" 2 3 4 # 52 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 352 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 3 4 typedef unsigned int wint_t; # 53 "/usr/include/wchar.h" 2 3 4 # 104 "/usr/include/wchar.h" 3 4 typedef __mbstate_t mbstate_t; # 129 "/usr/include/wchar.h" 3 4 extern "C" { struct tm; extern wchar_t *wcscpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src) throw (); extern wchar_t *wcsncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw (); extern wchar_t *wcscat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src) throw (); extern wchar_t *wcsncat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw (); extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2) throw () __attribute__ ((__pure__)); extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw () __attribute__ ((__pure__)); extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw (); extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw (); extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, __locale_t __loc) throw (); extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n, __locale_t __loc) throw (); extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw (); extern size_t wcsxfrm (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw (); extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2, __locale_t __loc) throw (); extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2, size_t __n, __locale_t __loc) throw (); extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__)); extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) throw () __asm ("wcschr") __attribute__ ((__pure__)); extern "C++" __const wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc) throw () __asm ("wcschr") __attribute__ ((__pure__)); extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) throw () __asm ("wcsrchr") __attribute__ ((__pure__)); extern "C++" __const wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc) throw () __asm ("wcsrchr") __attribute__ ((__pure__)); extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc) throw () __attribute__ ((__pure__)); extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject) throw () __attribute__ ((__pure__)); extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept) throw () __attribute__ ((__pure__)); extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, __const wchar_t *__accept) throw () __asm ("wcspbrk") __attribute__ ((__pure__)); extern "C++" __const wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept) throw () __asm ("wcspbrk") __attribute__ ((__pure__)); extern "C++" wchar_t *wcsstr (wchar_t *__haystack, __const wchar_t *__needle) throw () __asm ("wcsstr") __attribute__ ((__pure__)); extern "C++" __const wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle) throw () __asm ("wcsstr") __attribute__ ((__pure__)); extern wchar_t *wcstok (wchar_t *__restrict __s, __const wchar_t *__restrict __delim, wchar_t **__restrict __ptr) throw (); extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__)); extern "C++" wchar_t *wcswcs (wchar_t *__haystack, __const wchar_t *__needle) throw () __asm ("wcswcs") __attribute__ ((__pure__)); extern "C++" __const wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle) throw () __asm ("wcswcs") __attribute__ ((__pure__)); # 303 "/usr/include/wchar.h" 3 4 extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen) throw () __attribute__ ((__pure__)); extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) throw () __asm ("wmemchr") __attribute__ ((__pure__)); extern "C++" __const wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n) throw () __asm ("wmemchr") __attribute__ ((__pure__)); extern int wmemcmp (__const wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw () __attribute__ ((__pure__)); extern wchar_t *wmemcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw (); extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw (); extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); extern wchar_t *wmempcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw (); extern wint_t btowc (int __c) throw (); extern int wctob (wint_t __c) throw (); extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__)); extern size_t mbrtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n, mbstate_t *__p) throw (); extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, mbstate_t *__restrict __ps) throw (); extern size_t __mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw (); extern size_t mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw (); # 403 "/usr/include/wchar.h" 3 4 extern size_t mbsrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t wcsrtombs (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t mbsnrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t wcsnrtombs (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw (); extern int wcwidth (wchar_t __c) throw (); extern int wcswidth (__const wchar_t *__s, size_t __n) throw (); extern double wcstod (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern float wcstof (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern long double wcstold (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern long int wcstol (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern long long int wcstoll (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern long long int wcstoq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); # 528 "/usr/include/wchar.h" 3 4 extern long int wcstol_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); __extension__ extern long long int wcstoll_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); __extension__ extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); extern double wcstod_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, __locale_t __loc) throw (); extern float wcstof_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, __locale_t __loc) throw (); extern long double wcstold_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, __locale_t __loc) throw (); extern wchar_t *wcpcpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src) throw (); extern wchar_t *wcpncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw (); # 578 "/usr/include/wchar.h" 3 4 extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); extern int fwide (__FILE *__fp, int __mode) throw (); extern int fwprintf (__FILE *__restrict __stream, __const wchar_t *__restrict __format, ...) ; extern int wprintf (__const wchar_t *__restrict __format, ...) ; extern int swprintf (wchar_t *__restrict __s, size_t __n, __const wchar_t *__restrict __format, ...) throw () ; extern int vfwprintf (__FILE *__restrict __s, __const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vwprintf (__const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vswprintf (wchar_t *__restrict __s, size_t __n, __const wchar_t *__restrict __format, __gnuc_va_list __arg) throw () ; extern int fwscanf (__FILE *__restrict __stream, __const wchar_t *__restrict __format, ...) ; extern int wscanf (__const wchar_t *__restrict __format, ...) ; extern int swscanf (__const wchar_t *__restrict __s, __const wchar_t *__restrict __format, ...) throw () ; # 678 "/usr/include/wchar.h" 3 4 extern int vfwscanf (__FILE *__restrict __s, __const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vwscanf (__const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vswscanf (__const wchar_t *__restrict __s, __const wchar_t *__restrict __format, __gnuc_va_list __arg) throw () ; # 734 "/usr/include/wchar.h" 3 4 extern wint_t fgetwc (__FILE *__stream); extern wint_t getwc (__FILE *__stream); extern wint_t getwchar (void); extern wint_t fputwc (wchar_t __wc, __FILE *__stream); extern wint_t putwc (wchar_t __wc, __FILE *__stream); extern wint_t putwchar (wchar_t __wc); extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, __FILE *__restrict __stream); extern int fputws (__const wchar_t *__restrict __ws, __FILE *__restrict __stream); extern wint_t ungetwc (wint_t __wc, __FILE *__stream); # 799 "/usr/include/wchar.h" 3 4 extern wint_t getwc_unlocked (__FILE *__stream); extern wint_t getwchar_unlocked (void); extern wint_t fgetwc_unlocked (__FILE *__stream); extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); # 825 "/usr/include/wchar.h" 3 4 extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); extern wint_t putwchar_unlocked (wchar_t __wc); # 835 "/usr/include/wchar.h" 3 4 extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, __FILE *__restrict __stream); extern int fputws_unlocked (__const wchar_t *__restrict __ws, __FILE *__restrict __stream); extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, __const wchar_t *__restrict __format, __const struct tm *__restrict __tp) throw (); extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, __const wchar_t *__restrict __format, __const struct tm *__restrict __tp, __locale_t __loc) throw (); # 889 "/usr/include/wchar.h" 3 4 } # 48 "/usr/include/c++/4.5/cwchar" 2 3 # 65 "/usr/include/c++/4.5/cwchar" 3 namespace std __attribute__ ((__visibility__ ("default"))) { using ::mbstate_t; } # 139 "/usr/include/c++/4.5/cwchar" 3 namespace std __attribute__ ((__visibility__ ("default"))) { using ::wint_t; using ::btowc; using ::fgetwc; using ::fgetws; using ::fputwc; using ::fputws; using ::fwide; using ::fwprintf; using ::fwscanf; using ::getwc; using ::getwchar; using ::mbrlen; using ::mbrtowc; using ::mbsinit; using ::mbsrtowcs; using ::putwc; using ::putwchar; using ::swprintf; using ::swscanf; using ::ungetwc; using ::vfwprintf; using ::vfwscanf; using ::vswprintf; using ::vswscanf; using ::vwprintf; using ::vwscanf; using ::wcrtomb; using ::wcscat; using ::wcscmp; using ::wcscoll; using ::wcscpy; using ::wcscspn; using ::wcsftime; using ::wcslen; using ::wcsncat; using ::wcsncmp; using ::wcsncpy; using ::wcsrtombs; using ::wcsspn; using ::wcstod; using ::wcstof; using ::wcstok; using ::wcstol; using ::wcstoul; using ::wcsxfrm; using ::wctob; using ::wmemcmp; using ::wmemcpy; using ::wmemmove; using ::wmemset; using ::wprintf; using ::wscanf; using ::wcschr; using ::wcspbrk; using ::wcsrchr; using ::wcsstr; using ::wmemchr; # 234 "/usr/include/c++/4.5/cwchar" 3 } namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { using ::wcstold; # 258 "/usr/include/c++/4.5/cwchar" 3 using ::wcstoll; using ::wcstoull; } namespace std __attribute__ ((__visibility__ ("default"))) { using ::__gnu_cxx::wcstold; using ::__gnu_cxx::wcstoll; using ::__gnu_cxx::wcstoull; } # 287 "/usr/include/c++/4.5/cwchar" 3 # 1 "/usr/include/c++/4.5/tr1_impl/cwchar" 1 3 # 32 "/usr/include/c++/4.5/tr1_impl/cwchar" 3 namespace std { using std::wcstof; using std::vfwscanf; using std::vswscanf; using std::vwscanf; using std::wcstold; using std::wcstoll; using std::wcstoull; } # 288 "/usr/include/c++/4.5/cwchar" 2 3 # 43 "/usr/include/c++/4.5/bits/postypes.h" 2 3 # 70 "/usr/include/c++/4.5/bits/postypes.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 88 "/usr/include/c++/4.5/bits/postypes.h" 3 typedef long streamoff; # 98 "/usr/include/c++/4.5/bits/postypes.h" 3 typedef ptrdiff_t streamsize; # 111 "/usr/include/c++/4.5/bits/postypes.h" 3 template class fpos { private: streamoff _M_off; _StateT _M_state; public: fpos() : _M_off(0), _M_state() { } # 133 "/usr/include/c++/4.5/bits/postypes.h" 3 fpos(streamoff __off) : _M_off(__off), _M_state() { } operator streamoff() const { return _M_off; } void state(_StateT __st) { _M_state = __st; } _StateT state() const { return _M_state; } fpos& operator+=(streamoff __off) { _M_off += __off; return *this; } fpos& operator-=(streamoff __off) { _M_off -= __off; return *this; } fpos operator+(streamoff __off) const { fpos __pos(*this); __pos += __off; return __pos; } fpos operator-(streamoff __off) const { fpos __pos(*this); __pos -= __off; return __pos; } streamoff operator-(const fpos& __other) const { return _M_off - __other._M_off; } }; template inline bool operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) { return streamoff(__lhs) == streamoff(__rhs); } template inline bool operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) { return streamoff(__lhs) != streamoff(__rhs); } typedef fpos streampos; typedef fpos wstreampos; typedef fpos u16streampos; typedef fpos u32streampos; } # 43 "/usr/include/c++/4.5/bits/char_traits.h" 2 3 # 1 "/usr/include/c++/4.5/cwchar" 1 3 # 41 "/usr/include/c++/4.5/cwchar" 3 # 42 "/usr/include/c++/4.5/cwchar" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 45 "/usr/include/c++/4.5/cwchar" 2 3 # 1 "/usr/include/wchar.h" 1 3 4 # 48 "/usr/include/c++/4.5/cwchar" 2 3 # 44 "/usr/include/c++/4.5/bits/char_traits.h" 2 3 # 52 "/usr/include/c++/4.5/bits/char_traits.h" 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { # 64 "/usr/include/c++/4.5/bits/char_traits.h" 3 template struct _Char_types { typedef unsigned long int_type; typedef std::streampos pos_type; typedef std::streamoff off_type; typedef std::mbstate_t state_type; }; # 89 "/usr/include/c++/4.5/bits/char_traits.h" 3 template struct char_traits { typedef _CharT char_type; typedef typename _Char_types<_CharT>::int_type int_type; typedef typename _Char_types<_CharT>::pos_type pos_type; typedef typename _Char_types<_CharT>::off_type off_type; typedef typename _Char_types<_CharT>::state_type state_type; static void assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; } static bool eq(const char_type& __c1, const char_type& __c2) { return __c1 == __c2; } static bool lt(const char_type& __c1, const char_type& __c2) { return __c1 < __c2; } static int compare(const char_type* __s1, const char_type* __s2, std::size_t __n); static std::size_t length(const char_type* __s); static const char_type* find(const char_type* __s, std::size_t __n, const char_type& __a); static char_type* move(char_type* __s1, const char_type* __s2, std::size_t __n); static char_type* copy(char_type* __s1, const char_type* __s2, std::size_t __n); static char_type* assign(char_type* __s, std::size_t __n, char_type __a); static char_type to_char_type(const int_type& __c) { return static_cast(__c); } static int_type to_int_type(const char_type& __c) { return static_cast(__c); } static bool eq_int_type(const int_type& __c1, const int_type& __c2) { return __c1 == __c2; } static int_type eof() { return static_cast((-1)); } static int_type not_eof(const int_type& __c) { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } }; template int char_traits<_CharT>:: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) { for (std::size_t __i = 0; __i < __n; ++__i) if (lt(__s1[__i], __s2[__i])) return -1; else if (lt(__s2[__i], __s1[__i])) return 1; return 0; } template std::size_t char_traits<_CharT>:: length(const char_type* __p) { std::size_t __i = 0; while (!eq(__p[__i], char_type())) ++__i; return __i; } template const typename char_traits<_CharT>::char_type* char_traits<_CharT>:: find(const char_type* __s, std::size_t __n, const char_type& __a) { for (std::size_t __i = 0; __i < __n; ++__i) if (eq(__s[__i], __a)) return __s + __i; return 0; } template typename char_traits<_CharT>::char_type* char_traits<_CharT>:: move(char_type* __s1, const char_type* __s2, std::size_t __n) { return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, __n * sizeof(char_type))); } template typename char_traits<_CharT>::char_type* char_traits<_CharT>:: copy(char_type* __s1, const char_type* __s2, std::size_t __n) { std::copy(__s2, __s2 + __n, __s1); return __s1; } template typename char_traits<_CharT>::char_type* char_traits<_CharT>:: assign(char_type* __s, std::size_t __n, char_type __a) { std::fill_n(__s, __n, __a); return __s; } } namespace std __attribute__ ((__visibility__ ("default"))) { # 230 "/usr/include/c++/4.5/bits/char_traits.h" 3 template struct char_traits : public __gnu_cxx::char_traits<_CharT> { }; template<> struct char_traits { typedef char char_type; typedef int int_type; typedef streampos pos_type; typedef streamoff off_type; typedef mbstate_t state_type; static void assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; } static bool eq(const char_type& __c1, const char_type& __c2) { return __c1 == __c2; } static bool lt(const char_type& __c1, const char_type& __c2) { return __c1 < __c2; } static int compare(const char_type* __s1, const char_type* __s2, size_t __n) { return __builtin_memcmp(__s1, __s2, __n); } static size_t length(const char_type* __s) { return __builtin_strlen(__s); } static const char_type* find(const char_type* __s, size_t __n, const char_type& __a) { return static_cast(__builtin_memchr(__s, __a, __n)); } static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) { return static_cast(__builtin_memmove(__s1, __s2, __n)); } static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) { return static_cast(__builtin_memcpy(__s1, __s2, __n)); } static char_type* assign(char_type* __s, size_t __n, char_type __a) { return static_cast(__builtin_memset(__s, __a, __n)); } static char_type to_char_type(const int_type& __c) { return static_cast(__c); } static int_type to_int_type(const char_type& __c) { return static_cast(static_cast(__c)); } static bool eq_int_type(const int_type& __c1, const int_type& __c2) { return __c1 == __c2; } static int_type eof() { return static_cast((-1)); } static int_type not_eof(const int_type& __c) { return (__c == eof()) ? 0 : __c; } }; template<> struct char_traits { typedef wchar_t char_type; typedef wint_t int_type; typedef streamoff off_type; typedef wstreampos pos_type; typedef mbstate_t state_type; static void assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; } static bool eq(const char_type& __c1, const char_type& __c2) { return __c1 == __c2; } static bool lt(const char_type& __c1, const char_type& __c2) { return __c1 < __c2; } static int compare(const char_type* __s1, const char_type* __s2, size_t __n) { return wmemcmp(__s1, __s2, __n); } static size_t length(const char_type* __s) { return wcslen(__s); } static const char_type* find(const char_type* __s, size_t __n, const char_type& __a) { return wmemchr(__s, __a, __n); } static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) { return wmemmove(__s1, __s2, __n); } static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) { return wmemcpy(__s1, __s2, __n); } static char_type* assign(char_type* __s, size_t __n, char_type __a) { return wmemset(__s, __a, __n); } static char_type to_char_type(const int_type& __c) { return char_type(__c); } static int_type to_int_type(const char_type& __c) { return int_type(__c); } static bool eq_int_type(const int_type& __c1, const int_type& __c2) { return __c1 == __c2; } static int_type eof() { return static_cast((0xffffffffu)); } static int_type not_eof(const int_type& __c) { return eq_int_type(__c, eof()) ? 0 : __c; } }; } # 1 "/usr/include/c++/4.5/cstdint" 1 3 # 32 "/usr/include/c++/4.5/cstdint" 3 # 33 "/usr/include/c++/4.5/cstdint" 3 # 54 "/usr/include/c++/4.5/cstdint" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h" 1 3 4 # 1 "/usr/include/stdint.h" 1 3 4 # 28 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 29 "/usr/include/stdint.h" 2 3 4 # 49 "/usr/include/stdint.h" 3 4 typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; typedef unsigned long int uint64_t; # 66 "/usr/include/stdint.h" 3 4 typedef signed char int_least8_t; typedef short int int_least16_t; typedef int int_least32_t; typedef long int int_least64_t; typedef unsigned char uint_least8_t; typedef unsigned short int uint_least16_t; typedef unsigned int uint_least32_t; typedef unsigned long int uint_least64_t; # 91 "/usr/include/stdint.h" 3 4 typedef signed char int_fast8_t; typedef long int int_fast16_t; typedef long int int_fast32_t; typedef long int int_fast64_t; # 104 "/usr/include/stdint.h" 3 4 typedef unsigned char uint_fast8_t; typedef unsigned long int uint_fast16_t; typedef unsigned long int uint_fast32_t; typedef unsigned long int uint_fast64_t; # 123 "/usr/include/stdint.h" 3 4 typedef unsigned long int uintptr_t; # 135 "/usr/include/stdint.h" 3 4 typedef long int intmax_t; typedef unsigned long int uintmax_t; # 4 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h" 2 3 4 # 55 "/usr/include/c++/4.5/cstdint" 2 3 # 72 "/usr/include/c++/4.5/cstdint" 3 # 1 "/usr/include/c++/4.5/tr1_impl/cstdint" 1 3 # 32 "/usr/include/c++/4.5/tr1_impl/cstdint" 3 namespace std { using ::int8_t; using ::int16_t; using ::int32_t; using ::int64_t; using ::int_fast8_t; using ::int_fast16_t; using ::int_fast32_t; using ::int_fast64_t; using ::int_least8_t; using ::int_least16_t; using ::int_least32_t; using ::int_least64_t; using ::intmax_t; using ::intptr_t; using ::uint8_t; using ::uint16_t; using ::uint32_t; using ::uint64_t; using ::uint_fast8_t; using ::uint_fast16_t; using ::uint_fast32_t; using ::uint_fast64_t; using ::uint_least8_t; using ::uint_least16_t; using ::uint_least32_t; using ::uint_least64_t; using ::uintmax_t; using ::uintptr_t; } # 73 "/usr/include/c++/4.5/cstdint" 2 3 # 380 "/usr/include/c++/4.5/bits/char_traits.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { template<> struct char_traits { typedef char16_t char_type; typedef uint_least16_t int_type; typedef streamoff off_type; typedef u16streampos pos_type; typedef mbstate_t state_type; static void assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; } static bool eq(const char_type& __c1, const char_type& __c2) { return __c1 == __c2; } static bool lt(const char_type& __c1, const char_type& __c2) { return __c1 < __c2; } static int compare(const char_type* __s1, const char_type* __s2, size_t __n) { for (size_t __i = 0; __i < __n; ++__i) if (lt(__s1[__i], __s2[__i])) return -1; else if (lt(__s2[__i], __s1[__i])) return 1; return 0; } static size_t length(const char_type* __s) { size_t __i = 0; while (!eq(__s[__i], char_type())) ++__i; return __i; } static const char_type* find(const char_type* __s, size_t __n, const char_type& __a) { for (size_t __i = 0; __i < __n; ++__i) if (eq(__s[__i], __a)) return __s + __i; return 0; } static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) { return (static_cast (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); } static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) { return (static_cast (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); } static char_type* assign(char_type* __s, size_t __n, char_type __a) { for (size_t __i = 0; __i < __n; ++__i) assign(__s[__i], __a); return __s; } static char_type to_char_type(const int_type& __c) { return char_type(__c); } static int_type to_int_type(const char_type& __c) { return int_type(__c); } static bool eq_int_type(const int_type& __c1, const int_type& __c2) { return __c1 == __c2; } static int_type eof() { return static_cast(-1); } static int_type not_eof(const int_type& __c) { return eq_int_type(__c, eof()) ? 0 : __c; } }; template<> struct char_traits { typedef char32_t char_type; typedef uint_least32_t int_type; typedef streamoff off_type; typedef u32streampos pos_type; typedef mbstate_t state_type; static void assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; } static bool eq(const char_type& __c1, const char_type& __c2) { return __c1 == __c2; } static bool lt(const char_type& __c1, const char_type& __c2) { return __c1 < __c2; } static int compare(const char_type* __s1, const char_type* __s2, size_t __n) { for (size_t __i = 0; __i < __n; ++__i) if (lt(__s1[__i], __s2[__i])) return -1; else if (lt(__s2[__i], __s1[__i])) return 1; return 0; } static size_t length(const char_type* __s) { size_t __i = 0; while (!eq(__s[__i], char_type())) ++__i; return __i; } static const char_type* find(const char_type* __s, size_t __n, const char_type& __a) { for (size_t __i = 0; __i < __n; ++__i) if (eq(__s[__i], __a)) return __s + __i; return 0; } static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) { return (static_cast (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); } static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) { return (static_cast (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); } static char_type* assign(char_type* __s, size_t __n, char_type __a) { for (size_t __i = 0; __i < __n; ++__i) assign(__s[__i], __a); return __s; } static char_type to_char_type(const int_type& __c) { return char_type(__c); } static int_type to_int_type(const char_type& __c) { return int_type(__c); } static bool eq_int_type(const int_type& __c1, const int_type& __c2) { return __c1 == __c2; } static int_type eof() { return static_cast(-1); } static int_type not_eof(const int_type& __c) { return eq_int_type(__c, eof()) ? 0 : __c; } }; } # 43 "/usr/include/c++/4.5/string" 2 3 # 1 "/usr/include/c++/4.5/bits/allocator.h" 1 3 # 48 "/usr/include/c++/4.5/bits/allocator.h" 3 # 1 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h" 1 3 # 34 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h" 3 # 1 "/usr/include/c++/4.5/ext/new_allocator.h" 1 3 # 33 "/usr/include/c++/4.5/ext/new_allocator.h" 3 # 1 "/usr/include/c++/4.5/new" 1 3 # 39 "/usr/include/c++/4.5/new" 3 # 40 "/usr/include/c++/4.5/new" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 42 "/usr/include/c++/4.5/new" 2 3 # 1 "/usr/include/c++/4.5/exception" 1 3 # 35 "/usr/include/c++/4.5/exception" 3 # 36 "/usr/include/c++/4.5/exception" 3 #pragma GCC visibility push(default) extern "C++" { namespace std { # 61 "/usr/include/c++/4.5/exception" 3 class exception { public: exception() throw() { } virtual ~exception() throw(); virtual const char* what() const throw(); }; class bad_exception : public exception { public: bad_exception() throw() { } virtual ~bad_exception() throw(); virtual const char* what() const throw(); }; typedef void (*terminate_handler) (); typedef void (*unexpected_handler) (); terminate_handler set_terminate(terminate_handler) throw(); void terminate() throw() __attribute__ ((__noreturn__)); unexpected_handler set_unexpected(unexpected_handler) throw(); void unexpected() __attribute__ ((__noreturn__)); # 118 "/usr/include/c++/4.5/exception" 3 bool uncaught_exception() throw() __attribute__ ((__pure__)); } namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { # 141 "/usr/include/c++/4.5/exception" 3 void __verbose_terminate_handler(); } } #pragma GCC visibility pop # 1 "/usr/include/c++/4.5/exception_ptr.h" 1 3 # 34 "/usr/include/c++/4.5/exception_ptr.h" 3 #pragma GCC visibility push(default) # 43 "/usr/include/c++/4.5/exception_ptr.h" 3 extern "C++" { namespace std { namespace __exception_ptr { class exception_ptr; } using __exception_ptr::exception_ptr; exception_ptr current_exception() throw(); void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); namespace __exception_ptr { class exception_ptr { void* _M_exception_object; explicit exception_ptr(void* __e) throw(); void _M_addref() throw(); void _M_release() throw(); void *_M_get() const throw() __attribute__ ((__pure__)); void _M_safe_bool_dummy() throw() __attribute__ ((__const__)); friend exception_ptr std::current_exception() throw(); friend void std::rethrow_exception(exception_ptr); public: exception_ptr() throw(); typedef void (exception_ptr::*__safe_bool)(); exception_ptr(__safe_bool) throw(); exception_ptr(const exception_ptr&) throw(); exception_ptr(exception_ptr&& __o) throw() : _M_exception_object(__o._M_exception_object) { __o._M_exception_object = 0; } exception_ptr& operator=(const exception_ptr&) throw(); exception_ptr& operator=(exception_ptr&& __o) throw() { exception_ptr(static_cast(__o)).swap(*this); return *this; } ~exception_ptr() throw(); void swap(exception_ptr&) throw(); friend bool operator==(const exception_ptr&, const exception_ptr&) throw() __attribute__ ((__pure__)); const type_info* __cxa_exception_type() const throw() __attribute__ ((__pure__)); }; bool operator==(const exception_ptr&, const exception_ptr&) throw() __attribute__ ((__pure__)); bool operator!=(const exception_ptr&, const exception_ptr&) throw() __attribute__ ((__pure__)); } template exception_ptr copy_exception(_Ex __ex) throw() { try { throw __ex; } catch(...) { return current_exception(); } } } } #pragma GCC visibility pop # 152 "/usr/include/c++/4.5/exception" 2 3 # 1 "/usr/include/c++/4.5/nested_exception.h" 1 3 # 33 "/usr/include/c++/4.5/nested_exception.h" 3 #pragma GCC visibility push(default) # 45 "/usr/include/c++/4.5/nested_exception.h" 3 extern "C++" { namespace std { class nested_exception { exception_ptr _M_ptr; public: nested_exception() throw() : _M_ptr(current_exception()) { } nested_exception(const nested_exception&) = default; nested_exception& operator=(const nested_exception&) = default; inline virtual ~nested_exception(); void rethrow_nested() const __attribute__ ((__noreturn__)) { rethrow_exception(_M_ptr); } exception_ptr nested_ptr() const { return _M_ptr; } }; inline nested_exception::~nested_exception() = default; template struct _Nested_exception : public _Except, public nested_exception { explicit _Nested_exception(_Except&& __ex) : _Except(static_cast<_Except&&>(__ex)) { } }; template struct __get_nested_helper { static const nested_exception* _S_get(const _Ex& __ex) { return dynamic_cast(&__ex); } }; template struct __get_nested_helper<_Ex*> { static const nested_exception* _S_get(const _Ex* __ex) { return dynamic_cast(__ex); } }; template inline const nested_exception* __get_nested_exception(const _Ex& __ex) { return __get_nested_helper<_Ex>::_S_get(__ex); } template void __throw_with_nested(_Ex&&, const nested_exception* = 0) __attribute__ ((__noreturn__)); template void __throw_with_nested(_Ex&&, ...) __attribute__ ((__noreturn__)); template inline void __throw_with_nested(_Ex&& __ex, const nested_exception* = 0) { throw __ex; } template inline void __throw_with_nested(_Ex&& __ex, ...) { throw _Nested_exception<_Ex>(static_cast<_Ex&&>(__ex)); } template void throw_with_nested(_Ex __ex) __attribute__ ((__noreturn__)); template inline void throw_with_nested(_Ex __ex) { if (__get_nested_exception(__ex)) throw __ex; __throw_with_nested(static_cast<_Ex&&>(__ex), &__ex); } template inline void rethrow_if_nested(const _Ex& __ex) { if (const nested_exception* __nested = __get_nested_exception(__ex)) __nested->rethrow_nested(); } inline void rethrow_if_nested(const nested_exception& __ex) { __ex.rethrow_nested(); } } } #pragma GCC visibility pop # 153 "/usr/include/c++/4.5/exception" 2 3 # 43 "/usr/include/c++/4.5/new" 2 3 #pragma GCC visibility push(default) extern "C++" { namespace std { class bad_alloc : public exception { public: bad_alloc() throw() { } virtual ~bad_alloc() throw(); virtual const char* what() const throw(); }; struct nothrow_t { }; extern const nothrow_t nothrow; typedef void (*new_handler)(); new_handler set_new_handler(new_handler) throw(); } # 93 "/usr/include/c++/4.5/new" 3 void* operator new(std::size_t) throw (std::bad_alloc); void* operator new[](std::size_t) throw (std::bad_alloc); void operator delete(void*) throw(); void operator delete[](void*) throw(); void* operator new(std::size_t, const std::nothrow_t&) throw(); void* operator new[](std::size_t, const std::nothrow_t&) throw(); void operator delete(void*, const std::nothrow_t&) throw(); void operator delete[](void*, const std::nothrow_t&) throw(); inline void* operator new(std::size_t, void* __p) throw() { return __p; } inline void* operator new[](std::size_t, void* __p) throw() { return __p; } inline void operator delete (void*, void*) throw() { } inline void operator delete[](void*, void*) throw() { } } #pragma GCC visibility pop # 34 "/usr/include/c++/4.5/ext/new_allocator.h" 2 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { using std::size_t; using std::ptrdiff_t; # 50 "/usr/include/c++/4.5/ext/new_allocator.h" 3 template class new_allocator { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } pointer address(reference __x) const { return &__x; } const_pointer address(const_reference __x) const { return &__x; } pointer allocate(size_type __n, const void* = 0) { if (__n > this->max_size()) std::__throw_bad_alloc(); return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); } void deallocate(pointer __p, size_type) { ::operator delete(__p); } size_type max_size() const throw() { return size_t(-1) / sizeof(_Tp); } void construct(pointer __p, const _Tp& __val) { ::new((void *)__p) _Tp(__val); } template void construct(pointer __p, _Args&&... __args) { ::new((void *)__p) _Tp(std::forward<_Args>(__args)...); } void destroy(pointer __p) { __p->~_Tp(); } }; template inline bool operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&) { return true; } template inline bool operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&) { return false; } } # 35 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h" 2 3 # 49 "/usr/include/c++/4.5/bits/allocator.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 59 "/usr/include/c++/4.5/bits/allocator.h" 3 template class allocator; template<> class allocator { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef void* pointer; typedef const void* const_pointer; typedef void value_type; template struct rebind { typedef allocator<_Tp1> other; }; }; # 85 "/usr/include/c++/4.5/bits/allocator.h" 3 template class allocator: public __gnu_cxx::new_allocator<_Tp> { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; template struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() { } allocator(const allocator& __a) throw() : __gnu_cxx::new_allocator<_Tp>(__a) { } template allocator(const allocator<_Tp1>&) throw() { } ~allocator() throw() { } }; template inline bool operator==(const allocator<_T1>&, const allocator<_T2>&) { return true; } template inline bool operator==(const allocator<_Tp>&, const allocator<_Tp>&) { return true; } template inline bool operator!=(const allocator<_T1>&, const allocator<_T2>&) { return false; } template inline bool operator!=(const allocator<_Tp>&, const allocator<_Tp>&) { return false; } extern template class allocator; extern template class allocator; template struct __alloc_swap { static void _S_do_it(_Alloc&, _Alloc&) { } }; template struct __alloc_swap<_Alloc, false> { static void _S_do_it(_Alloc& __one, _Alloc& __two) { if (__one != __two) swap(__one, __two); } }; template struct __alloc_neq { static bool _S_do_it(const _Alloc&, const _Alloc&) { return false; } }; template struct __alloc_neq<_Alloc, false> { static bool _S_do_it(const _Alloc& __one, const _Alloc& __two) { return __one != __two; } }; # 186 "/usr/include/c++/4.5/bits/allocator.h" 3 template struct __shrink_to_fit { static void _S_do_it(_Tp&) { } }; template struct __shrink_to_fit<_Tp, true> { static void _S_do_it(_Tp& __v) { try { _Tp(__v).swap(__v); } catch(...) { } } }; } # 44 "/usr/include/c++/4.5/string" 2 3 # 1 "/usr/include/c++/4.5/bits/localefwd.h" 1 3 # 39 "/usr/include/c++/4.5/bits/localefwd.h" 3 # 40 "/usr/include/c++/4.5/bits/localefwd.h" 3 # 1 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h" 1 3 # 40 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h" 3 # 41 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h" 3 # 1 "/usr/include/c++/4.5/clocale" 1 3 # 41 "/usr/include/c++/4.5/clocale" 3 # 42 "/usr/include/c++/4.5/clocale" 3 # 1 "/usr/include/locale.h" 1 3 4 # 29 "/usr/include/locale.h" 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 30 "/usr/include/locale.h" 2 3 4 # 1 "/usr/include/bits/locale.h" 1 3 4 # 27 "/usr/include/bits/locale.h" 3 4 enum { __LC_CTYPE = 0, __LC_NUMERIC = 1, __LC_TIME = 2, __LC_COLLATE = 3, __LC_MONETARY = 4, __LC_MESSAGES = 5, __LC_ALL = 6, __LC_PAPER = 7, __LC_NAME = 8, __LC_ADDRESS = 9, __LC_TELEPHONE = 10, __LC_MEASUREMENT = 11, __LC_IDENTIFICATION = 12 }; # 31 "/usr/include/locale.h" 2 3 4 extern "C" { # 51 "/usr/include/locale.h" 3 4 struct lconv { char *decimal_point; char *thousands_sep; char *grouping; char *int_curr_symbol; char *currency_symbol; char *mon_decimal_point; char *mon_thousands_sep; char *mon_grouping; char *positive_sign; char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; char p_sign_posn; char n_sign_posn; char int_p_cs_precedes; char int_p_sep_by_space; char int_n_cs_precedes; char int_n_sep_by_space; char int_p_sign_posn; char int_n_sign_posn; # 121 "/usr/include/locale.h" 3 4 }; extern char *setlocale (int __category, __const char *__locale) throw (); extern struct lconv *localeconv (void) throw (); # 152 "/usr/include/locale.h" 3 4 extern __locale_t newlocale (int __category_mask, __const char *__locale, __locale_t __base) throw (); # 187 "/usr/include/locale.h" 3 4 extern __locale_t duplocale (__locale_t __dataset) throw (); extern void freelocale (__locale_t __dataset) throw (); extern __locale_t uselocale (__locale_t __dataset) throw (); } # 45 "/usr/include/c++/4.5/clocale" 2 3 # 53 "/usr/include/c++/4.5/clocale" 3 namespace std __attribute__ ((__visibility__ ("default"))) { using ::lconv; using ::setlocale; using ::localeconv; } # 43 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h" 2 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 44 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h" 2 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { extern "C" __typeof(uselocale) __uselocale; } namespace std __attribute__ ((__visibility__ ("default"))) { typedef __locale_t __c_locale; inline int __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), char* __out, const int __size __attribute__ ((__unused__)), const char* __fmt, ...) { __c_locale __old = __gnu_cxx::__uselocale(__cloc); # 85 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h" 3 __builtin_va_list __args; __builtin_va_start(__args, __fmt); const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); __builtin_va_end(__args); __gnu_cxx::__uselocale(__old); return __ret; } } # 43 "/usr/include/c++/4.5/bits/localefwd.h" 2 3 # 1 "/usr/include/c++/4.5/iosfwd" 1 3 # 38 "/usr/include/c++/4.5/iosfwd" 3 # 39 "/usr/include/c++/4.5/iosfwd" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 74 "/usr/include/c++/4.5/iosfwd" 3 class ios_base; template > class basic_ios; template > class basic_streambuf; template > class basic_istream; template > class basic_ostream; template > class basic_iostream; template, typename _Alloc = allocator<_CharT> > class basic_stringbuf; template, typename _Alloc = allocator<_CharT> > class basic_istringstream; template, typename _Alloc = allocator<_CharT> > class basic_ostringstream; template, typename _Alloc = allocator<_CharT> > class basic_stringstream; template > class basic_filebuf; template > class basic_ifstream; template > class basic_ofstream; template > class basic_fstream; template > class istreambuf_iterator; template > class ostreambuf_iterator; typedef basic_ios ios; typedef basic_streambuf streambuf; typedef basic_istream istream; typedef basic_ostream ostream; typedef basic_iostream iostream; typedef basic_stringbuf stringbuf; typedef basic_istringstream istringstream; typedef basic_ostringstream ostringstream; typedef basic_stringstream stringstream; typedef basic_filebuf filebuf; typedef basic_ifstream ifstream; typedef basic_ofstream ofstream; typedef basic_fstream fstream; typedef basic_ios wios; typedef basic_streambuf wstreambuf; typedef basic_istream wistream; typedef basic_ostream wostream; typedef basic_iostream wiostream; typedef basic_stringbuf wstringbuf; typedef basic_istringstream wistringstream; typedef basic_ostringstream wostringstream; typedef basic_stringstream wstringstream; typedef basic_filebuf wfilebuf; typedef basic_ifstream wifstream; typedef basic_ofstream wofstream; typedef basic_fstream wfstream; } # 44 "/usr/include/c++/4.5/bits/localefwd.h" 2 3 # 1 "/usr/include/c++/4.5/cctype" 1 3 # 41 "/usr/include/c++/4.5/cctype" 3 # 42 "/usr/include/c++/4.5/cctype" 3 # 1 "/usr/include/ctype.h" 1 3 4 # 30 "/usr/include/ctype.h" 3 4 extern "C" { # 48 "/usr/include/ctype.h" 3 4 enum { _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) }; # 81 "/usr/include/ctype.h" 3 4 extern __const unsigned short int **__ctype_b_loc (void) throw () __attribute__ ((__const)); extern __const __int32_t **__ctype_tolower_loc (void) throw () __attribute__ ((__const)); extern __const __int32_t **__ctype_toupper_loc (void) throw () __attribute__ ((__const)); # 96 "/usr/include/ctype.h" 3 4 extern int isalnum (int) throw (); extern int isalpha (int) throw (); extern int iscntrl (int) throw (); extern int isdigit (int) throw (); extern int islower (int) throw (); extern int isgraph (int) throw (); extern int isprint (int) throw (); extern int ispunct (int) throw (); extern int isspace (int) throw (); extern int isupper (int) throw (); extern int isxdigit (int) throw (); extern int tolower (int __c) throw (); extern int toupper (int __c) throw (); extern int isblank (int) throw (); extern int isctype (int __c, int __mask) throw (); extern int isascii (int __c) throw (); extern int toascii (int __c) throw (); extern int _toupper (int) throw (); extern int _tolower (int) throw (); # 247 "/usr/include/ctype.h" 3 4 extern int isalnum_l (int, __locale_t) throw (); extern int isalpha_l (int, __locale_t) throw (); extern int iscntrl_l (int, __locale_t) throw (); extern int isdigit_l (int, __locale_t) throw (); extern int islower_l (int, __locale_t) throw (); extern int isgraph_l (int, __locale_t) throw (); extern int isprint_l (int, __locale_t) throw (); extern int ispunct_l (int, __locale_t) throw (); extern int isspace_l (int, __locale_t) throw (); extern int isupper_l (int, __locale_t) throw (); extern int isxdigit_l (int, __locale_t) throw (); extern int isblank_l (int, __locale_t) throw (); extern int __tolower_l (int __c, __locale_t __l) throw (); extern int tolower_l (int __c, __locale_t __l) throw (); extern int __toupper_l (int __c, __locale_t __l) throw (); extern int toupper_l (int __c, __locale_t __l) throw (); # 323 "/usr/include/ctype.h" 3 4 } # 45 "/usr/include/c++/4.5/cctype" 2 3 # 64 "/usr/include/c++/4.5/cctype" 3 namespace std __attribute__ ((__visibility__ ("default"))) { using ::isalnum; using ::isalpha; using ::iscntrl; using ::isdigit; using ::isgraph; using ::islower; using ::isprint; using ::ispunct; using ::isspace; using ::isupper; using ::isxdigit; using ::tolower; using ::toupper; } # 93 "/usr/include/c++/4.5/cctype" 3 # 1 "/usr/include/c++/4.5/tr1_impl/cctype" 1 3 # 34 "/usr/include/c++/4.5/tr1_impl/cctype" 3 namespace std { using ::isblank; } # 94 "/usr/include/c++/4.5/cctype" 2 3 # 45 "/usr/include/c++/4.5/bits/localefwd.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 55 "/usr/include/c++/4.5/bits/localefwd.h" 3 class locale; template bool has_facet(const locale&) throw(); template const _Facet& use_facet(const locale&); template bool isspace(_CharT, const locale&); template bool isprint(_CharT, const locale&); template bool iscntrl(_CharT, const locale&); template bool isupper(_CharT, const locale&); template bool islower(_CharT, const locale&); template bool isalpha(_CharT, const locale&); template bool isdigit(_CharT, const locale&); template bool ispunct(_CharT, const locale&); template bool isxdigit(_CharT, const locale&); template bool isalnum(_CharT, const locale&); template bool isgraph(_CharT, const locale&); template _CharT toupper(_CharT, const locale&); template _CharT tolower(_CharT, const locale&); class ctype_base; template class ctype; template<> class ctype; template<> class ctype; template class ctype_byname; class codecvt_base; template class codecvt; template<> class codecvt; template<> class codecvt; template class codecvt_byname; template > class num_get; template > class num_put; template class numpunct; template class numpunct_byname; template class collate; template class collate_byname; class time_base; template > class time_get; template > class time_get_byname; template > class time_put; template > class time_put_byname; class money_base; template > class money_get; template > class money_put; template class moneypunct; template class moneypunct_byname; class messages_base; template class messages; template class messages_byname; } # 46 "/usr/include/c++/4.5/string" 2 3 # 1 "/usr/include/c++/4.5/bits/ostream_insert.h" 1 3 # 33 "/usr/include/c++/4.5/bits/ostream_insert.h" 3 # 34 "/usr/include/c++/4.5/bits/ostream_insert.h" 3 # 1 "/usr/include/c++/4.5/cxxabi-forced.h" 1 3 # 33 "/usr/include/c++/4.5/cxxabi-forced.h" 3 # 34 "/usr/include/c++/4.5/cxxabi-forced.h" 3 #pragma GCC visibility push(default) namespace __cxxabiv1 { class __forced_unwind { virtual ~__forced_unwind() throw(); virtual void __pure_dummy() = 0; }; } #pragma GCC visibility pop # 37 "/usr/include/c++/4.5/bits/ostream_insert.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { template inline void __ostream_write(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s, streamsize __n) { typedef basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const streamsize __put = __out.rdbuf()->sputn(__s, __n); if (__put != __n) __out.setstate(__ios_base::badbit); } template inline void __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) { typedef basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const _CharT __c = __out.fill(); for (; __n > 0; --__n) { const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); if (_Traits::eq_int_type(__put, _Traits::eof())) { __out.setstate(__ios_base::badbit); break; } } } template basic_ostream<_CharT, _Traits>& __ostream_insert(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s, streamsize __n) { typedef basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; typename __ostream_type::sentry __cerb(__out); if (__cerb) { try { const streamsize __w = __out.width(); if (__w > __n) { const bool __left = ((__out.flags() & __ios_base::adjustfield) == __ios_base::left); if (!__left) __ostream_fill(__out, __w - __n); if (__out.good()) __ostream_write(__out, __s, __n); if (__left && __out.good()) __ostream_fill(__out, __w - __n); } else __ostream_write(__out, __s, __n); __out.width(0); } catch(__cxxabiv1::__forced_unwind&) { __out._M_setstate(__ios_base::badbit); throw; } catch(...) { __out._M_setstate(__ios_base::badbit); } } return __out; } extern template ostream& __ostream_insert(ostream&, const char*, streamsize); extern template wostream& __ostream_insert(wostream&, const wchar_t*, streamsize); } # 47 "/usr/include/c++/4.5/string" 2 3 # 1 "/usr/include/c++/4.5/bits/stl_function.h" 1 3 # 60 "/usr/include/c++/4.5/bits/stl_function.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 99 "/usr/include/c++/4.5/bits/stl_function.h" 3 template struct unary_function { typedef _Arg argument_type; typedef _Result result_type; }; template struct binary_function { typedef _Arg1 first_argument_type; typedef _Arg2 second_argument_type; typedef _Result result_type; }; # 134 "/usr/include/c++/4.5/bits/stl_function.h" 3 template struct plus : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x + __y; } }; template struct minus : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x - __y; } }; template struct multiplies : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x * __y; } }; template struct divides : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x / __y; } }; template struct modulus : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x % __y; } }; template struct negate : public unary_function<_Tp, _Tp> { _Tp operator()(const _Tp& __x) const { return -__x; } }; # 198 "/usr/include/c++/4.5/bits/stl_function.h" 3 template struct equal_to : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x == __y; } }; template struct not_equal_to : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x != __y; } }; template struct greater : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x > __y; } }; template struct less : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < __y; } }; template struct greater_equal : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x >= __y; } }; template struct less_equal : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x <= __y; } }; # 262 "/usr/include/c++/4.5/bits/stl_function.h" 3 template struct logical_and : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x && __y; } }; template struct logical_or : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x || __y; } }; template struct logical_not : public unary_function<_Tp, bool> { bool operator()(const _Tp& __x) const { return !__x; } }; template struct bit_and : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x & __y; } }; template struct bit_or : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x | __y; } }; template struct bit_xor : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x ^ __y; } }; # 345 "/usr/include/c++/4.5/bits/stl_function.h" 3 template class unary_negate : public unary_function { protected: _Predicate _M_pred; public: explicit unary_negate(const _Predicate& __x) : _M_pred(__x) { } bool operator()(const typename _Predicate::argument_type& __x) const { return !_M_pred(__x); } }; template inline unary_negate<_Predicate> not1(const _Predicate& __pred) { return unary_negate<_Predicate>(__pred); } template class binary_negate : public binary_function { protected: _Predicate _M_pred; public: explicit binary_negate(const _Predicate& __x) : _M_pred(__x) { } bool operator()(const typename _Predicate::first_argument_type& __x, const typename _Predicate::second_argument_type& __y) const { return !_M_pred(__x, __y); } }; template inline binary_negate<_Predicate> not2(const _Predicate& __pred) { return binary_negate<_Predicate>(__pred); } # 416 "/usr/include/c++/4.5/bits/stl_function.h" 3 template class pointer_to_unary_function : public unary_function<_Arg, _Result> { protected: _Result (*_M_ptr)(_Arg); public: pointer_to_unary_function() { } explicit pointer_to_unary_function(_Result (*__x)(_Arg)) : _M_ptr(__x) { } _Result operator()(_Arg __x) const { return _M_ptr(__x); } }; template inline pointer_to_unary_function<_Arg, _Result> ptr_fun(_Result (*__x)(_Arg)) { return pointer_to_unary_function<_Arg, _Result>(__x); } template class pointer_to_binary_function : public binary_function<_Arg1, _Arg2, _Result> { protected: _Result (*_M_ptr)(_Arg1, _Arg2); public: pointer_to_binary_function() { } explicit pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) : _M_ptr(__x) { } _Result operator()(_Arg1 __x, _Arg2 __y) const { return _M_ptr(__x, __y); } }; template inline pointer_to_binary_function<_Arg1, _Arg2, _Result> ptr_fun(_Result (*__x)(_Arg1, _Arg2)) { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } template struct _Identity : public unary_function<_Tp,_Tp> { _Tp& operator()(_Tp& __x) const { return __x; } const _Tp& operator()(const _Tp& __x) const { return __x; } }; template struct _Select1st : public unary_function<_Pair, typename _Pair::first_type> { typename _Pair::first_type& operator()(_Pair& __x) const { return __x.first; } const typename _Pair::first_type& operator()(const _Pair& __x) const { return __x.first; } }; template struct _Select2nd : public unary_function<_Pair, typename _Pair::second_type> { typename _Pair::second_type& operator()(_Pair& __x) const { return __x.second; } const typename _Pair::second_type& operator()(const _Pair& __x) const { return __x.second; } }; # 523 "/usr/include/c++/4.5/bits/stl_function.h" 3 template class mem_fun_t : public unary_function<_Tp*, _Ret> { public: explicit mem_fun_t(_Ret (_Tp::*__pf)()) : _M_f(__pf) { } _Ret operator()(_Tp* __p) const { return (__p->*_M_f)(); } private: _Ret (_Tp::*_M_f)(); }; template class const_mem_fun_t : public unary_function { public: explicit const_mem_fun_t(_Ret (_Tp::*__pf)() const) : _M_f(__pf) { } _Ret operator()(const _Tp* __p) const { return (__p->*_M_f)(); } private: _Ret (_Tp::*_M_f)() const; }; template class mem_fun_ref_t : public unary_function<_Tp, _Ret> { public: explicit mem_fun_ref_t(_Ret (_Tp::*__pf)()) : _M_f(__pf) { } _Ret operator()(_Tp& __r) const { return (__r.*_M_f)(); } private: _Ret (_Tp::*_M_f)(); }; template class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> { public: explicit const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) : _M_f(__pf) { } _Ret operator()(const _Tp& __r) const { return (__r.*_M_f)(); } private: _Ret (_Tp::*_M_f)() const; }; template class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> { public: explicit mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) : _M_f(__pf) { } _Ret operator()(_Tp* __p, _Arg __x) const { return (__p->*_M_f)(__x); } private: _Ret (_Tp::*_M_f)(_Arg); }; template class const_mem_fun1_t : public binary_function { public: explicit const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) : _M_f(__pf) { } _Ret operator()(const _Tp* __p, _Arg __x) const { return (__p->*_M_f)(__x); } private: _Ret (_Tp::*_M_f)(_Arg) const; }; template class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> { public: explicit mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) : _M_f(__pf) { } _Ret operator()(_Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); } private: _Ret (_Tp::*_M_f)(_Arg); }; template class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> { public: explicit const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) : _M_f(__pf) { } _Ret operator()(const _Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); } private: _Ret (_Tp::*_M_f)(_Arg) const; }; template inline mem_fun_t<_Ret, _Tp> mem_fun(_Ret (_Tp::*__f)()) { return mem_fun_t<_Ret, _Tp>(__f); } template inline const_mem_fun_t<_Ret, _Tp> mem_fun(_Ret (_Tp::*__f)() const) { return const_mem_fun_t<_Ret, _Tp>(__f); } template inline mem_fun_ref_t<_Ret, _Tp> mem_fun_ref(_Ret (_Tp::*__f)()) { return mem_fun_ref_t<_Ret, _Tp>(__f); } template inline const_mem_fun_ref_t<_Ret, _Tp> mem_fun_ref(_Ret (_Tp::*__f)() const) { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } template inline mem_fun1_t<_Ret, _Tp, _Arg> mem_fun(_Ret (_Tp::*__f)(_Arg)) { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } template inline const_mem_fun1_t<_Ret, _Tp, _Arg> mem_fun(_Ret (_Tp::*__f)(_Arg) const) { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } template inline mem_fun1_ref_t<_Ret, _Tp, _Arg> mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } template inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } } # 1 "/usr/include/c++/4.5/backward/binders.h" 1 3 # 60 "/usr/include/c++/4.5/backward/binders.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 97 "/usr/include/c++/4.5/backward/binders.h" 3 template class binder1st : public unary_function { protected: _Operation op; typename _Operation::first_argument_type value; public: binder1st(const _Operation& __x, const typename _Operation::first_argument_type& __y) : op(__x), value(__y) { } typename _Operation::result_type operator()(const typename _Operation::second_argument_type& __x) const { return op(value, __x); } typename _Operation::result_type operator()(typename _Operation::second_argument_type& __x) const { return op(value, __x); } } __attribute__ ((__deprecated__)); template inline binder1st<_Operation> bind1st(const _Operation& __fn, const _Tp& __x) { typedef typename _Operation::first_argument_type _Arg1_type; return binder1st<_Operation>(__fn, _Arg1_type(__x)); } template class binder2nd : public unary_function { protected: _Operation op; typename _Operation::second_argument_type value; public: binder2nd(const _Operation& __x, const typename _Operation::second_argument_type& __y) : op(__x), value(__y) { } typename _Operation::result_type operator()(const typename _Operation::first_argument_type& __x) const { return op(__x, value); } typename _Operation::result_type operator()(typename _Operation::first_argument_type& __x) const { return op(__x, value); } } __attribute__ ((__deprecated__)); template inline binder2nd<_Operation> bind2nd(const _Operation& __fn, const _Tp& __x) { typedef typename _Operation::second_argument_type _Arg2_type; return binder2nd<_Operation>(__fn, _Arg2_type(__x)); } } # 713 "/usr/include/c++/4.5/bits/stl_function.h" 2 3 # 51 "/usr/include/c++/4.5/string" 2 3 # 1 "/usr/include/c++/4.5/bits/basic_string.h" 1 3 # 39 "/usr/include/c++/4.5/bits/basic_string.h" 3 # 40 "/usr/include/c++/4.5/bits/basic_string.h" 3 # 1 "/usr/include/c++/4.5/ext/atomicity.h" 1 3 # 34 "/usr/include/c++/4.5/ext/atomicity.h" 3 # 1 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h" 1 3 # 30 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h" 3 #pragma GCC visibility push(default) # 162 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h" 3 # 1 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h" 1 3 # 41 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h" 3 # 1 "/usr/include/pthread.h" 1 3 4 # 25 "/usr/include/pthread.h" 3 4 # 1 "/usr/include/sched.h" 1 3 4 # 30 "/usr/include/sched.h" 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 31 "/usr/include/sched.h" 2 3 4 # 43 "/usr/include/sched.h" 3 4 # 1 "/usr/include/bits/sched.h" 1 3 4 # 74 "/usr/include/bits/sched.h" 3 4 struct sched_param { int __sched_priority; }; extern "C" { extern int clone (int (*__fn) (void *__arg), void *__child_stack, int __flags, void *__arg, ...) throw (); extern int unshare (int __flags) throw (); extern int sched_getcpu (void) throw (); } struct __sched_param { int __sched_priority; }; # 116 "/usr/include/bits/sched.h" 3 4 typedef unsigned long int __cpu_mask; typedef struct { __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; } cpu_set_t; # 199 "/usr/include/bits/sched.h" 3 4 extern "C" { extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) throw (); extern cpu_set_t *__sched_cpualloc (size_t __count) throw () ; extern void __sched_cpufree (cpu_set_t *__set) throw (); } # 44 "/usr/include/sched.h" 2 3 4 extern "C" { extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param) throw (); extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); extern int sched_setscheduler (__pid_t __pid, int __policy, __const struct sched_param *__param) throw (); extern int sched_getscheduler (__pid_t __pid) throw (); extern int sched_yield (void) throw (); extern int sched_get_priority_max (int __algorithm) throw (); extern int sched_get_priority_min (int __algorithm) throw (); extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); # 118 "/usr/include/sched.h" 3 4 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, __const cpu_set_t *__cpuset) throw (); extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, cpu_set_t *__cpuset) throw (); } # 26 "/usr/include/pthread.h" 2 3 4 # 1 "/usr/include/bits/setjmp.h" 1 3 4 # 27 "/usr/include/bits/setjmp.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 28 "/usr/include/bits/setjmp.h" 2 3 4 typedef long int __jmp_buf[8]; # 30 "/usr/include/pthread.h" 2 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 31 "/usr/include/pthread.h" 2 3 4 enum { PTHREAD_CREATE_JOINABLE, PTHREAD_CREATE_DETACHED }; enum { PTHREAD_MUTEX_TIMED_NP, PTHREAD_MUTEX_RECURSIVE_NP, PTHREAD_MUTEX_ERRORCHECK_NP, PTHREAD_MUTEX_ADAPTIVE_NP , PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP }; enum { PTHREAD_MUTEX_STALLED, PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, PTHREAD_MUTEX_ROBUST, PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST }; enum { PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, PTHREAD_PRIO_PROTECT }; # 115 "/usr/include/pthread.h" 3 4 enum { PTHREAD_RWLOCK_PREFER_READER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP }; # 147 "/usr/include/pthread.h" 3 4 enum { PTHREAD_INHERIT_SCHED, PTHREAD_EXPLICIT_SCHED }; enum { PTHREAD_SCOPE_SYSTEM, PTHREAD_SCOPE_PROCESS }; enum { PTHREAD_PROCESS_PRIVATE, PTHREAD_PROCESS_SHARED }; # 182 "/usr/include/pthread.h" 3 4 struct _pthread_cleanup_buffer { void (*__routine) (void *); void *__arg; int __canceltype; struct _pthread_cleanup_buffer *__prev; }; enum { PTHREAD_CANCEL_ENABLE, PTHREAD_CANCEL_DISABLE }; enum { PTHREAD_CANCEL_DEFERRED, PTHREAD_CANCEL_ASYNCHRONOUS }; # 220 "/usr/include/pthread.h" 3 4 extern "C" { extern int pthread_create (pthread_t *__restrict __newthread, __const pthread_attr_t *__restrict __attr, void *(*__start_routine) (void *), void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); extern int pthread_join (pthread_t __th, void **__thread_return); extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, __const struct timespec *__abstime); extern int pthread_detach (pthread_t __th) throw (); extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw (); extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_destroy (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr, int *__detachstate) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, int __detachstate) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr, size_t *__guardsize) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setguardsize (pthread_attr_t *__attr, size_t __guardsize) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict __attr, struct sched_param *__restrict __param) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, __const struct sched_param *__restrict __param) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict __attr, int *__restrict __policy) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict __attr, int *__restrict __inherit) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, int __inherit) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr, int *__restrict __scope) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr) throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, void *__stackaddr) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict __attr, size_t *__restrict __stacksize) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setstacksize (pthread_attr_t *__attr, size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr, size_t *__restrict __stacksize) throw () __attribute__ ((__nonnull__ (1, 2, 3))); extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, size_t __cpusetsize, __const cpu_set_t *__cpuset) throw () __attribute__ ((__nonnull__ (1, 3))); extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr, size_t __cpusetsize, cpu_set_t *__cpuset) throw () __attribute__ ((__nonnull__ (1, 3))); extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (2))); extern int pthread_setschedparam (pthread_t __target_thread, int __policy, __const struct sched_param *__param) throw () __attribute__ ((__nonnull__ (3))); extern int pthread_getschedparam (pthread_t __target_thread, int *__restrict __policy, struct sched_param *__restrict __param) throw () __attribute__ ((__nonnull__ (2, 3))); extern int pthread_setschedprio (pthread_t __target_thread, int __prio) throw (); extern int pthread_getname_np (pthread_t __target_thread, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))); extern int pthread_setname_np (pthread_t __target_thread, __const char *__name) throw () __attribute__ ((__nonnull__ (2))); extern int pthread_getconcurrency (void) throw (); extern int pthread_setconcurrency (int __level) throw (); extern int pthread_yield (void) throw (); extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, __const cpu_set_t *__cpuset) throw () __attribute__ ((__nonnull__ (3))); extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, cpu_set_t *__cpuset) throw () __attribute__ ((__nonnull__ (3))); # 478 "/usr/include/pthread.h" 3 4 extern int pthread_once (pthread_once_t *__once_control, void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); # 490 "/usr/include/pthread.h" 3 4 extern int pthread_setcancelstate (int __state, int *__oldstate); extern int pthread_setcanceltype (int __type, int *__oldtype); extern int pthread_cancel (pthread_t __th); extern void pthread_testcancel (void); typedef struct { struct { __jmp_buf __cancel_jmp_buf; int __mask_was_saved; } __cancel_jmp_buf[1]; void *__pad[4]; } __pthread_unwind_buf_t __attribute__ ((__aligned__)); # 524 "/usr/include/pthread.h" 3 4 struct __pthread_cleanup_frame { void (*__cancel_routine) (void *); void *__cancel_arg; int __do_it; int __cancel_type; }; class __pthread_cleanup_class { void (*__cancel_routine) (void *); void *__cancel_arg; int __do_it; int __cancel_type; public: __pthread_cleanup_class (void (*__fct) (void *), void *__arg) : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } void __setdoit (int __newval) { __do_it = __newval; } void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &__cancel_type); } void __restore () const { pthread_setcanceltype (__cancel_type, 0); } }; # 726 "/usr/include/pthread.h" 3 4 struct __jmp_buf_tag; extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); extern int pthread_mutex_init (pthread_mutex_t *__mutex, __const pthread_mutexattr_t *__mutexattr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_lock (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_getprioceiling (__const pthread_mutex_t * __restrict __mutex, int *__restrict __prioceiling) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, int __prioceiling, int *__restrict __old_ceiling) throw () __attribute__ ((__nonnull__ (1, 3))); extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); # 790 "/usr/include/pthread.h" 3 4 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t * __restrict __attr, int *__restrict __pshared) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, int __pshared) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict __attr, int *__restrict __kind) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t * __restrict __attr, int *__restrict __protocol) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, int __protocol) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t * __restrict __attr, int *__restrict __prioceiling) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, int __prioceiling) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr, int *__robustness) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr, int *__robustness) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, int __robustness) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, int __robustness) throw () __attribute__ ((__nonnull__ (1))); # 872 "/usr/include/pthread.h" 3 4 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, __const pthread_rwlockattr_t *__restrict __attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t * __restrict __attr, int *__restrict __pshared) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, int __pshared) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t * __restrict __attr, int *__restrict __pref) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, int __pref) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_init (pthread_cond_t *__restrict __cond, __const pthread_condattr_t *__restrict __cond_attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_destroy (pthread_cond_t *__cond) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_signal (pthread_cond_t *__cond) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_broadcast (pthread_cond_t *__cond) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex) __attribute__ ((__nonnull__ (1, 2))); # 984 "/usr/include/pthread.h" 3 4 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) __attribute__ ((__nonnull__ (1, 2, 3))); extern int pthread_condattr_init (pthread_condattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_condattr_destroy (pthread_condattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_condattr_getpshared (__const pthread_condattr_t * __restrict __attr, int *__restrict __pshared) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, int __pshared) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_condattr_getclock (__const pthread_condattr_t * __restrict __attr, __clockid_t *__restrict __clock_id) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_condattr_setclock (pthread_condattr_t *__attr, __clockid_t __clock_id) throw () __attribute__ ((__nonnull__ (1))); # 1028 "/usr/include/pthread.h" 3 4 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_spin_destroy (pthread_spinlock_t *__lock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_spin_lock (pthread_spinlock_t *__lock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_spin_trylock (pthread_spinlock_t *__lock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_spin_unlock (pthread_spinlock_t *__lock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, __const pthread_barrierattr_t *__restrict __attr, unsigned int __count) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrier_wait (pthread_barrier_t *__barrier) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t * __restrict __attr, int *__restrict __pshared) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, int __pshared) throw () __attribute__ ((__nonnull__ (1))); # 1095 "/usr/include/pthread.h" 3 4 extern int pthread_key_create (pthread_key_t *__key, void (*__destr_function) (void *)) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_key_delete (pthread_key_t __key) throw (); extern void *pthread_getspecific (pthread_key_t __key) throw (); extern int pthread_setspecific (pthread_key_t __key, __const void *__pointer) throw () ; extern int pthread_getcpuclockid (pthread_t __thread_id, __clockid_t *__clock_id) throw () __attribute__ ((__nonnull__ (2))); # 1129 "/usr/include/pthread.h" 3 4 extern int pthread_atfork (void (*__prepare) (void), void (*__parent) (void), void (*__child) (void)) throw (); # 1143 "/usr/include/pthread.h" 3 4 } # 42 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h" 2 3 typedef pthread_t __gthread_t; typedef pthread_key_t __gthread_key_t; typedef pthread_once_t __gthread_once_t; typedef pthread_mutex_t __gthread_mutex_t; typedef pthread_mutex_t __gthread_recursive_mutex_t; typedef pthread_cond_t __gthread_cond_t; typedef struct timespec __gthread_time_t; # 118 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h" 3 static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"))); static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"))); static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"))); static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"))); static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join"))); static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal"))); static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self"))); static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach"))); static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"))); static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield"))); static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"))); static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"))); static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock"))); static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"))); static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"))); static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy"))); static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"))); static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal"))); static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"))); static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait"))); static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy"))); static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"))); static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"))); static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"))); static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"))); static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"))); # 237 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h" 3 static inline int __gthread_active_p (void) { static void *const __gthread_active_ptr = __extension__ (void *) &__gthrw_pthread_cancel; return __gthread_active_ptr != 0; } # 648 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h" 3 static inline int __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), void *__args) { return __gthrw_pthread_create (__threadid, __null, __func, __args); } static inline int __gthread_join (__gthread_t __threadid, void **__value_ptr) { return __gthrw_pthread_join (__threadid, __value_ptr); } static inline int __gthread_detach (__gthread_t __threadid) { return __gthrw_pthread_detach (__threadid); } static inline int __gthread_equal (__gthread_t __t1, __gthread_t __t2) { return __gthrw_pthread_equal (__t1, __t2); } static inline __gthread_t __gthread_self (void) { return __gthrw_pthread_self (); } static inline int __gthread_yield (void) { return __gthrw_sched_yield (); } static inline int __gthread_once (__gthread_once_t *__once, void (*__func) (void)) { if (__gthread_active_p ()) return __gthrw_pthread_once (__once, __func); else return -1; } static inline int __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) { return __gthrw_pthread_key_create (__key, __dtor); } static inline int __gthread_key_delete (__gthread_key_t __key) { return __gthrw_pthread_key_delete (__key); } static inline void * __gthread_getspecific (__gthread_key_t __key) { return __gthrw_pthread_getspecific (__key); } static inline int __gthread_setspecific (__gthread_key_t __key, const void *__ptr) { return __gthrw_pthread_setspecific (__key, __ptr); } static inline int __gthread_mutex_destroy (__gthread_mutex_t *__mutex) { if (__gthread_active_p ()) return __gthrw_pthread_mutex_destroy (__mutex); else return 0; } static inline int __gthread_mutex_lock (__gthread_mutex_t *__mutex) { if (__gthread_active_p ()) return __gthrw_pthread_mutex_lock (__mutex); else return 0; } static inline int __gthread_mutex_trylock (__gthread_mutex_t *__mutex) { if (__gthread_active_p ()) return __gthrw_pthread_mutex_trylock (__mutex); else return 0; } static inline int __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, const __gthread_time_t *__abs_timeout) { if (__gthread_active_p ()) return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout); else return 0; } static inline int __gthread_mutex_unlock (__gthread_mutex_t *__mutex) { if (__gthread_active_p ()) return __gthrw_pthread_mutex_unlock (__mutex); else return 0; } # 791 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h" 3 static inline int __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) { return __gthread_mutex_lock (__mutex); } static inline int __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) { return __gthread_mutex_trylock (__mutex); } static inline int __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, const __gthread_time_t *__abs_timeout) { return __gthread_mutex_timedlock (__mutex, __abs_timeout); } static inline int __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) { return __gthread_mutex_unlock (__mutex); } static inline int __gthread_cond_broadcast (__gthread_cond_t *__cond) { return __gthrw_pthread_cond_broadcast (__cond); } static inline int __gthread_cond_signal (__gthread_cond_t *__cond) { return __gthrw_pthread_cond_signal (__cond); } static inline int __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) { return __gthrw_pthread_cond_wait (__cond, __mutex); } static inline int __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, const __gthread_time_t *__abs_timeout) { return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout); } static inline int __gthread_cond_wait_recursive (__gthread_cond_t *__cond, __gthread_recursive_mutex_t *__mutex) { return __gthread_cond_wait (__cond, __mutex); } static inline int __gthread_cond_timedwait_recursive (__gthread_cond_t *__cond, __gthread_recursive_mutex_t *__mutex, const __gthread_time_t *__abs_timeout) { return __gthread_cond_timedwait (__cond, __mutex, __abs_timeout); } static inline int __gthread_cond_destroy (__gthread_cond_t* __cond) { return __gthrw_pthread_cond_destroy (__cond); } # 163 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h" 2 3 #pragma GCC visibility pop # 35 "/usr/include/c++/4.5/ext/atomicity.h" 2 3 # 1 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h" 1 3 # 32 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h" 3 typedef int _Atomic_word; # 36 "/usr/include/c++/4.5/ext/atomicity.h" 2 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { static inline _Atomic_word __exchange_and_add(volatile _Atomic_word* __mem, int __val) { return __sync_fetch_and_add(__mem, __val); } static inline void __atomic_add(volatile _Atomic_word* __mem, int __val) { __sync_fetch_and_add(__mem, __val); } # 61 "/usr/include/c++/4.5/ext/atomicity.h" 3 static inline _Atomic_word __exchange_and_add_single(_Atomic_word* __mem, int __val) { _Atomic_word __result = *__mem; *__mem += __val; return __result; } static inline void __atomic_add_single(_Atomic_word* __mem, int __val) { *__mem += __val; } static inline _Atomic_word __attribute__ ((__unused__)) __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) { if (__gthread_active_p()) return __exchange_and_add(__mem, __val); else return __exchange_and_add_single(__mem, __val); } static inline void __attribute__ ((__unused__)) __atomic_add_dispatch(_Atomic_word* __mem, int __val) { if (__gthread_active_p()) __atomic_add(__mem, __val); else __atomic_add_single(__mem, __val); } } # 42 "/usr/include/c++/4.5/bits/basic_string.h" 2 3 # 1 "/usr/include/c++/4.5/initializer_list" 1 3 # 33 "/usr/include/c++/4.5/initializer_list" 3 # 34 "/usr/include/c++/4.5/initializer_list" 3 #pragma GCC visibility push(default) # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 40 "/usr/include/c++/4.5/initializer_list" 2 3 namespace std { template class initializer_list { public: typedef _E value_type; typedef const _E& reference; typedef const _E& const_reference; typedef size_t size_type; typedef const _E* iterator; typedef const _E* const_iterator; private: iterator _M_array; size_type _M_len; initializer_list(const_iterator __a, size_type __l) : _M_array(__a), _M_len(__l) { } public: initializer_list() : _M_array(__null), _M_len(0) { } size_type size() const { return _M_len; } const_iterator begin() const { return _M_array; } const_iterator end() const { return begin() + size(); } }; } #pragma GCC visibility pop # 44 "/usr/include/c++/4.5/bits/basic_string.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 104 "/usr/include/c++/4.5/bits/basic_string.h" 3 template class basic_string { typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type; public: typedef _Traits traits_type; typedef typename _Traits::char_type value_type; typedef _Alloc allocator_type; typedef typename _CharT_alloc_type::size_type size_type; typedef typename _CharT_alloc_type::difference_type difference_type; typedef typename _CharT_alloc_type::reference reference; typedef typename _CharT_alloc_type::const_reference const_reference; typedef typename _CharT_alloc_type::pointer pointer; typedef typename _CharT_alloc_type::const_pointer const_pointer; typedef __gnu_cxx::__normal_iterator iterator; typedef __gnu_cxx::__normal_iterator const_iterator; typedef std::reverse_iterator const_reverse_iterator; typedef std::reverse_iterator reverse_iterator; private: # 141 "/usr/include/c++/4.5/bits/basic_string.h" 3 struct _Rep_base { size_type _M_length; size_type _M_capacity; _Atomic_word _M_refcount; }; struct _Rep : _Rep_base { typedef typename _Alloc::template rebind::other _Raw_bytes_alloc; # 166 "/usr/include/c++/4.5/bits/basic_string.h" 3 static const size_type _S_max_size; static const _CharT _S_terminal; static size_type _S_empty_rep_storage[]; static _Rep& _S_empty_rep() { void* __p = reinterpret_cast(&_S_empty_rep_storage); return *reinterpret_cast<_Rep*>(__p); } bool _M_is_leaked() const { return this->_M_refcount < 0; } bool _M_is_shared() const { return this->_M_refcount > 0; } void _M_set_leaked() { this->_M_refcount = -1; } void _M_set_sharable() { this->_M_refcount = 0; } void _M_set_length_and_sharable(size_type __n) { if (__builtin_expect(this != &_S_empty_rep(), false)) { this->_M_set_sharable(); this->_M_length = __n; traits_type::assign(this->_M_refdata()[__n], _S_terminal); } } _CharT* _M_refdata() throw() { return reinterpret_cast<_CharT*>(this + 1); } _CharT* _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2) { return (!_M_is_leaked() && __alloc1 == __alloc2) ? _M_refcopy() : _M_clone(__alloc1); } static _Rep* _S_create(size_type, size_type, const _Alloc&); void _M_dispose(const _Alloc& __a) { if (__builtin_expect(this != &_S_empty_rep(), false)) if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount, -1) <= 0) _M_destroy(__a); } void _M_destroy(const _Alloc&) throw(); _CharT* _M_refcopy() throw() { if (__builtin_expect(this != &_S_empty_rep(), false)) __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1); return _M_refdata(); } _CharT* _M_clone(const _Alloc&, size_type __res = 0); }; struct _Alloc_hider : _Alloc { _Alloc_hider(_CharT* __dat, const _Alloc& __a) : _Alloc(__a), _M_p(__dat) { } _CharT* _M_p; }; public: static const size_type npos = static_cast(-1); private: mutable _Alloc_hider _M_dataplus; _CharT* _M_data() const { return _M_dataplus._M_p; } _CharT* _M_data(_CharT* __p) { return (_M_dataplus._M_p = __p); } _Rep* _M_rep() const { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); } iterator _M_ibegin() const { return iterator(_M_data()); } iterator _M_iend() const { return iterator(_M_data() + this->size()); } void _M_leak() { if (!_M_rep()->_M_is_leaked()) _M_leak_hard(); } size_type _M_check(size_type __pos, const char* __s) const { if (__pos > this->size()) __throw_out_of_range((__s)); return __pos; } void _M_check_length(size_type __n1, size_type __n2, const char* __s) const { if (this->max_size() - (this->size() - __n1) < __n2) __throw_length_error((__s)); } size_type _M_limit(size_type __pos, size_type __off) const { const bool __testoff = __off < this->size() - __pos; return __testoff ? __off : this->size() - __pos; } bool _M_disjunct(const _CharT* __s) const { return (less()(__s, _M_data()) || less()(_M_data() + this->size(), __s)); } static void _M_copy(_CharT* __d, const _CharT* __s, size_type __n) { if (__n == 1) traits_type::assign(*__d, *__s); else traits_type::copy(__d, __s, __n); } static void _M_move(_CharT* __d, const _CharT* __s, size_type __n) { if (__n == 1) traits_type::assign(*__d, *__s); else traits_type::move(__d, __s, __n); } static void _M_assign(_CharT* __d, size_type __n, _CharT __c) { if (__n == 1) traits_type::assign(*__d, __c); else traits_type::assign(__d, __n, __c); } template static void _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) { for (; __k1 != __k2; ++__k1, ++__p) traits_type::assign(*__p, *__k1); } static void _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) { _S_copy_chars(__p, __k1.base(), __k2.base()); } static void _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) { _S_copy_chars(__p, __k1.base(), __k2.base()); } static void _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) { _M_copy(__p, __k1, __k2 - __k1); } static void _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) { _M_copy(__p, __k1, __k2 - __k1); } static int _S_compare(size_type __n1, size_type __n2) { const difference_type __d = difference_type(__n1 - __n2); if (__d > __gnu_cxx::__numeric_traits::__max) return __gnu_cxx::__numeric_traits::__max; else if (__d < __gnu_cxx::__numeric_traits::__min) return __gnu_cxx::__numeric_traits::__min; else return int(__d); } void _M_mutate(size_type __pos, size_type __len1, size_type __len2); void _M_leak_hard(); static _Rep& _S_empty_rep() { return _Rep::_S_empty_rep(); } public: basic_string() : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { } explicit basic_string(const _Alloc& __a); basic_string(const basic_string& __str); basic_string(const basic_string& __str, size_type __pos, size_type __n = npos); basic_string(const basic_string& __str, size_type __pos, size_type __n, const _Alloc& __a); # 469 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string(const _CharT* __s, size_type __n, const _Alloc& __a = _Alloc()); basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()); basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()); # 493 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string(basic_string&& __str) : _M_dataplus(__str._M_dataplus) { __str._M_data(_S_empty_rep()._M_refdata()); } basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()); # 517 "/usr/include/c++/4.5/bits/basic_string.h" 3 template basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a = _Alloc()); ~basic_string() { _M_rep()->_M_dispose(this->get_allocator()); } basic_string& operator=(const basic_string& __str) { return this->assign(__str); } basic_string& operator=(const _CharT* __s) { return this->assign(__s); } # 550 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& operator=(_CharT __c) { this->assign(1, __c); return *this; } # 565 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& operator=(basic_string&& __str) { this->swap(__str); return *this; } basic_string& operator=(initializer_list<_CharT> __l) { this->assign(__l.begin(), __l.size()); return *this; } iterator begin() { _M_leak(); return iterator(_M_data()); } const_iterator begin() const { return const_iterator(_M_data()); } iterator end() { _M_leak(); return iterator(_M_data() + this->size()); } const_iterator end() const { return const_iterator(_M_data() + this->size()); } reverse_iterator rbegin() { return reverse_iterator(this->end()); } const_reverse_iterator rbegin() const { return const_reverse_iterator(this->end()); } reverse_iterator rend() { return reverse_iterator(this->begin()); } const_reverse_iterator rend() const { return const_reverse_iterator(this->begin()); } const_iterator cbegin() const { return const_iterator(this->_M_data()); } const_iterator cend() const { return const_iterator(this->_M_data() + this->size()); } const_reverse_iterator crbegin() const { return const_reverse_iterator(this->end()); } const_reverse_iterator crend() const { return const_reverse_iterator(this->begin()); } public: size_type size() const { return _M_rep()->_M_length; } size_type length() const { return _M_rep()->_M_length; } size_type max_size() const { return _Rep::_S_max_size; } # 725 "/usr/include/c++/4.5/bits/basic_string.h" 3 void resize(size_type __n, _CharT __c); # 738 "/usr/include/c++/4.5/bits/basic_string.h" 3 void resize(size_type __n) { this->resize(__n, _CharT()); } void shrink_to_fit() { try { reserve(0); } catch(...) { } } size_type capacity() const { return _M_rep()->_M_capacity; } # 779 "/usr/include/c++/4.5/bits/basic_string.h" 3 void reserve(size_type __res_arg = 0); void clear() { _M_mutate(0, this->size(), 0); } bool empty() const { return this->size() == 0; } # 808 "/usr/include/c++/4.5/bits/basic_string.h" 3 const_reference operator[] (size_type __pos) const { ; return _M_data()[__pos]; } # 825 "/usr/include/c++/4.5/bits/basic_string.h" 3 reference operator[](size_type __pos) { ; ; _M_leak(); return _M_data()[__pos]; } # 846 "/usr/include/c++/4.5/bits/basic_string.h" 3 const_reference at(size_type __n) const { if (__n >= this->size()) __throw_out_of_range(("basic_string::at")); return _M_data()[__n]; } # 865 "/usr/include/c++/4.5/bits/basic_string.h" 3 reference at(size_type __n) { if (__n >= size()) __throw_out_of_range(("basic_string::at")); _M_leak(); return _M_data()[__n]; } basic_string& operator+=(const basic_string& __str) { return this->append(__str); } basic_string& operator+=(const _CharT* __s) { return this->append(__s); } basic_string& operator+=(_CharT __c) { this->push_back(__c); return *this; } basic_string& operator+=(initializer_list<_CharT> __l) { return this->append(__l.begin(), __l.size()); } basic_string& append(const basic_string& __str); # 936 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& append(const basic_string& __str, size_type __pos, size_type __n); basic_string& append(const _CharT* __s, size_type __n); basic_string& append(const _CharT* __s) { ; return this->append(__s, traits_type::length(__s)); } # 968 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& append(size_type __n, _CharT __c); basic_string& append(initializer_list<_CharT> __l) { return this->append(__l.begin(), __l.size()); } # 990 "/usr/include/c++/4.5/bits/basic_string.h" 3 template basic_string& append(_InputIterator __first, _InputIterator __last) { return this->replace(_M_iend(), _M_iend(), __first, __last); } void push_back(_CharT __c) { const size_type __len = 1 + this->size(); if (__len > this->capacity() || _M_rep()->_M_is_shared()) this->reserve(__len); traits_type::assign(_M_data()[this->size()], __c); _M_rep()->_M_set_length_and_sharable(__len); } basic_string& assign(const basic_string& __str); # 1026 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& assign(basic_string&& __str) { this->swap(__str); return *this; } # 1046 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& assign(const basic_string& __str, size_type __pos, size_type __n) { return this->assign(__str._M_data() + __str._M_check(__pos, "basic_string::assign"), __str._M_limit(__pos, __n)); } # 1062 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& assign(const _CharT* __s, size_type __n); # 1074 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& assign(const _CharT* __s) { ; return this->assign(__s, traits_type::length(__s)); } # 1090 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& assign(size_type __n, _CharT __c) { return _M_replace_aux(size_type(0), this->size(), __n, __c); } # 1102 "/usr/include/c++/4.5/bits/basic_string.h" 3 template basic_string& assign(_InputIterator __first, _InputIterator __last) { return this->replace(_M_ibegin(), _M_iend(), __first, __last); } basic_string& assign(initializer_list<_CharT> __l) { return this->assign(__l.begin(), __l.size()); } # 1130 "/usr/include/c++/4.5/bits/basic_string.h" 3 void insert(iterator __p, size_type __n, _CharT __c) { this->replace(__p, __p, __n, __c); } # 1145 "/usr/include/c++/4.5/bits/basic_string.h" 3 template void insert(iterator __p, _InputIterator __beg, _InputIterator __end) { this->replace(__p, __p, __beg, __end); } # 1157 "/usr/include/c++/4.5/bits/basic_string.h" 3 void insert(iterator __p, initializer_list<_CharT> __l) { ; this->insert(__p - _M_ibegin(), __l.begin(), __l.size()); } # 1176 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& insert(size_type __pos1, const basic_string& __str) { return this->insert(__pos1, __str, size_type(0), __str.size()); } # 1198 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n) { return this->insert(__pos1, __str._M_data() + __str._M_check(__pos2, "basic_string::insert"), __str._M_limit(__pos2, __n)); } # 1221 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& insert(size_type __pos, const _CharT* __s, size_type __n); # 1239 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& insert(size_type __pos, const _CharT* __s) { ; return this->insert(__pos, __s, traits_type::length(__s)); } # 1262 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& insert(size_type __pos, size_type __n, _CharT __c) { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), size_type(0), __n, __c); } # 1279 "/usr/include/c++/4.5/bits/basic_string.h" 3 iterator insert(iterator __p, _CharT __c) { ; const size_type __pos = __p - _M_ibegin(); _M_replace_aux(__pos, size_type(0), size_type(1), __c); _M_rep()->_M_set_leaked(); return iterator(_M_data() + __pos); } # 1303 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& erase(size_type __pos = 0, size_type __n = npos) { _M_mutate(_M_check(__pos, "basic_string::erase"), _M_limit(__pos, __n), size_type(0)); return *this; } # 1319 "/usr/include/c++/4.5/bits/basic_string.h" 3 iterator erase(iterator __position) { ; const size_type __pos = __position - _M_ibegin(); _M_mutate(__pos, size_type(1), size_type(0)); _M_rep()->_M_set_leaked(); return iterator(_M_data() + __pos); } # 1339 "/usr/include/c++/4.5/bits/basic_string.h" 3 iterator erase(iterator __first, iterator __last); # 1358 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& replace(size_type __pos, size_type __n, const basic_string& __str) { return this->replace(__pos, __n, __str._M_data(), __str.size()); } # 1380 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) { return this->replace(__pos1, __n1, __str._M_data() + __str._M_check(__pos2, "basic_string::replace"), __str._M_limit(__pos2, __n2)); } # 1404 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& replace(size_type __pos, size_type __n1, const _CharT* __s, size_type __n2); # 1423 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& replace(size_type __pos, size_type __n1, const _CharT* __s) { ; return this->replace(__pos, __n1, __s, traits_type::length(__s)); } # 1446 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), _M_limit(__pos, __n1), __n2, __c); } # 1464 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& replace(iterator __i1, iterator __i2, const basic_string& __str) { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } # 1482 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n) { ; return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n); } # 1503 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& replace(iterator __i1, iterator __i2, const _CharT* __s) { ; return this->replace(__i1, __i2, __s, traits_type::length(__s)); } # 1524 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& replace(iterator __i1, iterator __i2, size_type __n, _CharT __c) { ; return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c); } # 1546 "/usr/include/c++/4.5/bits/basic_string.h" 3 template basic_string& replace(iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2) { ; ; typedef typename std::__is_integer<_InputIterator>::__type _Integral; return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral()); } basic_string& replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2) { ; ; return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __k1, __k2 - __k1); } basic_string& replace(iterator __i1, iterator __i2, const _CharT* __k1, const _CharT* __k2) { ; ; return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __k1, __k2 - __k1); } basic_string& replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2) { ; ; return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __k1.base(), __k2 - __k1); } basic_string& replace(iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2) { ; ; return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __k1.base(), __k2 - __k1); } # 1616 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string& replace(iterator __i1, iterator __i2, initializer_list<_CharT> __l) { return this->replace(__i1, __i2, __l.begin(), __l.end()); } private: template basic_string& _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n, _Integer __val, __true_type) { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); } template basic_string& _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2, __false_type); basic_string& _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, _CharT __c); basic_string& _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s, size_type __n2); template static _CharT* _S_construct_aux(_InIterator __beg, _InIterator __end, const _Alloc& __a, __false_type) { typedef typename iterator_traits<_InIterator>::iterator_category _Tag; return _S_construct(__beg, __end, __a, _Tag()); } template static _CharT* _S_construct_aux(_Integer __beg, _Integer __end, const _Alloc& __a, __true_type) { return _S_construct_aux_2(static_cast(__beg), __end, __a); } static _CharT* _S_construct_aux_2(size_type __req, _CharT __c, const _Alloc& __a) { return _S_construct(__req, __c, __a); } template static _CharT* _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a) { typedef typename std::__is_integer<_InIterator>::__type _Integral; return _S_construct_aux(__beg, __end, __a, _Integral()); } template static _CharT* _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, input_iterator_tag); template static _CharT* _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a, forward_iterator_tag); static _CharT* _S_construct(size_type __req, _CharT __c, const _Alloc& __a); public: # 1702 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type copy(_CharT* __s, size_type __n, size_type __pos = 0) const; # 1712 "/usr/include/c++/4.5/bits/basic_string.h" 3 void swap(basic_string& __s); # 1722 "/usr/include/c++/4.5/bits/basic_string.h" 3 const _CharT* c_str() const { return _M_data(); } const _CharT* data() const { return _M_data(); } allocator_type get_allocator() const { return _M_dataplus; } # 1754 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find(const _CharT* __s, size_type __pos, size_type __n) const; # 1767 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find(const basic_string& __str, size_type __pos = 0) const { return this->find(__str.data(), __pos, __str.size()); } # 1781 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find(const _CharT* __s, size_type __pos = 0) const { ; return this->find(__s, __pos, traits_type::length(__s)); } # 1798 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find(_CharT __c, size_type __pos = 0) const; # 1811 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type rfind(const basic_string& __str, size_type __pos = npos) const { return this->rfind(__str.data(), __pos, __str.size()); } # 1826 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type rfind(const _CharT* __s, size_type __pos, size_type __n) const; # 1839 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type rfind(const _CharT* __s, size_type __pos = npos) const { ; return this->rfind(__s, __pos, traits_type::length(__s)); } # 1856 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type rfind(_CharT __c, size_type __pos = npos) const; # 1869 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_first_of(const basic_string& __str, size_type __pos = 0) const { return this->find_first_of(__str.data(), __pos, __str.size()); } # 1884 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_first_of(const _CharT* __s, size_type __pos, size_type __n) const; # 1897 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_first_of(const _CharT* __s, size_type __pos = 0) const { ; return this->find_first_of(__s, __pos, traits_type::length(__s)); } # 1916 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_first_of(_CharT __c, size_type __pos = 0) const { return this->find(__c, __pos); } # 1930 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_last_of(const basic_string& __str, size_type __pos = npos) const { return this->find_last_of(__str.data(), __pos, __str.size()); } # 1945 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_last_of(const _CharT* __s, size_type __pos, size_type __n) const; # 1958 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_last_of(const _CharT* __s, size_type __pos = npos) const { ; return this->find_last_of(__s, __pos, traits_type::length(__s)); } # 1977 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_last_of(_CharT __c, size_type __pos = npos) const { return this->rfind(__c, __pos); } # 1991 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_first_not_of(const basic_string& __str, size_type __pos = 0) const { return this->find_first_not_of(__str.data(), __pos, __str.size()); } # 2006 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const; # 2020 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_first_not_of(const _CharT* __s, size_type __pos = 0) const { ; return this->find_first_not_of(__s, __pos, traits_type::length(__s)); } # 2037 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_first_not_of(_CharT __c, size_type __pos = 0) const; # 2050 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_last_not_of(const basic_string& __str, size_type __pos = npos) const { return this->find_last_not_of(__str.data(), __pos, __str.size()); } # 2066 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const; # 2079 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_last_not_of(const _CharT* __s, size_type __pos = npos) const { ; return this->find_last_not_of(__s, __pos, traits_type::length(__s)); } # 2096 "/usr/include/c++/4.5/bits/basic_string.h" 3 size_type find_last_not_of(_CharT __c, size_type __pos = npos) const; # 2111 "/usr/include/c++/4.5/bits/basic_string.h" 3 basic_string substr(size_type __pos = 0, size_type __n = npos) const { return basic_string(*this, _M_check(__pos, "basic_string::substr"), __n); } # 2129 "/usr/include/c++/4.5/bits/basic_string.h" 3 int compare(const basic_string& __str) const { const size_type __size = this->size(); const size_type __osize = __str.size(); const size_type __len = std::min(__size, __osize); int __r = traits_type::compare(_M_data(), __str.data(), __len); if (!__r) __r = _S_compare(__size, __osize); return __r; } # 2159 "/usr/include/c++/4.5/bits/basic_string.h" 3 int compare(size_type __pos, size_type __n, const basic_string& __str) const; # 2183 "/usr/include/c++/4.5/bits/basic_string.h" 3 int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) const; # 2201 "/usr/include/c++/4.5/bits/basic_string.h" 3 int compare(const _CharT* __s) const; # 2224 "/usr/include/c++/4.5/bits/basic_string.h" 3 int compare(size_type __pos, size_type __n1, const _CharT* __s) const; # 2249 "/usr/include/c++/4.5/bits/basic_string.h" 3 int compare(size_type __pos, size_type __n1, const _CharT* __s, size_type __n2) const; }; # 2261 "/usr/include/c++/4.5/bits/basic_string.h" 3 template basic_string<_CharT, _Traits, _Alloc> operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { basic_string<_CharT, _Traits, _Alloc> __str(__lhs); __str.append(__rhs); return __str; } template basic_string<_CharT,_Traits,_Alloc> operator+(const _CharT* __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); template basic_string<_CharT,_Traits,_Alloc> operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); template inline basic_string<_CharT, _Traits, _Alloc> operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { basic_string<_CharT, _Traits, _Alloc> __str(__lhs); __str.append(__rhs); return __str; } template inline basic_string<_CharT, _Traits, _Alloc> operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) { typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef typename __string_type::size_type __size_type; __string_type __str(__lhs); __str.append(__size_type(1), __rhs); return __str; } # 2332 "/usr/include/c++/4.5/bits/basic_string.h" 3 template inline bool operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) == 0; } template inline typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type operator==(const basic_string<_CharT>& __lhs, const basic_string<_CharT>& __rhs) { return (__lhs.size() == __rhs.size() && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), __lhs.size())); } template inline bool operator==(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) == 0; } template inline bool operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) == 0; } # 2378 "/usr/include/c++/4.5/bits/basic_string.h" 3 template inline bool operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return !(__lhs == __rhs); } template inline bool operator!=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return !(__lhs == __rhs); } template inline bool operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return !(__lhs == __rhs); } # 2415 "/usr/include/c++/4.5/bits/basic_string.h" 3 template inline bool operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) < 0; } template inline bool operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) < 0; } template inline bool operator<(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) > 0; } # 2452 "/usr/include/c++/4.5/bits/basic_string.h" 3 template inline bool operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) > 0; } template inline bool operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) > 0; } template inline bool operator>(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) < 0; } # 2489 "/usr/include/c++/4.5/bits/basic_string.h" 3 template inline bool operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) <= 0; } template inline bool operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) <= 0; } template inline bool operator<=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) >= 0; } # 2526 "/usr/include/c++/4.5/bits/basic_string.h" 3 template inline bool operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) >= 0; } template inline bool operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) >= 0; } template inline bool operator>=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) <= 0; } # 2563 "/usr/include/c++/4.5/bits/basic_string.h" 3 template inline void swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, basic_string<_CharT, _Traits, _Alloc>& __rhs) { __lhs.swap(__rhs); } # 2580 "/usr/include/c++/4.5/bits/basic_string.h" 3 template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Alloc>& __str); template<> basic_istream& operator>>(basic_istream& __is, basic_string& __str); # 2598 "/usr/include/c++/4.5/bits/basic_string.h" 3 template inline basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const basic_string<_CharT, _Traits, _Alloc>& __str) { return __ostream_insert(__os, __str.data(), __str.size()); } # 2621 "/usr/include/c++/4.5/bits/basic_string.h" 3 template basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); # 2639 "/usr/include/c++/4.5/bits/basic_string.h" 3 template inline basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Alloc>& __str) { return getline(__is, __str, __is.widen('\n')); } template<> basic_istream& getline(basic_istream& __in, basic_string& __str, char __delim); template<> basic_istream& getline(basic_istream& __in, basic_string& __str, wchar_t __delim); } # 1 "/usr/include/c++/4.5/ext/string_conversions.h" 1 3 # 28 "/usr/include/c++/4.5/ext/string_conversions.h" 3 # 29 "/usr/include/c++/4.5/ext/string_conversions.h" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 33 "/usr/include/c++/4.5/ext/string_conversions.h" 2 3 # 1 "/usr/include/c++/4.5/cstdlib" 1 3 # 41 "/usr/include/c++/4.5/cstdlib" 3 # 42 "/usr/include/c++/4.5/cstdlib" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 45 "/usr/include/c++/4.5/cstdlib" 2 3 # 68 "/usr/include/c++/4.5/cstdlib" 3 # 1 "/usr/include/stdlib.h" 1 3 4 # 33 "/usr/include/stdlib.h" 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 34 "/usr/include/stdlib.h" 2 3 4 extern "C" { # 1 "/usr/include/bits/waitflags.h" 1 3 4 # 43 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/bits/waitstatus.h" 1 3 4 # 67 "/usr/include/bits/waitstatus.h" 3 4 union wait { int w_status; struct { unsigned int __w_termsig:7; unsigned int __w_coredump:1; unsigned int __w_retcode:8; unsigned int:16; } __wait_terminated; struct { unsigned int __w_stopval:8; unsigned int __w_stopsig:8; unsigned int:16; } __wait_stopped; }; # 44 "/usr/include/stdlib.h" 2 3 4 # 96 "/usr/include/stdlib.h" 3 4 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; # 140 "/usr/include/stdlib.h" 3 4 extern size_t __ctype_get_mb_cur_max (void) throw () ; extern double atof (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern int atoi (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern long int atol (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int atoll (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ; extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ; extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ; extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))) ; extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))) ; __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))) ; __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))) ; # 240 "/usr/include/stdlib.h" 3 4 extern long int strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ; extern unsigned long int strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ; __extension__ extern long long int strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ; __extension__ extern unsigned long long int strtoull_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ; extern double strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))) ; extern float strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))) ; extern long double strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))) ; # 311 "/usr/include/stdlib.h" 3 4 extern char *l64a (long int __n) throw () ; extern long int a64l (__const char *__s) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; # 327 "/usr/include/stdlib.h" 3 4 extern long int random (void) throw (); extern void srandom (unsigned int __seed) throw (); extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); struct random_data { int32_t *fptr; int32_t *rptr; int32_t *state; int rand_type; int rand_deg; int rand_sep; int32_t *end_ptr; }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int srandom_r (unsigned int __seed, struct random_data *__buf) throw () __attribute__ ((__nonnull__ (2))); extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) throw () __attribute__ ((__nonnull__ (2, 4))); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); extern int rand (void) throw (); extern void srand (unsigned int __seed) throw (); extern int rand_r (unsigned int *__seed) throw (); extern double drand48 (void) throw (); extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); extern long int lrand48 (void) throw (); extern long int nrand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); extern long int mrand48 (void) throw (); extern long int jrand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); extern void srand48 (long int __seedval) throw (); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) throw () __attribute__ ((__nonnull__ (1))); extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); struct drand48_data { unsigned short int __x[3]; unsigned short int __old_x[3]; unsigned short int __c; unsigned short int __init; unsigned long long int __a; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (2))); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ; extern void *calloc (size_t __nmemb, size_t __size) throw () __attribute__ ((__malloc__)) ; extern void *realloc (void *__ptr, size_t __size) throw () __attribute__ ((__warn_unused_result__)); extern void free (void *__ptr) throw (); extern void cfree (void *__ptr) throw (); # 1 "/usr/include/alloca.h" 1 3 4 # 25 "/usr/include/alloca.h" 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 26 "/usr/include/alloca.h" 2 3 4 extern "C" { extern void *alloca (size_t __size) throw (); } # 498 "/usr/include/stdlib.h" 2 3 4 extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ; extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) throw () __attribute__ ((__nonnull__ (1))) ; extern void abort (void) throw () __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); extern "C++" int at_quick_exit (void (*__func) (void)) throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) throw () __attribute__ ((__nonnull__ (1))); extern void exit (int __status) throw () __attribute__ ((__noreturn__)); extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; extern char *__secure_getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); extern int setenv (__const char *__name, __const char *__value, int __replace) throw () __attribute__ ((__nonnull__ (2))); extern int unsetenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); extern int clearenv (void) throw (); # 606 "/usr/include/stdlib.h" 3 4 extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ; # 620 "/usr/include/stdlib.h" 3 4 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; # 630 "/usr/include/stdlib.h" 3 4 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; # 642 "/usr/include/stdlib.h" 3 4 extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; # 652 "/usr/include/stdlib.h" 3 4 extern int mkstemps64 (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; # 663 "/usr/include/stdlib.h" 3 4 extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ; # 674 "/usr/include/stdlib.h" 3 4 extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; # 684 "/usr/include/stdlib.h" 3 4 extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; # 694 "/usr/include/stdlib.h" 3 4 extern int mkostemps (char *__template, int __suffixlen, int __flags) __attribute__ ((__nonnull__ (1))) ; # 706 "/usr/include/stdlib.h" 3 4 extern int mkostemps64 (char *__template, int __suffixlen, int __flags) __attribute__ ((__nonnull__ (1))) ; extern int system (__const char *__command) ; extern char *canonicalize_file_name (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; # 734 "/usr/include/stdlib.h" 3 4 extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) throw () ; typedef int (*__compar_fn_t) (__const void *, __const void *); typedef __compar_fn_t comparison_fn_t; typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *); extern void *bsearch (__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 2, 5))) ; extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); extern void qsort_r (void *__base, size_t __nmemb, size_t __size, __compar_d_fn_t __compar, void *__arg) __attribute__ ((__nonnull__ (1, 4))); extern int abs (int __x) throw () __attribute__ ((__const__)) ; extern long int labs (long int __x) throw () __attribute__ ((__const__)) ; __extension__ extern long long int llabs (long long int __x) throw () __attribute__ ((__const__)) ; extern div_t div (int __numer, int __denom) throw () __attribute__ ((__const__)) ; extern ldiv_t ldiv (long int __numer, long int __denom) throw () __attribute__ ((__const__)) ; __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) throw () __attribute__ ((__const__)) ; # 808 "/usr/include/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; extern char *gcvt (double __value, int __ndigit, char *__buf) throw () __attribute__ ((__nonnull__ (3))) ; extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; extern char *qgcvt (long double __value, int __ndigit, char *__buf) throw () __attribute__ ((__nonnull__ (3))) ; extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int mblen (__const char *__s, size_t __n) throw () ; extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) throw () ; extern int wctomb (char *__s, wchar_t __wchar) throw () ; extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) throw (); extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) throw (); extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))) ; # 896 "/usr/include/stdlib.h" 3 4 extern int getsubopt (char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) throw () __attribute__ ((__nonnull__ (1, 2, 3))) ; extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1))); extern int posix_openpt (int __oflag) ; extern int grantpt (int __fd) throw (); extern int unlockpt (int __fd) throw (); extern char *ptsname (int __fd) throw () ; extern int ptsname_r (int __fd, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))); extern int getpt (void); extern int getloadavg (double __loadavg[], int __nelem) throw () __attribute__ ((__nonnull__ (1))); # 964 "/usr/include/stdlib.h" 3 4 } # 69 "/usr/include/c++/4.5/cstdlib" 2 3 # 100 "/usr/include/c++/4.5/cstdlib" 3 namespace std __attribute__ ((__visibility__ ("default"))) { using ::div_t; using ::ldiv_t; using ::abort; using ::abs; using ::atexit; using ::atof; using ::atoi; using ::atol; using ::bsearch; using ::calloc; using ::div; using ::exit; using ::free; using ::getenv; using ::labs; using ::ldiv; using ::malloc; using ::mblen; using ::mbstowcs; using ::mbtowc; using ::qsort; using ::rand; using ::realloc; using ::srand; using ::strtod; using ::strtol; using ::strtoul; using ::system; using ::wcstombs; using ::wctomb; inline long abs(long __i) { return labs(__i); } inline ldiv_t div(long __i, long __j) { return ldiv(__i, __j); } } # 157 "/usr/include/c++/4.5/cstdlib" 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { using ::lldiv_t; using ::_Exit; inline long long abs(long long __x) { return __x >= 0 ? __x : -__x; } using ::llabs; inline lldiv_t div(long long __n, long long __d) { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } using ::lldiv; # 190 "/usr/include/c++/4.5/cstdlib" 3 using ::atoll; using ::strtoll; using ::strtoull; using ::strtof; using ::strtold; } namespace std __attribute__ ((__visibility__ ("default"))) { using ::__gnu_cxx::lldiv_t; using ::__gnu_cxx::_Exit; using ::__gnu_cxx::abs; using ::__gnu_cxx::llabs; using ::__gnu_cxx::div; using ::__gnu_cxx::lldiv; using ::__gnu_cxx::atoll; using ::__gnu_cxx::strtof; using ::__gnu_cxx::strtoll; using ::__gnu_cxx::strtoull; using ::__gnu_cxx::strtold; } # 232 "/usr/include/c++/4.5/cstdlib" 3 # 1 "/usr/include/c++/4.5/tr1_impl/cstdlib" 1 3 # 32 "/usr/include/c++/4.5/tr1_impl/cstdlib" 3 namespace std { using std::lldiv_t; using std::llabs; using std::lldiv; using std::atoll; using std::strtoll; using std::strtoull; using std::strtof; using std::strtold; using std::abs; using std::div; } # 233 "/usr/include/c++/4.5/cstdlib" 2 3 # 34 "/usr/include/c++/4.5/ext/string_conversions.h" 2 3 # 1 "/usr/include/c++/4.5/cwchar" 1 3 # 41 "/usr/include/c++/4.5/cwchar" 3 # 42 "/usr/include/c++/4.5/cwchar" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 45 "/usr/include/c++/4.5/cwchar" 2 3 # 1 "/usr/include/wchar.h" 1 3 4 # 48 "/usr/include/c++/4.5/cwchar" 2 3 # 35 "/usr/include/c++/4.5/ext/string_conversions.h" 2 3 # 1 "/usr/include/c++/4.5/cstdio" 1 3 # 41 "/usr/include/c++/4.5/cstdio" 3 # 42 "/usr/include/c++/4.5/cstdio" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 45 "/usr/include/c++/4.5/cstdio" 2 3 # 93 "/usr/include/c++/4.5/cstdio" 3 namespace std __attribute__ ((__visibility__ ("default"))) { using ::FILE; using ::fpos_t; using ::clearerr; using ::fclose; using ::feof; using ::ferror; using ::fflush; using ::fgetc; using ::fgetpos; using ::fgets; using ::fopen; using ::fprintf; using ::fputc; using ::fputs; using ::fread; using ::freopen; using ::fscanf; using ::fseek; using ::fsetpos; using ::ftell; using ::fwrite; using ::getc; using ::getchar; using ::gets; using ::perror; using ::printf; using ::putc; using ::putchar; using ::puts; using ::remove; using ::rename; using ::rewind; using ::scanf; using ::setbuf; using ::setvbuf; using ::sprintf; using ::sscanf; using ::tmpfile; using ::tmpnam; using ::ungetc; using ::vfprintf; using ::vprintf; using ::vsprintf; } # 150 "/usr/include/c++/4.5/cstdio" 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { # 167 "/usr/include/c++/4.5/cstdio" 3 using ::snprintf; using ::vfscanf; using ::vscanf; using ::vsnprintf; using ::vsscanf; } namespace std __attribute__ ((__visibility__ ("default"))) { using ::__gnu_cxx::snprintf; using ::__gnu_cxx::vfscanf; using ::__gnu_cxx::vscanf; using ::__gnu_cxx::vsnprintf; using ::__gnu_cxx::vsscanf; } # 199 "/usr/include/c++/4.5/cstdio" 3 # 1 "/usr/include/c++/4.5/tr1_impl/cstdio" 1 3 # 30 "/usr/include/c++/4.5/tr1_impl/cstdio" 3 namespace std { using std::snprintf; using std::vsnprintf; using std::vfscanf; using std::vscanf; using std::vsscanf; } # 200 "/usr/include/c++/4.5/cstdio" 2 3 # 36 "/usr/include/c++/4.5/ext/string_conversions.h" 2 3 # 1 "/usr/include/c++/4.5/cerrno" 1 3 # 41 "/usr/include/c++/4.5/cerrno" 3 # 42 "/usr/include/c++/4.5/cerrno" 3 # 1 "/usr/include/errno.h" 1 3 4 # 32 "/usr/include/errno.h" 3 4 extern "C" { # 1 "/usr/include/bits/errno.h" 1 3 4 # 25 "/usr/include/bits/errno.h" 3 4 # 1 "/usr/include/linux/errno.h" 1 3 4 # 1 "/usr/include/x86_64-linux-gnu/asm/errno.h" 1 3 4 # 1 "/usr/include/asm-generic/errno.h" 1 3 4 # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 # 5 "/usr/include/asm-generic/errno.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/asm/errno.h" 2 3 4 # 5 "/usr/include/linux/errno.h" 2 3 4 # 26 "/usr/include/bits/errno.h" 2 3 4 # 47 "/usr/include/bits/errno.h" 3 4 extern int *__errno_location (void) throw () __attribute__ ((__const__)); # 37 "/usr/include/errno.h" 2 3 4 # 55 "/usr/include/errno.h" 3 4 extern char *program_invocation_name, *program_invocation_short_name; } # 69 "/usr/include/errno.h" 3 4 typedef int error_t; # 44 "/usr/include/c++/4.5/cerrno" 2 3 # 37 "/usr/include/c++/4.5/ext/string_conversions.h" 2 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { template _Ret __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), const char* __name, const _CharT* __str, std::size_t* __idx, _Base... __base) { _Ret __ret; _CharT* __endptr; (*__errno_location ()) = 0; const _TRet __tmp = __convf(__str, &__endptr, __base...); if (__endptr == __str) std::__throw_invalid_argument(__name); else if ((*__errno_location ()) == 34 || (std::__are_same<_Ret, int>::__value && (__tmp < __numeric_traits::__min || __tmp > __numeric_traits::__max))) std::__throw_out_of_range(__name); else __ret = __tmp; if (__idx) *__idx = __endptr - __str; return __ret; } template _String __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, __builtin_va_list), std::size_t __n, const _CharT* __fmt, ...) { _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __n)); __builtin_va_list __args; __builtin_va_start(__args, __fmt); const int __len = __convf(__s, __n, __fmt, __args); __builtin_va_end(__args); return _String(__s, __s + __len); } } # 2663 "/usr/include/c++/4.5/bits/basic_string.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { inline int stoi(const string& __str, size_t* __idx = 0, int __base = 10) { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), __idx, __base); } inline long stol(const string& __str, size_t* __idx = 0, int __base = 10) { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), __idx, __base); } inline unsigned long stoul(const string& __str, size_t* __idx = 0, int __base = 10) { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), __idx, __base); } inline long long stoll(const string& __str, size_t* __idx = 0, int __base = 10) { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), __idx, __base); } inline unsigned long long stoull(const string& __str, size_t* __idx = 0, int __base = 10) { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), __idx, __base); } inline float stof(const string& __str, size_t* __idx = 0) { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } inline double stod(const string& __str, size_t* __idx = 0) { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } inline long double stold(const string& __str, size_t* __idx = 0) { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } inline string to_string(int __val) { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(int), "%d", __val); } inline string to_string(unsigned __val) { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(unsigned), "%u", __val); } inline string to_string(long __val) { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(long), "%ld", __val); } inline string to_string(unsigned long __val) { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(unsigned long), "%lu", __val); } inline string to_string(long long __val) { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(long long), "%lld", __val); } inline string to_string(unsigned long long __val) { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(unsigned long long), "%llu", __val); } inline string to_string(float __val) { const int __n = __gnu_cxx::__numeric_traits::__max_exponent10 + 20; return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, "%f", __val); } inline string to_string(double __val) { const int __n = __gnu_cxx::__numeric_traits::__max_exponent10 + 20; return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, "%f", __val); } inline string to_string(long double __val) { const int __n = __gnu_cxx::__numeric_traits::__max_exponent10 + 20; return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, "%Lf", __val); } inline int stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), __idx, __base); } inline long stol(const wstring& __str, size_t* __idx = 0, int __base = 10) { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), __idx, __base); } inline unsigned long stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), __idx, __base); } inline long long stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), __idx, __base); } inline unsigned long long stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), __idx, __base); } inline float stof(const wstring& __str, size_t* __idx = 0) { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } inline double stod(const wstring& __str, size_t* __idx = 0) { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } inline long double stold(const wstring& __str, size_t* __idx = 0) { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } inline wstring to_wstring(int __val) { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), L"%d", __val); } inline wstring to_wstring(unsigned __val) { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(unsigned), L"%u", __val); } inline wstring to_wstring(long __val) { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), L"%ld", __val); } inline wstring to_wstring(unsigned long __val) { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(unsigned long), L"%lu", __val); } inline wstring to_wstring(long long __val) { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long long), L"%lld", __val); } inline wstring to_wstring(unsigned long long __val) { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(unsigned long long), L"%llu", __val); } inline wstring to_wstring(float __val) { const int __n = __gnu_cxx::__numeric_traits::__max_exponent10 + 20; return __gnu_cxx::__to_xstring(&std::vswprintf, __n, L"%f", __val); } inline wstring to_wstring(double __val) { const int __n = __gnu_cxx::__numeric_traits::__max_exponent10 + 20; return __gnu_cxx::__to_xstring(&std::vswprintf, __n, L"%f", __val); } inline wstring to_wstring(long double __val) { const int __n = __gnu_cxx::__numeric_traits::__max_exponent10 + 20; return __gnu_cxx::__to_xstring(&std::vswprintf, __n, L"%Lf", __val); } } # 1 "/usr/include/c++/4.5/bits/functional_hash.h" 1 3 # 33 "/usr/include/c++/4.5/bits/functional_hash.h" 3 # 34 "/usr/include/c++/4.5/bits/functional_hash.h" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 36 "/usr/include/c++/4.5/bits/functional_hash.h" 2 3 namespace std { # 49 "/usr/include/c++/4.5/bits/functional_hash.h" 3 template struct hash : public std::unary_function<_Tp, size_t> { size_t operator()(_Tp __val) const; }; template struct hash<_Tp*> : public std::unary_function<_Tp*, size_t> { size_t operator()(_Tp* __p) const { return reinterpret_cast(__p); } }; # 73 "/usr/include/c++/4.5/bits/functional_hash.h" 3 template<> inline size_t hash::operator()(bool __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(char __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(signed char __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(unsigned char __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(wchar_t __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(char16_t __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(char32_t __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(short __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(int __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(long __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(long long __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(unsigned short __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(unsigned int __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(unsigned long __val) const { return static_cast(__val); }; template<> inline size_t hash::operator()(unsigned long long __val) const { return static_cast(__val); }; template struct _Fnv_hash_base { template static size_t hash(const _Tp* __ptr, size_t __clength, size_t __hash = 0) { const char* __cptr = reinterpret_cast(__ptr); for (; __clength; --__clength) __hash = (__hash * 131) + *__cptr++; return __hash; } }; template<> struct _Fnv_hash_base<4> { template static size_t hash(const _Tp* __ptr, size_t __clength, size_t __hash = static_cast(2166136261UL)) { const char* __cptr = reinterpret_cast(__ptr); for (; __clength; --__clength) { __hash ^= static_cast(*__cptr++); __hash *= static_cast(16777619UL); } return __hash; } }; template<> struct _Fnv_hash_base<8> { template static size_t hash(const _Tp* __ptr, size_t __clength, size_t __hash = static_cast(14695981039346656037ULL)) { const char* __cptr = reinterpret_cast(__ptr); for (; __clength; --__clength) { __hash ^= static_cast(*__cptr++); __hash *= static_cast(1099511628211ULL); } return __hash; } }; struct _Fnv_hash : public _Fnv_hash_base { using _Fnv_hash_base::hash; template static size_t hash(const _Tp& __val) { return hash(&__val, sizeof(__val)); } template static size_t __hash_combine(const _Tp& __val, size_t __hash) { return hash(&__val, sizeof(__val), __hash); } }; template<> inline size_t hash::operator()(float __val) const { return __val != 0.0f ? std::_Fnv_hash::hash(__val) : 0; } template<> inline size_t hash::operator()(double __val) const { return __val != 0.0 ? std::_Fnv_hash::hash(__val) : 0; } template<> __attribute__ ((__pure__)) size_t hash::operator()(long double __val) const; } # 2878 "/usr/include/c++/4.5/bits/basic_string.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { template<> struct hash : public std::unary_function { size_t operator()(const string& __s) const { return std::_Fnv_hash::hash(__s.data(), __s.length()); } }; template<> struct hash : public std::unary_function { size_t operator()(const wstring& __s) const { return std::_Fnv_hash::hash(__s.data(), __s.length() * sizeof(wchar_t)); } }; template<> struct hash : public std::unary_function { size_t operator()(const u16string& __s) const { return std::_Fnv_hash::hash(__s.data(), __s.length() * sizeof(char16_t)); } }; template<> struct hash : public std::unary_function { size_t operator()(const u32string& __s) const { return std::_Fnv_hash::hash(__s.data(), __s.length() * sizeof(char32_t)); } }; } # 54 "/usr/include/c++/4.5/string" 2 3 # 1 "/usr/include/c++/4.5/bits/basic_string.tcc" 1 3 # 42 "/usr/include/c++/4.5/bits/basic_string.tcc" 3 # 43 "/usr/include/c++/4.5/bits/basic_string.tcc" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template const typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4; template const _CharT basic_string<_CharT, _Traits, _Alloc>:: _Rep::_S_terminal = _CharT(); template const typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>::npos; template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[ (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) / sizeof(size_type)]; template template _CharT* basic_string<_CharT, _Traits, _Alloc>:: _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, input_iterator_tag) { if (__beg == __end && __a == _Alloc()) return _S_empty_rep()._M_refdata(); _CharT __buf[128]; size_type __len = 0; while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT)) { __buf[__len++] = *__beg; ++__beg; } _Rep* __r = _Rep::_S_create(__len, size_type(0), __a); _M_copy(__r->_M_refdata(), __buf, __len); try { while (__beg != __end) { if (__len == __r->_M_capacity) { _Rep* __another = _Rep::_S_create(__len + 1, __len, __a); _M_copy(__another->_M_refdata(), __r->_M_refdata(), __len); __r->_M_destroy(__a); __r = __another; } __r->_M_refdata()[__len++] = *__beg; ++__beg; } } catch(...) { __r->_M_destroy(__a); throw; } __r->_M_set_length_and_sharable(__len); return __r->_M_refdata(); } template template _CharT* basic_string<_CharT, _Traits, _Alloc>:: _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, forward_iterator_tag) { if (__beg == __end && __a == _Alloc()) return _S_empty_rep()._M_refdata(); if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) __throw_logic_error(("basic_string::_S_construct NULL not valid")); const size_type __dnew = static_cast(std::distance(__beg, __end)); _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a); try { _S_copy_chars(__r->_M_refdata(), __beg, __end); } catch(...) { __r->_M_destroy(__a); throw; } __r->_M_set_length_and_sharable(__dnew); return __r->_M_refdata(); } template _CharT* basic_string<_CharT, _Traits, _Alloc>:: _S_construct(size_type __n, _CharT __c, const _Alloc& __a) { if (__n == 0 && __a == _Alloc()) return _S_empty_rep()._M_refdata(); _Rep* __r = _Rep::_S_create(__n, size_type(0), __a); if (__n) _M_assign(__r->_M_refdata(), __n, __c); __r->_M_set_length_and_sharable(__n); return __r->_M_refdata(); } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const basic_string& __str) : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()), __str.get_allocator()), __str.get_allocator()) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const _Alloc& __a) : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const basic_string& __str, size_type __pos, size_type __n) : _M_dataplus(_S_construct(__str._M_data() + __str._M_check(__pos, "basic_string::basic_string"), __str._M_data() + __str._M_limit(__pos, __n) + __pos, _Alloc()), _Alloc()) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const basic_string& __str, size_type __pos, size_type __n, const _Alloc& __a) : _M_dataplus(_S_construct(__str._M_data() + __str._M_check(__pos, "basic_string::basic_string"), __str._M_data() + __str._M_limit(__pos, __n) + __pos, __a), __a) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const _CharT* __s, size_type __n, const _Alloc& __a) : _M_dataplus(_S_construct(__s, __s + __n, __a), __a) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const _CharT* __s, const _Alloc& __a) : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) : __s + npos, __a), __a) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(size_type __n, _CharT __c, const _Alloc& __a) : _M_dataplus(_S_construct(__n, __c, __a), __a) { } template template basic_string<_CharT, _Traits, _Alloc>:: basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a) : _M_dataplus(_S_construct(__beg, __end, __a), __a) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(initializer_list<_CharT> __l, const _Alloc& __a) : _M_dataplus(_S_construct(__l.begin(), __l.end(), __a), __a) { } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: assign(const basic_string& __str) { if (_M_rep() != __str._M_rep()) { const allocator_type __a = this->get_allocator(); _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator()); _M_rep()->_M_dispose(__a); _M_data(__tmp); } return *this; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: assign(const _CharT* __s, size_type __n) { ; _M_check_length(this->size(), __n, "basic_string::assign"); if (_M_disjunct(__s) || _M_rep()->_M_is_shared()) return _M_replace_safe(size_type(0), this->size(), __s, __n); else { const size_type __pos = __s - _M_data(); if (__pos >= __n) _M_copy(_M_data(), __s, __n); else if (__pos) _M_move(_M_data(), __s, __n); _M_rep()->_M_set_length_and_sharable(__n); return *this; } } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: append(size_type __n, _CharT __c) { if (__n) { _M_check_length(size_type(0), __n, "basic_string::append"); const size_type __len = __n + this->size(); if (__len > this->capacity() || _M_rep()->_M_is_shared()) this->reserve(__len); _M_assign(_M_data() + this->size(), __n, __c); _M_rep()->_M_set_length_and_sharable(__len); } return *this; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: append(const _CharT* __s, size_type __n) { ; if (__n) { _M_check_length(size_type(0), __n, "basic_string::append"); const size_type __len = __n + this->size(); if (__len > this->capacity() || _M_rep()->_M_is_shared()) { if (_M_disjunct(__s)) this->reserve(__len); else { const size_type __off = __s - _M_data(); this->reserve(__len); __s = _M_data() + __off; } } _M_copy(_M_data() + this->size(), __s, __n); _M_rep()->_M_set_length_and_sharable(__len); } return *this; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: append(const basic_string& __str) { const size_type __size = __str.size(); if (__size) { const size_type __len = __size + this->size(); if (__len > this->capacity() || _M_rep()->_M_is_shared()) this->reserve(__len); _M_copy(_M_data() + this->size(), __str._M_data(), __size); _M_rep()->_M_set_length_and_sharable(__len); } return *this; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: append(const basic_string& __str, size_type __pos, size_type __n) { __str._M_check(__pos, "basic_string::append"); __n = __str._M_limit(__pos, __n); if (__n) { const size_type __len = __n + this->size(); if (__len > this->capacity() || _M_rep()->_M_is_shared()) this->reserve(__len); _M_copy(_M_data() + this->size(), __str._M_data() + __pos, __n); _M_rep()->_M_set_length_and_sharable(__len); } return *this; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: insert(size_type __pos, const _CharT* __s, size_type __n) { ; _M_check(__pos, "basic_string::insert"); _M_check_length(size_type(0), __n, "basic_string::insert"); if (_M_disjunct(__s) || _M_rep()->_M_is_shared()) return _M_replace_safe(__pos, size_type(0), __s, __n); else { const size_type __off = __s - _M_data(); _M_mutate(__pos, 0, __n); __s = _M_data() + __off; _CharT* __p = _M_data() + __pos; if (__s + __n <= __p) _M_copy(__p, __s, __n); else if (__s >= __p) _M_copy(__p, __s + __n, __n); else { const size_type __nleft = __p - __s; _M_copy(__p, __s, __nleft); _M_copy(__p + __nleft, __p + __n, __n - __nleft); } return *this; } } template typename basic_string<_CharT, _Traits, _Alloc>::iterator basic_string<_CharT, _Traits, _Alloc>:: erase(iterator __first, iterator __last) { ; const size_type __size = __last - __first; if (__size) { const size_type __pos = __first - _M_ibegin(); _M_mutate(__pos, __size, size_type(0)); _M_rep()->_M_set_leaked(); return iterator(_M_data() + __pos); } else return __first; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: replace(size_type __pos, size_type __n1, const _CharT* __s, size_type __n2) { ; _M_check(__pos, "basic_string::replace"); __n1 = _M_limit(__pos, __n1); _M_check_length(__n1, __n2, "basic_string::replace"); bool __left; if (_M_disjunct(__s) || _M_rep()->_M_is_shared()) return _M_replace_safe(__pos, __n1, __s, __n2); else if ((__left = __s + __n2 <= _M_data() + __pos) || _M_data() + __pos + __n1 <= __s) { size_type __off = __s - _M_data(); __left ? __off : (__off += __n2 - __n1); _M_mutate(__pos, __n1, __n2); _M_copy(_M_data() + __pos, _M_data() + __off, __n2); return *this; } else { const basic_string __tmp(__s, __n2); return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2); } } template void basic_string<_CharT, _Traits, _Alloc>::_Rep:: _M_destroy(const _Alloc& __a) throw () { const size_type __size = sizeof(_Rep_base) + (this->_M_capacity + 1) * sizeof(_CharT); _Raw_bytes_alloc(__a).deallocate(reinterpret_cast(this), __size); } template void basic_string<_CharT, _Traits, _Alloc>:: _M_leak_hard() { if (_M_rep() == &_S_empty_rep()) return; if (_M_rep()->_M_is_shared()) _M_mutate(0, 0, 0); _M_rep()->_M_set_leaked(); } template void basic_string<_CharT, _Traits, _Alloc>:: _M_mutate(size_type __pos, size_type __len1, size_type __len2) { const size_type __old_size = this->size(); const size_type __new_size = __old_size + __len2 - __len1; const size_type __how_much = __old_size - __pos - __len1; if (__new_size > this->capacity() || _M_rep()->_M_is_shared()) { const allocator_type __a = get_allocator(); _Rep* __r = _Rep::_S_create(__new_size, this->capacity(), __a); if (__pos) _M_copy(__r->_M_refdata(), _M_data(), __pos); if (__how_much) _M_copy(__r->_M_refdata() + __pos + __len2, _M_data() + __pos + __len1, __how_much); _M_rep()->_M_dispose(__a); _M_data(__r->_M_refdata()); } else if (__how_much && __len1 != __len2) { _M_move(_M_data() + __pos + __len2, _M_data() + __pos + __len1, __how_much); } _M_rep()->_M_set_length_and_sharable(__new_size); } template void basic_string<_CharT, _Traits, _Alloc>:: reserve(size_type __res) { if (__res != this->capacity() || _M_rep()->_M_is_shared()) { if (__res < this->size()) __res = this->size(); const allocator_type __a = get_allocator(); _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size()); _M_rep()->_M_dispose(__a); _M_data(__tmp); } } template void basic_string<_CharT, _Traits, _Alloc>:: swap(basic_string& __s) { if (_M_rep()->_M_is_leaked()) _M_rep()->_M_set_sharable(); if (__s._M_rep()->_M_is_leaked()) __s._M_rep()->_M_set_sharable(); if (this->get_allocator() == __s.get_allocator()) { _CharT* __tmp = _M_data(); _M_data(__s._M_data()); __s._M_data(__tmp); } else { const basic_string __tmp1(_M_ibegin(), _M_iend(), __s.get_allocator()); const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(), this->get_allocator()); *this = __tmp2; __s = __tmp1; } } template typename basic_string<_CharT, _Traits, _Alloc>::_Rep* basic_string<_CharT, _Traits, _Alloc>::_Rep:: _S_create(size_type __capacity, size_type __old_capacity, const _Alloc& __alloc) { if (__capacity > _S_max_size) __throw_length_error(("basic_string::_S_create")); # 577 "/usr/include/c++/4.5/bits/basic_string.tcc" 3 const size_type __pagesize = 4096; const size_type __malloc_header_size = 4 * sizeof(void*); if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) __capacity = 2 * __old_capacity; size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); const size_type __adj_size = __size + __malloc_header_size; if (__adj_size > __pagesize && __capacity > __old_capacity) { const size_type __extra = __pagesize - __adj_size % __pagesize; __capacity += __extra / sizeof(_CharT); if (__capacity > _S_max_size) __capacity = _S_max_size; __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); } void* __place = _Raw_bytes_alloc(__alloc).allocate(__size); _Rep *__p = new (__place) _Rep; __p->_M_capacity = __capacity; __p->_M_set_sharable(); return __p; } template _CharT* basic_string<_CharT, _Traits, _Alloc>::_Rep:: _M_clone(const _Alloc& __alloc, size_type __res) { const size_type __requested_cap = this->_M_length + __res; _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity, __alloc); if (this->_M_length) _M_copy(__r->_M_refdata(), _M_refdata(), this->_M_length); __r->_M_set_length_and_sharable(this->_M_length); return __r->_M_refdata(); } template void basic_string<_CharT, _Traits, _Alloc>:: resize(size_type __n, _CharT __c) { const size_type __size = this->size(); _M_check_length(__size, __n, "basic_string::resize"); if (__size < __n) this->append(__n - __size, __c); else if (__n < __size) this->erase(__n); } template template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2, __false_type) { const basic_string __s(__k1, __k2); const size_type __n1 = __i2 - __i1; _M_check_length(__n1, __s.size(), "basic_string::_M_replace_dispatch"); return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(), __s.size()); } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, _CharT __c) { _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); _M_mutate(__pos1, __n1, __n2); if (__n2) _M_assign(_M_data() + __pos1, __n2, __c); return *this; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s, size_type __n2) { _M_mutate(__pos1, __n1, __n2); if (__n2) _M_copy(_M_data() + __pos1, __s, __n2); return *this; } template basic_string<_CharT, _Traits, _Alloc> operator+(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { ; typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef typename __string_type::size_type __size_type; const __size_type __len = _Traits::length(__lhs); __string_type __str; __str.reserve(__len + __rhs.size()); __str.append(__lhs, __len); __str.append(__rhs); return __str; } template basic_string<_CharT, _Traits, _Alloc> operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef typename __string_type::size_type __size_type; __string_type __str; const __size_type __len = __rhs.size(); __str.reserve(__len + 1); __str.append(__size_type(1), __lhs); __str.append(__rhs); return __str; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: copy(_CharT* __s, size_type __n, size_type __pos) const { _M_check(__pos, "basic_string::copy"); __n = _M_limit(__pos, __n); ; if (__n) _M_copy(__s, _M_data() + __pos, __n); return __n; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find(const _CharT* __s, size_type __pos, size_type __n) const { ; const size_type __size = this->size(); const _CharT* __data = _M_data(); if (__n == 0) return __pos <= __size ? __pos : npos; if (__n <= __size) { for (; __pos <= __size - __n; ++__pos) if (traits_type::eq(__data[__pos], __s[0]) && traits_type::compare(__data + __pos + 1, __s + 1, __n - 1) == 0) return __pos; } return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find(_CharT __c, size_type __pos) const { size_type __ret = npos; const size_type __size = this->size(); if (__pos < __size) { const _CharT* __data = _M_data(); const size_type __n = __size - __pos; const _CharT* __p = traits_type::find(__data + __pos, __n, __c); if (__p) __ret = __p - __data; } return __ret; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: rfind(const _CharT* __s, size_type __pos, size_type __n) const { ; const size_type __size = this->size(); if (__n <= __size) { __pos = std::min(size_type(__size - __n), __pos); const _CharT* __data = _M_data(); do { if (traits_type::compare(__data + __pos, __s, __n) == 0) return __pos; } while (__pos-- > 0); } return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: rfind(_CharT __c, size_type __pos) const { size_type __size = this->size(); if (__size) { if (--__size > __pos) __size = __pos; for (++__size; __size-- > 0; ) if (traits_type::eq(_M_data()[__size], __c)) return __size; } return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const { ; for (; __n && __pos < this->size(); ++__pos) { const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); if (__p) return __pos; } return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const { ; size_type __size = this->size(); if (__size && __n) { if (--__size > __pos) __size = __pos; do { if (traits_type::find(__s, __n, _M_data()[__size])) return __size; } while (__size-- != 0); } return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const { ; for (; __pos < this->size(); ++__pos) if (!traits_type::find(__s, __n, _M_data()[__pos])) return __pos; return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find_first_not_of(_CharT __c, size_type __pos) const { for (; __pos < this->size(); ++__pos) if (!traits_type::eq(_M_data()[__pos], __c)) return __pos; return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const { ; size_type __size = this->size(); if (__size) { if (--__size > __pos) __size = __pos; do { if (!traits_type::find(__s, __n, _M_data()[__size])) return __size; } while (__size--); } return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find_last_not_of(_CharT __c, size_type __pos) const { size_type __size = this->size(); if (__size) { if (--__size > __pos) __size = __pos; do { if (!traits_type::eq(_M_data()[__size], __c)) return __size; } while (__size--); } return npos; } template int basic_string<_CharT, _Traits, _Alloc>:: compare(size_type __pos, size_type __n, const basic_string& __str) const { _M_check(__pos, "basic_string::compare"); __n = _M_limit(__pos, __n); const size_type __osize = __str.size(); const size_type __len = std::min(__n, __osize); int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); if (!__r) __r = _S_compare(__n, __osize); return __r; } template int basic_string<_CharT, _Traits, _Alloc>:: compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) const { _M_check(__pos1, "basic_string::compare"); __str._M_check(__pos2, "basic_string::compare"); __n1 = _M_limit(__pos1, __n1); __n2 = __str._M_limit(__pos2, __n2); const size_type __len = std::min(__n1, __n2); int __r = traits_type::compare(_M_data() + __pos1, __str.data() + __pos2, __len); if (!__r) __r = _S_compare(__n1, __n2); return __r; } template int basic_string<_CharT, _Traits, _Alloc>:: compare(const _CharT* __s) const { ; const size_type __size = this->size(); const size_type __osize = traits_type::length(__s); const size_type __len = std::min(__size, __osize); int __r = traits_type::compare(_M_data(), __s, __len); if (!__r) __r = _S_compare(__size, __osize); return __r; } template int basic_string <_CharT, _Traits, _Alloc>:: compare(size_type __pos, size_type __n1, const _CharT* __s) const { ; _M_check(__pos, "basic_string::compare"); __n1 = _M_limit(__pos, __n1); const size_type __osize = traits_type::length(__s); const size_type __len = std::min(__n1, __osize); int __r = traits_type::compare(_M_data() + __pos, __s, __len); if (!__r) __r = _S_compare(__n1, __osize); return __r; } template int basic_string <_CharT, _Traits, _Alloc>:: compare(size_type __pos, size_type __n1, const _CharT* __s, size_type __n2) const { ; _M_check(__pos, "basic_string::compare"); __n1 = _M_limit(__pos, __n1); const size_type __len = std::min(__n1, __n2); int __r = traits_type::compare(_M_data() + __pos, __s, __len); if (!__r) __r = _S_compare(__n1, __n2); return __r; } template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __in, basic_string<_CharT, _Traits, _Alloc>& __str) { typedef basic_istream<_CharT, _Traits> __istream_type; typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef typename __istream_type::ios_base __ios_base; typedef typename __istream_type::int_type __int_type; typedef typename __string_type::size_type __size_type; typedef ctype<_CharT> __ctype_type; typedef typename __ctype_type::ctype_base __ctype_base; __size_type __extracted = 0; typename __ios_base::iostate __err = __ios_base::goodbit; typename __istream_type::sentry __cerb(__in, false); if (__cerb) { try { __str.erase(); _CharT __buf[128]; __size_type __len = 0; const streamsize __w = __in.width(); const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) : __str.max_size(); const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); const __int_type __eof = _Traits::eof(); __int_type __c = __in.rdbuf()->sgetc(); while (__extracted < __n && !_Traits::eq_int_type(__c, __eof) && !__ct.is(__ctype_base::space, _Traits::to_char_type(__c))) { if (__len == sizeof(__buf) / sizeof(_CharT)) { __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); __len = 0; } __buf[__len++] = _Traits::to_char_type(__c); ++__extracted; __c = __in.rdbuf()->snextc(); } __str.append(__buf, __len); if (_Traits::eq_int_type(__c, __eof)) __err |= __ios_base::eofbit; __in.width(0); } catch(__cxxabiv1::__forced_unwind&) { __in._M_setstate(__ios_base::badbit); throw; } catch(...) { __in._M_setstate(__ios_base::badbit); } } if (!__extracted) __err |= __ios_base::failbit; if (__err) __in.setstate(__err); return __in; } template basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>& __in, basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) { typedef basic_istream<_CharT, _Traits> __istream_type; typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef typename __istream_type::ios_base __ios_base; typedef typename __istream_type::int_type __int_type; typedef typename __string_type::size_type __size_type; __size_type __extracted = 0; const __size_type __n = __str.max_size(); typename __ios_base::iostate __err = __ios_base::goodbit; typename __istream_type::sentry __cerb(__in, true); if (__cerb) { try { __str.erase(); const __int_type __idelim = _Traits::to_int_type(__delim); const __int_type __eof = _Traits::eof(); __int_type __c = __in.rdbuf()->sgetc(); while (__extracted < __n && !_Traits::eq_int_type(__c, __eof) && !_Traits::eq_int_type(__c, __idelim)) { __str += _Traits::to_char_type(__c); ++__extracted; __c = __in.rdbuf()->snextc(); } if (_Traits::eq_int_type(__c, __eof)) __err |= __ios_base::eofbit; else if (_Traits::eq_int_type(__c, __idelim)) { ++__extracted; __in.rdbuf()->sbumpc(); } else __err |= __ios_base::failbit; } catch(__cxxabiv1::__forced_unwind&) { __in._M_setstate(__ios_base::badbit); throw; } catch(...) { __in._M_setstate(__ios_base::badbit); } } if (!__extracted) __err |= __ios_base::failbit; if (__err) __in.setstate(__err); return __in; } extern template class basic_string; extern template basic_istream& operator>>(basic_istream&, string&); extern template basic_ostream& operator<<(basic_ostream&, const string&); extern template basic_istream& getline(basic_istream&, string&, char); extern template basic_istream& getline(basic_istream&, string&); extern template class basic_string; extern template basic_istream& operator>>(basic_istream&, wstring&); extern template basic_ostream& operator<<(basic_ostream&, const wstring&); extern template basic_istream& getline(basic_istream&, wstring&, wchar_t); extern template basic_istream& getline(basic_istream&, wstring&); } # 57 "/usr/include/c++/4.5/string" 2 3 # 7 "src/bp/bp.h" 2 # 1 "/usr/include/c++/4.5/vector" 1 3 # 59 "/usr/include/c++/4.5/vector" 3 # 60 "/usr/include/c++/4.5/vector" 3 # 1 "/usr/include/c++/4.5/bits/stl_construct.h" 1 3 # 63 "/usr/include/c++/4.5/bits/stl_construct.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template inline void _Construct(_T1* __p, _T2&& __value) { ::new(static_cast(__p)) _T1(std::forward<_T2>(__value)); } template inline void _Destroy(_Tp* __pointer) { __pointer->~_Tp(); } template struct _Destroy_aux { template static void __destroy(_ForwardIterator __first, _ForwardIterator __last) { for (; __first != __last; ++__first) std::_Destroy(&*__first); } }; template<> struct _Destroy_aux { template static void __destroy(_ForwardIterator, _ForwardIterator) { } }; template inline void _Destroy(_ForwardIterator __first, _ForwardIterator __last) { typedef typename iterator_traits<_ForwardIterator>::value_type _Value_type; std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: __destroy(__first, __last); } template class allocator; template void _Destroy(_ForwardIterator __first, _ForwardIterator __last, _Allocator& __alloc) { for (; __first != __last; ++__first) __alloc.destroy(&*__first); } template inline void _Destroy(_ForwardIterator __first, _ForwardIterator __last, allocator<_Tp>&) { _Destroy(__first, __last); } } # 64 "/usr/include/c++/4.5/vector" 2 3 # 1 "/usr/include/c++/4.5/bits/stl_uninitialized.h" 1 3 # 60 "/usr/include/c++/4.5/bits/stl_uninitialized.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template struct __uninitialized_copy { template static _ForwardIterator uninitialized_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result) { _ForwardIterator __cur = __result; try { for (; __first != __last; ++__first, ++__cur) std::_Construct(&*__cur, *__first); return __cur; } catch(...) { std::_Destroy(__result, __cur); throw; } } }; template<> struct __uninitialized_copy { template static _ForwardIterator uninitialized_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result) { return std::copy(__first, __last, __result); } }; # 104 "/usr/include/c++/4.5/bits/stl_uninitialized.h" 3 template inline _ForwardIterator uninitialized_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result) { typedef typename iterator_traits<_InputIterator>::value_type _ValueType1; typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType2; return std::__uninitialized_copy<(__is_pod(_ValueType1) && __is_pod(_ValueType2))>:: uninitialized_copy(__first, __last, __result); } template struct __uninitialized_fill { template static void uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __x) { _ForwardIterator __cur = __first; try { for (; __cur != __last; ++__cur) std::_Construct(&*__cur, __x); } catch(...) { std::_Destroy(__first, __cur); throw; } } }; template<> struct __uninitialized_fill { template static void uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __x) { std::fill(__first, __last, __x); } }; # 161 "/usr/include/c++/4.5/bits/stl_uninitialized.h" 3 template inline void uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __x) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; std::__uninitialized_fill<__is_pod(_ValueType)>:: uninitialized_fill(__first, __last, __x); } template struct __uninitialized_construct_range_dispatch { template static void __ucr(_ForwardIterator __first, _ForwardIterator __last, _Tp& __value) { if(__first == __last) return; _ForwardIterator __cur = __first; try { std::_Construct(&*__first, std::move(__value)); _ForwardIterator __prev = __cur; ++__cur; for(; __cur != __last; ++__cur, ++__prev) std::_Construct(&*__cur, std::move(*__prev)); __value = std::move(*__prev); } catch(...) { std::_Destroy(__first, __cur); throw; } } }; template<> struct __uninitialized_construct_range_dispatch { template static void __ucr(_ForwardIterator, _ForwardIterator, _Tp&) { } }; # 221 "/usr/include/c++/4.5/bits/stl_uninitialized.h" 3 template inline void __uninitialized_construct_range(_ForwardIterator __first, _ForwardIterator __last, _Tp& __value) { typedef typename std::iterator_traits<_ForwardIterator>::value_type _ValueType; std::__uninitialized_construct_range_dispatch< __has_trivial_constructor(_ValueType)>:: __ucr(__first, __last, __value); } template struct __uninitialized_fill_n { template static void uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) { _ForwardIterator __cur = __first; try { for (; __n > 0; --__n, ++__cur) std::_Construct(&*__cur, __x); } catch(...) { std::_Destroy(__first, __cur); throw; } } }; template<> struct __uninitialized_fill_n { template static void uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) { std::fill_n(__first, __n, __x); } }; # 277 "/usr/include/c++/4.5/bits/stl_uninitialized.h" 3 template inline void uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; std::__uninitialized_fill_n<__is_pod(_ValueType)>:: uninitialized_fill_n(__first, __n, __x); } template _ForwardIterator __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _Allocator& __alloc) { _ForwardIterator __cur = __result; try { for (; __first != __last; ++__first, ++__cur) __alloc.construct(&*__cur, *__first); return __cur; } catch(...) { std::_Destroy(__result, __cur, __alloc); throw; } } template inline _ForwardIterator __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, allocator<_Tp>&) { return std::uninitialized_copy(__first, __last, __result); } template inline _ForwardIterator __uninitialized_move_a(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _Allocator& __alloc) { return std::__uninitialized_copy_a(std::make_move_iterator(__first), std::make_move_iterator(__last), __result, __alloc); } template void __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __x, _Allocator& __alloc) { _ForwardIterator __cur = __first; try { for (; __cur != __last; ++__cur) __alloc.construct(&*__cur, __x); } catch(...) { std::_Destroy(__first, __cur, __alloc); throw; } } template inline void __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __x, allocator<_Tp2>&) { std::uninitialized_fill(__first, __last, __x); } template void __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, const _Tp& __x, _Allocator& __alloc) { _ForwardIterator __cur = __first; try { for (; __n > 0; --__n, ++__cur) __alloc.construct(&*__cur, __x); } catch(...) { std::_Destroy(__first, __cur, __alloc); throw; } } template inline void __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, const _Tp& __x, allocator<_Tp2>&) { std::uninitialized_fill_n(__first, __n, __x); } # 391 "/usr/include/c++/4.5/bits/stl_uninitialized.h" 3 template inline _ForwardIterator __uninitialized_copy_move(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _ForwardIterator __result, _Allocator& __alloc) { _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, __result, __alloc); try { return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); } catch(...) { std::_Destroy(__result, __mid, __alloc); throw; } } template inline _ForwardIterator __uninitialized_move_copy(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _ForwardIterator __result, _Allocator& __alloc) { _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, __result, __alloc); try { return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); } catch(...) { std::_Destroy(__result, __mid, __alloc); throw; } } template inline _ForwardIterator __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, const _Tp& __x, _InputIterator __first, _InputIterator __last, _Allocator& __alloc) { std::__uninitialized_fill_a(__result, __mid, __x, __alloc); try { return std::__uninitialized_move_a(__first, __last, __mid, __alloc); } catch(...) { std::_Destroy(__result, __mid, __alloc); throw; } } template inline void __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2, const _Tp& __x, _Allocator& __alloc) { _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, __first2, __alloc); try { std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); } catch(...) { std::_Destroy(__first2, __mid2, __alloc); throw; } } template _ForwardIterator __uninitialized_copy_n(_InputIterator __first, _Size __n, _ForwardIterator __result, input_iterator_tag) { _ForwardIterator __cur = __result; try { for (; __n > 0; --__n, ++__first, ++__cur) ::new(static_cast(&*__cur)) typename iterator_traits<_ForwardIterator>::value_type(*__first); return __cur; } catch(...) { std::_Destroy(__result, __cur); throw; } } template inline _ForwardIterator __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, _ForwardIterator __result, random_access_iterator_tag) { return std::uninitialized_copy(__first, __first + __n, __result); } # 529 "/usr/include/c++/4.5/bits/stl_uninitialized.h" 3 template inline _ForwardIterator uninitialized_copy_n(_InputIterator __first, _Size __n, _ForwardIterator __result) { return std::__uninitialized_copy_n(__first, __n, __result, std::__iterator_category(__first)); } } # 65 "/usr/include/c++/4.5/vector" 2 3 # 1 "/usr/include/c++/4.5/bits/stl_vector.h" 1 3 # 65 "/usr/include/c++/4.5/bits/stl_vector.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template struct _Vector_base { typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type; struct _Vector_impl : public _Tp_alloc_type { typename _Tp_alloc_type::pointer _M_start; typename _Tp_alloc_type::pointer _M_finish; typename _Tp_alloc_type::pointer _M_end_of_storage; _Vector_impl() : _Tp_alloc_type(), _M_start(0), _M_finish(0), _M_end_of_storage(0) { } _Vector_impl(_Tp_alloc_type const& __a) : _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0) { } }; public: typedef _Alloc allocator_type; _Tp_alloc_type& _M_get_Tp_allocator() { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } const _Tp_alloc_type& _M_get_Tp_allocator() const { return *static_cast(&this->_M_impl); } allocator_type get_allocator() const { return allocator_type(_M_get_Tp_allocator()); } _Vector_base() : _M_impl() { } _Vector_base(const allocator_type& __a) : _M_impl(__a) { } _Vector_base(size_t __n, const allocator_type& __a) : _M_impl(__a) { this->_M_impl._M_start = this->_M_allocate(__n); this->_M_impl._M_finish = this->_M_impl._M_start; this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; } _Vector_base(_Vector_base&& __x) : _M_impl(__x._M_get_Tp_allocator()) { this->_M_impl._M_start = __x._M_impl._M_start; this->_M_impl._M_finish = __x._M_impl._M_finish; this->_M_impl._M_end_of_storage = __x._M_impl._M_end_of_storage; __x._M_impl._M_start = 0; __x._M_impl._M_finish = 0; __x._M_impl._M_end_of_storage = 0; } ~_Vector_base() { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); } public: _Vector_impl _M_impl; typename _Tp_alloc_type::pointer _M_allocate(size_t __n) { return __n != 0 ? _M_impl.allocate(__n) : 0; } void _M_deallocate(typename _Tp_alloc_type::pointer __p, size_t __n) { if (__p) _M_impl.deallocate(__p, __n); } }; # 169 "/usr/include/c++/4.5/bits/stl_vector.h" 3 template > class vector : protected _Vector_base<_Tp, _Alloc> { typedef typename _Alloc::value_type _Alloc_value_type; typedef _Vector_base<_Tp, _Alloc> _Base; typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; public: typedef _Tp value_type; typedef typename _Tp_alloc_type::pointer pointer; typedef typename _Tp_alloc_type::const_pointer const_pointer; typedef typename _Tp_alloc_type::reference reference; typedef typename _Tp_alloc_type::const_reference const_reference; typedef __gnu_cxx::__normal_iterator iterator; typedef __gnu_cxx::__normal_iterator const_iterator; typedef std::reverse_iterator const_reverse_iterator; typedef std::reverse_iterator reverse_iterator; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Alloc allocator_type; protected: using _Base::_M_allocate; using _Base::_M_deallocate; using _Base::_M_impl; using _Base::_M_get_Tp_allocator; public: vector() : _Base() { } explicit vector(const allocator_type& __a) : _Base(__a) { } # 226 "/usr/include/c++/4.5/bits/stl_vector.h" 3 explicit vector(size_type __n, const value_type& __value = value_type(), const allocator_type& __a = allocator_type()) : _Base(__n, __a) { _M_fill_initialize(__n, __value); } # 241 "/usr/include/c++/4.5/bits/stl_vector.h" 3 vector(const vector& __x) : _Base(__x.size(), __x._M_get_Tp_allocator()) { this->_M_impl._M_finish = std::__uninitialized_copy_a(__x.begin(), __x.end(), this->_M_impl._M_start, _M_get_Tp_allocator()); } # 257 "/usr/include/c++/4.5/bits/stl_vector.h" 3 vector(vector&& __x) : _Base(std::forward<_Base>(__x)) { } # 271 "/usr/include/c++/4.5/bits/stl_vector.h" 3 vector(initializer_list __l, const allocator_type& __a = allocator_type()) : _Base(__a) { _M_range_initialize(__l.begin(), __l.end(), random_access_iterator_tag()); } # 296 "/usr/include/c++/4.5/bits/stl_vector.h" 3 template vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a = allocator_type()) : _Base(__a) { typedef typename std::__is_integer<_InputIterator>::__type _Integral; _M_initialize_dispatch(__first, __last, _Integral()); } ~vector() { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); } # 324 "/usr/include/c++/4.5/bits/stl_vector.h" 3 vector& operator=(const vector& __x); # 335 "/usr/include/c++/4.5/bits/stl_vector.h" 3 vector& operator=(vector&& __x) { this->clear(); this->swap(__x); return *this; } # 356 "/usr/include/c++/4.5/bits/stl_vector.h" 3 vector& operator=(initializer_list __l) { this->assign(__l.begin(), __l.end()); return *this; } # 374 "/usr/include/c++/4.5/bits/stl_vector.h" 3 void assign(size_type __n, const value_type& __val) { _M_fill_assign(__n, __val); } # 390 "/usr/include/c++/4.5/bits/stl_vector.h" 3 template void assign(_InputIterator __first, _InputIterator __last) { typedef typename std::__is_integer<_InputIterator>::__type _Integral; _M_assign_dispatch(__first, __last, _Integral()); } # 411 "/usr/include/c++/4.5/bits/stl_vector.h" 3 void assign(initializer_list __l) { this->assign(__l.begin(), __l.end()); } using _Base::get_allocator; iterator begin() { return iterator(this->_M_impl._M_start); } const_iterator begin() const { return const_iterator(this->_M_impl._M_start); } iterator end() { return iterator(this->_M_impl._M_finish); } const_iterator end() const { return const_iterator(this->_M_impl._M_finish); } reverse_iterator rbegin() { return reverse_iterator(end()); } const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } reverse_iterator rend() { return reverse_iterator(begin()); } const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } const_iterator cbegin() const { return const_iterator(this->_M_impl._M_start); } const_iterator cend() const { return const_iterator(this->_M_impl._M_finish); } const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } size_type size() const { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } size_type max_size() const { return _M_get_Tp_allocator().max_size(); } # 552 "/usr/include/c++/4.5/bits/stl_vector.h" 3 void resize(size_type __new_size, value_type __x = value_type()) { if (__new_size < size()) _M_erase_at_end(this->_M_impl._M_start + __new_size); else insert(end(), __new_size - size(), __x); } void shrink_to_fit() { std::__shrink_to_fit::_S_do_it(*this); } size_type capacity() const { return size_type(this->_M_impl._M_end_of_storage - this->_M_impl._M_start); } bool empty() const { return begin() == end(); } # 602 "/usr/include/c++/4.5/bits/stl_vector.h" 3 void reserve(size_type __n); # 617 "/usr/include/c++/4.5/bits/stl_vector.h" 3 reference operator[](size_type __n) { return *(this->_M_impl._M_start + __n); } # 632 "/usr/include/c++/4.5/bits/stl_vector.h" 3 const_reference operator[](size_type __n) const { return *(this->_M_impl._M_start + __n); } protected: void _M_range_check(size_type __n) const { if (__n >= this->size()) __throw_out_of_range(("vector::_M_range_check")); } public: # 657 "/usr/include/c++/4.5/bits/stl_vector.h" 3 reference at(size_type __n) { _M_range_check(__n); return (*this)[__n]; } # 675 "/usr/include/c++/4.5/bits/stl_vector.h" 3 const_reference at(size_type __n) const { _M_range_check(__n); return (*this)[__n]; } reference front() { return *begin(); } const_reference front() const { return *begin(); } reference back() { return *(end() - 1); } const_reference back() const { return *(end() - 1); } # 721 "/usr/include/c++/4.5/bits/stl_vector.h" 3 pointer data() { return pointer(this->_M_impl._M_start); } const_pointer data() const { return const_pointer(this->_M_impl._M_start); } # 740 "/usr/include/c++/4.5/bits/stl_vector.h" 3 void push_back(const value_type& __x) { if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) { this->_M_impl.construct(this->_M_impl._M_finish, __x); ++this->_M_impl._M_finish; } else _M_insert_aux(end(), __x); } void push_back(value_type&& __x) { emplace_back(std::move(__x)); } template void emplace_back(_Args&&... __args); # 771 "/usr/include/c++/4.5/bits/stl_vector.h" 3 void pop_back() { --this->_M_impl._M_finish; this->_M_impl.destroy(this->_M_impl._M_finish); } # 791 "/usr/include/c++/4.5/bits/stl_vector.h" 3 template iterator emplace(iterator __position, _Args&&... __args); # 807 "/usr/include/c++/4.5/bits/stl_vector.h" 3 iterator insert(iterator __position, const value_type& __x); # 822 "/usr/include/c++/4.5/bits/stl_vector.h" 3 iterator insert(iterator __position, value_type&& __x) { return emplace(__position, std::move(__x)); } # 839 "/usr/include/c++/4.5/bits/stl_vector.h" 3 void insert(iterator __position, initializer_list __l) { this->insert(__position, __l.begin(), __l.end()); } # 857 "/usr/include/c++/4.5/bits/stl_vector.h" 3 void insert(iterator __position, size_type __n, const value_type& __x) { _M_fill_insert(__position, __n, __x); } # 875 "/usr/include/c++/4.5/bits/stl_vector.h" 3 template void insert(iterator __position, _InputIterator __first, _InputIterator __last) { typedef typename std::__is_integer<_InputIterator>::__type _Integral; _M_insert_dispatch(__position, __first, __last, _Integral()); } # 900 "/usr/include/c++/4.5/bits/stl_vector.h" 3 iterator erase(iterator __position); # 921 "/usr/include/c++/4.5/bits/stl_vector.h" 3 iterator erase(iterator __first, iterator __last); # 933 "/usr/include/c++/4.5/bits/stl_vector.h" 3 void swap(vector& __x) { std::swap(this->_M_impl._M_start, __x._M_impl._M_start); std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); std::swap(this->_M_impl._M_end_of_storage, __x._M_impl._M_end_of_storage); std::__alloc_swap<_Tp_alloc_type>::_S_do_it(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); } void clear() { _M_erase_at_end(this->_M_impl._M_start); } protected: template pointer _M_allocate_and_copy(size_type __n, _ForwardIterator __first, _ForwardIterator __last) { pointer __result = this->_M_allocate(__n); try { std::__uninitialized_copy_a(__first, __last, __result, _M_get_Tp_allocator()); return __result; } catch(...) { _M_deallocate(__result, __n); throw; } } # 988 "/usr/include/c++/4.5/bits/stl_vector.h" 3 template void _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) { this->_M_impl._M_start = _M_allocate(static_cast(__n)); this->_M_impl._M_end_of_storage = this->_M_impl._M_start + static_cast(__n); _M_fill_initialize(static_cast(__n), __value); } template void _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, __false_type) { typedef typename std::iterator_traits<_InputIterator>:: iterator_category _IterCategory; _M_range_initialize(__first, __last, _IterCategory()); } template void _M_range_initialize(_InputIterator __first, _InputIterator __last, std::input_iterator_tag) { for (; __first != __last; ++__first) push_back(*__first); } template void _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) { const size_type __n = std::distance(__first, __last); this->_M_impl._M_start = this->_M_allocate(__n); this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; this->_M_impl._M_finish = std::__uninitialized_copy_a(__first, __last, this->_M_impl._M_start, _M_get_Tp_allocator()); } void _M_fill_initialize(size_type __n, const value_type& __value) { std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, _M_get_Tp_allocator()); this->_M_impl._M_finish = this->_M_impl._M_end_of_storage; } # 1052 "/usr/include/c++/4.5/bits/stl_vector.h" 3 template void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) { _M_fill_assign(__n, __val); } template void _M_assign_dispatch(_InputIterator __first, _InputIterator __last, __false_type) { typedef typename std::iterator_traits<_InputIterator>:: iterator_category _IterCategory; _M_assign_aux(__first, __last, _IterCategory()); } template void _M_assign_aux(_InputIterator __first, _InputIterator __last, std::input_iterator_tag); template void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag); void _M_fill_assign(size_type __n, const value_type& __val); # 1092 "/usr/include/c++/4.5/bits/stl_vector.h" 3 template void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, __true_type) { _M_fill_insert(__pos, __n, __val); } template void _M_insert_dispatch(iterator __pos, _InputIterator __first, _InputIterator __last, __false_type) { typedef typename std::iterator_traits<_InputIterator>:: iterator_category _IterCategory; _M_range_insert(__pos, __first, __last, _IterCategory()); } template void _M_range_insert(iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag); template void _M_range_insert(iterator __pos, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag); void _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); template void _M_insert_aux(iterator __position, _Args&&... __args); size_type _M_check_len(size_type __n, const char* __s) const { if (max_size() - size() < __n) __throw_length_error((__s)); const size_type __len = size() + std::max(size(), __n); return (__len < size() || __len > max_size()) ? max_size() : __len; } void _M_erase_at_end(pointer __pos) { std::_Destroy(__pos, this->_M_impl._M_finish, _M_get_Tp_allocator()); this->_M_impl._M_finish = __pos; } }; # 1170 "/usr/include/c++/4.5/bits/stl_vector.h" 3 template inline bool operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) { return (__x.size() == __y.size() && std::equal(__x.begin(), __x.end(), __y.begin())); } # 1187 "/usr/include/c++/4.5/bits/stl_vector.h" 3 template inline bool operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) { return std::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end()); } template inline bool operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) { return !(__x == __y); } template inline bool operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) { return __y < __x; } template inline bool operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) { return !(__y < __x); } template inline bool operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) { return !(__x < __y); } template inline void swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) { __x.swap(__y); } } # 66 "/usr/include/c++/4.5/vector" 2 3 # 1 "/usr/include/c++/4.5/bits/stl_bvector.h" 1 3 # 62 "/usr/include/c++/4.5/bits/stl_bvector.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { typedef unsigned long _Bit_type; enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; struct _Bit_reference { _Bit_type * _M_p; _Bit_type _M_mask; _Bit_reference(_Bit_type * __x, _Bit_type __y) : _M_p(__x), _M_mask(__y) { } _Bit_reference() : _M_p(0), _M_mask(0) { } operator bool() const { return !!(*_M_p & _M_mask); } _Bit_reference& operator=(bool __x) { if (__x) *_M_p |= _M_mask; else *_M_p &= ~_M_mask; return *this; } _Bit_reference& operator=(const _Bit_reference& __x) { return *this = bool(__x); } bool operator==(const _Bit_reference& __x) const { return bool(*this) == bool(__x); } bool operator<(const _Bit_reference& __x) const { return !bool(*this) && bool(__x); } void flip() { *_M_p ^= _M_mask; } }; struct _Bit_iterator_base : public std::iterator { _Bit_type * _M_p; unsigned int _M_offset; _Bit_iterator_base(_Bit_type * __x, unsigned int __y) : _M_p(__x), _M_offset(__y) { } void _M_bump_up() { if (_M_offset++ == int(_S_word_bit) - 1) { _M_offset = 0; ++_M_p; } } void _M_bump_down() { if (_M_offset-- == 0) { _M_offset = int(_S_word_bit) - 1; --_M_p; } } void _M_incr(ptrdiff_t __i) { difference_type __n = __i + _M_offset; _M_p += __n / int(_S_word_bit); __n = __n % int(_S_word_bit); if (__n < 0) { __n += int(_S_word_bit); --_M_p; } _M_offset = static_cast(__n); } bool operator==(const _Bit_iterator_base& __i) const { return _M_p == __i._M_p && _M_offset == __i._M_offset; } bool operator<(const _Bit_iterator_base& __i) const { return _M_p < __i._M_p || (_M_p == __i._M_p && _M_offset < __i._M_offset); } bool operator!=(const _Bit_iterator_base& __i) const { return !(*this == __i); } bool operator>(const _Bit_iterator_base& __i) const { return __i < *this; } bool operator<=(const _Bit_iterator_base& __i) const { return !(__i < *this); } bool operator>=(const _Bit_iterator_base& __i) const { return !(*this < __i); } }; inline ptrdiff_t operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) { return (int(_S_word_bit) * (__x._M_p - __y._M_p) + __x._M_offset - __y._M_offset); } struct _Bit_iterator : public _Bit_iterator_base { typedef _Bit_reference reference; typedef _Bit_reference* pointer; typedef _Bit_iterator iterator; _Bit_iterator() : _Bit_iterator_base(0, 0) { } _Bit_iterator(_Bit_type * __x, unsigned int __y) : _Bit_iterator_base(__x, __y) { } reference operator*() const { return reference(_M_p, 1UL << _M_offset); } iterator& operator++() { _M_bump_up(); return *this; } iterator operator++(int) { iterator __tmp = *this; _M_bump_up(); return __tmp; } iterator& operator--() { _M_bump_down(); return *this; } iterator operator--(int) { iterator __tmp = *this; _M_bump_down(); return __tmp; } iterator& operator+=(difference_type __i) { _M_incr(__i); return *this; } iterator& operator-=(difference_type __i) { *this += -__i; return *this; } iterator operator+(difference_type __i) const { iterator __tmp = *this; return __tmp += __i; } iterator operator-(difference_type __i) const { iterator __tmp = *this; return __tmp -= __i; } reference operator[](difference_type __i) const { return *(*this + __i); } }; inline _Bit_iterator operator+(ptrdiff_t __n, const _Bit_iterator& __x) { return __x + __n; } struct _Bit_const_iterator : public _Bit_iterator_base { typedef bool reference; typedef bool const_reference; typedef const bool* pointer; typedef _Bit_const_iterator const_iterator; _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } _Bit_const_iterator(_Bit_type * __x, unsigned int __y) : _Bit_iterator_base(__x, __y) { } _Bit_const_iterator(const _Bit_iterator& __x) : _Bit_iterator_base(__x._M_p, __x._M_offset) { } const_reference operator*() const { return _Bit_reference(_M_p, 1UL << _M_offset); } const_iterator& operator++() { _M_bump_up(); return *this; } const_iterator operator++(int) { const_iterator __tmp = *this; _M_bump_up(); return __tmp; } const_iterator& operator--() { _M_bump_down(); return *this; } const_iterator operator--(int) { const_iterator __tmp = *this; _M_bump_down(); return __tmp; } const_iterator& operator+=(difference_type __i) { _M_incr(__i); return *this; } const_iterator& operator-=(difference_type __i) { *this += -__i; return *this; } const_iterator operator+(difference_type __i) const { const_iterator __tmp = *this; return __tmp += __i; } const_iterator operator-(difference_type __i) const { const_iterator __tmp = *this; return __tmp -= __i; } const_reference operator[](difference_type __i) const { return *(*this + __i); } }; inline _Bit_const_iterator operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) { return __x + __n; } inline void __fill_bvector(_Bit_iterator __first, _Bit_iterator __last, bool __x) { for (; __first != __last; ++__first) *__first = __x; } inline void fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) { if (__first._M_p != __last._M_p) { std::fill(__first._M_p + 1, __last._M_p, __x ? ~0 : 0); __fill_bvector(__first, _Bit_iterator(__first._M_p + 1, 0), __x); __fill_bvector(_Bit_iterator(__last._M_p, 0), __last, __x); } else __fill_bvector(__first, __last, __x); } template struct _Bvector_base { typedef typename _Alloc::template rebind<_Bit_type>::other _Bit_alloc_type; struct _Bvector_impl : public _Bit_alloc_type { _Bit_iterator _M_start; _Bit_iterator _M_finish; _Bit_type* _M_end_of_storage; _Bvector_impl() : _Bit_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage(0) { } _Bvector_impl(const _Bit_alloc_type& __a) : _Bit_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage(0) { } }; public: typedef _Alloc allocator_type; _Bit_alloc_type& _M_get_Bit_allocator() { return *static_cast<_Bit_alloc_type*>(&this->_M_impl); } const _Bit_alloc_type& _M_get_Bit_allocator() const { return *static_cast(&this->_M_impl); } allocator_type get_allocator() const { return allocator_type(_M_get_Bit_allocator()); } _Bvector_base() : _M_impl() { } _Bvector_base(const allocator_type& __a) : _M_impl(__a) { } _Bvector_base(_Bvector_base&& __x) : _M_impl(__x._M_get_Bit_allocator()) { this->_M_impl._M_start = __x._M_impl._M_start; this->_M_impl._M_finish = __x._M_impl._M_finish; this->_M_impl._M_end_of_storage = __x._M_impl._M_end_of_storage; __x._M_impl._M_start = _Bit_iterator(); __x._M_impl._M_finish = _Bit_iterator(); __x._M_impl._M_end_of_storage = 0; } ~_Bvector_base() { this->_M_deallocate(); } protected: _Bvector_impl _M_impl; _Bit_type* _M_allocate(size_t __n) { return _M_impl.allocate((__n + int(_S_word_bit) - 1) / int(_S_word_bit)); } void _M_deallocate() { if (_M_impl._M_start._M_p) _M_impl.deallocate(_M_impl._M_start._M_p, _M_impl._M_end_of_storage - _M_impl._M_start._M_p); } }; } namespace std __attribute__ ((__visibility__ ("default"))) { # 473 "/usr/include/c++/4.5/bits/stl_bvector.h" 3 template class vector : protected _Bvector_base<_Alloc> { typedef _Bvector_base<_Alloc> _Base; template friend class hash; public: typedef bool value_type; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Bit_reference reference; typedef bool const_reference; typedef _Bit_reference* pointer; typedef const bool* const_pointer; typedef _Bit_iterator iterator; typedef _Bit_const_iterator const_iterator; typedef std::reverse_iterator const_reverse_iterator; typedef std::reverse_iterator reverse_iterator; typedef _Alloc allocator_type; allocator_type get_allocator() const { return _Base::get_allocator(); } protected: using _Base::_M_allocate; using _Base::_M_deallocate; using _Base::_M_get_Bit_allocator; public: vector() : _Base() { } explicit vector(const allocator_type& __a) : _Base(__a) { } explicit vector(size_type __n, const bool& __value = bool(), const allocator_type& __a = allocator_type()) : _Base(__a) { _M_initialize(__n); std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage, __value ? ~0 : 0); } vector(const vector& __x) : _Base(__x._M_get_Bit_allocator()) { _M_initialize(__x.size()); _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); } vector(vector&& __x) : _Base(std::forward<_Base>(__x)) { } vector(initializer_list __l, const allocator_type& __a = allocator_type()) : _Base(__a) { _M_initialize_range(__l.begin(), __l.end(), random_access_iterator_tag()); } template vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a = allocator_type()) : _Base(__a) { typedef typename std::__is_integer<_InputIterator>::__type _Integral; _M_initialize_dispatch(__first, __last, _Integral()); } ~vector() { } vector& operator=(const vector& __x) { if (&__x == this) return *this; if (__x.size() > capacity()) { this->_M_deallocate(); _M_initialize(__x.size()); } this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), begin()); return *this; } vector& operator=(vector&& __x) { this->clear(); this->swap(__x); return *this; } vector& operator=(initializer_list __l) { this->assign (__l.begin(), __l.end()); return *this; } void assign(size_type __n, const bool& __x) { _M_fill_assign(__n, __x); } template void assign(_InputIterator __first, _InputIterator __last) { typedef typename std::__is_integer<_InputIterator>::__type _Integral; _M_assign_dispatch(__first, __last, _Integral()); } void assign(initializer_list __l) { this->assign(__l.begin(), __l.end()); } iterator begin() { return this->_M_impl._M_start; } const_iterator begin() const { return this->_M_impl._M_start; } iterator end() { return this->_M_impl._M_finish; } const_iterator end() const { return this->_M_impl._M_finish; } reverse_iterator rbegin() { return reverse_iterator(end()); } const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } reverse_iterator rend() { return reverse_iterator(begin()); } const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } const_iterator cbegin() const { return this->_M_impl._M_start; } const_iterator cend() const { return this->_M_impl._M_finish; } const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } size_type size() const { return size_type(end() - begin()); } size_type max_size() const { const size_type __isize = __gnu_cxx::__numeric_traits::__max - int(_S_word_bit) + 1; const size_type __asize = _M_get_Bit_allocator().max_size(); return (__asize <= __isize / int(_S_word_bit) ? __asize * int(_S_word_bit) : __isize); } size_type capacity() const { return size_type(const_iterator(this->_M_impl._M_end_of_storage, 0) - begin()); } bool empty() const { return begin() == end(); } reference operator[](size_type __n) { return *iterator(this->_M_impl._M_start._M_p + __n / int(_S_word_bit), __n % int(_S_word_bit)); } const_reference operator[](size_type __n) const { return *const_iterator(this->_M_impl._M_start._M_p + __n / int(_S_word_bit), __n % int(_S_word_bit)); } protected: void _M_range_check(size_type __n) const { if (__n >= this->size()) __throw_out_of_range(("vector::_M_range_check")); } public: reference at(size_type __n) { _M_range_check(__n); return (*this)[__n]; } const_reference at(size_type __n) const { _M_range_check(__n); return (*this)[__n]; } void reserve(size_type __n); reference front() { return *begin(); } const_reference front() const { return *begin(); } reference back() { return *(end() - 1); } const_reference back() const { return *(end() - 1); } void data() { } void push_back(bool __x) { if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage) *this->_M_impl._M_finish++ = __x; else _M_insert_aux(end(), __x); } void swap(vector& __x) { std::swap(this->_M_impl._M_start, __x._M_impl._M_start); std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); std::swap(this->_M_impl._M_end_of_storage, __x._M_impl._M_end_of_storage); std::__alloc_swap:: _S_do_it(_M_get_Bit_allocator(), __x._M_get_Bit_allocator()); } static void swap(reference __x, reference __y) { bool __tmp = __x; __x = __y; __y = __tmp; } iterator insert(iterator __position, const bool& __x = bool()) { const difference_type __n = __position - begin(); if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage && __position == end()) *this->_M_impl._M_finish++ = __x; else _M_insert_aux(__position, __x); return begin() + __n; } template void insert(iterator __position, _InputIterator __first, _InputIterator __last) { typedef typename std::__is_integer<_InputIterator>::__type _Integral; _M_insert_dispatch(__position, __first, __last, _Integral()); } void insert(iterator __position, size_type __n, const bool& __x) { _M_fill_insert(__position, __n, __x); } void insert(iterator __p, initializer_list __l) { this->insert(__p, __l.begin(), __l.end()); } void pop_back() { --this->_M_impl._M_finish; } iterator erase(iterator __position) { if (__position + 1 != end()) std::copy(__position + 1, end(), __position); --this->_M_impl._M_finish; return __position; } iterator erase(iterator __first, iterator __last) { _M_erase_at_end(std::copy(__last, end(), __first)); return __first; } void resize(size_type __new_size, bool __x = bool()) { if (__new_size < size()) _M_erase_at_end(begin() + difference_type(__new_size)); else insert(end(), __new_size - size(), __x); } void shrink_to_fit() { std::__shrink_to_fit::_S_do_it(*this); } void flip() { for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != this->_M_impl._M_end_of_storage; ++__p) *__p = ~*__p; } void clear() { _M_erase_at_end(begin()); } protected: iterator _M_copy_aligned(const_iterator __first, const_iterator __last, iterator __result) { _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); return std::copy(const_iterator(__last._M_p, 0), __last, iterator(__q, 0)); } void _M_initialize(size_type __n) { _Bit_type* __q = this->_M_allocate(__n); this->_M_impl._M_end_of_storage = (__q + ((__n + int(_S_word_bit) - 1) / int(_S_word_bit))); this->_M_impl._M_start = iterator(__q, 0); this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); } template void _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) { _M_initialize(static_cast(__n)); std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage, __x ? ~0 : 0); } template void _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, __false_type) { _M_initialize_range(__first, __last, std::__iterator_category(__first)); } template void _M_initialize_range(_InputIterator __first, _InputIterator __last, std::input_iterator_tag) { for (; __first != __last; ++__first) push_back(*__first); } template void _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) { const size_type __n = std::distance(__first, __last); _M_initialize(__n); std::copy(__first, __last, this->_M_impl._M_start); } template void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) { _M_fill_assign(__n, __val); } template void _M_assign_dispatch(_InputIterator __first, _InputIterator __last, __false_type) { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } void _M_fill_assign(size_t __n, bool __x) { if (__n > size()) { std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage, __x ? ~0 : 0); insert(end(), __n - size(), __x); } else { _M_erase_at_end(begin() + __n); std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage, __x ? ~0 : 0); } } template void _M_assign_aux(_InputIterator __first, _InputIterator __last, std::input_iterator_tag) { iterator __cur = begin(); for (; __first != __last && __cur != end(); ++__cur, ++__first) *__cur = *__first; if (__first == __last) _M_erase_at_end(__cur); else insert(end(), __first, __last); } template void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) { const size_type __len = std::distance(__first, __last); if (__len < size()) _M_erase_at_end(std::copy(__first, __last, begin())); else { _ForwardIterator __mid = __first; std::advance(__mid, size()); std::copy(__first, __mid, begin()); insert(end(), __mid, __last); } } template void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, __true_type) { _M_fill_insert(__pos, __n, __x); } template void _M_insert_dispatch(iterator __pos, _InputIterator __first, _InputIterator __last, __false_type) { _M_insert_range(__pos, __first, __last, std::__iterator_category(__first)); } void _M_fill_insert(iterator __position, size_type __n, bool __x); template void _M_insert_range(iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag) { for (; __first != __last; ++__first) { __pos = insert(__pos, *__first); ++__pos; } } template void _M_insert_range(iterator __position, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag); void _M_insert_aux(iterator __position, bool __x); size_type _M_check_len(size_type __n, const char* __s) const { if (max_size() - size() < __n) __throw_length_error((__s)); const size_type __len = size() + std::max(size(), __n); return (__len < size() || __len > max_size()) ? max_size() : __len; } void _M_erase_at_end(iterator __pos) { this->_M_impl._M_finish = __pos; } }; } namespace std __attribute__ ((__visibility__ ("default"))) { template struct hash> : public std::unary_function, size_t> { size_t operator()(const std::vector& __b) const; }; } # 67 "/usr/include/c++/4.5/vector" 2 3 # 1 "/usr/include/c++/4.5/bits/vector.tcc" 1 3 # 60 "/usr/include/c++/4.5/bits/vector.tcc" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template void vector<_Tp, _Alloc>:: reserve(size_type __n) { if (__n > this->max_size()) __throw_length_error(("vector::reserve")); if (this->capacity() < __n) { const size_type __old_size = size(); pointer __tmp = _M_allocate_and_copy(__n, std::make_move_iterator(this->_M_impl._M_start), std::make_move_iterator(this->_M_impl._M_finish)); std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __tmp; this->_M_impl._M_finish = __tmp + __old_size; this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; } } template template void vector<_Tp, _Alloc>:: emplace_back(_Args&&... __args) { if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) { this->_M_impl.construct(this->_M_impl._M_finish, std::forward<_Args>(__args)...); ++this->_M_impl._M_finish; } else _M_insert_aux(end(), std::forward<_Args>(__args)...); } template typename vector<_Tp, _Alloc>::iterator vector<_Tp, _Alloc>:: insert(iterator __position, const value_type& __x) { const size_type __n = __position - begin(); if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage && __position == end()) { this->_M_impl.construct(this->_M_impl._M_finish, __x); ++this->_M_impl._M_finish; } else { if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) { _Tp __x_copy = __x; _M_insert_aux(__position, std::move(__x_copy)); } else _M_insert_aux(__position, __x); } return iterator(this->_M_impl._M_start + __n); } template typename vector<_Tp, _Alloc>::iterator vector<_Tp, _Alloc>:: erase(iterator __position) { if (__position + 1 != end()) std::move(__position + 1, end(), __position); --this->_M_impl._M_finish; this->_M_impl.destroy(this->_M_impl._M_finish); return __position; } template typename vector<_Tp, _Alloc>::iterator vector<_Tp, _Alloc>:: erase(iterator __first, iterator __last) { if (__last != end()) std::move(__last, end(), __first); _M_erase_at_end(__first.base() + (end() - __last)); return __first; } template vector<_Tp, _Alloc>& vector<_Tp, _Alloc>:: operator=(const vector<_Tp, _Alloc>& __x) { if (&__x != this) { const size_type __xlen = __x.size(); if (__xlen > capacity()) { pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), __x.end()); std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __tmp; this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; } else if (size() >= __xlen) { std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), end(), _M_get_Tp_allocator()); } else { std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), this->_M_impl._M_start); std::__uninitialized_copy_a(__x._M_impl._M_start + size(), __x._M_impl._M_finish, this->_M_impl._M_finish, _M_get_Tp_allocator()); } this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; } return *this; } template void vector<_Tp, _Alloc>:: _M_fill_assign(size_t __n, const value_type& __val) { if (__n > capacity()) { vector __tmp(__n, __val, _M_get_Tp_allocator()); __tmp.swap(*this); } else if (__n > size()) { std::fill(begin(), end(), __val); std::__uninitialized_fill_n_a(this->_M_impl._M_finish, __n - size(), __val, _M_get_Tp_allocator()); this->_M_impl._M_finish += __n - size(); } else _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); } template template void vector<_Tp, _Alloc>:: _M_assign_aux(_InputIterator __first, _InputIterator __last, std::input_iterator_tag) { pointer __cur(this->_M_impl._M_start); for (; __first != __last && __cur != this->_M_impl._M_finish; ++__cur, ++__first) *__cur = *__first; if (__first == __last) _M_erase_at_end(__cur); else insert(end(), __first, __last); } template template void vector<_Tp, _Alloc>:: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) { const size_type __len = std::distance(__first, __last); if (__len > capacity()) { pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __tmp; this->_M_impl._M_finish = this->_M_impl._M_start + __len; this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; } else if (size() >= __len) _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); else { _ForwardIterator __mid = __first; std::advance(__mid, size()); std::copy(__first, __mid, this->_M_impl._M_start); this->_M_impl._M_finish = std::__uninitialized_copy_a(__mid, __last, this->_M_impl._M_finish, _M_get_Tp_allocator()); } } template template typename vector<_Tp, _Alloc>::iterator vector<_Tp, _Alloc>:: emplace(iterator __position, _Args&&... __args) { const size_type __n = __position - begin(); if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage && __position == end()) { this->_M_impl.construct(this->_M_impl._M_finish, std::forward<_Args>(__args)...); ++this->_M_impl._M_finish; } else _M_insert_aux(__position, std::forward<_Args>(__args)...); return iterator(this->_M_impl._M_start + __n); } template template void vector<_Tp, _Alloc>:: _M_insert_aux(iterator __position, _Args&&... __args) { if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) { this->_M_impl.construct(this->_M_impl._M_finish, std::move(*(this->_M_impl._M_finish - 1)) ); ++this->_M_impl._M_finish; std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) ; *__position = _Tp(std::forward<_Args>(__args)...); } else { const size_type __len = _M_check_len(size_type(1), "vector::_M_insert_aux"); const size_type __elems_before = __position - begin(); pointer __new_start(this->_M_allocate(__len)); pointer __new_finish(__new_start); try { this->_M_impl.construct(__new_start + __elems_before, std::forward<_Args>(__args)...); __new_finish = 0; __new_finish = std::__uninitialized_move_a(this->_M_impl._M_start, __position.base(), __new_start, _M_get_Tp_allocator()); ++__new_finish; __new_finish = std::__uninitialized_move_a(__position.base(), this->_M_impl._M_finish, __new_finish, _M_get_Tp_allocator()); } catch(...) { if (!__new_finish) this->_M_impl.destroy(__new_start + __elems_before); else std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); _M_deallocate(__new_start, __len); throw; } std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __new_start; this->_M_impl._M_finish = __new_finish; this->_M_impl._M_end_of_storage = __new_start + __len; } } template void vector<_Tp, _Alloc>:: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) { if (__n != 0) { if (size_type(this->_M_impl._M_end_of_storage - this->_M_impl._M_finish) >= __n) { value_type __x_copy = __x; const size_type __elems_after = end() - __position; pointer __old_finish(this->_M_impl._M_finish); if (__elems_after > __n) { std::__uninitialized_move_a(this->_M_impl._M_finish - __n, this->_M_impl._M_finish, this->_M_impl._M_finish, _M_get_Tp_allocator()); this->_M_impl._M_finish += __n; std::move_backward(__position.base(), __old_finish - __n, __old_finish) ; std::fill(__position.base(), __position.base() + __n, __x_copy); } else { std::__uninitialized_fill_n_a(this->_M_impl._M_finish, __n - __elems_after, __x_copy, _M_get_Tp_allocator()); this->_M_impl._M_finish += __n - __elems_after; std::__uninitialized_move_a(__position.base(), __old_finish, this->_M_impl._M_finish, _M_get_Tp_allocator()); this->_M_impl._M_finish += __elems_after; std::fill(__position.base(), __old_finish, __x_copy); } } else { const size_type __len = _M_check_len(__n, "vector::_M_fill_insert"); const size_type __elems_before = __position - begin(); pointer __new_start(this->_M_allocate(__len)); pointer __new_finish(__new_start); try { std::__uninitialized_fill_n_a(__new_start + __elems_before, __n, __x, _M_get_Tp_allocator()); __new_finish = 0; __new_finish = std::__uninitialized_move_a(this->_M_impl._M_start, __position.base(), __new_start, _M_get_Tp_allocator()); __new_finish += __n; __new_finish = std::__uninitialized_move_a(__position.base(), this->_M_impl._M_finish, __new_finish, _M_get_Tp_allocator()); } catch(...) { if (!__new_finish) std::_Destroy(__new_start + __elems_before, __new_start + __elems_before + __n, _M_get_Tp_allocator()); else std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); _M_deallocate(__new_start, __len); throw; } std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __new_start; this->_M_impl._M_finish = __new_finish; this->_M_impl._M_end_of_storage = __new_start + __len; } } } template template void vector<_Tp, _Alloc>:: _M_range_insert(iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag) { for (; __first != __last; ++__first) { __pos = insert(__pos, *__first); ++__pos; } } template template void vector<_Tp, _Alloc>:: _M_range_insert(iterator __position, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) { if (__first != __last) { const size_type __n = std::distance(__first, __last); if (size_type(this->_M_impl._M_end_of_storage - this->_M_impl._M_finish) >= __n) { const size_type __elems_after = end() - __position; pointer __old_finish(this->_M_impl._M_finish); if (__elems_after > __n) { std::__uninitialized_move_a(this->_M_impl._M_finish - __n, this->_M_impl._M_finish, this->_M_impl._M_finish, _M_get_Tp_allocator()); this->_M_impl._M_finish += __n; std::move_backward(__position.base(), __old_finish - __n, __old_finish) ; std::copy(__first, __last, __position); } else { _ForwardIterator __mid = __first; std::advance(__mid, __elems_after); std::__uninitialized_copy_a(__mid, __last, this->_M_impl._M_finish, _M_get_Tp_allocator()); this->_M_impl._M_finish += __n - __elems_after; std::__uninitialized_move_a(__position.base(), __old_finish, this->_M_impl._M_finish, _M_get_Tp_allocator()); this->_M_impl._M_finish += __elems_after; std::copy(__first, __mid, __position); } } else { const size_type __len = _M_check_len(__n, "vector::_M_range_insert"); pointer __new_start(this->_M_allocate(__len)); pointer __new_finish(__new_start); try { __new_finish = std::__uninitialized_move_a(this->_M_impl._M_start, __position.base(), __new_start, _M_get_Tp_allocator()); __new_finish = std::__uninitialized_copy_a(__first, __last, __new_finish, _M_get_Tp_allocator()); __new_finish = std::__uninitialized_move_a(__position.base(), this->_M_impl._M_finish, __new_finish, _M_get_Tp_allocator()); } catch(...) { std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); _M_deallocate(__new_start, __len); throw; } std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __new_start; this->_M_impl._M_finish = __new_finish; this->_M_impl._M_end_of_storage = __new_start + __len; } } } template void vector:: reserve(size_type __n) { if (__n > this->max_size()) __throw_length_error(("vector::reserve")); if (this->capacity() < __n) { _Bit_type* __q = this->_M_allocate(__n); this->_M_impl._M_finish = _M_copy_aligned(begin(), end(), iterator(__q, 0)); this->_M_deallocate(); this->_M_impl._M_start = iterator(__q, 0); this->_M_impl._M_end_of_storage = (__q + (__n + int(_S_word_bit) - 1) / int(_S_word_bit)); } } template void vector:: _M_fill_insert(iterator __position, size_type __n, bool __x) { if (__n == 0) return; if (capacity() - size() >= __n) { std::copy_backward(__position, end(), this->_M_impl._M_finish + difference_type(__n)); std::fill(__position, __position + difference_type(__n), __x); this->_M_impl._M_finish += difference_type(__n); } else { const size_type __len = _M_check_len(__n, "vector::_M_fill_insert"); _Bit_type * __q = this->_M_allocate(__len); iterator __i = _M_copy_aligned(begin(), __position, iterator(__q, 0)); std::fill(__i, __i + difference_type(__n), __x); this->_M_impl._M_finish = std::copy(__position, end(), __i + difference_type(__n)); this->_M_deallocate(); this->_M_impl._M_end_of_storage = (__q + ((__len + int(_S_word_bit) - 1) / int(_S_word_bit))); this->_M_impl._M_start = iterator(__q, 0); } } template template void vector:: _M_insert_range(iterator __position, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) { if (__first != __last) { size_type __n = std::distance(__first, __last); if (capacity() - size() >= __n) { std::copy_backward(__position, end(), this->_M_impl._M_finish + difference_type(__n)); std::copy(__first, __last, __position); this->_M_impl._M_finish += difference_type(__n); } else { const size_type __len = _M_check_len(__n, "vector::_M_insert_range"); _Bit_type * __q = this->_M_allocate(__len); iterator __i = _M_copy_aligned(begin(), __position, iterator(__q, 0)); __i = std::copy(__first, __last, __i); this->_M_impl._M_finish = std::copy(__position, end(), __i); this->_M_deallocate(); this->_M_impl._M_end_of_storage = (__q + ((__len + int(_S_word_bit) - 1) / int(_S_word_bit))); this->_M_impl._M_start = iterator(__q, 0); } } } template void vector:: _M_insert_aux(iterator __position, bool __x) { if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage) { std::copy_backward(__position, this->_M_impl._M_finish, this->_M_impl._M_finish + 1); *__position = __x; ++this->_M_impl._M_finish; } else { const size_type __len = _M_check_len(size_type(1), "vector::_M_insert_aux"); _Bit_type * __q = this->_M_allocate(__len); iterator __i = _M_copy_aligned(begin(), __position, iterator(__q, 0)); *__i++ = __x; this->_M_impl._M_finish = std::copy(__position, end(), __i); this->_M_deallocate(); this->_M_impl._M_end_of_storage = (__q + ((__len + int(_S_word_bit) - 1) / int(_S_word_bit))); this->_M_impl._M_start = iterator(__q, 0); } } } namespace std __attribute__ ((__visibility__ ("default"))) { template size_t hash>:: operator()(const std::vector& __b) const { size_t __hash = 0; using std::_S_word_bit; using std::_Bit_type; const size_t __words = __b.size() / _S_word_bit; if (__words) { const size_t __clength = __words * sizeof(_Bit_type); __hash = std::_Fnv_hash::hash(__b._M_impl._M_start._M_p, __clength); } const size_t __extrabits = __b.size() % _S_word_bit; if (__extrabits) { _Bit_type __hiword = *__b._M_impl._M_finish._M_p; __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); const size_t __clength = (__extrabits + 8 - 1) / 8; if (__words) __hash = std::_Fnv_hash::hash(&__hiword, __clength, __hash); else __hash = std::_Fnv_hash::hash(&__hiword, __clength); } return __hash; } } # 70 "/usr/include/c++/4.5/vector" 2 3 # 8 "src/bp/bp.h" 2 # 1 "src/bp/bp_uri.h" 1 # 1 "/usr/include/string.h" 1 3 4 # 29 "/usr/include/string.h" 3 4 extern "C" { # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 35 "/usr/include/string.h" 2 3 4 extern void *memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *memmove (void *__dest, __const void *__src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern "C++" { extern void *memchr (void *__s, int __c, size_t __n) throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern __const void *memchr (__const void *__s, int __c, size_t __n) throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 93 "/usr/include/string.h" 3 4 } extern "C++" void *rawmemchr (void *__s, int __c) throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern "C++" __const void *rawmemchr (__const void *__s, int __c) throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern "C++" void *memrchr (void *__s, int __c, size_t __n) throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern "C++" __const void *memrchr (__const void *__s, int __c, size_t __n) throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strcat (char *__restrict __dest, __const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern int strcmp (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcoll (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (2))); # 165 "/usr/include/string.h" 3 4 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); extern char *strdup (__const char *__s) throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); extern char *strndup (__const char *__string, size_t __n) throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); # 210 "/usr/include/string.h" 3 4 extern "C++" { extern char *strchr (char *__s, int __c) throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern __const char *strchr (__const char *__s, int __c) throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 233 "/usr/include/string.h" 3 4 } extern "C++" { extern char *strrchr (char *__s, int __c) throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern __const char *strrchr (__const char *__s, int __c) throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 260 "/usr/include/string.h" 3 4 } extern "C++" char *strchrnul (char *__s, int __c) throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern "C++" __const char *strchrnul (__const char *__s, int __c) throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strcspn (__const char *__s, __const char *__reject) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strspn (__const char *__s, __const char *__accept) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern "C++" { extern char *strpbrk (char *__s, __const char *__accept) throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern __const char *strpbrk (__const char *__s, __const char *__accept) throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 312 "/usr/include/string.h" 3 4 } extern "C++" { extern char *strstr (char *__haystack, __const char *__needle) throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern __const char *strstr (__const char *__haystack, __const char *__needle) throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 340 "/usr/include/string.h" 3 4 } extern char *strtok (char *__restrict __s, __const char *__restrict __delim) throw () __attribute__ ((__nonnull__ (2))); extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) throw () __attribute__ ((__nonnull__ (2, 3))); extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) throw () __attribute__ ((__nonnull__ (2, 3))); extern "C++" char *strcasestr (char *__haystack, __const char *__needle) throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern "C++" __const char *strcasestr (__const char *__haystack, __const char *__needle) throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 382 "/usr/include/string.h" 3 4 extern void *memmem (__const void *__haystack, size_t __haystacklen, __const void *__needle, size_t __needlelen) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); extern void *__mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern size_t strlen (__const char *__s) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strnlen (__const char *__string, size_t __maxlen) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strerror (int __errnum) throw (); # 438 "/usr/include/string.h" 3 4 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))); extern char *strerror_l (int __errnum, __locale_t __l) throw (); extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern void bcopy (__const void *__src, void *__dest, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern "C++" { extern char *index (char *__s, int __c) throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern __const char *index (__const char *__s, int __c) throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 487 "/usr/include/string.h" 3 4 } extern "C++" { extern char *rindex (char *__s, int __c) throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern __const char *rindex (__const char *__s, int __c) throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 515 "/usr/include/string.h" 3 4 } extern int ffs (int __i) throw () __attribute__ ((__const__)); extern int ffsl (long int __l) throw () __attribute__ ((__const__)); __extension__ extern int ffsll (long long int __ll) throw () __attribute__ ((__const__)); extern int strcasecmp (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcasecmp_l (__const char *__s1, __const char *__s2, __locale_t __loc) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int strncasecmp_l (__const char *__s1, __const char *__s2, size_t __n, __locale_t __loc) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strsignal (int __sig) throw (); extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *__stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern int strverscmp (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern "C++" char *basename (char *__filename) throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); extern "C++" __const char *basename (__const char *__filename) throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); # 646 "/usr/include/string.h" 3 4 } # 8 "src/bp/bp_uri.h" 2 # 1 "src/bp/bp_defs.h" 1 # 31 "src/bp/bp_defs.h" struct bp_stats { unsigned long long incount; unsigned long long handled; unsigned long long msgerrors; unsigned long long rembids; unsigned long long remasks; unsigned long long addorders; unsigned long long delorders; unsigned long long modorders; unsigned long long reporders; unsigned long long exeorders; unsigned long long tsquotes; unsigned long long trades; unsigned long long noimbals; unsigned long long clocks; unsigned long long orecfreed; }; # 9 "src/bp/bp_uri.h" 2 struct bp_uri { bp_uri(std::string in) { good = 0 == parse(in); } bool good; std::string scheme; std::string path; std::string feed; std::string host; std::string port; std::string user; std::string pass; int parse(std::string& uri) { std::string uricopy = uri.c_str(); std::string userinfo, hostport; char* p = (char*) uricopy.c_str(), *q = p, *at=0; const char* pend = p + strlen(p); while(q < pend && *q !=':') ++q; if (*q != ':') { this->scheme = "t3file"; this->path = p; return 0; } *q = 0; this->scheme = p; if (*++q != '/' || *++q != '/') return -1; ++q; this->path = q; p = at = q; while(at < pend && *at != '@') ++at; if (*at != '@') return 0; q = at; ++q; hostport = q; *at = 0; userinfo = feed = p; p = (char*) userinfo.c_str(); q = p; const char* uend = p + strlen(p); while(q < uend && *q !='$') ++q; if (*q == '$') { *q = 0; this->feed = p; ++q; p = q; this->user = p; } while(q < uend && *q !=':') ++q; if (*q == ':') { *q = 0; this->user = p; ++q; p = q; while(q < uend) ++q; this->pass = p; } p = (char*) hostport.c_str(); q = p; const char* hend = p + strlen(p); while(q < hend && *q !=':') ++q; if (*q != ':') this->host = p; else { *q = 0; this->host = p; ++q; this->port = q; } return 0; } }; # 12 "src/bp/bp.h" 2 # 1 "src/bp/bp_event.h" 1 # 1 "/usr/include/sys/times.h" 1 3 4 # 32 "/usr/include/sys/times.h" 3 4 extern "C" { struct tms { clock_t tms_utime; clock_t tms_stime; clock_t tms_cutime; clock_t tms_cstime; }; extern clock_t times (struct tms *__buffer) throw (); } # 9 "src/bp/bp_event.h" 2 # 1 "src/t3/t3.h" 1 # 1 "src/t3/t3_defs.h" 1 # 16 "src/t3/t3_defs.h" typedef enum _T3_MSGTYPES { T3_MSGTYPE_CLOCK = 0x01, T3_MSGTYPE_TWOSIDED_QUOTE = 0x07, T3_MSGTYPE_ADD_ORDER = 0x08, T3_MSGTYPE_ADD_ORDER_LONG = 0x09, T3_MSGTYPE_REDUCE_SIZE = 0x0a, T3_MSGTYPE_REDUCE_SIZE_LONG = 0x0b, T3_MSGTYPE_MODIFY_ORDER = 0x0c, T3_MSGTYPE_MODIFY_ORDER_LONG = 0x0d, T3_MSGTYPE_REPLACE_ORDER = 0x0e, T3_MSGTYPE_REPLACE_ORDER_LONG = 0x0f, T3_MSGTYPE_DELETE_ORDER = 0x10, T3_MSGTYPE_ORDER_EXECUTED = 0x11, T3_MSGTYPE_ORDER_EXECUTED_AT = 0x12, T3_MSGTYPE_TRADE = 0x13, T3_MSGTYPE_TRADE_LONG = 0x14, T3_MSGTYPE_CROSS_TRADE = 0x15, T3_MSGTYPE_NET_ORDER_IMBAL = 0x16, T3_MSGTYPE_IMBAL = 0x17, T3_MSGTYPE_NBBO = 0x18, T3_MSGTYPE_SHORT_AVAIL = 0x19, T3_MSGTYPE_PRICE_SAMPLE = 0x1a, T3_MSGTYPE_LVL1_TRADE = 0x1b, T3_MSGTYPE_BOOK_TRADE_REPORT = 0x1c, T3_MESSAGE_COUNT = 0x1d, } T3_MSGTYPES; # 75 "src/t3/t3_defs.h" typedef struct t3_file* t3_handle; enum T3_TIME_OFFSET_TYPES { T3_OFFSET_MIDNIGHT_EASTERN = 0, }; enum T3_TIME_RESOLUTION_TYPES { T3_RESOLUTION_NANOSECOND = 0, }; typedef struct _T3_CREATEPARAMS { size_t filesize; int exchange; int datasource; int time_offset; int time_resolution; char yyyymmdd[8]; char term0; char creator[32]; char term1; _T3_CREATEPARAMS() { memset(this,0,sizeof( _T3_CREATEPARAMS)); } } T3_CREATEPARAMS; typedef struct _T3_CREATEMSGPARAMS { long long msgtime; char* symbol; char* mpid; int mpidNdx_out; unsigned char msgtype; void clear() { memset(this,0,sizeof( _T3_CREATEMSGPARAMS)); } _T3_CREATEMSGPARAMS() { clear(); } } T3_CREATEMSGPARAMS; typedef enum { DATAGEN_AMEX = 'A', DATAGEN_NDQB = 'B', DATAGEN_NSXX = 'C', DATAGEN_FNRA = 'D', DATAGEN_CMEE = 'F', DATAGEN_ISEE = 'I', DATAGEN_EDGA = 'J', DATAGEN_EDGX = 'K', DATAGEN_CHSX = 'M', DATAGEN_NYSE = 'N', DATAGEN_ARCA = 'P', DATAGEN_INET = 'Q', DATAGEN_CBSX = 'W', DATAGEN_NDQP = 'X', DATAGEN_BATY = 'Y', DATAGEN_BATZ = 'Z', DATAGEN_CQSS = '0', DATAGEN_CTSS = '1', DATAGEN_UQDF = '2', DATAGEN_UTDF = '3', DATAGEN_NANX = '4', DATAGEN_LSPD = '5', DATAGEN_TATR = '9', DATAGEN_NONE = '-', } T3_DATA_GENERATORS ; inline unsigned char xcode_to_t3 (const unsigned char xcode) { struct xlat { unsigned char xc; unsigned char t3c; }; const struct xlat x[] = { {'A',1},{'B',2},{'C',3},{'D',4},{'F',5},{'I',6},{'J',7},{'K',8}, {'M',9},{'N',10},{'P',11},{'Q',12},{'W',13},{'X',14},{'Y',15},{'Z',16}, {'0',17},{'1',18},{'2',19},{'3',20},{'4',21},{'5',22},{'9',23},{0,0}, }; const struct xlat* p = x; for(; p->t3c; p++) if (p->xc == xcode) return p->t3c; return 0; } inline int validate_datagen(const unsigned char xcode) { return 0 != xcode_to_t3(xcode); } inline unsigned char t3_to_xcode (const unsigned char t3code) { const unsigned char x[] = { 0, 'A','B','C','D','F','I','J','K','M','N','P','Q','W','X','Y','Z', '0','1','2','3','4','5','9', }; const unsigned char xcode = x[t3code]; return xcode; } typedef enum { DATACOL_AUTOTRADEMAG = 'A', DATACOL_DIRECT = 'D', DATACOL_ESSEXRADEZ = 'E', DATACOL_NANEXNXCORE = 'N', DATACOL_TARITEN = 'T', DATACOL_OTHER = 'U', } T3_DATA_COLLECTORS; inline int validate_datacol(const unsigned char ctor) { const unsigned char x[] = { 'A','D','E','N','T','U',0x0 }; const unsigned char* p = x; for(; *p; p++) if (*p == ctor) return 1; return 0; } typedef enum _T3_CROSS_TYPES { CROSS_TYPE_OPENING = 'O', CROSS_TYPE_CLOSING = 'C', CROSS_TYPE_HALT_OR_IPO = 'H', CROSS_TYPE_CROSS_NETWORK = 'I', } T3_CROSS_TYPES; typedef enum _T3_SAMPLE_TYPES { SAMPLE_BID = 'B', SAMPLE_ASK = 'A', SAMPLE_SPREAD = 'S', SAMPLE_TRADES = 'T', } T3_SAMPLE_TYPES; typedef enum _T3_SAMPLE_BY_TYPES { SAMPLE_BY_COUNT = 'E', SAMPLE_BY_TIME = 'T', SAMPLE_BY_VOLUME = 'V', } T3_SAMPLE_BY_TYPES; typedef struct { unsigned short length; char symbol[29]; char term; } t3_symbol_t; typedef struct { unsigned short length; char mpid[5]; char term; } t3_mpid_t; typedef enum _T3_SPLIT_TYPES { T3_SPLIT_TYPE_UNKNOWN = 0, T3_SPLIT_TYPE_EXCHANGE = 1, T3_SPLIT_TYPE_SYMBOL = 2, T3_SPLIT_TYPE_QUOTE_NBBO = 3, T3_SPLIT_TYPE_MESSAGE = 4, } T3_SPLIT_TYPES; typedef struct _T3_INFOOPTION { bool showmpid; bool showsymbol; bool verbose; void clear() { memset(this,0,sizeof( _T3_INFOOPTION)); } _T3_INFOOPTION() { clear(); } } T3_INFOOPTION; typedef struct _T3_GREPOPTION { bool exclude; T3_SPLIT_TYPES grepType; void clear() { memset(this,0,sizeof( _T3_GREPOPTION)); } _T3_GREPOPTION() { clear(); } } T3_GREPOPTION; typedef struct _T3_STATSPARAMS { unsigned long long numtrades; unsigned long long totalvolume; unsigned long long numorders; unsigned int numordersleft; unsigned int numstockssaw; void clear() { memset(this,0,sizeof( _T3_STATSPARAMS)); } _T3_STATSPARAMS() { clear(); } } T3_STATSPARAMS; # 8 "src/t3/t3.h" 2 # 1 "src/t3/t3_msgs.h" 1 #pragma pack(1) typedef struct _t3_msghdr { unsigned char msgtype; unsigned int timeoff; } t3_msghdr; #pragma pack() #pragma pack(1) typedef struct _t3_xmsghdr { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags; } t3_xmsghdr; #pragma pack() # 36 "src/t3/t3_msgs.h" #pragma pack(1) typedef struct _t3_clock_msg { unsigned char msgtype; unsigned int seconds; _t3_clock_msg() { memset(this,0,sizeof(_t3_clock_msg)); } } t3_clock_msg; #pragma pack() #pragma pack(1) typedef struct _t3_add_order_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned int price; unsigned short quantity; unsigned short mpidNdx; unsigned char side; _t3_add_order_msg() { memset(this,0,sizeof(_t3_add_order_msg)); } } t3_add_order_msg; #pragma pack() #pragma pack(1) typedef struct _t3_add_order_long_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned long long price; unsigned int quantity; unsigned short mpidNdx; unsigned char side; _t3_add_order_long_msg() { memset(this,0,sizeof(_t3_add_order_long_msg)); } } t3_add_order_long_msg; #pragma pack() #pragma pack(1) typedef struct _t3_reduce_size_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned short quantity; _t3_reduce_size_msg() { memset(this,0,sizeof(_t3_reduce_size_msg)); } } t3_reduce_size_msg; #pragma pack() #pragma pack(1) typedef struct _t3_reduce_size_long_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned int quantity; _t3_reduce_size_long_msg() { memset(this,0,sizeof(_t3_reduce_size_long_msg)); } } t3_reduce_size_long_msg; #pragma pack() #pragma pack(1) typedef struct _t3_modify_order_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned int price; unsigned short quantity; _t3_modify_order_msg() { memset(this,0,sizeof(_t3_modify_order_msg)); } } t3_modify_order_msg; #pragma pack() #pragma pack(1) typedef struct _t3_modify_order_long_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned long long price; unsigned int quantity; _t3_modify_order_long_msg() { memset(this,0,sizeof(_t3_modify_order_long_msg)); } } t3_modify_order_long_msg; #pragma pack() #pragma pack(1) typedef struct _t3_replace_order_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned long long orderIdNew; unsigned int price; unsigned short quantity; unsigned short mpidNdx; _t3_replace_order_msg() { memset(this,0,sizeof(_t3_replace_order_msg)); } } t3_replace_order_msg; #pragma pack() #pragma pack(1) typedef struct _t3_replace_order_long_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned long long orderIdNew; unsigned long long price; unsigned int quantity; unsigned short mpidNdx; _t3_replace_order_long_msg() { memset(this,0,sizeof(_t3_replace_order_long_msg)); } } t3_replace_order_long_msg; #pragma pack() #pragma pack(1) typedef struct _t3_delete_order_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; _t3_delete_order_msg() { memset(this,0,sizeof(_t3_delete_order_msg)); } } t3_delete_order_msg; #pragma pack() #pragma pack(1) typedef struct _t3_order_executed_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned int quantity; _t3_order_executed_msg() { memset(this,0,sizeof(_t3_order_executed_msg)); } } t3_order_executed_msg; #pragma pack() #pragma pack(1) typedef struct _t3_order_executed_at_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned long long price; unsigned int quantity; unsigned int quantityRemaining; _t3_order_executed_at_msg() { memset(this,0,sizeof(_t3_order_executed_at_msg)); } } t3_order_executed_at_msg; #pragma pack() #pragma pack(1) typedef struct _t3_trade_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned int price; unsigned short quantity; _t3_trade_msg() { memset(this,0,sizeof(_t3_trade_msg)); } } t3_trade_msg; #pragma pack() #pragma pack(1) typedef struct _t3_trade_long_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned long long price; unsigned int quantity; _t3_trade_long_msg() { memset(this,0,sizeof(_t3_trade_long_msg)); } } t3_trade_long_msg; #pragma pack() #pragma pack(1) typedef struct _t3_cross_trade_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long orderId; unsigned long long quantity; unsigned long long price; unsigned char crossType; _t3_cross_trade_msg() { memset(this,0,sizeof(_t3_cross_trade_msg)); } } t3_cross_trade_msg; #pragma pack() #pragma pack(1) typedef struct _t3_net_order_imbal_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long pairedShares; unsigned long long imbalShares; unsigned int farPrice; unsigned int nearPrice; unsigned int currentRefPrice; unsigned char imbalanceDir; unsigned char crossType; unsigned char priceVarInd; _t3_net_order_imbal_msg() { memset(this,0,sizeof(_t3_net_order_imbal_msg)); } } t3_net_order_imbal_msg; #pragma pack() #pragma pack(1) typedef struct _t3_imbal_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long shares; unsigned long long price; unsigned long long totalImbal; unsigned long long marketImbal; _t3_imbal_msg() { memset(this,0,sizeof(_t3_imbal_msg)); } } t3_imbal_msg; #pragma pack() #pragma pack(1) typedef struct _t3_twosided_quote_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long bid_price; unsigned long long ask_price; unsigned int bid_size; unsigned int ask_size; _t3_twosided_quote_msg() { memset(this,0,sizeof(_t3_twosided_quote_msg)); } } t3_twosided_quote_msg; #pragma pack() #pragma pack(1) typedef struct _t3_short_avail_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned char short_avail_flag; _t3_short_avail_msg() { memset(this,0,sizeof(_t3_short_avail_msg)); } } t3_short_avail_msg; #pragma pack() #pragma pack(1) typedef struct _t3_nbbo_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long bid_price; unsigned long long ask_price; unsigned int bid_size; unsigned int ask_size; unsigned short bid_venue_count; unsigned char bid_venues[20]; unsigned short ask_venue_count; unsigned char ask_venues[20]; _t3_nbbo_msg() { memset(this,0,sizeof(_t3_nbbo_msg)); } } t3_nbbo_msg; #pragma pack(1) #pragma pack(1) typedef struct _t3_sample_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long open; unsigned long long high; unsigned long long low; unsigned long long close; unsigned int volume; unsigned int event_count; unsigned char sample_type; unsigned char sample_by; _t3_sample_msg() { memset(this,0,sizeof(_t3_sample_msg)); } } t3_sample_msg; #pragma pack() #pragma pack(1) typedef struct _t3_lvl1_trade_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long price; unsigned int quantity; unsigned char sale_condition[4]; _t3_lvl1_trade_msg() { memset(this,0,sizeof(_t3_lvl1_trade_msg)); } } t3_lvl1_trade_msg; #pragma pack() #pragma pack(1) typedef struct _t3_book_trade_rpt_msg { unsigned char msgtype; unsigned int timeoff; unsigned short symbolNdx; unsigned char exchange; unsigned char datasource; unsigned char flags;; unsigned long long price; unsigned int quantity; char side; char hidden; _t3_book_trade_rpt_msg() { memset(this,0,sizeof(_t3_book_trade_rpt_msg)); } } t3_book_trade_rpt_msg; #pragma pack() union t3msgunion { void* msg; t3_msghdr* msghdr; t3_xmsghdr* xmsghdr; t3_clock_msg* clock_msg; t3_add_order_msg* add_msg; t3_add_order_long_msg* add_long_msg; t3_reduce_size_msg* reduce_msg; t3_reduce_size_long_msg* reduce_long_msg; t3_modify_order_msg* modify_msg; t3_modify_order_long_msg* modify_long_msg; t3_replace_order_msg* replace_msg; t3_replace_order_long_msg* replace_long_msg; t3_delete_order_msg* delete_msg; t3_order_executed_msg* order_ex_msg; t3_order_executed_at_msg* order_ex_at_msg; t3_trade_msg* trade_msg; t3_trade_long_msg* trade_long_msg; t3_cross_trade_msg* cross_trade_msg; t3_net_order_imbal_msg* net_order_imbal_msg; t3_imbal_msg* imbal_msg; }; # 9 "src/t3/t3.h" 2 # 1 "src/t3/t3_api.h" 1 # 22 "src/t3/t3_api.h" t3_handle t3_open(const char* path, T3_CREATEPARAMS& params); # 31 "src/t3/t3_api.h" t3_handle t3_open(const char* path, bool cvtsymndx = false); # 47 "src/t3/t3_api.h" void* t3_create_msg(t3_handle, const unsigned char msgtype, const char* symbol, const long long msgtime); # 62 "src/t3/t3_api.h" void* t3_create_msg(t3_handle, T3_CREATEMSGPARAMS& params); void* t3_get_msg(t3_handle); void* t3_get_msg(t3_handle, t3_symbol_t** symbol_out); void* t3_peek_msg(t3_handle); void* t3_back_msg(t3_handle, const unsigned int msgtype); t3_symbol_t* t3_get_symtable(t3_handle); t3_mpid_t* t3_get_mpidtable(t3_handle); unsigned t3_get_symbol_count(t3_handle); unsigned t3_get_mpid_count(t3_handle); size_t t3_close(t3_handle); size_t t3_close(t3_handle, T3_STATSPARAMS& params); # 142 "src/t3/t3_api.h" int t3_info(const char* path, const std::vector& keys, T3_INFOOPTION& options); # 151 "src/t3/t3_api.h" int t3_check(const char* path, char mode); # 162 "src/t3/t3_api.h" int t3_grep(const char* path, const char* tokens, const char* output, T3_GREPOPTION& options); # 171 "src/t3/t3_api.h" int t3_split(const char* path, T3_SPLIT_TYPES splittype); # 180 "src/t3/t3_api.h" int t3_merge(const char* output, const std::vector &t3files); # 189 "src/t3/t3_api.h" int t3_printf(const char* path, const char delimiter, const char* output); int t3_get_trade_msg_type(unsigned long long price, unsigned int volume); unsigned int t3_get_session_date(const char* t3_file); unsigned long long t3_get_msg_count(const char* t3_file); # 10 "src/t3/t3.h" 2 # 11 "src/bp/bp_event.h" 2 # 1 "src/bp/bp_orec.h" 1 typedef std::pair orderid_t; typedef struct ob_rec { unsigned long long utime; unsigned long long price; orderid_t orderid; unsigned int quantity; unsigned short mpidndx; unsigned char side; unsigned char tt_flag; bool operator< (const ob_rec& that) const { if (this->utime < that.utime) return true; return this->price < that.price; } bool operator< (const ob_rec* that) const { if (this->utime < that->utime) return true; return this->price < that->price; } enum { SIDE_UNDEF=0, SIDE_BID=1, SIDE_ASK=2 }; enum { TTFLAG_NONE=0, TTFLAG_REMOVED=8, TTFLAG_REPRICED=64, TTFLAG_SIM=128 }; unsigned char id_venue() { return orderid.first; } unsigned long long id_raw() { return orderid.second; } void mark_removed() { tt_flag |= TTFLAG_REMOVED; } bool was_removed() { return !!(tt_flag & TTFLAG_REMOVED); } void clear() { utime = price = orderid.second = 0; side = tt_flag = orderid.first = 0; quantity = 0; } ob_rec() { clear(); } } ob_rec, *POBREC; # 13 "src/bp/bp_event.h" 2 # 1 "src/bp/cached_vector.h" 1 # 20 "src/bp/cached_vector.h" # 1 "/usr/include/assert.h" 1 3 4 # 21 "src/bp/cached_vector.h" 2 template class cached_vector { public: int insert(NODE_T newnode) { int index = get_freeslot() - 1; if (index >= 0) { listnode_t& node = x[index]; node.usertype = newnode; node.is_deleted = 0; } else { index = x.size(); listnode_t node; node.usertype = newnode; node.is_deleted = 0; x.push_back(node); } ++nodecount; return index; } const NODE_T& operator[](int i) const { return x[i].usertype; } NODE_T& operator[](int i) { return x[i].usertype; } int find(const NODE_T item) { listnode_t* node = __null; return _find(item, &node); } void remove(const int index) { listnode_t& node = x[index]; node.is_deleted = 1; --nodecount; put_freeslot(index); } bool remove_byval(const NODE_T item) { listnode_t* node = __null; const int index = _find(item, &node); if (-1 == index) return false; node->is_deleted = 1; --nodecount; put_freeslot(index); return true; } template int apply(USERFN userfunctor) { int applied = 0; listnode_t *node = &x[0]; const listnode_t *endmark = &x[x.size()]; for(; node < endmark; node++) if (__builtin_expect(!!(0 == node->is_deleted), 1)) { userfunctor(node->usertype); ++applied; } return applied; } template int find_if(USERFN userpred) { listnode_t *node = &x[0]; const listnode_t *endmark = &x[x.size()]; for(int i=0; node < endmark; node++, i++) if (__builtin_expect(!!(0 == node->is_deleted), 1)) if (userpred(node->usertype)) return i; return -1; } unsigned int count() { return nodecount; } struct stats { int size; int nodes; }; void stats(struct stats& s) { s.size = x.size(); s.nodes = nodecount; } cached_vector(): nodecount(0) { delcache[0] = delcache[1] = 0; } virtual ~cached_vector() { } void reserve(size_t n) { x.reserve(n); } protected: enum { DELCACHESIZE = 2, }; unsigned int nodecount, delcache[DELCACHESIZE]; struct listnode_t { NODE_T usertype; char is_deleted; } ; std::vector x; int get_freeslot() { int freeslot = delcache[0]; if (freeslot) { delcache[0] = delcache[1]; delcache[1] = 0; } else { int trashnodes = x.size() - nodecount, foundcnt=0, i=0; if (0 == trashnodes) return 0; if (trashnodes > (DELCACHESIZE+1)) trashnodes = (DELCACHESIZE+1); listnode_t *thisnode = &x[0]; const int MAXNDX = trashnodes-1; for(;; i++, thisnode++) if (thisnode->is_deleted) { if (foundcnt < MAXNDX) delcache[foundcnt++] = i+1; else { freeslot = i+1; break; } } } return freeslot; } void put_freeslot(int slotindex) { if (0 == delcache[0]) delcache[0] = ++slotindex; else if (0 == delcache[1]) delcache[1] = ++slotindex; } int _find(const NODE_T item, listnode_t** out) { listnode_t *thisnode = &x[0], *endmark = &x[x.size()]; for(int i=0; thisnode < endmark; i++, thisnode++) if((thisnode->usertype == item) && !thisnode->is_deleted) { *out = thisnode; return i; } return -1; } }; # 14 "src/bp/bp_event.h" 2 enum BP_EXCPTYPE { EXCPTYPE_NONE, EXCPTYPE_TICKDATA, EXCPTYPE_CODE, ETC, }; enum BP_EXCP_SEVERITY { EXCPSEV_BENIGN, EXCPSEV_LOW, EXCPSEV_HIGH, EXCPSEV_CRITICAL }; # 35 "src/bp/bp_event.h" class bp_event { public: virtual void operator()()=0; virtual ~bp_event() { } virtual void clear() { } bp_event(void* impl=__null): pimpl(impl), id_(0), refcount_(0), evobjtype(0), flags_(0) { set_abandoned(); } enum event_id { EVOBJ_NONE=0, EVOBJ_CLOCK=1, EVOBJ_TOP=2, EVOBJ_TRADE=3, EVOBJ_NOII=4, EVOBJ_BOOK=5, EVOBJ_SIM=6, EVOBJ_EXIT=7, EVOBJ_EXCP=8, }; enum bitflags { EVFLAG_SINGLE=1, EVFLAG_ABANDON=2, EVFLAG_ONESHOT=4, EVFLAG_REFCOUNT=8,}; void* impl() { return pimpl; } unsigned int evtype() { return evobjtype; } unsigned int flags() { return flags_; } unsigned long long id() { return id_; } int refcount() { return refcount_; } bool is_flagged(unsigned int bits) { return !!(flags_ & bits); } bool set_id(unsigned long long n) { if (!id_) id_ = n; return n == id_; } bool is_persymbol() { return !!(flags_ & EVFLAG_SINGLE); } bool is_abandoned() { return !!(flags_ & EVFLAG_ABANDON); } bool is_refcounted() { return !!(flags_ & EVFLAG_REFCOUNT); } void set_refcounted() { flags_ |= EVFLAG_REFCOUNT; } void set_abandoned() { flags_ |= EVFLAG_ABANDON; } struct bp_time { unsigned int clock_second; unsigned int venue_second; unsigned long long clock_second_us; unsigned long long venue_second_us; unsigned long long venue_msgtime_us; unsigned long long systime_delta_ns; } ; static bp_event::bp_time bptime; private: friend class tt_bookprxor; void* pimpl; unsigned long long id_; int refcount_; protected: unsigned evobjtype; unsigned flags_; void setflag(const unsigned bits) { flags_ |= bits; } }; struct bp_event_clock: public bp_event { virtual void operator()() { } bp_event_clock(void* impl=__null): bp_event(impl), systick_second(0) { evobjtype = EVOBJ_CLOCK; } unsigned systick_second; }; struct bp_event_exit: public bp_event { virtual void operator()() { } bp_event_exit(void* impl=__null): bp_event(impl) { evobjtype = EVOBJ_EXIT; memset(&stats,0,sizeof(bp_stats)); } bp_stats stats; }; struct bp_event_excp: public bp_event { virtual void operator()() { if (EXCPSEV_CRITICAL != severity) return; ((0) ? static_cast (0) : __assert_fail ("0", "src/bp/bp_event.h", 126, __PRETTY_FUNCTION__)); asm("int $3"); } bp_event_excp(): excptype(EXCPTYPE_NONE), severity(EXCPSEV_BENIGN), reason(0), symbol(0), order(0), venue(0), srcfile(0), srcline(0) { evobjtype = EVOBJ_EXCP; } BP_EXCPTYPE excptype; BP_EXCP_SEVERITY severity; unsigned int reason; char* symbol; ob_rec* order; unsigned char venue; char* srcfile; unsigned int srcline; }; struct bp_symbol_event: public bp_event { bp_symbol_event(void* impl=__null): bp_event(impl), symbol(0), mpidata(0), symbolndx(0), exchange(0) { } t3_symbol_t* symbol; t3_mpid_t* mpidata; unsigned int symbolndx; unsigned char exchange; }; struct bp_per_symbol_event: public bp_symbol_event { bp_per_symbol_event(t3_symbol_t* symbol, void* impl=__null): bp_symbol_event(impl) { this->symbol = symbol; this->setflag(EVFLAG_SINGLE); } }; struct bp_event_book: public bp_symbol_event { bp_event_book(void* impl=__null): bp_symbol_event(impl), order(0), is_top(0), is_evnbbo(0), is_plus(0), is_sim(0), is_ignore_depth(0), is_quote(0) { evobjtype = EVOBJ_BOOK; } ob_rec* order; unsigned int side; bool is_top; bool is_evnbbo; bool is_plus; bool is_sim; bool is_ignore_depth; bool is_quote; unsigned char msgtype; std::vector bids; std::vector asks; void set(ob_rec* o, t3_symbol_t& sym, unsigned char venue, unsigned char mt, unsigned int nside) { order = o; symbol = &sym; exchange = venue; msgtype = mt; side = nside; } virtual void clear() { clear_bids_asks(); symbol = __null; mpidata = __null; msgtype = 0; side = 0; is_quote = false; } void clear_bids_asks() { if (is_quote) { ((1 == bids.size() && 1 == asks.size()) ? static_cast (0) : __assert_fail ("1 == bids.size() && 1 == asks.size()", "src/bp/bp_event.h", 205, __PRETTY_FUNCTION__)); ob_rec* bidrec = bids[0]; ob_rec* askrec = asks[0]; ((bidrec && askrec) ? static_cast (0) : __assert_fail ("bidrec && askrec", "src/bp/bp_event.h", 207, __PRETTY_FUNCTION__)); delete bidrec; delete askrec; } bids.clear(); asks.clear(); } virtual ~bp_event_book() { clear(); } bool is_nbbo_event() { return this->is_evnbbo; } bool is_plus_nbbo() { return this->is_plus; } bool is_sim_event() { return this->is_sim; } bool ignoring_depth() { return this->is_ignore_depth; } }; struct bp_event_nbbo_ps; class bp_event_top: public bp_event_book { public: virtual void operator()() { } bp_event_top(void* impl=__null): bp_event_book(impl), is_nbbo(0) { evobjtype = EVOBJ_TOP; this->is_top = true; bids.reserve(12); asks.reserve(12); } private: friend class bp_event_nbbo; friend class bp_event_nbbo_ps; friend class bp_event_simorder; friend class tp_event_registry; friend class tp_bp_event_top; friend class tp_bp_event_top_ps; friend class tp_bp_event_nbbo; friend class tp_bp_event_nbbo_ps; friend class tp_bp_event_top_ps_plus; protected: bp_event_nbbo_ps* evplus; bool is_nbbo; public: bool is_this_nbbo() { return this->is_nbbo; } bool set_nbboflag(const bool b) { return (is_nbbo = b); } bp_event_nbbo_ps* attached_nbbo() { return evplus; } }; struct bp_event_nbbo: public bp_event_top { bp_event_nbbo(void* impl=__null): bp_event_top(impl) { is_evnbbo = true; } }; class bp_event_book_ps: public bp_event_book { public: bp_event_book_ps(t3_symbol_t* symbol, void* impl=__null): bp_event_book(impl) { this->symbol = symbol; this->setflag(EVFLAG_SINGLE); bids.reserve(32); asks.reserve(32); } void clear() { bp_event_book::clear_bids_asks(); } }; class bp_event_top_ps: public bp_event_top { public: bp_event_top_ps(t3_symbol_t* symbol, void* impl=__null): bp_event_top(impl) { this->symbol = symbol; this->setflag(EVFLAG_SINGLE); } void clear() { bp_event_book::clear_bids_asks(); is_quote = false; } }; struct bp_event_nbbo_ps: public bp_event_top_ps { bp_event_nbbo_ps(t3_symbol_t* symbol, void* impl=__null): bp_event_top_ps(symbol, impl) { is_evnbbo = true; } }; struct bp_event_simorder: public bp_event_top_ps { t3_xmsghdr* t3msg; ob_rec* matchorder; int simorder_ndx; int matchorder_ndx; const int side; bool is_crossed_book_fixup() { return __null == t3msg; } void set(t3_xmsghdr* m, ob_rec* o, int sx, int mx) { t3msg = m; matchorder = o; simorder_ndx = sx; matchorder_ndx = mx; } bp_event_simorder(t3_symbol_t* symbol, const unsigned char venue, const int side): bp_event_top_ps(symbol), side(side) { is_sim = true; exchange = venue; ((venue && (side == 1 || side == 2)) ? static_cast (0) : __assert_fail ("venue && (side == 1 || side == 2)", "src/bp/bp_event.h", 341, __PRETTY_FUNCTION__)); t3msg = __null; matchorder = __null; matchorder_ndx = simorder_ndx = -1; } }; struct bp_event_trade: public bp_symbol_event { virtual void operator()() { } bp_event_trade(void* impl=__null): bp_symbol_event(impl) { evobjtype = EVOBJ_TRADE; } t3_xmsghdr* t3msg; unsigned long long price; unsigned long long quantity; unsigned int side; unsigned int msgtype; unsigned int crosstype; void set(int mt, unsigned char x, int sd, t3_symbol_t* s, int si, unsigned long long q, unsigned long long pr, unsigned char xt) { msgtype = mt; exchange = x; side = sd, symbol = s; symbolndx = si; quantity = q; price = pr; crosstype = xt; } virtual void clear() { price = quantity = 0; side = msgtype = 0; t3msg = __null; symbol = __null; mpidata = __null; } }; struct bp_event_trade_ps: public bp_event_trade { bp_event_trade_ps(t3_symbol_t* symbol, void* impl=__null): bp_event_trade(impl) { evobjtype = EVOBJ_TRADE; this->symbol = symbol; this->setflag(EVFLAG_SINGLE); } void clear() { price = quantity = 0; side = msgtype = 0; t3msg = __null; } }; struct bp_event_noii: public bp_symbol_event { virtual void operator()() { } bp_event_noii(void* impl=__null): bp_symbol_event(impl) { evobjtype = EVOBJ_NOII; } t3_xmsghdr* t3msg; virtual void clear() { t3msg = __null; symbol = __null; mpidata = __null; } }; struct bp_event_noii_ps: public bp_event_noii { bp_event_noii_ps(t3_symbol_t* symbol, void* impl=__null): bp_event_noii(impl) { evobjtype = EVOBJ_NOII; this->symbol = symbol; this->setflag(EVFLAG_SINGLE); } void clear() { t3msg = __null; } }; # 430 "src/bp/bp_event.h" struct bp_venue_size_pair { unsigned int total_size_at_price; unsigned char venue; }; struct bp_nbbo_side_info { enum { MAX_VENUES_WITH_PRICE = 16 }; unsigned long long price; unsigned int total_size_at_price; unsigned int max_size_at_price; unsigned int venue_count_with_price; bp_venue_size_pair venues[MAX_VENUES_WITH_PRICE]; void clear() { memset(this, 0, sizeof(bp_nbbo_side_info)); } bp_nbbo_side_info() { clear(); } bool operator==(const bp_nbbo_side_info&); }; struct bp_nbbo_info { bp_nbbo_side_info best_bid; bp_nbbo_side_info best_ask; void clear() { best_bid.clear(); best_ask.clear(); } bool operator==(const bp_nbbo_info& that) { return this->best_bid == that.best_bid && this->best_ask == that.best_ask; } }; class symbol_events: public cached_vector { public: struct id_predicate { bool operator()(bp_symbol_event* ev) { return (unsigned long long) idval == (unsigned long long) ev->id(); } unsigned long long idval; } pred; int find_by_id(unsigned long long event_id) { pred.idval = event_id; return this->find_if(pred); } bool remove_by_event_id(unsigned long long event_id) { const int index = find_by_id(event_id); if (-1 == index) return false; this->remove(index); return true; } }; struct bp_psevents { symbol_events events_book; symbol_events events_trade; symbol_events events_noii; symbol_events events_sim; symbol_events* get_evlist(const int evtype) { const int ndx = evtype - bp_event::EVOBJ_TOP; symbol_events* lists[5] = { &events_book, &events_trade, &events_noii, &events_book, &events_sim, }; ((ndx >= 0 && ndx < 5) ? static_cast (0) : __assert_fail ("ndx >= 0 && ndx < 5", "src/bp/bp_event.h", 499, __PRETTY_FUNCTION__)); return lists[ndx]; } bp_psevents() { events_book.reserve(2); events_trade.reserve(2); events_noii.reserve(2); events_sim.reserve(2); } }; struct bp_event_registry { bp_event_clock* event_clock; bp_event_top* event_top; bp_event_nbbo* event_nbbo; bp_event_trade* event_trade; bp_event_noii* event_noii; bp_event_excp* event_excp; bp_event_exit* event_exit; bool is_subscribed_clock; bool is_subscribed_exit; bool is_subscribed_excp; bool is_subscribed_global_top; bool is_subscribed_global_nbbo; bool is_subscribed_global_trade; bool is_subscribed_global_noii; unsigned psev_top_count; unsigned psev_nbbo_count; unsigned psev_trade_count; unsigned psev_noii_count; void fire_excp(char* fn, unsigned int ln, BP_EXCPTYPE typ, BP_EXCP_SEVERITY sv, unsigned int rcode=0, char* sym=0, unsigned char venue=0, ob_rec* order=0) { ((this->event_excp) ? static_cast (0) : __assert_fail ("this->event_excp", "src/bp/bp_event.h", 548, __PRETTY_FUNCTION__)); event_excp->srcfile = fn; event_excp->srcline = ln; event_excp->excptype = typ; event_excp->severity = sv; event_excp->reason = rcode; event_excp->symbol = sym; event_excp->venue = venue; event_excp->order = order; (*(event_excp))(); } void bump_count(bp_symbol_event* ev) { switch(ev->evtype()) { case bp_event::EVOBJ_TOP: if(((bp_event_top*)ev)->is_nbbo_event()) ++psev_nbbo_count; else ++psev_top_count; break; case bp_event::EVOBJ_TRADE: ++psev_trade_count; break; case bp_event::EVOBJ_NOII: ++psev_noii_count; break; } } void decr_count(bp_symbol_event* ev) { switch(ev->evtype()) { case bp_event::EVOBJ_TOP: if(((bp_event_top*)ev)->is_nbbo_event()) --psev_nbbo_count; else --psev_top_count; break; case bp_event::EVOBJ_TRADE: --psev_trade_count; break; case bp_event::EVOBJ_NOII: --psev_noii_count; break; } } bp_event_registry() { memset(this, 0, sizeof(bp_event_registry)); event_clock = new bp_event_clock(); event_excp = new bp_event_excp(); event_exit = new bp_event_exit(); event_top = new bp_event_top(); event_nbbo = new bp_event_nbbo(); event_trade = new bp_event_trade(); event_noii = new bp_event_noii(); is_open = true; } ~bp_event_registry() { if (is_open) close(); } void close() { if (event_top->is_abandoned()) delete event_top; if (event_nbbo->is_abandoned()) delete event_nbbo; if (event_trade->is_abandoned()) delete event_trade; if (event_noii->is_abandoned()) delete event_noii; if (event_clock->is_abandoned()) delete event_clock; if (event_exit->is_abandoned()) delete event_exit; if (event_excp->is_abandoned()) delete event_excp; event_clock = 0; event_top = 0; event_nbbo = 0; event_trade = 0; event_noii = 0; event_exit = 0; event_excp = 0; is_open = false; } bool is_open; }; # 14 "src/bp/bp.h" 2 # 1 "src/core/ttlog.h" 1 # 44 "src/core/ttlog.h" # 1 "/usr/include/sys/time.h" 1 3 4 # 29 "/usr/include/sys/time.h" 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 30 "/usr/include/sys/time.h" 2 3 4 # 39 "/usr/include/sys/time.h" 3 4 extern "C" { # 57 "/usr/include/sys/time.h" 3 4 struct timezone { int tz_minuteswest; int tz_dsttime; }; typedef struct timezone *__restrict __timezone_ptr_t; # 73 "/usr/include/sys/time.h" 3 4 extern int gettimeofday (struct timeval *__restrict __tv, __timezone_ptr_t __tz) throw () __attribute__ ((__nonnull__ (1))); extern int settimeofday (__const struct timeval *__tv, __const struct timezone *__tz) throw () __attribute__ ((__nonnull__ (1))); extern int adjtime (__const struct timeval *__delta, struct timeval *__olddelta) throw (); enum __itimer_which { ITIMER_REAL = 0, ITIMER_VIRTUAL = 1, ITIMER_PROF = 2 }; struct itimerval { struct timeval it_interval; struct timeval it_value; }; typedef int __itimer_which_t; extern int getitimer (__itimer_which_t __which, struct itimerval *__value) throw (); extern int setitimer (__itimer_which_t __which, __const struct itimerval *__restrict __new, struct itimerval *__restrict __old) throw (); extern int utimes (__const char *__file, __const struct timeval __tvp[2]) throw () __attribute__ ((__nonnull__ (1))); extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) throw () __attribute__ ((__nonnull__ (1))); extern int futimes (int __fd, __const struct timeval __tvp[2]) throw (); extern int futimesat (int __fd, __const char *__file, __const struct timeval __tvp[2]) throw (); # 191 "/usr/include/sys/time.h" 3 4 } # 45 "src/core/ttlog.h" 2 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h" 1 3 4 # 47 "src/core/ttlog.h" 2 # 1 "src/core/tt_task.h" 1 # 13 "src/core/tt_task.h" # 1 "/usr/include/semaphore.h" 1 3 4 # 30 "/usr/include/semaphore.h" 3 4 # 1 "/usr/include/bits/semaphore.h" 1 3 4 # 24 "/usr/include/bits/semaphore.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 25 "/usr/include/bits/semaphore.h" 2 3 4 # 37 "/usr/include/bits/semaphore.h" 3 4 typedef union { char __size[32]; long int __align; } sem_t; # 31 "/usr/include/semaphore.h" 2 3 4 extern "C" { extern int sem_init (sem_t *__sem, int __pshared, unsigned int __value) throw (); extern int sem_destroy (sem_t *__sem) throw (); extern sem_t *sem_open (__const char *__name, int __oflag, ...) throw (); extern int sem_close (sem_t *__sem) throw (); extern int sem_unlink (__const char *__name) throw (); extern int sem_wait (sem_t *__sem); extern int sem_timedwait (sem_t *__restrict __sem, __const struct timespec *__restrict __abstime); extern int sem_trywait (sem_t *__sem) throw (); extern int sem_post (sem_t *__sem) throw (); extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval) throw (); } # 14 "src/core/tt_task.h" 2 # 1 "/usr/include/errno.h" 1 3 4 # 17 "src/core/tt_task.h" 2 # 1 "/usr/include/assert.h" 1 3 4 # 18 "src/core/tt_task.h" 2 # 1 "src/core/tt_msgtypes.h" 1 # 17 "src/core/tt_msgtypes.h" namespace tt { # 44 "src/core/tt_msgtypes.h" } # 20 "src/core/tt_task.h" 2 namespace tt { # 52 "src/core/tt_task.h" #pragma pack(1) class tt_msg { public: friend class tt_msg_queue; unsigned char msg_attrs; unsigned char param1; unsigned short msgtype; unsigned int param4; unsigned long long param8; void* pdata; enum flags { IS_STATIC_MSG=1, IS_ABANDON_DATA=2, IS_DATA_CONTENTOBJ=4, }; class msgdata { public: friend class tt_msg; msgdata(void* cont): content(cont) { } virtual ~msgdata() { } void* operator()() { return content; } protected: const tt_msg* ttmsg; void* content; }; tt_msg() { this->_clear(); } tt_msg(unsigned short msgtype, unsigned int p4, unsigned long long p8, msgdata* dataobj, unsigned int options) { this->_clear(); this->msgtype = msgtype; this->param4 = p4; this->param8 = p8; this->pdata = dataobj; dataobj->ttmsg = this; this->msg_attrs |= (options | IS_DATA_CONTENTOBJ); } tt_msg(unsigned short msgtype, unsigned int p4, unsigned long long p8, void* data, unsigned int options) { this->_clear(); this->msgtype = msgtype; this->param4 = p4; this->param8 = p8; this->pdata = data; this->msg_attrs |= options; } static void static_init(tt_msg& msg) { msg._clear(); msg.msg_attrs |= IS_STATIC_MSG; } static void static_init(tt_msg& msg, unsigned short msgtype, unsigned int p4, unsigned long long p8, msgdata* dataobj, unsigned int options) { msg._clear(); msg.msgtype = msgtype; msg.param4 = p4; msg.param8 = p8; msg.pdata = dataobj; dataobj->ttmsg = &msg; msg.msg_attrs |= (options | (IS_STATIC_MSG | IS_DATA_CONTENTOBJ)); } static void static_init(tt_msg& msg, unsigned short msgtype, unsigned int p4, unsigned long long p8, void* data, unsigned int options) { msg._clear(); msg.msgtype = msgtype; msg.param4 = p4; msg.param8 = p8; msg.pdata = data; msg.msg_attrs |= (options | IS_STATIC_MSG); } static int is_static_msg(tt_msg* msg) { return (0 != (msg->msg_attrs & IS_STATIC_MSG)); } static void set_abandon_data(tt_msg& msg, void* data) { msg.pdata = data; msg.msg_attrs |= IS_ABANDON_DATA; } static void set_data(tt_msg& msg, void* data) { msg.pdata = data; } static void set_abandon_data_object(tt_msg& msg, msgdata* obj) { msg.pdata = obj; msg.msg_attrs |= (IS_ABANDON_DATA | IS_DATA_CONTENTOBJ); } static void set_data_object(tt_msg& msg, msgdata* obj) { msg.pdata = obj; msg.msg_attrs |= IS_DATA_CONTENTOBJ; } static void dispose(tt_msg* msg) { if (__null == msg) return; if (0 == (msg->msg_attrs & IS_STATIC_MSG)) delete msg; else msg->dispose_content(); } void dispose_content() { if (pdata && (msg_attrs & IS_ABANDON_DATA)) { if (0 != (msg_attrs & IS_DATA_CONTENTOBJ)) { delete (tt_msg::msgdata*) pdata; pdata = __null; } # 195 "src/core/tt_task.h" } } void reset() { const unsigned char static_msgstate = msg_attrs & IS_STATIC_MSG; this->dispose_content(); this->_clear(); msg_attrs |= static_msgstate; } virtual ~tt_msg() { this->dispose_content(); } private: tt_msg* next; void _clear() { msg_attrs = param1 = 0; msgtype = 0; param4 = 0; param8 = 0; pdata = __null; next = __null; } }; #pragma pack() class scoped_lock { public: scoped_lock(pthread_mutex_t* mx): mutex(mx) { int __attribute__((unused)) rc = pthread_mutex_lock(mutex); ((0 == rc) ? static_cast (0) : __assert_fail ("0 == rc", "src/core/tt_task.h", 232, __PRETTY_FUNCTION__)); } virtual ~scoped_lock() { release(); } void release() { if (__null == mutex) return; int __attribute__((unused)) rc = pthread_mutex_unlock(mutex); ((0 == rc) ? static_cast (0) : __assert_fail ("0 == rc", "src/core/tt_task.h", 240, __PRETTY_FUNCTION__)); mutex = __null; } protected: scoped_lock() { } pthread_mutex_t* mutex; }; class tt_msg_queue { public: void push(tt_msg* newmsg) { if (__null == head) { ((0 == nodecount) ? static_cast (0) : __assert_fail ("0 == nodecount", "src/core/tt_task.h", 259, __PRETTY_FUNCTION__)); head = tail = newmsg; newmsg->next = __null; nodecount = 1; } else { ((tail && (__null == tail->next)) ? static_cast (0) : __assert_fail ("tail && (__null == tail->next)", "src/core/tt_task.h", 265, __PRETTY_FUNCTION__)); tail->next = newmsg; newmsg->next = __null; tail = newmsg; ++nodecount; } } tt_msg* pop() { if (__null == head) return __null; tt_msg* topmsg = head; head = topmsg->next; if (0 == --nodecount) head = tail = __null; return topmsg; } void sync_push(tt_msg* msg) { this->lock(); this->push(msg); this->unlock(); } tt_msg* sync_pop() { if (__null == head) return __null; this->lock(); tt_msg* msg = this->pop(); this->unlock(); return msg; } tt_msg* top() { return head; } static tt_msg* next(tt_msg* prior) { return prior? prior->next: __null; } unsigned int count() { return nodecount; } # 323 "src/core/tt_task.h" int lock() { return pthread_mutex_lock(&qmutex); } int unlock() { return pthread_mutex_unlock(&qmutex); } int trylock () { return pthread_mutex_trylock(&qmutex); } pthread_mutex_t& get_mutex() { return qmutex; } enum { UNUSED=1, IS_PRIORITY_QUEUE = 2, }; enum { PRIORITY_LOW=0, PRIORITY_NORMAL=1,PRIORITY_ABOVE_NORMAL=2, PRIORTY_HIGH = (PRIORITY_NORMAL | PRIORITY_ABOVE_NORMAL), }; tt_msg_queue() { _init(); } void flush(); virtual ~tt_msg_queue() { flush(); } int init_process_thread_mutex(pthread_mutex_t& mutex); private: unsigned int nodecount, qattrs; tt_msg* head, *tail; pthread_mutex_t qmutex; void _init() { head = tail = __null; nodecount = qattrs = 0; int __attribute__((unused)) rc = init_process_thread_mutex(qmutex); ((0 == rc) ? static_cast (0) : __assert_fail ("0 == rc", "src/core/tt_task.h", 371, __PRETTY_FUNCTION__)); } }; class tt_task { public: enum { TT_TASK_MAX_THREADS = 255 }; typedef int (*tt_task_thread_hook)(const unsigned threadndx, tt_task*, size_t); typedef int (*tt_task_work_hook) (const unsigned threadndx, tt_task*, tt_msg*, size_t); tt_task(unsigned int nthreads = 1): threadcount(nthreads), runcount(0), idlecount(nthreads), is_shutdown(0), threads(__null) { if (threadcount > TT_TASK_MAX_THREADS) threadcount = TT_TASK_MAX_THREADS; else if (threadcount < 1) threadcount = 1; _init(); } # 407 "src/core/tt_task.h" virtual int run(tt_msg* msg) { return -1; } virtual ~tt_task() { _cleanup(); } # 429 "src/core/tt_task.h" virtual void put_message(unsigned short msgtype, unsigned int p32, unsigned long long p64, void* data=__null, unsigned int opts=0) { tt_msg* msg = new tt_msg(msgtype, p32, p64, data, opts); this->sync_push(msg); } # 457 "src/core/tt_task.h" virtual void put_message(unsigned short msgtype, unsigned int p32, unsigned long long p64, tt_msg::msgdata* dataobj, unsigned int opts=0) { tt_msg* msg = new tt_msg(msgtype, p32, p64, dataobj, opts); this->sync_push(msg); } virtual void put_message(tt_msg* msg) { ((msg) ? static_cast (0) : __assert_fail ("msg", "src/core/tt_task.h", 469, __PRETTY_FUNCTION__)); sync_push(msg); } # 481 "src/core/tt_task.h" void shutdown(const int is_urgent=0); inline virtual void thread_entry_hook(const int threadndx) { } inline virtual int thread_exit_hook (const int threadndx, size_t) { return 0; } inline virtual void work_wait_hook (const int threadndx) { } inline virtual int work_start_hook (const int threadndx, tt_msg* msg) { return msg? 0: -1; } inline virtual int work_exit_hook (const int threadndx, tt_msg*, const int rc) { return rc; } protected: unsigned int threadcount; unsigned int runcount; unsigned int idlecount; unsigned int is_shutdown; tt_msg_queue q; sem_t task_sem; pthread_cond_t task_waitvar; pthread_mutex_t task_waitlock; pthread_barrier_t task_barrier; pthread_attr_t thread_attrs; typedef struct _comparams { tt_task* task; pthread_barrier_t* task_barrier; sem_t* global_sem; pthread_mutex_t* task_waitlock; pthread_cond_t* task_waitvar; unsigned int* is_shutdown; unsigned int* runcount; unsigned int* idlecount; } tt_task_threadparams_t; tt_task_threadparams_t comparams; typedef struct _threaddata { unsigned int thread_ndx; tt_task_threadparams_t* common_params; } tt_task_threaddata_t ; struct threadstruct { pthread_t thread; unsigned int thread_ndx; tt_task_threaddata_t thread_params; }; threadstruct* threads; static void* tt_taskproc(void* p); void startthreads(); void _init(); void _cleanup(); inline int lock() { return pthread_mutex_lock(&task_waitlock); } inline int unlock() { return pthread_mutex_unlock(&task_waitlock); } inline int trylock () { return pthread_mutex_trylock(&task_waitlock); } void sync_push(tt_msg* newmsg) { this->lock(); q.sync_push(newmsg); pthread_cond_signal(&task_waitvar); this->unlock(); } tt_msg* sync_pop() { tt_msg* topmsg = __null; this->lock(); while(__null == topmsg) { while(0 == q.count()) pthread_cond_wait(&task_waitvar, &task_waitlock); topmsg = q.sync_pop(); } this->unlock(); return topmsg; } }; class tt_msgtask: public tt_task { public: tt_msgtask(unsigned int nthreads = 1): tt_task(nthreads) { } virtual ~tt_msgtask() { } virtual int handle_message(tt_msg* msg)=0; virtual int run(tt_msg* msg) { int result = this->handle_message(msg); if (0 == result) result = this->def_handle_message(msg); return result; } # 619 "src/core/tt_task.h" protected: int def_handle_message(tt_msg* msg) { const int msgtype = msg? msg->msgtype: 0; switch(msgtype) { default: break; } return 0; } }; } # 50 "src/core/ttlog.h" 2 # 1 "src/core/tt_msgtypes.h" 1 # 51 "src/core/ttlog.h" 2 # 72 "src/core/ttlog.h" struct logconst { const static char* STAMPFMT_HMSU; const static char* STAMPFMT_MDHMSU; const static char* STAMPFMT_MDHMSM; const static char* STAMPFMT_YMDHMS; const static char* STAMPMASK_SO; const static char* STAMPMASK_US; const static char* STAMPMASK_MS; const static char* TTLOGLVL_STR[5]; const static int STAMP_LENGTH[5]; }; enum STAMPSTYLE { NONE, HMSU, MDHMSU, MDHMSM, YMDHMS, COUNT }; struct logmsg { enum { MAXLEN=255, PREAMBLE_SIZE=30, OPT_NOPREAMBLE=1, }; tt::tt_msg qmsg; unsigned opts; unsigned offset; size_t writelen; unsigned msglen; char stamp[24]; char space1; char src[2]; char space2; char lvl; char space3; char msg[MAXLEN+1]; logmsg() { memset(&this->opts, 0, (this->msg+MAXLEN) - (char*)&this->opts); memset(this->stamp, ' ', this->msg - this->stamp); tt::tt_msg::static_init(this->qmsg, (((((0 + 7) + 1) + 7) + 1) + 0), 0, 0, &this->stamp, 0); } }; struct logwriter; struct logstream { int fd; int filter; int is_suspended; STAMPSTYLE stamptype; logwriter* wtr; char name[24]; }; struct logwriter { virtual void operator()(const logstream& stream, logmsg* msg) { ::write (stream.fd, msg->stamp + msg->offset, msg->writelen); } }; class logger { public: logger() { } logger(const STAMPSTYLE stdout_stampstyle, const char stdout_filter='X'); virtual ~logger(); int suspend(const int fd); int resume (const int fd); int set_filter(const int fd, char filter); int addstream(const int fd, const STAMPSTYLE, const char filter=0, const char* name=0, logwriter* wtr=0); int remstream(const int fd); const logstream* findstream(const int fd); const logstream* findstream(const char* name); void write(logmsg*); enum { NUMFILTERS=5 }; int get_numeric_filter(const char cfilter) { char cfilters[NUMFILTERS] = { 'X', 'D', 'I', 'W', 'E' }, *p = cfilters; for(int i=0; i < NUMFILTERS; i++, p++) if (*p == cfilter) return i; return 0; } char get_external_filter(const int nfilter) { char cfilters[NUMFILTERS] = { 'X', 'D', 'I', 'W', 'E' }; return (nfilter < 0 || nfilter > NUMFILTERS)? 'X': cfilters[nfilter]; } static size_t get_bytelength(logmsg* msg) { const char* p = msg->stamp + msg->offset; const char* q = msg->msg + msg->msglen; return q - p; } virtual void log(const char who[2], const char filter, const char *fmt, ...) { va_list args; __builtin_va_start(args,fmt); logmsg* msg = this->makelmsg(who, filter, fmt, args); __builtin_va_end(args); this->write(msg); delete msg; } virtual void logx(const char who[2], const char filter, const char *fmt, ...) { va_list args; __builtin_va_start(args,fmt); logmsg* msg = this->makelmsg(who, filter, fmt, args); msg->opts |= logmsg::OPT_NOPREAMBLE; __builtin_va_end(args); this->write(msg); delete msg; } logmsg* makelmsg(const char who[2], const char filter, const char*, va_list); protected: logconst consts; std::vector streams; int set_suspend(const int, const int); int timestamp(logmsg*, const logstream&, struct tm*, const unsigned); }; struct lqueue: public tt::tt_task { int run(tt::tt_msg* msg) { switch(msg->msgtype) { case (((((0 + 7) + 1) + 7) + 1) + 0): this->log->write((logmsg*)msg); delete (logmsg*) msg; return 1111; } return 0; } lqueue(logger* lgr): tt::tt_task(1), log(lgr) { } logger* log; }; class qlogger: public logger { public: qlogger(): logger() { init_(); } qlogger(const STAMPSTYLE stdout_stampstyle, const char stdout_filter='X'): logger(stdout_stampstyle, stdout_filter) { init_(); } virtual ~qlogger() { q->shutdown(0); usleep(250000); delete q; q = __null; } virtual void log(const char who[2], const char filter, const char *fmt, ...) { va_list args; __builtin_va_start(args,fmt); logmsg* msg = this->makelmsg(who, filter, fmt, args); __builtin_va_end(args); q->put_message((tt::tt_msg*) msg); } virtual void logx(const char who[2], const char filter, const char *fmt, ...) { va_list args; __builtin_va_start(args,fmt); logmsg* msg = this->makelmsg(who, filter, fmt, args); msg->opts |= logmsg::OPT_NOPREAMBLE; __builtin_va_end(args); q->put_message((tt::tt_msg*) msg); } protected: void init_() { q = new lqueue(this); } lqueue* q; }; struct managed_filewriter: public logwriter { void operator()(const logstream& stream, logmsg* msg) { if (++linecount >= maxlines && (0 != maxlines)) this->copy_logfile(stream); ::write (stream.fd, msg->stamp + msg->offset, msg->writelen); } int linecount; const int maxlines; const char *fullpath, *basepath, *filename; managed_filewriter(const char* bp, const char* fn, const char* fullp, const int maxl): linecount(0), maxlines(maxl), fullpath(fullp), basepath(bp), filename(fn) {} int copy_logfile (const logstream&); static int get_bkuppath (const char* fn, const char* base, char* obuf, const int obufsize); }; class flogger { public: flogger(const char* fn, const char* name, const char* basepath=0, const STAMPSTYLE=STAMPSTYLE::MDHMSU); virtual int open(const int is_wantbackup=false); virtual int close(const int is_final=0); int set_openflags(const int bits); int get_file_fd(); logger* get_logger() { return log; } virtual ~flogger() { close(true); delete log; log = __null; } protected: int stampstyle, is_open, is_final, is_queued, xtraflags; const char* filename; const char* basepath; const char* stream_name; char path[256]; int open_(const bool is_wantbackup); logger* log; }; class qflogger: public flogger { public: qflogger(const char* fn, const char* name, const char* basepath=0, const STAMPSTYLE ss=STAMPSTYLE::MDHMSU): flogger(fn, name, basepath, ss) { this->is_queued = true; } virtual int close(const int is_final=true); virtual ~qflogger() { } }; class qmflogger: public qflogger { public: qmflogger(const char* fn, const char* name, const char* basepath=0, const STAMPSTYLE ss=STAMPSTYLE::MDHMSU); int open(const int is_wantbackup=true); int close(const int is_final); virtual ~qmflogger(); }; # 16 "src/bp/bp.h" 2 # 1 "src/fh/ls_fh.h" 1 # 10 "src/fh/ls_fh.h" # 1 "/usr/include/c++/4.5/map" 1 3 # 58 "/usr/include/c++/4.5/map" 3 # 59 "/usr/include/c++/4.5/map" 3 # 1 "/usr/include/c++/4.5/bits/stl_tree.h" 1 3 # 67 "/usr/include/c++/4.5/bits/stl_tree.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 85 "/usr/include/c++/4.5/bits/stl_tree.h" 3 enum _Rb_tree_color { _S_red = false, _S_black = true }; struct _Rb_tree_node_base { typedef _Rb_tree_node_base* _Base_ptr; typedef const _Rb_tree_node_base* _Const_Base_ptr; _Rb_tree_color _M_color; _Base_ptr _M_parent; _Base_ptr _M_left; _Base_ptr _M_right; static _Base_ptr _S_minimum(_Base_ptr __x) { while (__x->_M_left != 0) __x = __x->_M_left; return __x; } static _Const_Base_ptr _S_minimum(_Const_Base_ptr __x) { while (__x->_M_left != 0) __x = __x->_M_left; return __x; } static _Base_ptr _S_maximum(_Base_ptr __x) { while (__x->_M_right != 0) __x = __x->_M_right; return __x; } static _Const_Base_ptr _S_maximum(_Const_Base_ptr __x) { while (__x->_M_right != 0) __x = __x->_M_right; return __x; } }; template struct _Rb_tree_node : public _Rb_tree_node_base { typedef _Rb_tree_node<_Val>* _Link_type; _Val _M_value_field; template _Rb_tree_node(_Args&&... __args) : _Rb_tree_node_base(), _M_value_field(std::forward<_Args>(__args)...) { } }; __attribute__ ((__pure__)) _Rb_tree_node_base* _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); __attribute__ ((__pure__)) const _Rb_tree_node_base* _Rb_tree_increment(const _Rb_tree_node_base* __x) throw (); __attribute__ ((__pure__)) _Rb_tree_node_base* _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); __attribute__ ((__pure__)) const _Rb_tree_node_base* _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw (); template struct _Rb_tree_iterator { typedef _Tp value_type; typedef _Tp& reference; typedef _Tp* pointer; typedef bidirectional_iterator_tag iterator_category; typedef ptrdiff_t difference_type; typedef _Rb_tree_iterator<_Tp> _Self; typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; typedef _Rb_tree_node<_Tp>* _Link_type; _Rb_tree_iterator() : _M_node() { } explicit _Rb_tree_iterator(_Link_type __x) : _M_node(__x) { } reference operator*() const { return static_cast<_Link_type>(_M_node)->_M_value_field; } pointer operator->() const { return &static_cast<_Link_type>(_M_node)->_M_value_field; } _Self& operator++() { _M_node = _Rb_tree_increment(_M_node); return *this; } _Self operator++(int) { _Self __tmp = *this; _M_node = _Rb_tree_increment(_M_node); return __tmp; } _Self& operator--() { _M_node = _Rb_tree_decrement(_M_node); return *this; } _Self operator--(int) { _Self __tmp = *this; _M_node = _Rb_tree_decrement(_M_node); return __tmp; } bool operator==(const _Self& __x) const { return _M_node == __x._M_node; } bool operator!=(const _Self& __x) const { return _M_node != __x._M_node; } _Base_ptr _M_node; }; template struct _Rb_tree_const_iterator { typedef _Tp value_type; typedef const _Tp& reference; typedef const _Tp* pointer; typedef _Rb_tree_iterator<_Tp> iterator; typedef bidirectional_iterator_tag iterator_category; typedef ptrdiff_t difference_type; typedef _Rb_tree_const_iterator<_Tp> _Self; typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; typedef const _Rb_tree_node<_Tp>* _Link_type; _Rb_tree_const_iterator() : _M_node() { } explicit _Rb_tree_const_iterator(_Link_type __x) : _M_node(__x) { } _Rb_tree_const_iterator(const iterator& __it) : _M_node(__it._M_node) { } reference operator*() const { return static_cast<_Link_type>(_M_node)->_M_value_field; } pointer operator->() const { return &static_cast<_Link_type>(_M_node)->_M_value_field; } _Self& operator++() { _M_node = _Rb_tree_increment(_M_node); return *this; } _Self operator++(int) { _Self __tmp = *this; _M_node = _Rb_tree_increment(_M_node); return __tmp; } _Self& operator--() { _M_node = _Rb_tree_decrement(_M_node); return *this; } _Self operator--(int) { _Self __tmp = *this; _M_node = _Rb_tree_decrement(_M_node); return __tmp; } bool operator==(const _Self& __x) const { return _M_node == __x._M_node; } bool operator!=(const _Self& __x) const { return _M_node != __x._M_node; } _Base_ptr _M_node; }; template inline bool operator==(const _Rb_tree_iterator<_Val>& __x, const _Rb_tree_const_iterator<_Val>& __y) { return __x._M_node == __y._M_node; } template inline bool operator!=(const _Rb_tree_iterator<_Val>& __x, const _Rb_tree_const_iterator<_Val>& __y) { return __x._M_node != __y._M_node; } void _Rb_tree_insert_and_rebalance(const bool __insert_left, _Rb_tree_node_base* __x, _Rb_tree_node_base* __p, _Rb_tree_node_base& __header) throw (); _Rb_tree_node_base* _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, _Rb_tree_node_base& __header) throw (); template > class _Rb_tree { typedef typename _Alloc::template rebind<_Rb_tree_node<_Val> >::other _Node_allocator; protected: typedef _Rb_tree_node_base* _Base_ptr; typedef const _Rb_tree_node_base* _Const_Base_ptr; public: typedef _Key key_type; typedef _Val value_type; typedef value_type* pointer; typedef const value_type* const_pointer; typedef value_type& reference; typedef const value_type& const_reference; typedef _Rb_tree_node<_Val>* _Link_type; typedef const _Rb_tree_node<_Val>* _Const_Link_type; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Alloc allocator_type; _Node_allocator& _M_get_Node_allocator() { return *static_cast<_Node_allocator*>(&this->_M_impl); } const _Node_allocator& _M_get_Node_allocator() const { return *static_cast(&this->_M_impl); } allocator_type get_allocator() const { return allocator_type(_M_get_Node_allocator()); } protected: _Link_type _M_get_node() { return _M_impl._Node_allocator::allocate(1); } void _M_put_node(_Link_type __p) { _M_impl._Node_allocator::deallocate(__p, 1); } # 387 "/usr/include/c++/4.5/bits/stl_tree.h" 3 template _Link_type _M_create_node(_Args&&... __args) { _Link_type __tmp = _M_get_node(); try { _M_get_Node_allocator().construct(__tmp, std::forward<_Args>(__args)...); } catch(...) { _M_put_node(__tmp); throw; } return __tmp; } void _M_destroy_node(_Link_type __p) { _M_get_Node_allocator().destroy(__p); _M_put_node(__p); } _Link_type _M_clone_node(_Const_Link_type __x) { _Link_type __tmp = _M_create_node(__x->_M_value_field); __tmp->_M_color = __x->_M_color; __tmp->_M_left = 0; __tmp->_M_right = 0; return __tmp; } protected: template struct _Rb_tree_impl : public _Node_allocator { _Key_compare _M_key_compare; _Rb_tree_node_base _M_header; size_type _M_node_count; _Rb_tree_impl() : _Node_allocator(), _M_key_compare(), _M_header(), _M_node_count(0) { _M_initialize(); } _Rb_tree_impl(const _Key_compare& __comp, const _Node_allocator& __a) : _Node_allocator(__a), _M_key_compare(__comp), _M_header(), _M_node_count(0) { _M_initialize(); } private: void _M_initialize() { this->_M_header._M_color = _S_red; this->_M_header._M_parent = 0; this->_M_header._M_left = &this->_M_header; this->_M_header._M_right = &this->_M_header; } }; _Rb_tree_impl<_Compare> _M_impl; protected: _Base_ptr& _M_root() { return this->_M_impl._M_header._M_parent; } _Const_Base_ptr _M_root() const { return this->_M_impl._M_header._M_parent; } _Base_ptr& _M_leftmost() { return this->_M_impl._M_header._M_left; } _Const_Base_ptr _M_leftmost() const { return this->_M_impl._M_header._M_left; } _Base_ptr& _M_rightmost() { return this->_M_impl._M_header._M_right; } _Const_Base_ptr _M_rightmost() const { return this->_M_impl._M_header._M_right; } _Link_type _M_begin() { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } _Const_Link_type _M_begin() const { return static_cast<_Const_Link_type> (this->_M_impl._M_header._M_parent); } _Link_type _M_end() { return static_cast<_Link_type>(&this->_M_impl._M_header); } _Const_Link_type _M_end() const { return static_cast<_Const_Link_type>(&this->_M_impl._M_header); } static const_reference _S_value(_Const_Link_type __x) { return __x->_M_value_field; } static const _Key& _S_key(_Const_Link_type __x) { return _KeyOfValue()(_S_value(__x)); } static _Link_type _S_left(_Base_ptr __x) { return static_cast<_Link_type>(__x->_M_left); } static _Const_Link_type _S_left(_Const_Base_ptr __x) { return static_cast<_Const_Link_type>(__x->_M_left); } static _Link_type _S_right(_Base_ptr __x) { return static_cast<_Link_type>(__x->_M_right); } static _Const_Link_type _S_right(_Const_Base_ptr __x) { return static_cast<_Const_Link_type>(__x->_M_right); } static const_reference _S_value(_Const_Base_ptr __x) { return static_cast<_Const_Link_type>(__x)->_M_value_field; } static const _Key& _S_key(_Const_Base_ptr __x) { return _KeyOfValue()(_S_value(__x)); } static _Base_ptr _S_minimum(_Base_ptr __x) { return _Rb_tree_node_base::_S_minimum(__x); } static _Const_Base_ptr _S_minimum(_Const_Base_ptr __x) { return _Rb_tree_node_base::_S_minimum(__x); } static _Base_ptr _S_maximum(_Base_ptr __x) { return _Rb_tree_node_base::_S_maximum(__x); } static _Const_Base_ptr _S_maximum(_Const_Base_ptr __x) { return _Rb_tree_node_base::_S_maximum(__x); } public: typedef _Rb_tree_iterator iterator; typedef _Rb_tree_const_iterator const_iterator; typedef std::reverse_iterator reverse_iterator; typedef std::reverse_iterator const_reverse_iterator; private: iterator _M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __y, const value_type& __v); iterator _M_insert_lower(_Base_ptr __x, _Base_ptr __y, const value_type& __v); iterator _M_insert_equal_lower(const value_type& __x); _Link_type _M_copy(_Const_Link_type __x, _Link_type __p); void _M_erase(_Link_type __x); iterator _M_lower_bound(_Link_type __x, _Link_type __y, const _Key& __k); const_iterator _M_lower_bound(_Const_Link_type __x, _Const_Link_type __y, const _Key& __k) const; iterator _M_upper_bound(_Link_type __x, _Link_type __y, const _Key& __k); const_iterator _M_upper_bound(_Const_Link_type __x, _Const_Link_type __y, const _Key& __k) const; public: _Rb_tree() { } _Rb_tree(const _Compare& __comp, const allocator_type& __a = allocator_type()) : _M_impl(__comp, __a) { } _Rb_tree(const _Rb_tree& __x) : _M_impl(__x._M_impl._M_key_compare, __x._M_get_Node_allocator()) { if (__x._M_root() != 0) { _M_root() = _M_copy(__x._M_begin(), _M_end()); _M_leftmost() = _S_minimum(_M_root()); _M_rightmost() = _S_maximum(_M_root()); _M_impl._M_node_count = __x._M_impl._M_node_count; } } _Rb_tree(_Rb_tree&& __x); ~_Rb_tree() { _M_erase(_M_begin()); } _Rb_tree& operator=(const _Rb_tree& __x); _Compare key_comp() const { return _M_impl._M_key_compare; } iterator begin() { return iterator(static_cast<_Link_type> (this->_M_impl._M_header._M_left)); } const_iterator begin() const { return const_iterator(static_cast<_Const_Link_type> (this->_M_impl._M_header._M_left)); } iterator end() { return iterator(static_cast<_Link_type>(&this->_M_impl._M_header)); } const_iterator end() const { return const_iterator(static_cast<_Const_Link_type> (&this->_M_impl._M_header)); } reverse_iterator rbegin() { return reverse_iterator(end()); } const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } reverse_iterator rend() { return reverse_iterator(begin()); } const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } bool empty() const { return _M_impl._M_node_count == 0; } size_type size() const { return _M_impl._M_node_count; } size_type max_size() const { return _M_get_Node_allocator().max_size(); } void swap(_Rb_tree& __t); pair _M_insert_unique(const value_type& __x); iterator _M_insert_equal(const value_type& __x); iterator _M_insert_unique_(const_iterator __position, const value_type& __x); iterator _M_insert_equal_(const_iterator __position, const value_type& __x); template void _M_insert_unique(_InputIterator __first, _InputIterator __last); template void _M_insert_equal(_InputIterator __first, _InputIterator __last); iterator erase(iterator __position); const_iterator erase(const_iterator __position); size_type erase(const key_type& __x); iterator erase(iterator __first, iterator __last); const_iterator erase(const_iterator __first, const_iterator __last); void erase(const key_type* __first, const key_type* __last); void clear() { _M_erase(_M_begin()); _M_leftmost() = _M_end(); _M_root() = 0; _M_rightmost() = _M_end(); _M_impl._M_node_count = 0; } iterator find(const key_type& __k); const_iterator find(const key_type& __k) const; size_type count(const key_type& __k) const; iterator lower_bound(const key_type& __k) { return _M_lower_bound(_M_begin(), _M_end(), __k); } const_iterator lower_bound(const key_type& __k) const { return _M_lower_bound(_M_begin(), _M_end(), __k); } iterator upper_bound(const key_type& __k) { return _M_upper_bound(_M_begin(), _M_end(), __k); } const_iterator upper_bound(const key_type& __k) const { return _M_upper_bound(_M_begin(), _M_end(), __k); } pair equal_range(const key_type& __k); pair equal_range(const key_type& __k) const; bool __rb_verify() const; }; template inline bool operator==(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) { return __x.size() == __y.size() && std::equal(__x.begin(), __x.end(), __y.begin()); } template inline bool operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) { return std::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end()); } template inline bool operator!=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) { return !(__x == __y); } template inline bool operator>(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) { return __y < __x; } template inline bool operator<=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) { return !(__y < __x); } template inline bool operator>=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) { return !(__x < __y); } template inline void swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) { __x.swap(__y); } template _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _Rb_tree(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&& __x) : _M_impl(__x._M_impl._M_key_compare, __x._M_get_Node_allocator()) { if (__x._M_root() != 0) { _M_root() = __x._M_root(); _M_leftmost() = __x._M_leftmost(); _M_rightmost() = __x._M_rightmost(); _M_root()->_M_parent = _M_end(); __x._M_root() = 0; __x._M_leftmost() = __x._M_end(); __x._M_rightmost() = __x._M_end(); this->_M_impl._M_node_count = __x._M_impl._M_node_count; __x._M_impl._M_node_count = 0; } } template _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: operator=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x) { if (this != &__x) { clear(); _M_impl._M_key_compare = __x._M_impl._M_key_compare; if (__x._M_root() != 0) { _M_root() = _M_copy(__x._M_begin(), _M_end()); _M_leftmost() = _S_minimum(_M_root()); _M_rightmost() = _S_maximum(_M_root()); _M_impl._M_node_count = __x._M_impl._M_node_count; } } return *this; } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __p, const _Val& __v) { bool __insert_left = (__x != 0 || __p == _M_end() || _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__p))); _Link_type __z = _M_create_node(__v); _Rb_tree_insert_and_rebalance(__insert_left, __z, const_cast<_Base_ptr>(__p), this->_M_impl._M_header); ++_M_impl._M_node_count; return iterator(__z); } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_insert_lower(_Base_ptr __x, _Base_ptr __p, const _Val& __v) { bool __insert_left = (__x != 0 || __p == _M_end() || !_M_impl._M_key_compare(_S_key(__p), _KeyOfValue()(__v))); _Link_type __z = _M_create_node(__v); _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, this->_M_impl._M_header); ++_M_impl._M_node_count; return iterator(__z); } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_insert_equal_lower(const _Val& __v) { _Link_type __x = _M_begin(); _Link_type __y = _M_end(); while (__x != 0) { __y = __x; __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? _S_left(__x) : _S_right(__x); } return _M_insert_lower(__x, __y, __v); } template typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: _M_copy(_Const_Link_type __x, _Link_type __p) { _Link_type __top = _M_clone_node(__x); __top->_M_parent = __p; try { if (__x->_M_right) __top->_M_right = _M_copy(_S_right(__x), __top); __p = __top; __x = _S_left(__x); while (__x != 0) { _Link_type __y = _M_clone_node(__x); __p->_M_left = __y; __y->_M_parent = __p; if (__x->_M_right) __y->_M_right = _M_copy(_S_right(__x), __y); __p = __y; __x = _S_left(__x); } } catch(...) { _M_erase(__top); throw; } return __top; } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_erase(_Link_type __x) { while (__x != 0) { _M_erase(_S_right(__x)); _Link_type __y = _S_left(__x); _M_destroy_node(__x); __x = __y; } } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_lower_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) if (!_M_impl._M_key_compare(_S_key(__x), __k)) __y = __x, __x = _S_left(__x); else __x = _S_right(__x); return iterator(__y); } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_lower_bound(_Const_Link_type __x, _Const_Link_type __y, const _Key& __k) const { while (__x != 0) if (!_M_impl._M_key_compare(_S_key(__x), __k)) __y = __x, __x = _S_left(__x); else __x = _S_right(__x); return const_iterator(__y); } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_upper_bound(_Link_type __x, _Link_type __y, const _Key& __k) { while (__x != 0) if (_M_impl._M_key_compare(__k, _S_key(__x))) __y = __x, __x = _S_left(__x); else __x = _S_right(__x); return iterator(__y); } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_upper_bound(_Const_Link_type __x, _Const_Link_type __y, const _Key& __k) const { while (__x != 0) if (_M_impl._M_key_compare(__k, _S_key(__x))) __y = __x, __x = _S_left(__x); else __x = _S_right(__x); return const_iterator(__y); } template pair::iterator, typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator> _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: equal_range(const _Key& __k) { _Link_type __x = _M_begin(); _Link_type __y = _M_end(); while (__x != 0) { if (_M_impl._M_key_compare(_S_key(__x), __k)) __x = _S_right(__x); else if (_M_impl._M_key_compare(__k, _S_key(__x))) __y = __x, __x = _S_left(__x); else { _Link_type __xu(__x), __yu(__y); __y = __x, __x = _S_left(__x); __xu = _S_right(__xu); return pair(_M_lower_bound(__x, __y, __k), _M_upper_bound(__xu, __yu, __k)); } } return pair(iterator(__y), iterator(__y)); } template pair::const_iterator, typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator> _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: equal_range(const _Key& __k) const { _Const_Link_type __x = _M_begin(); _Const_Link_type __y = _M_end(); while (__x != 0) { if (_M_impl._M_key_compare(_S_key(__x), __k)) __x = _S_right(__x); else if (_M_impl._M_key_compare(__k, _S_key(__x))) __y = __x, __x = _S_left(__x); else { _Const_Link_type __xu(__x), __yu(__y); __y = __x, __x = _S_left(__x); __xu = _S_right(__xu); return pair(_M_lower_bound(__x, __y, __k), _M_upper_bound(__xu, __yu, __k)); } } return pair(const_iterator(__y), const_iterator(__y)); } template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __t) { if (_M_root() == 0) { if (__t._M_root() != 0) { _M_root() = __t._M_root(); _M_leftmost() = __t._M_leftmost(); _M_rightmost() = __t._M_rightmost(); _M_root()->_M_parent = _M_end(); __t._M_root() = 0; __t._M_leftmost() = __t._M_end(); __t._M_rightmost() = __t._M_end(); } } else if (__t._M_root() == 0) { __t._M_root() = _M_root(); __t._M_leftmost() = _M_leftmost(); __t._M_rightmost() = _M_rightmost(); __t._M_root()->_M_parent = __t._M_end(); _M_root() = 0; _M_leftmost() = _M_end(); _M_rightmost() = _M_end(); } else { std::swap(_M_root(),__t._M_root()); std::swap(_M_leftmost(),__t._M_leftmost()); std::swap(_M_rightmost(),__t._M_rightmost()); _M_root()->_M_parent = _M_end(); __t._M_root()->_M_parent = __t._M_end(); } std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); std::__alloc_swap<_Node_allocator>:: _S_do_it(_M_get_Node_allocator(), __t._M_get_Node_allocator()); } template pair::iterator, bool> _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_insert_unique(const _Val& __v) { _Link_type __x = _M_begin(); _Link_type __y = _M_end(); bool __comp = true; while (__x != 0) { __y = __x; __comp = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)); __x = __comp ? _S_left(__x) : _S_right(__x); } iterator __j = iterator(__y); if (__comp) { if (__j == begin()) return pair(_M_insert_(__x, __y, __v), true); else --__j; } if (_M_impl._M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v))) return pair(_M_insert_(__x, __y, __v), true); return pair(__j, false); } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_insert_equal(const _Val& __v) { _Link_type __x = _M_begin(); _Link_type __y = _M_end(); while (__x != 0) { __y = __x; __x = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)) ? _S_left(__x) : _S_right(__x); } return _M_insert_(__x, __y, __v); } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_insert_unique_(const_iterator __position, const _Val& __v) { if (__position._M_node == _M_end()) { if (size() > 0 && _M_impl._M_key_compare(_S_key(_M_rightmost()), _KeyOfValue()(__v))) return _M_insert_(0, _M_rightmost(), __v); else return _M_insert_unique(__v).first; } else if (_M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__position._M_node))) { const_iterator __before = __position; if (__position._M_node == _M_leftmost()) return _M_insert_(_M_leftmost(), _M_leftmost(), __v); else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), _KeyOfValue()(__v))) { if (_S_right(__before._M_node) == 0) return _M_insert_(0, __before._M_node, __v); else return _M_insert_(__position._M_node, __position._M_node, __v); } else return _M_insert_unique(__v).first; } else if (_M_impl._M_key_compare(_S_key(__position._M_node), _KeyOfValue()(__v))) { const_iterator __after = __position; if (__position._M_node == _M_rightmost()) return _M_insert_(0, _M_rightmost(), __v); else if (_M_impl._M_key_compare(_KeyOfValue()(__v), _S_key((++__after)._M_node))) { if (_S_right(__position._M_node) == 0) return _M_insert_(0, __position._M_node, __v); else return _M_insert_(__after._M_node, __after._M_node, __v); } else return _M_insert_unique(__v).first; } else return iterator(static_cast<_Link_type> (const_cast<_Base_ptr>(__position._M_node))); } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_insert_equal_(const_iterator __position, const _Val& __v) { if (__position._M_node == _M_end()) { if (size() > 0 && !_M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(_M_rightmost()))) return _M_insert_(0, _M_rightmost(), __v); else return _M_insert_equal(__v); } else if (!_M_impl._M_key_compare(_S_key(__position._M_node), _KeyOfValue()(__v))) { const_iterator __before = __position; if (__position._M_node == _M_leftmost()) return _M_insert_(_M_leftmost(), _M_leftmost(), __v); else if (!_M_impl._M_key_compare(_KeyOfValue()(__v), _S_key((--__before)._M_node))) { if (_S_right(__before._M_node) == 0) return _M_insert_(0, __before._M_node, __v); else return _M_insert_(__position._M_node, __position._M_node, __v); } else return _M_insert_equal(__v); } else { const_iterator __after = __position; if (__position._M_node == _M_rightmost()) return _M_insert_(0, _M_rightmost(), __v); else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), _KeyOfValue()(__v))) { if (_S_right(__position._M_node) == 0) return _M_insert_(0, __position._M_node, __v); else return _M_insert_(__after._M_node, __after._M_node, __v); } else return _M_insert_equal_lower(__v); } } template template void _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: _M_insert_unique(_II __first, _II __last) { for (; __first != __last; ++__first) _M_insert_unique_(end(), *__first); } template template void _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: _M_insert_equal(_II __first, _II __last) { for (; __first != __last; ++__first) _M_insert_equal_(end(), *__first); } template inline typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: erase(iterator __position) { iterator __result = __position; ++__result; _Link_type __y = static_cast<_Link_type>(_Rb_tree_rebalance_for_erase (__position._M_node, this->_M_impl._M_header)); _M_destroy_node(__y); --_M_impl._M_node_count; return __result; } template inline typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: erase(const_iterator __position) { const_iterator __result = __position; ++__result; _Link_type __y = static_cast<_Link_type>(_Rb_tree_rebalance_for_erase (const_cast<_Base_ptr>(__position._M_node), this->_M_impl._M_header)); _M_destroy_node(__y); --_M_impl._M_node_count; return __result; } # 1420 "/usr/include/c++/4.5/bits/stl_tree.h" 3 template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: erase(const _Key& __x) { pair __p = equal_range(__x); const size_type __old_size = size(); erase(__p.first, __p.second); return __old_size - size(); } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: erase(iterator __first, iterator __last) { if (__first == begin() && __last == end()) { clear(); return end(); } else { while (__first != __last) erase(__first++); return __last; } } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: erase(const_iterator __first, const_iterator __last) { if (__first == begin() && __last == end()) { clear(); return end(); } else { while (__first != __last) erase(__first++); return __last; } } # 1502 "/usr/include/c++/4.5/bits/stl_tree.h" 3 template void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: erase(const _Key* __first, const _Key* __last) { while (__first != __last) erase(*__first++); } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: find(const _Key& __k) { iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); return (__j == end() || _M_impl._M_key_compare(__k, _S_key(__j._M_node))) ? end() : __j; } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: find(const _Key& __k) const { const_iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); return (__j == end() || _M_impl._M_key_compare(__k, _S_key(__j._M_node))) ? end() : __j; } template typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: count(const _Key& __k) const { pair __p = equal_range(__k); const size_type __n = std::distance(__p.first, __p.second); return __n; } __attribute__ ((__pure__)) unsigned int _Rb_tree_black_count(const _Rb_tree_node_base* __node, const _Rb_tree_node_base* __root) throw (); template bool _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const { if (_M_impl._M_node_count == 0 || begin() == end()) return _M_impl._M_node_count == 0 && begin() == end() && this->_M_impl._M_header._M_left == _M_end() && this->_M_impl._M_header._M_right == _M_end(); unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); for (const_iterator __it = begin(); __it != end(); ++__it) { _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node); _Const_Link_type __L = _S_left(__x); _Const_Link_type __R = _S_right(__x); if (__x->_M_color == _S_red) if ((__L && __L->_M_color == _S_red) || (__R && __R->_M_color == _S_red)) return false; if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) return false; if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) return false; if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) return false; } if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) return false; if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) return false; return true; } } # 61 "/usr/include/c++/4.5/map" 2 3 # 1 "/usr/include/c++/4.5/bits/stl_map.h" 1 3 # 64 "/usr/include/c++/4.5/bits/stl_map.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 84 "/usr/include/c++/4.5/bits/stl_map.h" 3 template , typename _Alloc = std::allocator > > class map { public: typedef _Key key_type; typedef _Tp mapped_type; typedef std::pair value_type; typedef _Compare key_compare; typedef _Alloc allocator_type; private: typedef typename _Alloc::value_type _Alloc_value_type; public: class value_compare : public std::binary_function { friend class map<_Key, _Tp, _Compare, _Alloc>; protected: _Compare comp; value_compare(_Compare __c) : comp(__c) { } public: bool operator()(const value_type& __x, const value_type& __y) const { return comp(__x.first, __y.first); } }; private: typedef typename _Alloc::template rebind::other _Pair_alloc_type; typedef _Rb_tree, key_compare, _Pair_alloc_type> _Rep_type; _Rep_type _M_t; public: typedef typename _Pair_alloc_type::pointer pointer; typedef typename _Pair_alloc_type::const_pointer const_pointer; typedef typename _Pair_alloc_type::reference reference; typedef typename _Pair_alloc_type::const_reference const_reference; typedef typename _Rep_type::iterator iterator; typedef typename _Rep_type::const_iterator const_iterator; typedef typename _Rep_type::size_type size_type; typedef typename _Rep_type::difference_type difference_type; typedef typename _Rep_type::reverse_iterator reverse_iterator; typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; map() : _M_t() { } explicit map(const _Compare& __comp, const allocator_type& __a = allocator_type()) : _M_t(__comp, __a) { } # 170 "/usr/include/c++/4.5/bits/stl_map.h" 3 map(const map& __x) : _M_t(__x._M_t) { } # 181 "/usr/include/c++/4.5/bits/stl_map.h" 3 map(map&& __x) : _M_t(std::forward<_Rep_type>(__x._M_t)) { } # 195 "/usr/include/c++/4.5/bits/stl_map.h" 3 map(initializer_list __l, const _Compare& __c = _Compare(), const allocator_type& __a = allocator_type()) : _M_t(__c, __a) { _M_t._M_insert_unique(__l.begin(), __l.end()); } # 211 "/usr/include/c++/4.5/bits/stl_map.h" 3 template map(_InputIterator __first, _InputIterator __last) : _M_t() { _M_t._M_insert_unique(__first, __last); } # 227 "/usr/include/c++/4.5/bits/stl_map.h" 3 template map(_InputIterator __first, _InputIterator __last, const _Compare& __comp, const allocator_type& __a = allocator_type()) : _M_t(__comp, __a) { _M_t._M_insert_unique(__first, __last); } # 250 "/usr/include/c++/4.5/bits/stl_map.h" 3 map& operator=(const map& __x) { _M_t = __x._M_t; return *this; } # 265 "/usr/include/c++/4.5/bits/stl_map.h" 3 map& operator=(map&& __x) { this->clear(); this->swap(__x); return *this; } # 286 "/usr/include/c++/4.5/bits/stl_map.h" 3 map& operator=(initializer_list __l) { this->clear(); this->insert(__l.begin(), __l.end()); return *this; } allocator_type get_allocator() const { return _M_t.get_allocator(); } iterator begin() { return _M_t.begin(); } const_iterator begin() const { return _M_t.begin(); } iterator end() { return _M_t.end(); } const_iterator end() const { return _M_t.end(); } reverse_iterator rbegin() { return _M_t.rbegin(); } const_reverse_iterator rbegin() const { return _M_t.rbegin(); } reverse_iterator rend() { return _M_t.rend(); } const_reverse_iterator rend() const { return _M_t.rend(); } const_iterator cbegin() const { return _M_t.begin(); } const_iterator cend() const { return _M_t.end(); } const_reverse_iterator crbegin() const { return _M_t.rbegin(); } const_reverse_iterator crend() const { return _M_t.rend(); } bool empty() const { return _M_t.empty(); } size_type size() const { return _M_t.size(); } size_type max_size() const { return _M_t.max_size(); } # 442 "/usr/include/c++/4.5/bits/stl_map.h" 3 mapped_type& operator[](const key_type& __k) { iterator __i = lower_bound(__k); if (__i == end() || key_comp()(__k, (*__i).first)) __i = insert(__i, value_type(__k, mapped_type())); return (*__i).second; } # 464 "/usr/include/c++/4.5/bits/stl_map.h" 3 mapped_type& at(const key_type& __k) { iterator __i = lower_bound(__k); if (__i == end() || key_comp()(__k, (*__i).first)) __throw_out_of_range(("map::at")); return (*__i).second; } const mapped_type& at(const key_type& __k) const { const_iterator __i = lower_bound(__k); if (__i == end() || key_comp()(__k, (*__i).first)) __throw_out_of_range(("map::at")); return (*__i).second; } # 499 "/usr/include/c++/4.5/bits/stl_map.h" 3 std::pair insert(const value_type& __x) { return _M_t._M_insert_unique(__x); } # 511 "/usr/include/c++/4.5/bits/stl_map.h" 3 void insert(std::initializer_list __list) { insert (__list.begin(), __list.end()); } # 539 "/usr/include/c++/4.5/bits/stl_map.h" 3 iterator insert(iterator __position, const value_type& __x) { return _M_t._M_insert_unique_(__position, __x); } # 551 "/usr/include/c++/4.5/bits/stl_map.h" 3 template void insert(_InputIterator __first, _InputIterator __last) { _M_t._M_insert_unique(__first, __last); } # 572 "/usr/include/c++/4.5/bits/stl_map.h" 3 iterator erase(iterator __position) { return _M_t.erase(__position); } # 602 "/usr/include/c++/4.5/bits/stl_map.h" 3 size_type erase(const key_type& __x) { return _M_t.erase(__x); } # 621 "/usr/include/c++/4.5/bits/stl_map.h" 3 iterator erase(iterator __first, iterator __last) { return _M_t.erase(__first, __last); } # 652 "/usr/include/c++/4.5/bits/stl_map.h" 3 void swap(map& __x) { _M_t.swap(__x._M_t); } void clear() { _M_t.clear(); } key_compare key_comp() const { return _M_t.key_comp(); } value_compare value_comp() const { return value_compare(_M_t.key_comp()); } # 695 "/usr/include/c++/4.5/bits/stl_map.h" 3 iterator find(const key_type& __x) { return _M_t.find(__x); } # 710 "/usr/include/c++/4.5/bits/stl_map.h" 3 const_iterator find(const key_type& __x) const { return _M_t.find(__x); } # 722 "/usr/include/c++/4.5/bits/stl_map.h" 3 size_type count(const key_type& __x) const { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } # 737 "/usr/include/c++/4.5/bits/stl_map.h" 3 iterator lower_bound(const key_type& __x) { return _M_t.lower_bound(__x); } # 752 "/usr/include/c++/4.5/bits/stl_map.h" 3 const_iterator lower_bound(const key_type& __x) const { return _M_t.lower_bound(__x); } iterator upper_bound(const key_type& __x) { return _M_t.upper_bound(__x); } const_iterator upper_bound(const key_type& __x) const { return _M_t.upper_bound(__x); } # 791 "/usr/include/c++/4.5/bits/stl_map.h" 3 std::pair equal_range(const key_type& __x) { return _M_t.equal_range(__x); } # 810 "/usr/include/c++/4.5/bits/stl_map.h" 3 std::pair equal_range(const key_type& __x) const { return _M_t.equal_range(__x); } template friend bool operator==(const map<_K1, _T1, _C1, _A1>&, const map<_K1, _T1, _C1, _A1>&); template friend bool operator<(const map<_K1, _T1, _C1, _A1>&, const map<_K1, _T1, _C1, _A1>&); }; # 835 "/usr/include/c++/4.5/bits/stl_map.h" 3 template inline bool operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, const map<_Key, _Tp, _Compare, _Alloc>& __y) { return __x._M_t == __y._M_t; } # 852 "/usr/include/c++/4.5/bits/stl_map.h" 3 template inline bool operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, const map<_Key, _Tp, _Compare, _Alloc>& __y) { return __x._M_t < __y._M_t; } template inline bool operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x, const map<_Key, _Tp, _Compare, _Alloc>& __y) { return !(__x == __y); } template inline bool operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x, const map<_Key, _Tp, _Compare, _Alloc>& __y) { return __y < __x; } template inline bool operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x, const map<_Key, _Tp, _Compare, _Alloc>& __y) { return !(__y < __x); } template inline bool operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x, const map<_Key, _Tp, _Compare, _Alloc>& __y) { return !(__x < __y); } template inline void swap(map<_Key, _Tp, _Compare, _Alloc>& __x, map<_Key, _Tp, _Compare, _Alloc>& __y) { __x.swap(__y); } } # 62 "/usr/include/c++/4.5/map" 2 3 # 1 "/usr/include/c++/4.5/bits/stl_multimap.h" 1 3 # 63 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 83 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 template , typename _Alloc = std::allocator > > class multimap { public: typedef _Key key_type; typedef _Tp mapped_type; typedef std::pair value_type; typedef _Compare key_compare; typedef _Alloc allocator_type; private: typedef typename _Alloc::value_type _Alloc_value_type; public: class value_compare : public std::binary_function { friend class multimap<_Key, _Tp, _Compare, _Alloc>; protected: _Compare comp; value_compare(_Compare __c) : comp(__c) { } public: bool operator()(const value_type& __x, const value_type& __y) const { return comp(__x.first, __y.first); } }; private: typedef typename _Alloc::template rebind::other _Pair_alloc_type; typedef _Rb_tree, key_compare, _Pair_alloc_type> _Rep_type; _Rep_type _M_t; public: typedef typename _Pair_alloc_type::pointer pointer; typedef typename _Pair_alloc_type::const_pointer const_pointer; typedef typename _Pair_alloc_type::reference reference; typedef typename _Pair_alloc_type::const_reference const_reference; typedef typename _Rep_type::iterator iterator; typedef typename _Rep_type::const_iterator const_iterator; typedef typename _Rep_type::size_type size_type; typedef typename _Rep_type::difference_type difference_type; typedef typename _Rep_type::reverse_iterator reverse_iterator; typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; multimap() : _M_t() { } explicit multimap(const _Compare& __comp, const allocator_type& __a = allocator_type()) : _M_t(__comp, __a) { } # 168 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 multimap(const multimap& __x) : _M_t(__x._M_t) { } # 179 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 multimap(multimap&& __x) : _M_t(std::forward<_Rep_type>(__x._M_t)) { } # 192 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 multimap(initializer_list __l, const _Compare& __comp = _Compare(), const allocator_type& __a = allocator_type()) : _M_t(__comp, __a) { _M_t._M_insert_equal(__l.begin(), __l.end()); } # 208 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 template multimap(_InputIterator __first, _InputIterator __last) : _M_t() { _M_t._M_insert_equal(__first, __last); } # 224 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 template multimap(_InputIterator __first, _InputIterator __last, const _Compare& __comp, const allocator_type& __a = allocator_type()) : _M_t(__comp, __a) { _M_t._M_insert_equal(__first, __last); } # 247 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 multimap& operator=(const multimap& __x) { _M_t = __x._M_t; return *this; } # 262 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 multimap& operator=(multimap&& __x) { this->clear(); this->swap(__x); return *this; } # 283 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 multimap& operator=(initializer_list __l) { this->clear(); this->insert(__l.begin(), __l.end()); return *this; } allocator_type get_allocator() const { return _M_t.get_allocator(); } iterator begin() { return _M_t.begin(); } const_iterator begin() const { return _M_t.begin(); } iterator end() { return _M_t.end(); } const_iterator end() const { return _M_t.end(); } reverse_iterator rbegin() { return _M_t.rbegin(); } const_reverse_iterator rbegin() const { return _M_t.rbegin(); } reverse_iterator rend() { return _M_t.rend(); } const_reverse_iterator rend() const { return _M_t.rend(); } const_iterator cbegin() const { return _M_t.begin(); } const_iterator cend() const { return _M_t.end(); } const_reverse_iterator crbegin() const { return _M_t.rbegin(); } const_reverse_iterator crend() const { return _M_t.rend(); } bool empty() const { return _M_t.empty(); } size_type size() const { return _M_t.size(); } size_type max_size() const { return _M_t.max_size(); } # 437 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 iterator insert(const value_type& __x) { return _M_t._M_insert_equal(__x); } # 461 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 iterator insert(iterator __position, const value_type& __x) { return _M_t._M_insert_equal_(__position, __x); } # 474 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 template void insert(_InputIterator __first, _InputIterator __last) { _M_t._M_insert_equal(__first, __last); } # 487 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 void insert(initializer_list __l) { this->insert(__l.begin(), __l.end()); } # 508 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 iterator erase(iterator __position) { return _M_t.erase(__position); } # 538 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 size_type erase(const key_type& __x) { return _M_t.erase(__x); } # 557 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 iterator erase(iterator __first, iterator __last) { return _M_t.erase(__first, __last); } # 590 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 void swap(multimap& __x) { _M_t.swap(__x._M_t); } void clear() { _M_t.clear(); } key_compare key_comp() const { return _M_t.key_comp(); } value_compare value_comp() const { return value_compare(_M_t.key_comp()); } # 633 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 iterator find(const key_type& __x) { return _M_t.find(__x); } # 648 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 const_iterator find(const key_type& __x) const { return _M_t.find(__x); } size_type count(const key_type& __x) const { return _M_t.count(__x); } # 672 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 iterator lower_bound(const key_type& __x) { return _M_t.lower_bound(__x); } # 687 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 const_iterator lower_bound(const key_type& __x) const { return _M_t.lower_bound(__x); } iterator upper_bound(const key_type& __x) { return _M_t.upper_bound(__x); } const_iterator upper_bound(const key_type& __x) const { return _M_t.upper_bound(__x); } # 724 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 std::pair equal_range(const key_type& __x) { return _M_t.equal_range(__x); } # 741 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 std::pair equal_range(const key_type& __x) const { return _M_t.equal_range(__x); } template friend bool operator==(const multimap<_K1, _T1, _C1, _A1>&, const multimap<_K1, _T1, _C1, _A1>&); template friend bool operator<(const multimap<_K1, _T1, _C1, _A1>&, const multimap<_K1, _T1, _C1, _A1>&); }; # 766 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 template inline bool operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, const multimap<_Key, _Tp, _Compare, _Alloc>& __y) { return __x._M_t == __y._M_t; } # 783 "/usr/include/c++/4.5/bits/stl_multimap.h" 3 template inline bool operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, const multimap<_Key, _Tp, _Compare, _Alloc>& __y) { return __x._M_t < __y._M_t; } template inline bool operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, const multimap<_Key, _Tp, _Compare, _Alloc>& __y) { return !(__x == __y); } template inline bool operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, const multimap<_Key, _Tp, _Compare, _Alloc>& __y) { return __y < __x; } template inline bool operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, const multimap<_Key, _Tp, _Compare, _Alloc>& __y) { return !(__y < __x); } template inline bool operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, const multimap<_Key, _Tp, _Compare, _Alloc>& __y) { return !(__x < __y); } template inline void swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, multimap<_Key, _Tp, _Compare, _Alloc>& __y) { __x.swap(__y); } } # 63 "/usr/include/c++/4.5/map" 2 3 # 11 "src/fh/ls_fh.h" 2 # 1 "/usr/include/c++/4.5/unordered_map" 1 3 # 32 "/usr/include/c++/4.5/unordered_map" 3 # 33 "/usr/include/c++/4.5/unordered_map" 3 # 1 "/usr/include/c++/4.5/utility" 1 3 # 59 "/usr/include/c++/4.5/utility" 3 # 60 "/usr/include/c++/4.5/utility" 3 # 70 "/usr/include/c++/4.5/utility" 3 # 1 "/usr/include/c++/4.5/bits/stl_relops.h" 1 3 # 67 "/usr/include/c++/4.5/bits/stl_relops.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { namespace rel_ops { # 83 "/usr/include/c++/4.5/bits/stl_relops.h" 3 template inline bool operator!=(const _Tp& __x, const _Tp& __y) { return !(__x == __y); } # 96 "/usr/include/c++/4.5/bits/stl_relops.h" 3 template inline bool operator>(const _Tp& __x, const _Tp& __y) { return __y < __x; } # 109 "/usr/include/c++/4.5/bits/stl_relops.h" 3 template inline bool operator<=(const _Tp& __x, const _Tp& __y) { return !(__y < __x); } # 122 "/usr/include/c++/4.5/bits/stl_relops.h" 3 template inline bool operator>=(const _Tp& __x, const _Tp& __y) { return !(__x < __y); } } } # 71 "/usr/include/c++/4.5/utility" 2 3 # 84 "/usr/include/c++/4.5/utility" 3 # 1 "/usr/include/c++/4.5/tr1_impl/utility" 1 3 # 30 "/usr/include/c++/4.5/tr1_impl/utility" 3 namespace std { template class tuple_size; template class tuple_element; template struct tuple_size > { static const std::size_t value = 2; }; template const std::size_t tuple_size >::value; template struct tuple_element<0, std::pair<_Tp1, _Tp2> > { typedef _Tp1 type; }; template struct tuple_element<1, std::pair<_Tp1, _Tp2> > { typedef _Tp2 type; }; template struct __pair_get; template<> struct __pair_get<0> { template static _Tp1& __get(std::pair<_Tp1, _Tp2>& __pair) { return __pair.first; } template static const _Tp1& __const_get(const std::pair<_Tp1, _Tp2>& __pair) { return __pair.first; } }; template<> struct __pair_get<1> { template static _Tp2& __get(std::pair<_Tp1, _Tp2>& __pair) { return __pair.second; } template static const _Tp2& __const_get(const std::pair<_Tp1, _Tp2>& __pair) { return __pair.second; } }; template inline typename tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type& get(std::pair<_Tp1, _Tp2>& __in) { return __pair_get<_Int>::__get(__in); } template inline const typename tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type& get(const std::pair<_Tp1, _Tp2>& __in) { return __pair_get<_Int>::__const_get(__in); } } # 85 "/usr/include/c++/4.5/utility" 2 3 # 39 "/usr/include/c++/4.5/unordered_map" 2 3 # 1 "/usr/include/c++/4.5/bits/hashtable.h" 1 3 # 33 "/usr/include/c++/4.5/bits/hashtable.h" 3 # 34 "/usr/include/c++/4.5/bits/hashtable.h" 3 # 1 "/usr/include/c++/4.5/bits/hashtable_policy.h" 1 3 # 33 "/usr/include/c++/4.5/bits/hashtable_policy.h" 3 namespace std { namespace __detail { template inline typename std::iterator_traits<_Iterator>::difference_type __distance_fw(_Iterator __first, _Iterator __last, std::input_iterator_tag) { return 0; } template inline typename std::iterator_traits<_Iterator>::difference_type __distance_fw(_Iterator __first, _Iterator __last, std::forward_iterator_tag) { return std::distance(__first, __last); } template inline typename std::iterator_traits<_Iterator>::difference_type __distance_fw(_Iterator __first, _Iterator __last) { typedef typename std::iterator_traits<_Iterator>::iterator_category _Tag; return __distance_fw(__first, __last, _Tag()); } # 66 "/usr/include/c++/4.5/bits/hashtable_policy.h" 3 template struct _Hash_node; template struct _Hash_node<_Value, true> { _Value _M_v; std::size_t _M_hash_code; _Hash_node* _M_next; template _Hash_node(_Args&&... __args) : _M_v(std::forward<_Args>(__args)...), _M_hash_code(), _M_next() { } }; template struct _Hash_node<_Value, false> { _Value _M_v; _Hash_node* _M_next; template _Hash_node(_Args&&... __args) : _M_v(std::forward<_Args>(__args)...), _M_next() { } }; template struct _Node_iterator_base { _Node_iterator_base(_Hash_node<_Value, __cache>* __p) : _M_cur(__p) { } void _M_incr() { _M_cur = _M_cur->_M_next; } _Hash_node<_Value, __cache>* _M_cur; }; template inline bool operator==(const _Node_iterator_base<_Value, __cache>& __x, const _Node_iterator_base<_Value, __cache>& __y) { return __x._M_cur == __y._M_cur; } template inline bool operator!=(const _Node_iterator_base<_Value, __cache>& __x, const _Node_iterator_base<_Value, __cache>& __y) { return __x._M_cur != __y._M_cur; } template struct _Node_iterator : public _Node_iterator_base<_Value, __cache> { typedef _Value value_type; typedef typename std::conditional<__constant_iterators, const _Value*, _Value*>::type pointer; typedef typename std::conditional<__constant_iterators, const _Value&, _Value&>::type reference; typedef std::ptrdiff_t difference_type; typedef std::forward_iterator_tag iterator_category; _Node_iterator() : _Node_iterator_base<_Value, __cache>(0) { } explicit _Node_iterator(_Hash_node<_Value, __cache>* __p) : _Node_iterator_base<_Value, __cache>(__p) { } reference operator*() const { return this->_M_cur->_M_v; } pointer operator->() const { return &this->_M_cur->_M_v; } _Node_iterator& operator++() { this->_M_incr(); return *this; } _Node_iterator operator++(int) { _Node_iterator __tmp(*this); this->_M_incr(); return __tmp; } }; template struct _Node_const_iterator : public _Node_iterator_base<_Value, __cache> { typedef _Value value_type; typedef const _Value* pointer; typedef const _Value& reference; typedef std::ptrdiff_t difference_type; typedef std::forward_iterator_tag iterator_category; _Node_const_iterator() : _Node_iterator_base<_Value, __cache>(0) { } explicit _Node_const_iterator(_Hash_node<_Value, __cache>* __p) : _Node_iterator_base<_Value, __cache>(__p) { } _Node_const_iterator(const _Node_iterator<_Value, __constant_iterators, __cache>& __x) : _Node_iterator_base<_Value, __cache>(__x._M_cur) { } reference operator*() const { return this->_M_cur->_M_v; } pointer operator->() const { return &this->_M_cur->_M_v; } _Node_const_iterator& operator++() { this->_M_incr(); return *this; } _Node_const_iterator operator++(int) { _Node_const_iterator __tmp(*this); this->_M_incr(); return __tmp; } }; template struct _Hashtable_iterator_base { _Hashtable_iterator_base(_Hash_node<_Value, __cache>* __node, _Hash_node<_Value, __cache>** __bucket) : _M_cur_node(__node), _M_cur_bucket(__bucket) { } void _M_incr() { _M_cur_node = _M_cur_node->_M_next; if (!_M_cur_node) _M_incr_bucket(); } void _M_incr_bucket(); _Hash_node<_Value, __cache>* _M_cur_node; _Hash_node<_Value, __cache>** _M_cur_bucket; }; template void _Hashtable_iterator_base<_Value, __cache>:: _M_incr_bucket() { ++_M_cur_bucket; while (!*_M_cur_bucket) ++_M_cur_bucket; _M_cur_node = *_M_cur_bucket; } template inline bool operator==(const _Hashtable_iterator_base<_Value, __cache>& __x, const _Hashtable_iterator_base<_Value, __cache>& __y) { return __x._M_cur_node == __y._M_cur_node; } template inline bool operator!=(const _Hashtable_iterator_base<_Value, __cache>& __x, const _Hashtable_iterator_base<_Value, __cache>& __y) { return __x._M_cur_node != __y._M_cur_node; } template struct _Hashtable_iterator : public _Hashtable_iterator_base<_Value, __cache> { typedef _Value value_type; typedef typename std::conditional<__constant_iterators, const _Value*, _Value*>::type pointer; typedef typename std::conditional<__constant_iterators, const _Value&, _Value&>::type reference; typedef std::ptrdiff_t difference_type; typedef std::forward_iterator_tag iterator_category; _Hashtable_iterator() : _Hashtable_iterator_base<_Value, __cache>(0, 0) { } _Hashtable_iterator(_Hash_node<_Value, __cache>* __p, _Hash_node<_Value, __cache>** __b) : _Hashtable_iterator_base<_Value, __cache>(__p, __b) { } explicit _Hashtable_iterator(_Hash_node<_Value, __cache>** __b) : _Hashtable_iterator_base<_Value, __cache>(*__b, __b) { } reference operator*() const { return this->_M_cur_node->_M_v; } pointer operator->() const { return &this->_M_cur_node->_M_v; } _Hashtable_iterator& operator++() { this->_M_incr(); return *this; } _Hashtable_iterator operator++(int) { _Hashtable_iterator __tmp(*this); this->_M_incr(); return __tmp; } }; template struct _Hashtable_const_iterator : public _Hashtable_iterator_base<_Value, __cache> { typedef _Value value_type; typedef const _Value* pointer; typedef const _Value& reference; typedef std::ptrdiff_t difference_type; typedef std::forward_iterator_tag iterator_category; _Hashtable_const_iterator() : _Hashtable_iterator_base<_Value, __cache>(0, 0) { } _Hashtable_const_iterator(_Hash_node<_Value, __cache>* __p, _Hash_node<_Value, __cache>** __b) : _Hashtable_iterator_base<_Value, __cache>(__p, __b) { } explicit _Hashtable_const_iterator(_Hash_node<_Value, __cache>** __b) : _Hashtable_iterator_base<_Value, __cache>(*__b, __b) { } _Hashtable_const_iterator(const _Hashtable_iterator<_Value, __constant_iterators, __cache>& __x) : _Hashtable_iterator_base<_Value, __cache>(__x._M_cur_node, __x._M_cur_bucket) { } reference operator*() const { return this->_M_cur_node->_M_v; } pointer operator->() const { return &this->_M_cur_node->_M_v; } _Hashtable_const_iterator& operator++() { this->_M_incr(); return *this; } _Hashtable_const_iterator operator++(int) { _Hashtable_const_iterator __tmp(*this); this->_M_incr(); return __tmp; } }; struct _Mod_range_hashing { typedef std::size_t first_argument_type; typedef std::size_t second_argument_type; typedef std::size_t result_type; result_type operator()(first_argument_type __num, second_argument_type __den) const { return __num % __den; } }; struct _Default_ranged_hash { }; struct _Prime_rehash_policy { _Prime_rehash_policy(float __z = 1.0) : _M_max_load_factor(__z), _M_growth_factor(2.f), _M_next_resize(0) { } float max_load_factor() const { return _M_max_load_factor; } std::size_t _M_next_bkt(std::size_t __n) const; std::size_t _M_bkt_for_elements(std::size_t __n) const; std::pair _M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt, std::size_t __n_ins) const; enum { _S_n_primes = sizeof(unsigned long) != 8 ? 256 : 256 + 48 }; float _M_max_load_factor; float _M_growth_factor; mutable std::size_t _M_next_resize; }; extern const unsigned long __prime_list[]; inline std::size_t _Prime_rehash_policy:: _M_next_bkt(std::size_t __n) const { const unsigned long* __p = std::lower_bound(__prime_list, __prime_list + _S_n_primes, __n); _M_next_resize = static_cast(__builtin_ceil(*__p * _M_max_load_factor)); return *__p; } inline std::size_t _Prime_rehash_policy:: _M_bkt_for_elements(std::size_t __n) const { const float __min_bkts = __n / _M_max_load_factor; const unsigned long* __p = std::lower_bound(__prime_list, __prime_list + _S_n_primes, __min_bkts); _M_next_resize = static_cast(__builtin_ceil(*__p * _M_max_load_factor)); return *__p; } # 457 "/usr/include/c++/4.5/bits/hashtable_policy.h" 3 inline std::pair _Prime_rehash_policy:: _M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt, std::size_t __n_ins) const { if (__n_elt + __n_ins > _M_next_resize) { float __min_bkts = ((float(__n_ins) + float(__n_elt)) / _M_max_load_factor); if (__min_bkts > __n_bkt) { __min_bkts = std::max(__min_bkts, _M_growth_factor * __n_bkt); const unsigned long* __p = std::lower_bound(__prime_list, __prime_list + _S_n_primes, __min_bkts); _M_next_resize = static_cast (__builtin_ceil(*__p * _M_max_load_factor)); return std::make_pair(true, *__p); } else { _M_next_resize = static_cast (__builtin_ceil(__n_bkt * _M_max_load_factor)); return std::make_pair(false, 0); } } else return std::make_pair(false, 0); } # 501 "/usr/include/c++/4.5/bits/hashtable_policy.h" 3 template struct _Map_base { }; template struct _Map_base<_Key, _Pair, std::_Select1st<_Pair>, false, _Hashtable> { typedef typename _Pair::second_type mapped_type; }; template struct _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable> { typedef typename _Pair::second_type mapped_type; mapped_type& operator[](const _Key& __k); mapped_type& at(const _Key& __k); const mapped_type& at(const _Key& __k) const; }; template typename _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable>::mapped_type& _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable>:: operator[](const _Key& __k) { _Hashtable* __h = static_cast<_Hashtable*>(this); typename _Hashtable::_Hash_code_type __code = __h->_M_hash_code(__k); std::size_t __n = __h->_M_bucket_index(__k, __code, __h->_M_bucket_count); typename _Hashtable::_Node* __p = __h->_M_find_node(__h->_M_buckets[__n], __k, __code); if (!__p) return __h->_M_insert_bucket(std::make_pair(__k, mapped_type()), __n, __code)->second; return (__p->_M_v).second; } template typename _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable>::mapped_type& _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable>:: at(const _Key& __k) { _Hashtable* __h = static_cast<_Hashtable*>(this); typename _Hashtable::_Hash_code_type __code = __h->_M_hash_code(__k); std::size_t __n = __h->_M_bucket_index(__k, __code, __h->_M_bucket_count); typename _Hashtable::_Node* __p = __h->_M_find_node(__h->_M_buckets[__n], __k, __code); if (!__p) __throw_out_of_range(("_Map_base::at")); return (__p->_M_v).second; } template const typename _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable>::mapped_type& _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable>:: at(const _Key& __k) const { const _Hashtable* __h = static_cast(this); typename _Hashtable::_Hash_code_type __code = __h->_M_hash_code(__k); std::size_t __n = __h->_M_bucket_index(__k, __code, __h->_M_bucket_count); typename _Hashtable::_Node* __p = __h->_M_find_node(__h->_M_buckets[__n], __k, __code); if (!__p) __throw_out_of_range(("_Map_base::at")); return (__p->_M_v).second; } template struct _Rehash_base { }; template struct _Rehash_base<_Prime_rehash_policy, _Hashtable> { float max_load_factor() const { const _Hashtable* __this = static_cast(this); return __this->__rehash_policy().max_load_factor(); } void max_load_factor(float __z) { _Hashtable* __this = static_cast<_Hashtable*>(this); __this->__rehash_policy(_Prime_rehash_policy(__z)); } void reserve(std::size_t __n) { _Hashtable* __this = static_cast<_Hashtable*>(this); __this->rehash(__builtin_ceil(__n / max_load_factor())); } }; # 625 "/usr/include/c++/4.5/bits/hashtable_policy.h" 3 template struct _Hash_code_base; template struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, false> { protected: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, const _H1&, const _H2&, const _Hash& __h) : _M_extract(__ex), _M_eq(__eq), _M_ranged_hash(__h) { } typedef void* _Hash_code_type; _Hash_code_type _M_hash_code(const _Key& __key) const { return 0; } std::size_t _M_bucket_index(const _Key& __k, _Hash_code_type, std::size_t __n) const { return _M_ranged_hash(__k, __n); } std::size_t _M_bucket_index(const _Hash_node<_Value, false>* __p, std::size_t __n) const { return _M_ranged_hash(_M_extract(__p->_M_v), __n); } bool _M_compare(const _Key& __k, _Hash_code_type, _Hash_node<_Value, false>* __n) const { return _M_eq(__k, _M_extract(__n->_M_v)); } void _M_store_code(_Hash_node<_Value, false>*, _Hash_code_type) const { } void _M_copy_code(_Hash_node<_Value, false>*, const _Hash_node<_Value, false>*) const { } void _M_swap(_Hash_code_base& __x) { std::swap(_M_extract, __x._M_extract); std::swap(_M_eq, __x._M_eq); std::swap(_M_ranged_hash, __x._M_ranged_hash); } protected: _ExtractKey _M_extract; _Equal _M_eq; _Hash _M_ranged_hash; }; # 696 "/usr/include/c++/4.5/bits/hashtable_policy.h" 3 template struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, true>; template struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Default_ranged_hash, false> { typedef _H1 hasher; hasher hash_function() const { return _M_h1; } protected: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, const _H1& __h1, const _H2& __h2, const _Default_ranged_hash&) : _M_extract(__ex), _M_eq(__eq), _M_h1(__h1), _M_h2(__h2) { } typedef std::size_t _Hash_code_type; _Hash_code_type _M_hash_code(const _Key& __k) const { return _M_h1(__k); } std::size_t _M_bucket_index(const _Key&, _Hash_code_type __c, std::size_t __n) const { return _M_h2(__c, __n); } std::size_t _M_bucket_index(const _Hash_node<_Value, false>* __p, std::size_t __n) const { return _M_h2(_M_h1(_M_extract(__p->_M_v)), __n); } bool _M_compare(const _Key& __k, _Hash_code_type, _Hash_node<_Value, false>* __n) const { return _M_eq(__k, _M_extract(__n->_M_v)); } void _M_store_code(_Hash_node<_Value, false>*, _Hash_code_type) const { } void _M_copy_code(_Hash_node<_Value, false>*, const _Hash_node<_Value, false>*) const { } void _M_swap(_Hash_code_base& __x) { std::swap(_M_extract, __x._M_extract); std::swap(_M_eq, __x._M_eq); std::swap(_M_h1, __x._M_h1); std::swap(_M_h2, __x._M_h2); } protected: _ExtractKey _M_extract; _Equal _M_eq; _H1 _M_h1; _H2 _M_h2; }; template struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Default_ranged_hash, true> { typedef _H1 hasher; hasher hash_function() const { return _M_h1; } protected: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, const _H1& __h1, const _H2& __h2, const _Default_ranged_hash&) : _M_extract(__ex), _M_eq(__eq), _M_h1(__h1), _M_h2(__h2) { } typedef std::size_t _Hash_code_type; _Hash_code_type _M_hash_code(const _Key& __k) const { return _M_h1(__k); } std::size_t _M_bucket_index(const _Key&, _Hash_code_type __c, std::size_t __n) const { return _M_h2(__c, __n); } std::size_t _M_bucket_index(const _Hash_node<_Value, true>* __p, std::size_t __n) const { return _M_h2(__p->_M_hash_code, __n); } bool _M_compare(const _Key& __k, _Hash_code_type __c, _Hash_node<_Value, true>* __n) const { return __c == __n->_M_hash_code && _M_eq(__k, _M_extract(__n->_M_v)); } void _M_store_code(_Hash_node<_Value, true>* __n, _Hash_code_type __c) const { __n->_M_hash_code = __c; } void _M_copy_code(_Hash_node<_Value, true>* __to, const _Hash_node<_Value, true>* __from) const { __to->_M_hash_code = __from->_M_hash_code; } void _M_swap(_Hash_code_base& __x) { std::swap(_M_extract, __x._M_extract); std::swap(_M_eq, __x._M_eq); std::swap(_M_h1, __x._M_h1); std::swap(_M_h2, __x._M_h2); } protected: _ExtractKey _M_extract; _Equal _M_eq; _H1 _M_h1; _H2 _M_h2; }; template struct _Equality_base; template struct _Equality_base<_ExtractKey, true, _Hashtable> { bool _M_equal(const _Hashtable&) const; }; template bool _Equality_base<_ExtractKey, true, _Hashtable>:: _M_equal(const _Hashtable& __other) const { const _Hashtable* __this = static_cast(this); if (__this->size() != __other.size()) return false; for (auto __itx = __this->begin(); __itx != __this->end(); ++__itx) { const auto __ity = __other.find(_ExtractKey()(*__itx)); if (__ity == __other.end() || *__ity != *__itx) return false; } return true; } template struct _Equality_base<_ExtractKey, false, _Hashtable> { bool _M_equal(const _Hashtable&) const; private: template static bool _S_is_permutation(_Uiterator, _Uiterator, _Uiterator); }; template template bool _Equality_base<_ExtractKey, false, _Hashtable>:: _S_is_permutation(_Uiterator __first1, _Uiterator __last1, _Uiterator __first2) { for (; __first1 != __last1; ++__first1, ++__first2) if (!(*__first1 == *__first2)) break; if (__first1 == __last1) return true; _Uiterator __last2 = __first2; std::advance(__last2, std::distance(__first1, __last1)); for (_Uiterator __it1 = __first1; __it1 != __last1; ++__it1) { _Uiterator __tmp = __first1; while (__tmp != __it1 && !(*__tmp == *__it1)) ++__tmp; if (__tmp != __it1) continue; std::ptrdiff_t __n2 = 0; for (__tmp = __first2; __tmp != __last2; ++__tmp) if (*__tmp == *__it1) ++__n2; if (!__n2) return false; std::ptrdiff_t __n1 = 0; for (__tmp = __it1; __tmp != __last1; ++__tmp) if (*__tmp == *__it1) ++__n1; if (__n1 != __n2) return false; } return true; } template bool _Equality_base<_ExtractKey, false, _Hashtable>:: _M_equal(const _Hashtable& __other) const { const _Hashtable* __this = static_cast(this); if (__this->size() != __other.size()) return false; for (auto __itx = __this->begin(); __itx != __this->end();) { const auto __xrange = __this->equal_range(_ExtractKey()(*__itx)); const auto __yrange = __other.equal_range(_ExtractKey()(*__itx)); if (std::distance(__xrange.first, __xrange.second) != std::distance(__yrange.first, __yrange.second)) return false; if (!_S_is_permutation(__xrange.first, __xrange.second, __yrange.first)) return false; __itx = __xrange.second; } return true; } } } # 36 "/usr/include/c++/4.5/bits/hashtable.h" 2 3 namespace std { # 96 "/usr/include/c++/4.5/bits/hashtable.h" 3 template class _Hashtable : public __detail::_Rehash_base<_RehashPolicy, _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys> >, public __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, __cache_hash_code>, public __detail::_Map_base<_Key, _Value, _ExtractKey, __unique_keys, _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys> >, public __detail::_Equality_base<_ExtractKey, __unique_keys, _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys> > { public: typedef _Allocator allocator_type; typedef _Value value_type; typedef _Key key_type; typedef _Equal key_equal; typedef typename _Allocator::pointer pointer; typedef typename _Allocator::const_pointer const_pointer; typedef typename _Allocator::reference reference; typedef typename _Allocator::const_reference const_reference; typedef std::size_t size_type; typedef std::ptrdiff_t difference_type; typedef __detail::_Node_iterator local_iterator; typedef __detail::_Node_const_iterator const_local_iterator; typedef __detail::_Hashtable_iterator iterator; typedef __detail::_Hashtable_const_iterator const_iterator; template friend struct __detail::_Map_base; private: typedef __detail::_Hash_node<_Value, __cache_hash_code> _Node; typedef typename _Allocator::template rebind<_Node>::other _Node_allocator_type; typedef typename _Allocator::template rebind<_Node*>::other _Bucket_allocator_type; typedef typename _Allocator::template rebind<_Value>::other _Value_allocator_type; _Node_allocator_type _M_node_allocator; _Node** _M_buckets; size_type _M_bucket_count; size_type _M_element_count; _RehashPolicy _M_rehash_policy; _Node* _M_allocate_node(const value_type& __v); void _M_deallocate_node(_Node* __n); void _M_deallocate_nodes(_Node**, size_type); _Node** _M_allocate_buckets(size_type __n); void _M_deallocate_buckets(_Node**, size_type __n); public: _Hashtable(size_type __bucket_hint, const _H1&, const _H2&, const _Hash&, const _Equal&, const _ExtractKey&, const allocator_type&); template _Hashtable(_InputIterator __first, _InputIterator __last, size_type __bucket_hint, const _H1&, const _H2&, const _Hash&, const _Equal&, const _ExtractKey&, const allocator_type&); _Hashtable(const _Hashtable&); _Hashtable(_Hashtable&&); _Hashtable& operator=(const _Hashtable&); ~_Hashtable(); void swap(_Hashtable&); iterator begin() { iterator __i(_M_buckets); if (!__i._M_cur_node) __i._M_incr_bucket(); return __i; } const_iterator begin() const { const_iterator __i(_M_buckets); if (!__i._M_cur_node) __i._M_incr_bucket(); return __i; } iterator end() { return iterator(_M_buckets + _M_bucket_count); } const_iterator end() const { return const_iterator(_M_buckets + _M_bucket_count); } const_iterator cbegin() const { const_iterator __i(_M_buckets); if (!__i._M_cur_node) __i._M_incr_bucket(); return __i; } const_iterator cend() const { return const_iterator(_M_buckets + _M_bucket_count); } size_type size() const { return _M_element_count; } bool empty() const { return size() == 0; } allocator_type get_allocator() const { return allocator_type(_M_node_allocator); } _Value_allocator_type _M_get_Value_allocator() const { return _Value_allocator_type(_M_node_allocator); } size_type max_size() const { return _M_node_allocator.max_size(); } key_equal key_eq() const { return this->_M_eq; } size_type bucket_count() const { return _M_bucket_count; } size_type max_bucket_count() const { return max_size(); } size_type bucket_size(size_type __n) const { return std::distance(begin(__n), end(__n)); } size_type bucket(const key_type& __k) const { return this->_M_bucket_index(__k, this->_M_hash_code(__k), bucket_count()); } local_iterator begin(size_type __n) { return local_iterator(_M_buckets[__n]); } local_iterator end(size_type) { return local_iterator(0); } const_local_iterator begin(size_type __n) const { return const_local_iterator(_M_buckets[__n]); } const_local_iterator end(size_type) const { return const_local_iterator(0); } const_local_iterator cbegin(size_type __n) const { return const_local_iterator(_M_buckets[__n]); } const_local_iterator cend(size_type) const { return const_local_iterator(0); } float load_factor() const { return static_cast(size()) / static_cast(bucket_count()); } const _RehashPolicy& __rehash_policy() const { return _M_rehash_policy; } void __rehash_policy(const _RehashPolicy&); iterator find(const key_type& __k); const_iterator find(const key_type& __k) const; size_type count(const key_type& __k) const; std::pair equal_range(const key_type& __k); std::pair equal_range(const key_type& __k) const; private: typedef typename std::conditional<__unique_keys, std::pair, iterator>::type _Insert_Return_Type; typedef typename std::conditional<__unique_keys, std::_Select1st<_Insert_Return_Type>, std::_Identity<_Insert_Return_Type> >::type _Insert_Conv_Type; _Node* _M_find_node(_Node*, const key_type&, typename _Hashtable::_Hash_code_type) const; iterator _M_insert_bucket(const value_type&, size_type, typename _Hashtable::_Hash_code_type); std::pair _M_insert(const value_type&, std::true_type); iterator _M_insert(const value_type&, std::false_type); void _M_erase_node(_Node*, _Node**); public: _Insert_Return_Type insert(const value_type& __v) { return _M_insert(__v, std::integral_constant()); } iterator insert(const_iterator, const value_type& __v) { return iterator(_Insert_Conv_Type()(this->insert(__v))); } template void insert(_InputIterator __first, _InputIterator __last); void insert(initializer_list __l) { this->insert(__l.begin(), __l.end()); } iterator erase(const_iterator); size_type erase(const key_type&); iterator erase(const_iterator, const_iterator); void clear(); void rehash(size_type __n); private: void _M_rehash(size_type __n); }; template typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::_Node* _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _M_allocate_node(const value_type& __v) { _Node* __n = _M_node_allocator.allocate(1); try { _M_node_allocator.construct(__n, __v); __n->_M_next = 0; return __n; } catch(...) { _M_node_allocator.deallocate(__n, 1); throw; } } template void _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _M_deallocate_node(_Node* __n) { _M_node_allocator.destroy(__n); _M_node_allocator.deallocate(__n, 1); } template void _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _M_deallocate_nodes(_Node** __array, size_type __n) { for (size_type __i = 0; __i < __n; ++__i) { _Node* __p = __array[__i]; while (__p) { _Node* __tmp = __p; __p = __p->_M_next; _M_deallocate_node(__tmp); } __array[__i] = 0; } } template typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::_Node** _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _M_allocate_buckets(size_type __n) { _Bucket_allocator_type __alloc(_M_node_allocator); _Node** __p = __alloc.allocate(__n + 1); std::fill(__p, __p + __n, (_Node*) 0); __p[__n] = reinterpret_cast<_Node*>(0x1000); return __p; } template void _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _M_deallocate_buckets(_Node** __p, size_type __n) { _Bucket_allocator_type __alloc(_M_node_allocator); __alloc.deallocate(__p, __n + 1); } template _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _Hashtable(size_type __bucket_hint, const _H1& __h1, const _H2& __h2, const _Hash& __h, const _Equal& __eq, const _ExtractKey& __exk, const allocator_type& __a) : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(), __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, __chc>(__exk, __eq, __h1, __h2, __h), __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(), _M_node_allocator(__a), _M_bucket_count(0), _M_element_count(0), _M_rehash_policy() { _M_bucket_count = _M_rehash_policy._M_next_bkt(__bucket_hint); _M_buckets = _M_allocate_buckets(_M_bucket_count); } template template _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _Hashtable(_InputIterator __f, _InputIterator __l, size_type __bucket_hint, const _H1& __h1, const _H2& __h2, const _Hash& __h, const _Equal& __eq, const _ExtractKey& __exk, const allocator_type& __a) : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(), __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, __chc>(__exk, __eq, __h1, __h2, __h), __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(), _M_node_allocator(__a), _M_bucket_count(0), _M_element_count(0), _M_rehash_policy() { _M_bucket_count = std::max(_M_rehash_policy._M_next_bkt(__bucket_hint), _M_rehash_policy. _M_bkt_for_elements(__detail:: __distance_fw(__f, __l))); _M_buckets = _M_allocate_buckets(_M_bucket_count); try { for (; __f != __l; ++__f) this->insert(*__f); } catch(...) { clear(); _M_deallocate_buckets(_M_buckets, _M_bucket_count); throw; } } template _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _Hashtable(const _Hashtable& __ht) : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(__ht), __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, __chc>(__ht), __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(__ht), _M_node_allocator(__ht._M_node_allocator), _M_bucket_count(__ht._M_bucket_count), _M_element_count(__ht._M_element_count), _M_rehash_policy(__ht._M_rehash_policy) { _M_buckets = _M_allocate_buckets(_M_bucket_count); try { for (size_type __i = 0; __i < __ht._M_bucket_count; ++__i) { _Node* __n = __ht._M_buckets[__i]; _Node** __tail = _M_buckets + __i; while (__n) { *__tail = _M_allocate_node(__n->_M_v); this->_M_copy_code(*__tail, __n); __tail = &((*__tail)->_M_next); __n = __n->_M_next; } } } catch(...) { clear(); _M_deallocate_buckets(_M_buckets, _M_bucket_count); throw; } } template _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _Hashtable(_Hashtable&& __ht) : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(__ht), __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, __chc>(__ht), __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(__ht), _M_node_allocator(__ht._M_node_allocator), _M_bucket_count(__ht._M_bucket_count), _M_element_count(__ht._M_element_count), _M_rehash_policy(__ht._M_rehash_policy), _M_buckets(__ht._M_buckets) { size_type __n_bkt = __ht._M_rehash_policy._M_next_bkt(0); __ht._M_buckets = __ht._M_allocate_buckets(__n_bkt); __ht._M_bucket_count = __n_bkt; __ht._M_element_count = 0; __ht._M_rehash_policy = _RehashPolicy(); } template _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>& _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: operator=(const _Hashtable& __ht) { _Hashtable __tmp(__ht); this->swap(__tmp); return *this; } template _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: ~_Hashtable() { clear(); _M_deallocate_buckets(_M_buckets, _M_bucket_count); } template void _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: swap(_Hashtable& __x) { __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, __chc>::_M_swap(__x); std::__alloc_swap<_Node_allocator_type>::_S_do_it(_M_node_allocator, __x._M_node_allocator); std::swap(_M_rehash_policy, __x._M_rehash_policy); std::swap(_M_buckets, __x._M_buckets); std::swap(_M_bucket_count, __x._M_bucket_count); std::swap(_M_element_count, __x._M_element_count); } template void _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: __rehash_policy(const _RehashPolicy& __pol) { _M_rehash_policy = __pol; size_type __n_bkt = __pol._M_bkt_for_elements(_M_element_count); if (__n_bkt > _M_bucket_count) _M_rehash(__n_bkt); } template typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::iterator _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: find(const key_type& __k) { typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); _Node* __p = _M_find_node(_M_buckets[__n], __k, __code); return __p ? iterator(__p, _M_buckets + __n) : this->end(); } template typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::const_iterator _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: find(const key_type& __k) const { typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); _Node* __p = _M_find_node(_M_buckets[__n], __k, __code); return __p ? const_iterator(__p, _M_buckets + __n) : this->end(); } template typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::size_type _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: count(const key_type& __k) const { typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); std::size_t __result = 0; for (_Node* __p = _M_buckets[__n]; __p; __p = __p->_M_next) if (this->_M_compare(__k, __code, __p)) ++__result; return __result; } template std::pair::iterator, typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::iterator> _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: equal_range(const key_type& __k) { typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); _Node** __head = _M_buckets + __n; _Node* __p = _M_find_node(*__head, __k, __code); if (__p) { _Node* __p1 = __p->_M_next; for (; __p1; __p1 = __p1->_M_next) if (!this->_M_compare(__k, __code, __p1)) break; iterator __first(__p, __head); iterator __last(__p1, __head); if (!__p1) __last._M_incr_bucket(); return std::make_pair(__first, __last); } else return std::make_pair(this->end(), this->end()); } template std::pair::const_iterator, typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::const_iterator> _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: equal_range(const key_type& __k) const { typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); _Node** __head = _M_buckets + __n; _Node* __p = _M_find_node(*__head, __k, __code); if (__p) { _Node* __p1 = __p->_M_next; for (; __p1; __p1 = __p1->_M_next) if (!this->_M_compare(__k, __code, __p1)) break; const_iterator __first(__p, __head); const_iterator __last(__p1, __head); if (!__p1) __last._M_incr_bucket(); return std::make_pair(__first, __last); } else return std::make_pair(this->end(), this->end()); } template typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::_Node* _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _M_find_node(_Node* __p, const key_type& __k, typename _Hashtable::_Hash_code_type __code) const { for (; __p; __p = __p->_M_next) if (this->_M_compare(__k, __code, __p)) return __p; return false; } template typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::iterator _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _M_insert_bucket(const value_type& __v, size_type __n, typename _Hashtable::_Hash_code_type __code) { std::pair __do_rehash = _M_rehash_policy._M_need_rehash(_M_bucket_count, _M_element_count, 1); _Node* __new_node = _M_allocate_node(__v); try { if (__do_rehash.first) { const key_type& __k = this->_M_extract(__v); __n = this->_M_bucket_index(__k, __code, __do_rehash.second); _M_rehash(__do_rehash.second); } __new_node->_M_next = _M_buckets[__n]; this->_M_store_code(__new_node, __code); _M_buckets[__n] = __new_node; ++_M_element_count; return iterator(__new_node, _M_buckets + __n); } catch(...) { _M_deallocate_node(__new_node); throw; } } template std::pair::iterator, bool> _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _M_insert(const value_type& __v, std::true_type) { const key_type& __k = this->_M_extract(__v); typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); size_type __n = this->_M_bucket_index(__k, __code, _M_bucket_count); if (_Node* __p = _M_find_node(_M_buckets[__n], __k, __code)) return std::make_pair(iterator(__p, _M_buckets + __n), false); return std::make_pair(_M_insert_bucket(__v, __n, __code), true); } template typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::iterator _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _M_insert(const value_type& __v, std::false_type) { std::pair __do_rehash = _M_rehash_policy._M_need_rehash(_M_bucket_count, _M_element_count, 1); if (__do_rehash.first) _M_rehash(__do_rehash.second); const key_type& __k = this->_M_extract(__v); typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); size_type __n = this->_M_bucket_index(__k, __code, _M_bucket_count); _Node* __prev = _M_find_node(_M_buckets[__n], __k, __code); _Node* __new_node = _M_allocate_node(__v); if (__prev) { __new_node->_M_next = __prev->_M_next; __prev->_M_next = __new_node; } else { __new_node->_M_next = _M_buckets[__n]; _M_buckets[__n] = __new_node; } this->_M_store_code(__new_node, __code); ++_M_element_count; return iterator(__new_node, _M_buckets + __n); } template void _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _M_erase_node(_Node* __p, _Node** __b) { _Node* __cur = *__b; if (__cur == __p) *__b = __cur->_M_next; else { _Node* __next = __cur->_M_next; while (__next != __p) { __cur = __next; __next = __cur->_M_next; } __cur->_M_next = __next->_M_next; } _M_deallocate_node(__p); --_M_element_count; } template template void _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: insert(_InputIterator __first, _InputIterator __last) { size_type __n_elt = __detail::__distance_fw(__first, __last); std::pair __do_rehash = _M_rehash_policy._M_need_rehash(_M_bucket_count, _M_element_count, __n_elt); if (__do_rehash.first) _M_rehash(__do_rehash.second); for (; __first != __last; ++__first) this->insert(*__first); } template typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::iterator _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: erase(const_iterator __it) { iterator __result(__it._M_cur_node, __it._M_cur_bucket); ++__result; _M_erase_node(__it._M_cur_node, __it._M_cur_bucket); return __result; } template typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::size_type _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: erase(const key_type& __k) { typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); size_type __result = 0; _Node** __slot = _M_buckets + __n; while (*__slot && !this->_M_compare(__k, __code, *__slot)) __slot = &((*__slot)->_M_next); _Node** __saved_slot = 0; while (*__slot && this->_M_compare(__k, __code, *__slot)) { if (&this->_M_extract((*__slot)->_M_v) != &__k) { _Node* __p = *__slot; *__slot = __p->_M_next; _M_deallocate_node(__p); --_M_element_count; ++__result; } else { __saved_slot = __slot; __slot = &((*__slot)->_M_next); } } if (__saved_slot) { _Node* __p = *__saved_slot; *__saved_slot = __p->_M_next; _M_deallocate_node(__p); --_M_element_count; ++__result; } return __result; } template typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::iterator _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: erase(const_iterator __first, const_iterator __last) { while (__first != __last) __first = this->erase(__first); return iterator(__last._M_cur_node, __last._M_cur_bucket); } template void _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: clear() { _M_deallocate_nodes(_M_buckets, _M_bucket_count); _M_element_count = 0; } template void _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: rehash(size_type __n) { _M_rehash(std::max(_M_rehash_policy._M_next_bkt(__n), _M_rehash_policy._M_bkt_for_elements(_M_element_count + 1))); } template void _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: _M_rehash(size_type __n) { _Node** __new_array = _M_allocate_buckets(__n); try { for (size_type __i = 0; __i < _M_bucket_count; ++__i) while (_Node* __p = _M_buckets[__i]) { std::size_t __new_index = this->_M_bucket_index(__p, __n); _M_buckets[__i] = __p->_M_next; __p->_M_next = __new_array[__new_index]; __new_array[__new_index] = __p; } _M_deallocate_buckets(_M_buckets, _M_bucket_count); _M_bucket_count = __n; _M_buckets = __new_array; } catch(...) { _M_deallocate_nodes(__new_array, __n); _M_deallocate_buckets(__new_array, __n); _M_deallocate_nodes(_M_buckets, _M_bucket_count); _M_element_count = 0; throw; } } } # 46 "/usr/include/c++/4.5/unordered_map" 2 3 # 1 "/usr/include/c++/4.5/bits/unordered_map.h" 1 3 # 33 "/usr/include/c++/4.5/bits/unordered_map.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template, class _Pred = std::equal_to<_Key>, class _Alloc = std::allocator >, bool __cache_hash_code = false> class __unordered_map : public _Hashtable<_Key, std::pair, _Alloc, std::_Select1st >, _Pred, _Hash, __detail::_Mod_range_hashing, __detail::_Default_ranged_hash, __detail::_Prime_rehash_policy, __cache_hash_code, false, true> { typedef _Hashtable<_Key, std::pair, _Alloc, std::_Select1st >, _Pred, _Hash, __detail::_Mod_range_hashing, __detail::_Default_ranged_hash, __detail::_Prime_rehash_policy, __cache_hash_code, false, true> _Base; public: typedef typename _Base::size_type size_type; typedef typename _Base::hasher hasher; typedef typename _Base::key_equal key_equal; typedef typename _Base::allocator_type allocator_type; explicit __unordered_map(size_type __n = 10, const hasher& __hf = hasher(), const key_equal& __eql = key_equal(), const allocator_type& __a = allocator_type()) : _Base(__n, __hf, __detail::_Mod_range_hashing(), __detail::_Default_ranged_hash(), __eql, std::_Select1st >(), __a) { } template __unordered_map(_InputIterator __f, _InputIterator __l, size_type __n = 10, const hasher& __hf = hasher(), const key_equal& __eql = key_equal(), const allocator_type& __a = allocator_type()) : _Base(__f, __l, __n, __hf, __detail::_Mod_range_hashing(), __detail::_Default_ranged_hash(), __eql, std::_Select1st >(), __a) { } __unordered_map(__unordered_map&& __x) : _Base(std::forward<_Base>(__x)) { } }; template, class _Pred = std::equal_to<_Key>, class _Alloc = std::allocator >, bool __cache_hash_code = false> class __unordered_multimap : public _Hashtable<_Key, std::pair, _Alloc, std::_Select1st >, _Pred, _Hash, __detail::_Mod_range_hashing, __detail::_Default_ranged_hash, __detail::_Prime_rehash_policy, __cache_hash_code, false, false> { typedef _Hashtable<_Key, std::pair, _Alloc, std::_Select1st >, _Pred, _Hash, __detail::_Mod_range_hashing, __detail::_Default_ranged_hash, __detail::_Prime_rehash_policy, __cache_hash_code, false, false> _Base; public: typedef typename _Base::size_type size_type; typedef typename _Base::hasher hasher; typedef typename _Base::key_equal key_equal; typedef typename _Base::allocator_type allocator_type; explicit __unordered_multimap(size_type __n = 10, const hasher& __hf = hasher(), const key_equal& __eql = key_equal(), const allocator_type& __a = allocator_type()) : _Base(__n, __hf, __detail::_Mod_range_hashing(), __detail::_Default_ranged_hash(), __eql, std::_Select1st >(), __a) { } template __unordered_multimap(_InputIterator __f, _InputIterator __l, typename _Base::size_type __n = 0, const hasher& __hf = hasher(), const key_equal& __eql = key_equal(), const allocator_type& __a = allocator_type()) : _Base(__f, __l, __n, __hf, __detail::_Mod_range_hashing(), __detail::_Default_ranged_hash(), __eql, std::_Select1st >(), __a) { } __unordered_multimap(__unordered_multimap&& __x) : _Base(std::forward<_Base>(__x)) { } }; template inline void swap(__unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>& __x, __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>& __y) { __x.swap(__y); } template inline void swap(__unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>& __x, __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>& __y) { __x.swap(__y); } template inline bool operator==(const __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>& __x, const __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>& __y) { return __x._M_equal(__y); } template inline bool operator!=(const __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>& __x, const __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>& __y) { return !(__x == __y); } template inline bool operator==(const __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>& __x, const __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>& __y) { return __x._M_equal(__y); } template inline bool operator!=(const __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>& __x, const __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>& __y) { return !(__x == __y); } # 216 "/usr/include/c++/4.5/bits/unordered_map.h" 3 template, class _Pred = std::equal_to<_Key>, class _Alloc = std::allocator > > class unordered_map : public __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc> { typedef __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc> _Base; public: typedef typename _Base::value_type value_type; typedef typename _Base::size_type size_type; typedef typename _Base::hasher hasher; typedef typename _Base::key_equal key_equal; typedef typename _Base::allocator_type allocator_type; explicit unordered_map(size_type __n = 10, const hasher& __hf = hasher(), const key_equal& __eql = key_equal(), const allocator_type& __a = allocator_type()) : _Base(__n, __hf, __eql, __a) { } template unordered_map(_InputIterator __f, _InputIterator __l, size_type __n = 10, const hasher& __hf = hasher(), const key_equal& __eql = key_equal(), const allocator_type& __a = allocator_type()) : _Base(__f, __l, __n, __hf, __eql, __a) { } unordered_map(unordered_map&& __x) : _Base(std::forward<_Base>(__x)) { } unordered_map(initializer_list __l, size_type __n = 10, const hasher& __hf = hasher(), const key_equal& __eql = key_equal(), const allocator_type& __a = allocator_type()) : _Base(__l.begin(), __l.end(), __n, __hf, __eql, __a) { } unordered_map& operator=(unordered_map&& __x) { this->clear(); this->swap(__x); return *this; } unordered_map& operator=(initializer_list __l) { this->clear(); this->insert(__l.begin(), __l.end()); return *this; } }; # 297 "/usr/include/c++/4.5/bits/unordered_map.h" 3 template, class _Pred = std::equal_to<_Key>, class _Alloc = std::allocator > > class unordered_multimap : public __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc> { typedef __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc> _Base; public: typedef typename _Base::value_type value_type; typedef typename _Base::size_type size_type; typedef typename _Base::hasher hasher; typedef typename _Base::key_equal key_equal; typedef typename _Base::allocator_type allocator_type; explicit unordered_multimap(size_type __n = 10, const hasher& __hf = hasher(), const key_equal& __eql = key_equal(), const allocator_type& __a = allocator_type()) : _Base(__n, __hf, __eql, __a) { } template unordered_multimap(_InputIterator __f, _InputIterator __l, typename _Base::size_type __n = 0, const hasher& __hf = hasher(), const key_equal& __eql = key_equal(), const allocator_type& __a = allocator_type()) : _Base(__f, __l, __n, __hf, __eql, __a) { } unordered_multimap(unordered_multimap&& __x) : _Base(std::forward<_Base>(__x)) { } unordered_multimap(initializer_list __l, size_type __n = 10, const hasher& __hf = hasher(), const key_equal& __eql = key_equal(), const allocator_type& __a = allocator_type()) : _Base(__l.begin(), __l.end(), __n, __hf, __eql, __a) { } unordered_multimap& operator=(unordered_multimap&& __x) { this->clear(); this->swap(__x); return *this; } unordered_multimap& operator=(initializer_list __l) { this->clear(); this->insert(__l.begin(), __l.end()); return *this; } }; template inline void swap(unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) { __x.swap(__y); } template inline void swap(unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) { __x.swap(__y); } template inline bool operator==(const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) { return __x._M_equal(__y); } template inline bool operator!=(const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) { return !(__x == __y); } template inline bool operator==(const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) { return __x._M_equal(__y); } template inline bool operator!=(const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) { return !(__x == __y); } } # 47 "/usr/include/c++/4.5/unordered_map" 2 3 # 12 "src/fh/ls_fh.h" 2 # 1 "src/core/socket_tcp.h" 1 # 10 "src/core/socket_tcp.h" # 1 "src/core/socket_util.h" 1 # 12 "src/core/socket_util.h" # 1 "/usr/include/netinet/in.h" 1 3 4 # 25 "/usr/include/netinet/in.h" 3 4 # 1 "/usr/include/sys/socket.h" 1 3 4 # 26 "/usr/include/sys/socket.h" 3 4 extern "C" { # 1 "/usr/include/sys/uio.h" 1 3 4 # 26 "/usr/include/sys/uio.h" 3 4 extern "C" { # 1 "/usr/include/bits/uio.h" 1 3 4 # 44 "/usr/include/bits/uio.h" 3 4 struct iovec { void *iov_base; size_t iov_len; }; # 30 "/usr/include/sys/uio.h" 2 3 4 # 40 "/usr/include/sys/uio.h" 3 4 extern ssize_t readv (int __fd, __const struct iovec *__iovec, int __count) ; # 51 "/usr/include/sys/uio.h" 3 4 extern ssize_t writev (int __fd, __const struct iovec *__iovec, int __count) ; # 66 "/usr/include/sys/uio.h" 3 4 extern ssize_t preadv (int __fd, __const struct iovec *__iovec, int __count, __off_t __offset) ; # 78 "/usr/include/sys/uio.h" 3 4 extern ssize_t pwritev (int __fd, __const struct iovec *__iovec, int __count, __off_t __offset) ; # 104 "/usr/include/sys/uio.h" 3 4 extern ssize_t preadv64 (int __fd, __const struct iovec *__iovec, int __count, __off64_t __offset) ; # 116 "/usr/include/sys/uio.h" 3 4 extern ssize_t pwritev64 (int __fd, __const struct iovec *__iovec, int __count, __off64_t __offset) ; } # 29 "/usr/include/sys/socket.h" 2 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 31 "/usr/include/sys/socket.h" 2 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 34 "/usr/include/sys/socket.h" 2 3 4 # 1 "/usr/include/bits/socket.h" 1 3 4 # 29 "/usr/include/bits/socket.h" 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 30 "/usr/include/bits/socket.h" 2 3 4 # 40 "/usr/include/bits/socket.h" 3 4 enum __socket_type { SOCK_STREAM = 1, SOCK_DGRAM = 2, SOCK_RAW = 3, SOCK_RDM = 4, SOCK_SEQPACKET = 5, SOCK_DCCP = 6, SOCK_PACKET = 10, SOCK_CLOEXEC = 02000000, SOCK_NONBLOCK = 04000 }; # 175 "/usr/include/bits/socket.h" 3 4 # 1 "/usr/include/bits/sockaddr.h" 1 3 4 # 29 "/usr/include/bits/sockaddr.h" 3 4 typedef unsigned short int sa_family_t; # 176 "/usr/include/bits/socket.h" 2 3 4 struct sockaddr { sa_family_t sa_family; char sa_data[14]; }; # 191 "/usr/include/bits/socket.h" 3 4 struct sockaddr_storage { sa_family_t ss_family; unsigned long int __ss_align; char __ss_padding[(128 - (2 * sizeof (unsigned long int)))]; }; enum { MSG_OOB = 0x01, MSG_PEEK = 0x02, MSG_DONTROUTE = 0x04, MSG_TRYHARD = MSG_DONTROUTE, MSG_CTRUNC = 0x08, MSG_PROXY = 0x10, MSG_TRUNC = 0x20, MSG_DONTWAIT = 0x40, MSG_EOR = 0x80, MSG_WAITALL = 0x100, MSG_FIN = 0x200, MSG_SYN = 0x400, MSG_CONFIRM = 0x800, MSG_RST = 0x1000, MSG_ERRQUEUE = 0x2000, MSG_NOSIGNAL = 0x4000, MSG_MORE = 0x8000, MSG_WAITFORONE = 0x10000, MSG_CMSG_CLOEXEC = 0x40000000 }; struct msghdr { void *msg_name; socklen_t msg_namelen; struct iovec *msg_iov; size_t msg_iovlen; void *msg_control; size_t msg_controllen; int msg_flags; }; struct mmsghdr { struct msghdr msg_hdr; unsigned int msg_len; }; struct cmsghdr { size_t cmsg_len; int cmsg_level; int cmsg_type; }; # 308 "/usr/include/bits/socket.h" 3 4 extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) throw (); # 335 "/usr/include/bits/socket.h" 3 4 enum { SCM_RIGHTS = 0x01 , SCM_CREDENTIALS = 0x02 }; struct ucred { pid_t pid; uid_t uid; gid_t gid; }; # 381 "/usr/include/bits/socket.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/asm/socket.h" 1 3 4 # 1 "/usr/include/asm-generic/socket.h" 1 3 4 # 1 "/usr/include/x86_64-linux-gnu/asm/sockios.h" 1 3 4 # 1 "/usr/include/asm-generic/sockios.h" 1 3 4 # 1 "/usr/include/x86_64-linux-gnu/asm/sockios.h" 2 3 4 # 5 "/usr/include/asm-generic/socket.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/asm/socket.h" 2 3 4 # 382 "/usr/include/bits/socket.h" 2 3 4 # 415 "/usr/include/bits/socket.h" 3 4 struct linger { int l_onoff; int l_linger; }; extern "C" { extern int recvmmsg (int __fd, struct mmsghdr *__vmessages, unsigned int __vlen, int __flags, __const struct timespec *__tmo); } # 41 "/usr/include/sys/socket.h" 2 3 4 struct osockaddr { unsigned short int sa_family; unsigned char sa_data[14]; }; enum { SHUT_RD = 0, SHUT_WR, SHUT_RDWR }; # 105 "/usr/include/sys/socket.h" 3 4 extern int socket (int __domain, int __type, int __protocol) throw (); extern int socketpair (int __domain, int __type, int __protocol, int __fds[2]) throw (); extern int bind (int __fd, __const struct sockaddr * __addr, socklen_t __len) throw (); extern int getsockname (int __fd, struct sockaddr *__restrict __addr, socklen_t *__restrict __len) throw (); # 129 "/usr/include/sys/socket.h" 3 4 extern int connect (int __fd, __const struct sockaddr * __addr, socklen_t __len); extern int getpeername (int __fd, struct sockaddr *__restrict __addr, socklen_t *__restrict __len) throw (); extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags); extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags); extern ssize_t sendto (int __fd, __const void *__buf, size_t __n, int __flags, __const struct sockaddr * __addr, socklen_t __addr_len); # 166 "/usr/include/sys/socket.h" 3 4 extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len); extern ssize_t sendmsg (int __fd, __const struct msghdr *__message, int __flags); extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags); extern int getsockopt (int __fd, int __level, int __optname, void *__restrict __optval, socklen_t *__restrict __optlen) throw (); extern int setsockopt (int __fd, int __level, int __optname, __const void *__optval, socklen_t __optlen) throw (); extern int listen (int __fd, int __n) throw (); # 214 "/usr/include/sys/socket.h" 3 4 extern int accept (int __fd, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len); extern int accept4 (int __fd, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len, int __flags); # 232 "/usr/include/sys/socket.h" 3 4 extern int shutdown (int __fd, int __how) throw (); extern int sockatmark (int __fd) throw (); extern int isfdtype (int __fd, int __fdtype) throw (); # 254 "/usr/include/sys/socket.h" 3 4 } # 26 "/usr/include/netinet/in.h" 2 3 4 extern "C" { enum { IPPROTO_IP = 0, IPPROTO_HOPOPTS = 0, IPPROTO_ICMP = 1, IPPROTO_IGMP = 2, IPPROTO_IPIP = 4, IPPROTO_TCP = 6, IPPROTO_EGP = 8, IPPROTO_PUP = 12, IPPROTO_UDP = 17, IPPROTO_IDP = 22, IPPROTO_TP = 29, IPPROTO_DCCP = 33, IPPROTO_IPV6 = 41, IPPROTO_ROUTING = 43, IPPROTO_FRAGMENT = 44, IPPROTO_RSVP = 46, IPPROTO_GRE = 47, IPPROTO_ESP = 50, IPPROTO_AH = 51, IPPROTO_ICMPV6 = 58, IPPROTO_NONE = 59, IPPROTO_DSTOPTS = 60, IPPROTO_MTP = 92, IPPROTO_ENCAP = 98, IPPROTO_PIM = 103, IPPROTO_COMP = 108, IPPROTO_SCTP = 132, IPPROTO_UDPLITE = 136, IPPROTO_RAW = 255, IPPROTO_MAX }; typedef uint16_t in_port_t; enum { IPPORT_ECHO = 7, IPPORT_DISCARD = 9, IPPORT_SYSTAT = 11, IPPORT_DAYTIME = 13, IPPORT_NETSTAT = 15, IPPORT_FTP = 21, IPPORT_TELNET = 23, IPPORT_SMTP = 25, IPPORT_TIMESERVER = 37, IPPORT_NAMESERVER = 42, IPPORT_WHOIS = 43, IPPORT_MTP = 57, IPPORT_TFTP = 69, IPPORT_RJE = 77, IPPORT_FINGER = 79, IPPORT_TTYLINK = 87, IPPORT_SUPDUP = 95, IPPORT_EXECSERVER = 512, IPPORT_LOGINSERVER = 513, IPPORT_CMDSERVER = 514, IPPORT_EFSSERVER = 520, IPPORT_BIFFUDP = 512, IPPORT_WHOSERVER = 513, IPPORT_ROUTESERVER = 520, IPPORT_RESERVED = 1024, IPPORT_USERRESERVED = 5000 }; typedef uint32_t in_addr_t; struct in_addr { in_addr_t s_addr; }; # 198 "/usr/include/netinet/in.h" 3 4 struct in6_addr { union { uint8_t __u6_addr8[16]; uint16_t __u6_addr16[8]; uint32_t __u6_addr32[4]; } __in6_u; }; extern const struct in6_addr in6addr_any; extern const struct in6_addr in6addr_loopback; # 225 "/usr/include/netinet/in.h" 3 4 struct sockaddr_in { sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; unsigned char sin_zero[sizeof (struct sockaddr) - (sizeof (unsigned short int)) - sizeof (in_port_t) - sizeof (struct in_addr)]; }; struct sockaddr_in6 { sa_family_t sin6_family; in_port_t sin6_port; uint32_t sin6_flowinfo; struct in6_addr sin6_addr; uint32_t sin6_scope_id; }; struct ip_mreq { struct in_addr imr_multiaddr; struct in_addr imr_interface; }; struct ip_mreq_source { struct in_addr imr_multiaddr; struct in_addr imr_interface; struct in_addr imr_sourceaddr; }; struct ipv6_mreq { struct in6_addr ipv6mr_multiaddr; unsigned int ipv6mr_interface; }; struct group_req { uint32_t gr_interface; struct sockaddr_storage gr_group; }; struct group_source_req { uint32_t gsr_interface; struct sockaddr_storage gsr_group; struct sockaddr_storage gsr_source; }; struct ip_msfilter { struct in_addr imsf_multiaddr; struct in_addr imsf_interface; uint32_t imsf_fmode; uint32_t imsf_numsrc; struct in_addr imsf_slist[1]; }; struct group_filter { uint32_t gf_interface; struct sockaddr_storage gf_group; uint32_t gf_fmode; uint32_t gf_numsrc; struct sockaddr_storage gf_slist[1]; }; # 356 "/usr/include/netinet/in.h" 3 4 # 1 "/usr/include/bits/in.h" 1 3 4 # 98 "/usr/include/bits/in.h" 3 4 struct ip_opts { struct in_addr ip_dst; char ip_opts[40]; }; struct ip_mreqn { struct in_addr imr_multiaddr; struct in_addr imr_address; int imr_ifindex; }; struct in_pktinfo { int ipi_ifindex; struct in_addr ipi_spec_dst; struct in_addr ipi_addr; }; # 357 "/usr/include/netinet/in.h" 2 3 4 # 365 "/usr/include/netinet/in.h" 3 4 extern uint32_t ntohl (uint32_t __netlong) throw () __attribute__ ((__const__)); extern uint16_t ntohs (uint16_t __netshort) throw () __attribute__ ((__const__)); extern uint32_t htonl (uint32_t __hostlong) throw () __attribute__ ((__const__)); extern uint16_t htons (uint16_t __hostshort) throw () __attribute__ ((__const__)); # 1 "/usr/include/bits/byteswap.h" 1 3 4 # 377 "/usr/include/netinet/in.h" 2 3 4 # 440 "/usr/include/netinet/in.h" 3 4 extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) throw (); extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) throw (); # 471 "/usr/include/netinet/in.h" 3 4 struct in6_pktinfo { struct in6_addr ipi6_addr; unsigned int ipi6_ifindex; }; struct ip6_mtuinfo { struct sockaddr_in6 ip6m_addr; uint32_t ip6m_mtu; }; extern int inet6_option_space (int __nbytes) throw () __attribute__ ((__deprecated__)); extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp, int __type) throw () __attribute__ ((__deprecated__)); extern int inet6_option_append (struct cmsghdr *__cmsg, __const uint8_t *__typep, int __multx, int __plusy) throw () __attribute__ ((__deprecated__)); extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen, int __multx, int __plusy) throw () __attribute__ ((__deprecated__)); extern int inet6_option_next (__const struct cmsghdr *__cmsg, uint8_t **__tptrp) throw () __attribute__ ((__deprecated__)); extern int inet6_option_find (__const struct cmsghdr *__cmsg, uint8_t **__tptrp, int __type) throw () __attribute__ ((__deprecated__)); extern int inet6_opt_init (void *__extbuf, socklen_t __extlen) throw (); extern int inet6_opt_append (void *__extbuf, socklen_t __extlen, int __offset, uint8_t __type, socklen_t __len, uint8_t __align, void **__databufp) throw (); extern int inet6_opt_finish (void *__extbuf, socklen_t __extlen, int __offset) throw (); extern int inet6_opt_set_val (void *__databuf, int __offset, void *__val, socklen_t __vallen) throw (); extern int inet6_opt_next (void *__extbuf, socklen_t __extlen, int __offset, uint8_t *__typep, socklen_t *__lenp, void **__databufp) throw (); extern int inet6_opt_find (void *__extbuf, socklen_t __extlen, int __offset, uint8_t __type, socklen_t *__lenp, void **__databufp) throw (); extern int inet6_opt_get_val (void *__databuf, int __offset, void *__val, socklen_t __vallen) throw (); extern socklen_t inet6_rth_space (int __type, int __segments) throw (); extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type, int __segments) throw (); extern int inet6_rth_add (void *__bp, __const struct in6_addr *__addr) throw (); extern int inet6_rth_reverse (__const void *__in, void *__out) throw (); extern int inet6_rth_segments (__const void *__bp) throw (); extern struct in6_addr *inet6_rth_getaddr (__const void *__bp, int __index) throw (); extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr, struct in_addr __group, uint32_t *__fmode, uint32_t *__numsrc, struct in_addr *__slist) throw (); extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr, struct in_addr __group, uint32_t __fmode, uint32_t __numsrc, __const struct in_addr *__slist) throw (); extern int getsourcefilter (int __s, uint32_t __interface_addr, __const struct sockaddr *__group, socklen_t __grouplen, uint32_t *__fmode, uint32_t *__numsrc, struct sockaddr_storage *__slist) throw (); extern int setsourcefilter (int __s, uint32_t __interface_addr, __const struct sockaddr *__group, socklen_t __grouplen, uint32_t __fmode, uint32_t __numsrc, __const struct sockaddr_storage *__slist) throw (); } # 13 "src/core/socket_util.h" 2 namespace tt { class MutualExclusion { private: pthread_mutex_t mutex; public: enum MutexType { normal, recursive, errorcheck }; MutualExclusion(MutexType mtype = normal); virtual ~MutualExclusion(); int lock(); int unlock(); int trylock(); }; class SocketException { public: enum ErrorCode { BadHostName, NoIPAddress, DNSError, NoProtocolSupport, KernelMemory, CannotConvertToIPv4, NoDescriptors, PermissionDenied, Memory, InvalidProtocol, BadDescriptor, IllegalPointer, AlreadyConnected, ConnectRefused, ConnectTimeOut, NetUnreachable, HostUnreachable, AddrInUse, InProgress, AlreadyConnecting, IncorrectAddrFamily, BrdCastNotEnabled, AlreadyBound, AddressProtected, CantListen, NotStreamSock, NoPendingConnections, Firewall, NotConnected, WouldBlock, Interrupted, InvalidArgument, MessageSizeTooBig, NotBound, OptionNotSupported, Unknown }; SocketException(ErrorCode ec = Unknown); SocketException(const SocketException &se); ~SocketException(); operator const ErrorCode() { return errorcode; } operator const char*() { return errorstring; } private: ErrorCode errorcode; char *errorstring; void setstring(const char *str); }; class IPAddress { private: int addr_type; int addr_len; std::string host_name; char pcaddr[16]; char pcstraddr[46]; bool host_name_unresolved, str_address_unresolved; static MutualExclusion mutex_kernel_lock; void _setaddress(const char* addr, const int len); void _resolvehostname(); void _resolveaddress(); public: IPAddress(); ~IPAddress() {} IPAddress & operator=(const IPAddress &addr); IPAddress & operator=(const char* host); IPAddress & operator=(const in_addr addr); bool operator==(const IPAddress &addr) const; bool operator==(const char* host) const; bool operator==(const in_addr addr) const; operator const char*() { return gethostname(); } void sethostname(const char* host); void setaddress(const char* addr); const int getaddressfamily() { return addr_type; } const char* gethostname() { _resolvehostname(); return host_name.c_str(); } const void* get_in_addr() { return (void*)pcaddr; } const int get_in_addr_len() { return addr_len; } const char* getaddressstring() { _resolveaddress(); return pcstraddr; } }; class SocketAddress { protected: struct sockaddr_in6 sa_struct; struct sockaddr *psa_generic; struct sockaddr_in *psa_addr; public: SocketAddress(); void setaddress(); void setaddress(IPAddress &addr); void setport(int port); void getaddress(IPAddress &addr); void getport(int &port); operator sockaddr *() { return psa_generic; } socklen_t size(); }; } # 11 "src/core/socket_tcp.h" 2 # 1 "src/core/socket_base.h" 1 # 10 "src/core/socket_base.h" # 1 "src/core/socket_util.h" 1 # 11 "src/core/socket_base.h" 2 namespace tt { class SocketBase { protected: static bool firstinstance; static void IOSignalHandler(int sig) { return; } MutualExclusion mutexsocket; pid_t pid; int sockdesc; int protaccept(IPAddress &addr, int &port); void waitmutex() { mutexsocket.lock(); pid = getpid(); } void clearmutex() { mutexsocket.unlock(); } public: SocketBase(); SocketBase(int newsockdesc); virtual ~SocketBase(); int get_socket_id() { return sockdesc; } void connect(IPAddress &addr, int port); void bind(IPAddress &addr, int port = 0); void bind(int prot = 0); void listen(int backlog); template ReturnType* accept(IPAddress &addr, int &port) { return new ReturnType(protaccept(addr, port)); } int recv(void *buff, int len, unsigned int flags); int send(const void *buff, int len, unsigned int flags); void getsockname(IPAddress &addr, int &port); void getpeername(IPAddress &addr, int &port); void getsockopt(int level, int name, void *value, int &len); void setsockopt(int level, int name, const void *value, int len); int fcntl(int cmd, long arg); static const int ERR_RECV_EAGAIN = -1; }; } # 12 "src/core/socket_tcp.h" 2 namespace tt { class TCPSocket : public SocketBase { friend class TCPServerSocket; protected: bool local_set, is_connected; int local_port, remote_port; IPAddress local_addr, remote_addr; void setlocal(); void setconnected(); public: TCPSocket(); TCPSocket(int newsockdesc); virtual ~TCPSocket() {} bool isconnected() { return is_connected; } int senddata(const void *data, int len, unsigned int flags = 0); int recvdata(void *buff, int len, unsigned int flags = 0); IPAddress &localaddress(); IPAddress &remoteaddress(); int localport(); int remoteport(); void getsockopt(int level, int name, void *data, int &len); void setsockopt(int level, int name, const void *data, int len); int fcntl(int cmd, long arg); int set_non_blocking(); }; class TCPClientSocket : public TCPSocket { private: int read_timeout; public: TCPClientSocket(const unsigned int rbuffer_size = 1048576, const unsigned int read_timeout = 0); virtual ~TCPClientSocket() {} bool connect_to_server(IPAddress &addr, int port); }; class TCPServerSocket : public TCPSocket { public: TCPServerSocket(IPAddress &addr, int port = 0, int size = 1); TCPServerSocket(int port = 0, int size = 1); virtual ~TCPServerSocket() {} TCPSocket* acceptclient(); }; } # 16 "src/fh/ls_fh.h" 2 namespace tt { class ls_fh { public: ls_fh(logger* log=__null, const char* subsfilepath=__null); virtual ~ls_fh(); int open(const char* engine, const char* address, const int port, const bool record=false, const bool overwrite=false, const bool use_t3=false); int close(); int validate(const char* user_name, const char* password); void* get_msg(); void set_logger(logger* log) { this->log = log; } private: static const int BUFF_SIZE = 1024*1024; std::string partial_msg; tt::TCPClientSocket* cs; qmflogger* debug_logger; logger* log; void* msg_buff; void* read_ptr; char* socket_buff; char* subsfilepath; unsigned int curr_tick_secs; unsigned int num_buffered_msgs; unsigned int symbol_count; unsigned char exchange; bool use_t3; bool is_quote_handler; int curr_msg_len; t3_handle t3file; qflogger* file_logger; qflogger* stats_logger; std::unordered_map lot_size_factors; unsigned long long midnight; int subscribe(std::vector& symbols); int unsubscribe(std::vector& symbols); void* get_msgs(int& num_msgs, size_t& total_size); int manage_clock(unsigned int time_in_ses, size_t offset, size_t& msg_size); void send_heartbeat(char* pmsg); void handle_system_msg(char* pmsg); void handle_validate_result(char* pmsg); void handle_symbol_directory(char* pmsg); void handle_inside_quotation(char* pmsg); void update_lot_size_factor(char* pmsg); int handle_market_depth_msg(char* pmsg, size_t offset, size_t& msg_size, const long long ts); int handle_trade_update(char* pmsg, size_t offset, size_t& msg_size, const long long ts); int ms_to_t3(char* pmsg, size_t offset, size_t& msg_size, const long long ts); int mu_to_t3(char* pmsg, size_t offset, size_t& msg_size, const long long ts); int tu_to_t3(char* pmsg, size_t offset, size_t& msg_size, const long long ts); void handle_error_msg(char* pmsg); void handle_session_indicator(char* pmsg); int handle_ecn_msg(char* pmsg, size_t offset, size_t& msg_size, const long long ts); int ea_to_t3(char* pmsg, size_t offset, size_t& msg_size, const long long ts); int ee_to_t3(char* pmsg, size_t offset, size_t& msg_size, const long long ts); int er_to_t3(char* pmsg, size_t offset, size_t& msg_size, const long long ts); int es_to_t3(char* pmsg, size_t offset, size_t& msg_size, const long long ts); int et_to_t3(char* pmsg, size_t offset, size_t& msg_size, const long long ts); int ex_to_t3(char* pmsg, size_t offset, size_t& msg_size, const long long ts); enum time_resolution_t : char { TIME_RES_NANO = 'N', TIME_RES_MICRO = 'C', TIME_RES_MILLI = 'M', TIME_RES_SECOND = 'S', }; typedef struct _latency_stats_t { unsigned long long msg_count; unsigned long long total_latency; unsigned long long min_latency; unsigned long long max_latency; _latency_stats_t() { msg_count = 0; total_latency = 0; min_latency = 86400000; max_latency = 0; } } latency_stats_t; long long get_time(const char time_res); void write_raw_data(const char* pmsg, const char venue, const long long ts, const int reverse_offset=0); void update_venu_stats(const char venue, const unsigned long long mts, const unsigned long long millis); std::map venue_stats; }; } # 17 "src/bp/bp.h" 2 # 1 "src/bp/feedhdlr.h" 1 # 12 "src/bp/feedhdlr.h" # 1 "src/core/ttsock.h" 1 # 27 "src/core/ttsock.h" # 1 "/usr/include/sys/fcntl.h" 1 3 4 # 1 "/usr/include/fcntl.h" 1 3 4 # 30 "/usr/include/fcntl.h" 3 4 extern "C" { # 1 "/usr/include/bits/fcntl.h" 1 3 4 # 26 "/usr/include/bits/fcntl.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 27 "/usr/include/bits/fcntl.h" 2 3 4 # 1 "/usr/include/bits/uio.h" 1 3 4 # 29 "/usr/include/bits/fcntl.h" 2 3 4 # 167 "/usr/include/bits/fcntl.h" 3 4 struct flock { short int l_type; short int l_whence; __off_t l_start; __off_t l_len; __pid_t l_pid; }; struct flock64 { short int l_type; short int l_whence; __off64_t l_start; __off64_t l_len; __pid_t l_pid; }; enum __pid_type { F_OWNER_TID = 0, F_OWNER_PID, F_OWNER_PGRP, F_OWNER_GID = F_OWNER_PGRP }; struct f_owner_ex { enum __pid_type type; __pid_t pid; }; # 267 "/usr/include/bits/fcntl.h" 3 4 extern "C" { extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) throw (); extern int sync_file_range (int __fd, __off64_t __offset, __off64_t __count, unsigned int __flags); extern ssize_t vmsplice (int __fdout, const struct iovec *__iov, size_t __count, unsigned int __flags); extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout, __off64_t *__offout, size_t __len, unsigned int __flags); extern ssize_t tee (int __fdin, int __fdout, size_t __len, unsigned int __flags); extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len); # 307 "/usr/include/bits/fcntl.h" 3 4 extern int fallocate64 (int __fd, int __mode, __off64_t __offset, __off64_t __len); } # 35 "/usr/include/fcntl.h" 2 3 4 # 1 "/usr/include/bits/stat.h" 1 3 4 # 42 "/usr/include/fcntl.h" 2 3 4 # 110 "/usr/include/fcntl.h" 3 4 extern int fcntl (int __fd, int __cmd, ...); # 119 "/usr/include/fcntl.h" 3 4 extern int open (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); # 129 "/usr/include/fcntl.h" 3 4 extern int open64 (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); # 143 "/usr/include/fcntl.h" 3 4 extern int openat (int __fd, __const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (2))); # 154 "/usr/include/fcntl.h" 3 4 extern int openat64 (int __fd, __const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (2))); # 165 "/usr/include/fcntl.h" 3 4 extern int creat (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); # 175 "/usr/include/fcntl.h" 3 4 extern int creat64 (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); # 211 "/usr/include/fcntl.h" 3 4 extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len, int __advise) throw (); # 223 "/usr/include/fcntl.h" 3 4 extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len, int __advise) throw (); # 233 "/usr/include/fcntl.h" 3 4 extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len); # 244 "/usr/include/fcntl.h" 3 4 extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len); # 255 "/usr/include/fcntl.h" 3 4 } # 1 "/usr/include/sys/fcntl.h" 2 3 4 # 28 "src/core/ttsock.h" 2 # 1 "/usr/include/arpa/inet.h" 1 3 4 # 31 "/usr/include/arpa/inet.h" 3 4 extern "C" { extern in_addr_t inet_addr (__const char *__cp) throw (); extern in_addr_t inet_lnaof (struct in_addr __in) throw (); extern struct in_addr inet_makeaddr (in_addr_t __net, in_addr_t __host) throw (); extern in_addr_t inet_netof (struct in_addr __in) throw (); extern in_addr_t inet_network (__const char *__cp) throw (); extern char *inet_ntoa (struct in_addr __in) throw (); extern int inet_pton (int __af, __const char *__restrict __cp, void *__restrict __buf) throw (); extern __const char *inet_ntop (int __af, __const void *__restrict __cp, char *__restrict __buf, socklen_t __len) throw (); extern int inet_aton (__const char *__cp, struct in_addr *__inp) throw (); extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) throw (); extern char *inet_net_ntop (int __af, __const void *__cp, int __bits, char *__buf, size_t __len) throw (); extern int inet_net_pton (int __af, __const char *__cp, void *__buf, size_t __len) throw (); extern unsigned int inet_nsap_addr (__const char *__cp, unsigned char *__buf, int __len) throw (); extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp, char *__buf) throw (); } # 29 "src/core/ttsock.h" 2 # 1 "/usr/include/netinet/tcp.h" 1 3 4 # 92 "/usr/include/netinet/tcp.h" 3 4 struct tcphdr { u_int16_t source; u_int16_t dest; u_int32_t seq; u_int32_t ack_seq; u_int16_t res1:4; u_int16_t doff:4; u_int16_t fin:1; u_int16_t syn:1; u_int16_t rst:1; u_int16_t psh:1; u_int16_t ack:1; u_int16_t urg:1; u_int16_t res2:2; # 121 "/usr/include/netinet/tcp.h" 3 4 u_int16_t window; u_int16_t check; u_int16_t urg_ptr; }; enum { TCP_ESTABLISHED = 1, TCP_SYN_SENT, TCP_SYN_RECV, TCP_FIN_WAIT1, TCP_FIN_WAIT2, TCP_TIME_WAIT, TCP_CLOSE, TCP_CLOSE_WAIT, TCP_LAST_ACK, TCP_LISTEN, TCP_CLOSING }; # 179 "/usr/include/netinet/tcp.h" 3 4 enum tcp_ca_state { TCP_CA_Open = 0, TCP_CA_Disorder = 1, TCP_CA_CWR = 2, TCP_CA_Recovery = 3, TCP_CA_Loss = 4 }; struct tcp_info { u_int8_t tcpi_state; u_int8_t tcpi_ca_state; u_int8_t tcpi_retransmits; u_int8_t tcpi_probes; u_int8_t tcpi_backoff; u_int8_t tcpi_options; u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; u_int32_t tcpi_rto; u_int32_t tcpi_ato; u_int32_t tcpi_snd_mss; u_int32_t tcpi_rcv_mss; u_int32_t tcpi_unacked; u_int32_t tcpi_sacked; u_int32_t tcpi_lost; u_int32_t tcpi_retrans; u_int32_t tcpi_fackets; u_int32_t tcpi_last_data_sent; u_int32_t tcpi_last_ack_sent; u_int32_t tcpi_last_data_recv; u_int32_t tcpi_last_ack_recv; u_int32_t tcpi_pmtu; u_int32_t tcpi_rcv_ssthresh; u_int32_t tcpi_rtt; u_int32_t tcpi_rttvar; u_int32_t tcpi_snd_ssthresh; u_int32_t tcpi_snd_cwnd; u_int32_t tcpi_advmss; u_int32_t tcpi_reordering; u_int32_t tcpi_rcv_rtt; u_int32_t tcpi_rcv_space; u_int32_t tcpi_total_retrans; }; struct tcp_md5sig { struct sockaddr_storage tcpm_addr; u_int16_t __tcpm_pad1; u_int16_t tcpm_keylen; u_int32_t __tcpm_pad2; u_int8_t tcpm_key[80]; }; # 31 "src/core/ttsock.h" 2 # 1 "/usr/include/errno.h" 1 3 4 # 33 "src/core/ttsock.h" 2 # 1 "/usr/include/assert.h" 1 3 4 # 34 "src/core/ttsock.h" 2 namespace tt { # 46 "src/core/ttsock.h" class socket { public: enum PROTOCOL { TCP = 1, UDP = 2 }; socket(PROTOCOL transport_type, unsigned opt=0): protocol(transport_type), fdx(0), port(0), options(opt) { rdtimeout_us = (0); rbufsz = (1024 * 64); } int fd() { return fdx; } bool is_open() { return 0 < fdx; } bool is_nonblock() { return 0 == rdtimeout_us; } int lasterr; char mbuf[128]; sockaddr_in local_addr, remote_addr; int send(const char* buf, const int datalen) { const int numbytes = ::send(fdx, buf, datalen, 0); if (numbytes < 0) return srerr(0, datalen); return normalreturn(numbytes); } int recv(char* buf, const int datalen) { const int numbytes = ::recv(fdx, buf, datalen, 0); if (numbytes > 0) return normalreturn(numbytes); return handle_rcverr(numbytes, 1); } int connect(const char* ipaddr, const int port); int bind(const int port); int set_inaddr(in_addr&, const char* ipaddr); int set_addr(sockaddr_in&, const char* ipaddr, const int port); int setfdattr(const unsigned OPT, const int _fd=0); void close(); protected: const PROTOCOL protocol; int fdx, port, rbufsz, rdtimeout_us, options; int handle_rcverr(const int rc, const int whichrecv=1) { if (__builtin_expect(!!(((*__errno_location ()) == 11) && is_nonblock()), 1)) return normalreturn(rc); if (__builtin_expect(!!(rc < 0), 1)) return srerr(whichrecv, rc); return peerdownmsg(); } void clear_addr(sockaddr_in& addr) { memset(&addr, 0, sizeof(sockaddr_in)); addr.sin_family = 2; } int normalreturn(const int rc) { *mbuf = '\0'; lasterr = 0; return rc; } int srerr(const int which, const int numbytes); int connecterr(const char* ip, const int port); int ssoerr(const int); int serr(const int); int connectedmsg(); int sockopenerr(); int peerdownmsg(); int boundmsg(); }; class socket_tcp: public socket { public: socket_tcp(unsigned opt=0): socket(TCP, opt) { this->fdx = ::socket(2, SOCK_STREAM, IPPROTO_TCP); } }; class socket_tcpclient: public socket_tcp { public: socket_tcpclient(int rdto_us=0, unsigned opt=0): socket_tcp(opt) { if (rdto_us) rdtimeout_us = rdto_us; const int SET_ON = 1; setsockopt(fdx, IPPROTO_TCP, 1, &SET_ON, sizeof(int)); timeval tv; tv.tv_sec = 0; tv.tv_usec = rdto_us; setsockopt(fdx, 1, 20, &tv, sizeof(struct timeval)); tv.tv_sec = 1; tv.tv_usec = 0; setsockopt(fdx, 1, 21, &tv, sizeof(struct timeval)); } }; class socket_tcpserver: public socket_tcp { public: socket_tcpserver(const int listenport, unsigned opt=0): socket_tcp(opt) { const int SET_ON = 1; setsockopt(fdx, 1, 2, &SET_ON, sizeof(int)); setsockopt(fdx, IPPROTO_TCP, 1, &SET_ON, sizeof(int)); if (0 == this->bind(listenport)) this->listen(); } int listen() { (((fdx > 0) && port) ? static_cast (0) : __assert_fail ("(fdx > 0) && port", "src/core/ttsock.h", 162, __PRETTY_FUNCTION__)); return (0 == ::listen(this->fdx,1))? listenmsg(): serr(1); } int accept() { socklen_t addrlen = sizeof(remote_addr); if (-1 == (this->clientfdx = ::accept(fdx, (sockaddr*) &remote_addr, &addrlen))) return serr(2); acceptedmsg(); return this->clientfdx; } protected: int clientfdx; int listenmsg(); int acceptedmsg(); }; class socket_udp: public socket { public: socket_udp(unsigned opt=0): socket(UDP, opt) { this->fdx = ::socket(2, SOCK_DGRAM, IPPROTO_UDP); } int sendto(const char* buf, const int datalen, sockaddr_in& addr) { const int numbytes = ::sendto(fdx, buf, datalen, 0, (sockaddr*) &addr, sizeof(sockaddr_in)); if (numbytes < 0) return srerr(3, datalen); return normalreturn(numbytes); } int recvfrom(char* buf, const int datalen) { sockaddr_in sender; clear_addr(sender); return this->recvfrom(buf, datalen, sender); } int recvfrom(char* buf, const int datalen, sockaddr_in& addr) { socklen_t slen = sizeof(sockaddr_in); const int numbytes = ::recvfrom(fdx, buf, datalen, 0, (sockaddr*) &addr, &slen); if (numbytes > 0) return normalreturn(numbytes); return handle_rcverr(numbytes, 4); } }; class socket_udpclient: public socket_udp { public: socket_udpclient(int rbsz, int rdto_us, unsigned opt=0): socket_udp(opt) { this->init(rbsz, rdto_us, opt); } socket_udpclient(const char* ipaddr, const int port, int rbsz, int rdto_us, unsigned opt=0): socket_udp(opt) { this->init(rbsz, rdto_us, opt); this->set_addr(remote_addr, ipaddr, port); } protected: void init(const int rbsz, const int rdto_us, const unsigned opt) { if (rbsz) rbufsz = rbsz; if (rdto_us) rdtimeout_us = rdto_us; setsockopt(fdx, 1, 8, &rbufsz, sizeof(int)); timeval tv; tv.tv_sec = 0; tv.tv_usec = rdto_us; setsockopt(fdx, 1, 20, &tv, sizeof(struct timeval)); tv.tv_sec = 1; tv.tv_usec = 0; setsockopt(fdx, 1, 21, &tv, sizeof(struct timeval)); this->clear_addr(remote_addr); } }; class socket_udpclient_multicast: public socket_udpclient { public: enum { DEFTTL=32, }; socket_udpclient_multicast(int rbsz, int rdto_us, unsigned opt=0): socket_udpclient(rbsz, rdto_us, opt) { this->config_multicast(); } socket_udpclient_multicast(const char* ipaddr, const int port, int rbsz, int rdto_us, unsigned opt=0): socket_udpclient(ipaddr, port, rbsz, rdto_us, opt) { this->config_multicast(); } int config_multicast(int want_loopback=0, int ttl=DEFTTL, const char* nic=__null); int join_multicast_group (const char* mcastaddr, const char* localnicaddr=__null); int leave_multicast_group(const char* mcastaddr, const char* localnicaddr=__null); int joinleavemsg(const int which, const int rc); }; class socket_udpserver: public socket_udp { public: socket_udpserver(const int listenport, int rdto_us=(250000), unsigned opt=0): socket_udp(opt) { const int ssopts=1, bufsz_snd=(1024 * 1), bufsz_rcv=(1024 * 4); setsockopt(fdx, 1, 2, &ssopts, sizeof(int)); setsockopt(fdx, IPPROTO_TCP, 1, &ssopts, sizeof(int)); setsockopt(fdx, 1, 8, &bufsz_rcv, sizeof(int)); setsockopt(fdx, 1, 7, &bufsz_snd, sizeof(int)); if (0 == this->rdtimeout_us) setfdattr(04000); this->clear_addr(remote_addr); this->bind(listenport); } }; } # 13 "src/bp/feedhdlr.h" 2 # 1 "src/bp/bp_uri.h" 1 # 14 "src/bp/feedhdlr.h" 2 # 1 "src/bp/bp_orec.h" 1 # 15 "src/bp/feedhdlr.h" 2 # 1 "src/bp/symbol_filter.h" 1 # 1 "/usr/include/c++/4.5/bitset" 1 3 # 46 "/usr/include/c++/4.5/bitset" 3 # 47 "/usr/include/c++/4.5/bitset" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 49 "/usr/include/c++/4.5/bitset" 2 3 # 60 "/usr/include/c++/4.5/bitset" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template struct _Base_bitset { typedef unsigned long _WordT; _WordT _M_w[_Nw]; _Base_bitset() { _M_do_reset(); } _Base_bitset(unsigned long long __val) { _M_do_reset(); _M_w[0] = __val; if (sizeof(unsigned long long) > sizeof(unsigned long)) _M_w[1] = __val >> (8 * sizeof(unsigned long)); } static size_t _S_whichword(size_t __pos ) { return __pos / (8 * sizeof(unsigned long)); } static size_t _S_whichbyte(size_t __pos ) { return (__pos % (8 * sizeof(unsigned long))) / 8; } static size_t _S_whichbit(size_t __pos ) { return __pos % (8 * sizeof(unsigned long)); } static _WordT _S_maskbit(size_t __pos ) { return (static_cast<_WordT>(1)) << _S_whichbit(__pos); } _WordT& _M_getword(size_t __pos) { return _M_w[_S_whichword(__pos)]; } _WordT _M_getword(size_t __pos) const { return _M_w[_S_whichword(__pos)]; } const _WordT* _M_getdata() const { return _M_w; } _WordT& _M_hiword() { return _M_w[_Nw - 1]; } _WordT _M_hiword() const { return _M_w[_Nw - 1]; } void _M_do_and(const _Base_bitset<_Nw>& __x) { for (size_t __i = 0; __i < _Nw; __i++) _M_w[__i] &= __x._M_w[__i]; } void _M_do_or(const _Base_bitset<_Nw>& __x) { for (size_t __i = 0; __i < _Nw; __i++) _M_w[__i] |= __x._M_w[__i]; } void _M_do_xor(const _Base_bitset<_Nw>& __x) { for (size_t __i = 0; __i < _Nw; __i++) _M_w[__i] ^= __x._M_w[__i]; } void _M_do_left_shift(size_t __shift); void _M_do_right_shift(size_t __shift); void _M_do_flip() { for (size_t __i = 0; __i < _Nw; __i++) _M_w[__i] = ~_M_w[__i]; } void _M_do_set() { for (size_t __i = 0; __i < _Nw; __i++) _M_w[__i] = ~static_cast<_WordT>(0); } void _M_do_reset() { __builtin_memset(_M_w, 0, _Nw * sizeof(_WordT)); } bool _M_is_equal(const _Base_bitset<_Nw>& __x) const { for (size_t __i = 0; __i < _Nw; ++__i) if (_M_w[__i] != __x._M_w[__i]) return false; return true; } size_t _M_are_all_aux() const { for (size_t __i = 0; __i < _Nw - 1; __i++) if (_M_w[__i] != ~static_cast<_WordT>(0)) return 0; return ((_Nw - 1) * (8 * sizeof(unsigned long)) + __builtin_popcountl(_M_hiword())); } bool _M_is_any() const { for (size_t __i = 0; __i < _Nw; __i++) if (_M_w[__i] != static_cast<_WordT>(0)) return true; return false; } size_t _M_do_count() const { size_t __result = 0; for (size_t __i = 0; __i < _Nw; __i++) __result += __builtin_popcountl(_M_w[__i]); return __result; } unsigned long _M_do_to_ulong() const; unsigned long long _M_do_to_ullong() const; size_t _M_do_find_first(size_t __not_found) const; size_t _M_do_find_next(size_t __prev, size_t __not_found) const; }; template void _Base_bitset<_Nw>::_M_do_left_shift(size_t __shift) { if (__builtin_expect(__shift != 0, 1)) { const size_t __wshift = __shift / (8 * sizeof(unsigned long)); const size_t __offset = __shift % (8 * sizeof(unsigned long)); if (__offset == 0) for (size_t __n = _Nw - 1; __n >= __wshift; --__n) _M_w[__n] = _M_w[__n - __wshift]; else { const size_t __sub_offset = ((8 * sizeof(unsigned long)) - __offset); for (size_t __n = _Nw - 1; __n > __wshift; --__n) _M_w[__n] = ((_M_w[__n - __wshift] << __offset) | (_M_w[__n - __wshift - 1] >> __sub_offset)); _M_w[__wshift] = _M_w[0] << __offset; } std::fill(_M_w + 0, _M_w + __wshift, static_cast<_WordT>(0)); } } template void _Base_bitset<_Nw>::_M_do_right_shift(size_t __shift) { if (__builtin_expect(__shift != 0, 1)) { const size_t __wshift = __shift / (8 * sizeof(unsigned long)); const size_t __offset = __shift % (8 * sizeof(unsigned long)); const size_t __limit = _Nw - __wshift - 1; if (__offset == 0) for (size_t __n = 0; __n <= __limit; ++__n) _M_w[__n] = _M_w[__n + __wshift]; else { const size_t __sub_offset = ((8 * sizeof(unsigned long)) - __offset); for (size_t __n = 0; __n < __limit; ++__n) _M_w[__n] = ((_M_w[__n + __wshift] >> __offset) | (_M_w[__n + __wshift + 1] << __sub_offset)); _M_w[__limit] = _M_w[_Nw-1] >> __offset; } std::fill(_M_w + __limit + 1, _M_w + _Nw, static_cast<_WordT>(0)); } } template unsigned long _Base_bitset<_Nw>::_M_do_to_ulong() const { for (size_t __i = 1; __i < _Nw; ++__i) if (_M_w[__i]) __throw_overflow_error(("_Base_bitset::_M_do_to_ulong")); return _M_w[0]; } template unsigned long long _Base_bitset<_Nw>::_M_do_to_ullong() const { const bool __dw = sizeof(unsigned long long) > sizeof(unsigned long); for (size_t __i = 1 + __dw; __i < _Nw; ++__i) if (_M_w[__i]) __throw_overflow_error(("_Base_bitset::_M_do_to_ullong")); if (__dw) return _M_w[0] + (static_cast(_M_w[1]) << (8 * sizeof(unsigned long))); return _M_w[0]; } template size_t _Base_bitset<_Nw>::_M_do_find_first(size_t __not_found) const { for (size_t __i = 0; __i < _Nw; __i++) { _WordT __thisword = _M_w[__i]; if (__thisword != static_cast<_WordT>(0)) return (__i * (8 * sizeof(unsigned long)) + __builtin_ctzl(__thisword)); } return __not_found; } template size_t _Base_bitset<_Nw>::_M_do_find_next(size_t __prev, size_t __not_found) const { ++__prev; if (__prev >= _Nw * (8 * sizeof(unsigned long))) return __not_found; size_t __i = _S_whichword(__prev); _WordT __thisword = _M_w[__i]; __thisword &= (~static_cast<_WordT>(0)) << _S_whichbit(__prev); if (__thisword != static_cast<_WordT>(0)) return (__i * (8 * sizeof(unsigned long)) + __builtin_ctzl(__thisword)); __i++; for (; __i < _Nw; __i++) { __thisword = _M_w[__i]; if (__thisword != static_cast<_WordT>(0)) return (__i * (8 * sizeof(unsigned long)) + __builtin_ctzl(__thisword)); } return __not_found; } template<> struct _Base_bitset<1> { typedef unsigned long _WordT; _WordT _M_w; _Base_bitset(void) : _M_w(0) { } _Base_bitset(unsigned long long __val) : _M_w(__val) { } static size_t _S_whichword(size_t __pos ) { return __pos / (8 * sizeof(unsigned long)); } static size_t _S_whichbyte(size_t __pos ) { return (__pos % (8 * sizeof(unsigned long))) / 8; } static size_t _S_whichbit(size_t __pos ) { return __pos % (8 * sizeof(unsigned long)); } static _WordT _S_maskbit(size_t __pos ) { return (static_cast<_WordT>(1)) << _S_whichbit(__pos); } _WordT& _M_getword(size_t) { return _M_w; } _WordT _M_getword(size_t) const { return _M_w; } const _WordT* _M_getdata() const { return &_M_w; } _WordT& _M_hiword() { return _M_w; } _WordT _M_hiword() const { return _M_w; } void _M_do_and(const _Base_bitset<1>& __x) { _M_w &= __x._M_w; } void _M_do_or(const _Base_bitset<1>& __x) { _M_w |= __x._M_w; } void _M_do_xor(const _Base_bitset<1>& __x) { _M_w ^= __x._M_w; } void _M_do_left_shift(size_t __shift) { _M_w <<= __shift; } void _M_do_right_shift(size_t __shift) { _M_w >>= __shift; } void _M_do_flip() { _M_w = ~_M_w; } void _M_do_set() { _M_w = ~static_cast<_WordT>(0); } void _M_do_reset() { _M_w = 0; } bool _M_is_equal(const _Base_bitset<1>& __x) const { return _M_w == __x._M_w; } size_t _M_are_all_aux() const { return __builtin_popcountl(_M_w); } bool _M_is_any() const { return _M_w != 0; } size_t _M_do_count() const { return __builtin_popcountl(_M_w); } unsigned long _M_do_to_ulong() const { return _M_w; } unsigned long long _M_do_to_ullong() const { return _M_w; } size_t _M_do_find_first(size_t __not_found) const { if (_M_w != 0) return __builtin_ctzl(_M_w); else return __not_found; } size_t _M_do_find_next(size_t __prev, size_t __not_found) const { ++__prev; if (__prev >= ((size_t) (8 * sizeof(unsigned long)))) return __not_found; _WordT __x = _M_w >> __prev; if (__x != 0) return __builtin_ctzl(__x) + __prev; else return __not_found; } }; template<> struct _Base_bitset<0> { typedef unsigned long _WordT; _Base_bitset() { } _Base_bitset(unsigned long long) { } static size_t _S_whichword(size_t __pos ) { return __pos / (8 * sizeof(unsigned long)); } static size_t _S_whichbyte(size_t __pos ) { return (__pos % (8 * sizeof(unsigned long))) / 8; } static size_t _S_whichbit(size_t __pos ) { return __pos % (8 * sizeof(unsigned long)); } static _WordT _S_maskbit(size_t __pos ) { return (static_cast<_WordT>(1)) << _S_whichbit(__pos); } # 548 "/usr/include/c++/4.5/bitset" 3 _WordT& _M_getword(size_t) const { __throw_out_of_range(("_Base_bitset::_M_getword")); return *new _WordT; } _WordT _M_hiword() const { return 0; } void _M_do_and(const _Base_bitset<0>&) { } void _M_do_or(const _Base_bitset<0>&) { } void _M_do_xor(const _Base_bitset<0>&) { } void _M_do_left_shift(size_t) { } void _M_do_right_shift(size_t) { } void _M_do_flip() { } void _M_do_set() { } void _M_do_reset() { } bool _M_is_equal(const _Base_bitset<0>&) const { return true; } size_t _M_are_all_aux() const { return 0; } bool _M_is_any() const { return false; } size_t _M_do_count() const { return 0; } unsigned long _M_do_to_ulong() const { return 0; } unsigned long long _M_do_to_ullong() const { return 0; } size_t _M_do_find_first(size_t) const { return 0; } size_t _M_do_find_next(size_t, size_t) const { return 0; } }; template struct _Sanitize { static void _S_do_sanitize(unsigned long& __val) { __val &= ~((~static_cast(0)) << _Extrabits); } }; template<> struct _Sanitize<0> { static void _S_do_sanitize(unsigned long) {} }; # 708 "/usr/include/c++/4.5/bitset" 3 template class bitset : private _Base_bitset<((_Nb) < 1 ? 0 : ((_Nb) + (8 * sizeof(unsigned long)) - 1) / (8 * sizeof(unsigned long)))> { private: typedef _Base_bitset<((_Nb) < 1 ? 0 : ((_Nb) + (8 * sizeof(unsigned long)) - 1) / (8 * sizeof(unsigned long)))> _Base; typedef unsigned long _WordT; void _M_do_sanitize() { _Sanitize<_Nb % (8 * sizeof(unsigned long))>:: _S_do_sanitize(this->_M_hiword()); } template friend class hash; public: # 740 "/usr/include/c++/4.5/bitset" 3 class reference { friend class bitset; _WordT *_M_wp; size_t _M_bpos; reference(); public: reference(bitset& __b, size_t __pos) { _M_wp = &__b._M_getword(__pos); _M_bpos = _Base::_S_whichbit(__pos); } ~reference() { } reference& operator=(bool __x) { if (__x) *_M_wp |= _Base::_S_maskbit(_M_bpos); else *_M_wp &= ~_Base::_S_maskbit(_M_bpos); return *this; } reference& operator=(const reference& __j) { if ((*(__j._M_wp) & _Base::_S_maskbit(__j._M_bpos))) *_M_wp |= _Base::_S_maskbit(_M_bpos); else *_M_wp &= ~_Base::_S_maskbit(_M_bpos); return *this; } bool operator~() const { return (*(_M_wp) & _Base::_S_maskbit(_M_bpos)) == 0; } operator bool() const { return (*(_M_wp) & _Base::_S_maskbit(_M_bpos)) != 0; } reference& flip() { *_M_wp ^= _Base::_S_maskbit(_M_bpos); return *this; } }; friend class reference; bitset() { } bitset(unsigned long long __val) : _Base(__val) { _M_do_sanitize(); } # 824 "/usr/include/c++/4.5/bitset" 3 template explicit bitset(const std::basic_string<_CharT, _Traits, _Alloc>& __s, size_t __position = 0) : _Base() { if (__position > __s.size()) __throw_out_of_range(("bitset::bitset initial position " "not valid") ); _M_copy_from_string(__s, __position, std::basic_string<_CharT, _Traits, _Alloc>::npos, _CharT('0'), _CharT('1')); } # 847 "/usr/include/c++/4.5/bitset" 3 template bitset(const std::basic_string<_CharT, _Traits, _Alloc>& __s, size_t __position, size_t __n) : _Base() { if (__position > __s.size()) __throw_out_of_range(("bitset::bitset initial position " "not valid") ); _M_copy_from_string(__s, __position, __n, _CharT('0'), _CharT('1')); } template bitset(const std::basic_string<_CharT, _Traits, _Alloc>& __s, size_t __position, size_t __n, _CharT __zero, _CharT __one = _CharT('1')) : _Base() { if (__position > __s.size()) __throw_out_of_range(("bitset::bitset initial position " "not valid") ); _M_copy_from_string(__s, __position, __n, __zero, __one); } # 879 "/usr/include/c++/4.5/bitset" 3 explicit bitset(const char* __str) : _Base() { if (!__str) __throw_logic_error(("bitset::bitset(const char*)")); const size_t __len = __builtin_strlen(__str); _M_copy_from_ptr>(__str, __len, 0, __len, '0', '1'); } # 900 "/usr/include/c++/4.5/bitset" 3 bitset<_Nb>& operator&=(const bitset<_Nb>& __rhs) { this->_M_do_and(__rhs); return *this; } bitset<_Nb>& operator|=(const bitset<_Nb>& __rhs) { this->_M_do_or(__rhs); return *this; } bitset<_Nb>& operator^=(const bitset<_Nb>& __rhs) { this->_M_do_xor(__rhs); return *this; } # 929 "/usr/include/c++/4.5/bitset" 3 bitset<_Nb>& operator<<=(size_t __position) { if (__builtin_expect(__position < _Nb, 1)) { this->_M_do_left_shift(__position); this->_M_do_sanitize(); } else this->_M_do_reset(); return *this; } bitset<_Nb>& operator>>=(size_t __position) { if (__builtin_expect(__position < _Nb, 1)) { this->_M_do_right_shift(__position); this->_M_do_sanitize(); } else this->_M_do_reset(); return *this; } # 962 "/usr/include/c++/4.5/bitset" 3 bitset<_Nb>& _Unchecked_set(size_t __pos) { this->_M_getword(__pos) |= _Base::_S_maskbit(__pos); return *this; } bitset<_Nb>& _Unchecked_set(size_t __pos, int __val) { if (__val) this->_M_getword(__pos) |= _Base::_S_maskbit(__pos); else this->_M_getword(__pos) &= ~_Base::_S_maskbit(__pos); return *this; } bitset<_Nb>& _Unchecked_reset(size_t __pos) { this->_M_getword(__pos) &= ~_Base::_S_maskbit(__pos); return *this; } bitset<_Nb>& _Unchecked_flip(size_t __pos) { this->_M_getword(__pos) ^= _Base::_S_maskbit(__pos); return *this; } bool _Unchecked_test(size_t __pos) const { return ((this->_M_getword(__pos) & _Base::_S_maskbit(__pos)) != static_cast<_WordT>(0)); } bitset<_Nb>& set() { this->_M_do_set(); this->_M_do_sanitize(); return *this; } bitset<_Nb>& set(size_t __position, bool __val = true) { if (__position >= _Nb) __throw_out_of_range(("bitset::set")); return _Unchecked_set(__position, __val); } bitset<_Nb>& reset() { this->_M_do_reset(); return *this; } # 1042 "/usr/include/c++/4.5/bitset" 3 bitset<_Nb>& reset(size_t __position) { if (__position >= _Nb) __throw_out_of_range(("bitset::reset")); return _Unchecked_reset(__position); } bitset<_Nb>& flip() { this->_M_do_flip(); this->_M_do_sanitize(); return *this; } bitset<_Nb>& flip(size_t __position) { if (__position >= _Nb) __throw_out_of_range(("bitset::flip")); return _Unchecked_flip(__position); } bitset<_Nb> operator~() const { return bitset<_Nb>(*this).flip(); } # 1094 "/usr/include/c++/4.5/bitset" 3 reference operator[](size_t __position) { return reference(*this,__position); } bool operator[](size_t __position) const { return _Unchecked_test(__position); } # 1109 "/usr/include/c++/4.5/bitset" 3 unsigned long to_ulong() const { return this->_M_do_to_ulong(); } unsigned long long to_ullong() const { return this->_M_do_to_ullong(); } # 1127 "/usr/include/c++/4.5/bitset" 3 template std::basic_string<_CharT, _Traits, _Alloc> to_string() const { std::basic_string<_CharT, _Traits, _Alloc> __result; _M_copy_to_string(__result, _CharT('0'), _CharT('1')); return __result; } template std::basic_string<_CharT, _Traits, _Alloc> to_string(_CharT __zero, _CharT __one = _CharT('1')) const { std::basic_string<_CharT, _Traits, _Alloc> __result; _M_copy_to_string(__result, __zero, __one); return __result; } template std::basic_string<_CharT, _Traits, std::allocator<_CharT> > to_string() const { return to_string<_CharT, _Traits, std::allocator<_CharT> >(); } template std::basic_string<_CharT, _Traits, std::allocator<_CharT> > to_string(_CharT __zero, _CharT __one = _CharT('1')) const { return to_string<_CharT, _Traits, std::allocator<_CharT> >(__zero, __one); } template std::basic_string<_CharT, std::char_traits<_CharT>, std::allocator<_CharT> > to_string() const { return to_string<_CharT, std::char_traits<_CharT>, std::allocator<_CharT> >(); } template std::basic_string<_CharT, std::char_traits<_CharT>, std::allocator<_CharT> > to_string(_CharT __zero, _CharT __one = _CharT('1')) const { return to_string<_CharT, std::char_traits<_CharT>, std::allocator<_CharT> >(__zero, __one); } std::basic_string, std::allocator > to_string() const { return to_string, std::allocator >(); } std::basic_string, std::allocator > to_string(char __zero, char __one = '1') const { return to_string, std::allocator >(__zero, __one); } template void _M_copy_from_ptr(const _CharT*, size_t, size_t, size_t, _CharT, _CharT); template void _M_copy_from_string(const std::basic_string<_CharT, _Traits, _Alloc>& __s, size_t __pos, size_t __n, _CharT __zero, _CharT __one) { _M_copy_from_ptr<_CharT, _Traits>(__s.data(), __s.size(), __pos, __n, __zero, __one); } template void _M_copy_to_string(std::basic_string<_CharT, _Traits, _Alloc>&, _CharT, _CharT) const; template void _M_copy_from_string(const std::basic_string<_CharT, _Traits, _Alloc>& __s, size_t __pos, size_t __n) { _M_copy_from_string(__s, __pos, __n, _CharT('0'), _CharT('1')); } template void _M_copy_to_string(std::basic_string<_CharT, _Traits,_Alloc>& __s) const { _M_copy_to_string(__s, _CharT('0'), _CharT('1')); } size_t count() const { return this->_M_do_count(); } size_t size() const { return _Nb; } bool operator==(const bitset<_Nb>& __rhs) const { return this->_M_is_equal(__rhs); } bool operator!=(const bitset<_Nb>& __rhs) const { return !this->_M_is_equal(__rhs); } # 1252 "/usr/include/c++/4.5/bitset" 3 bool test(size_t __position) const { if (__position >= _Nb) __throw_out_of_range(("bitset::test")); return _Unchecked_test(__position); } bool all() const { return this->_M_are_all_aux() == _Nb; } bool any() const { return this->_M_is_any(); } bool none() const { return !this->_M_is_any(); } bitset<_Nb> operator<<(size_t __position) const { return bitset<_Nb>(*this) <<= __position; } bitset<_Nb> operator>>(size_t __position) const { return bitset<_Nb>(*this) >>= __position; } # 1303 "/usr/include/c++/4.5/bitset" 3 size_t _Find_first() const { return this->_M_do_find_first(_Nb); } # 1314 "/usr/include/c++/4.5/bitset" 3 size_t _Find_next(size_t __prev ) const { return this->_M_do_find_next(__prev, _Nb); } }; template template void bitset<_Nb>:: _M_copy_from_ptr(const _CharT* __s, size_t __len, size_t __pos, size_t __n, _CharT __zero, _CharT __one) { reset(); const size_t __nbits = std::min(_Nb, std::min(__n, __len - __pos)); for (size_t __i = __nbits; __i > 0; --__i) { const _CharT __c = __s[__pos + __nbits - __i]; if (_Traits::eq(__c, __zero)) ; else if (_Traits::eq(__c, __one)) _Unchecked_set(__i - 1); else __throw_invalid_argument(("bitset::_M_copy_from_ptr")); } } template template void bitset<_Nb>:: _M_copy_to_string(std::basic_string<_CharT, _Traits, _Alloc>& __s, _CharT __zero, _CharT __one) const { __s.assign(_Nb, __zero); for (size_t __i = _Nb; __i > 0; --__i) if (_Unchecked_test(__i - 1)) _Traits::assign(__s[_Nb - __i], __one); } # 1364 "/usr/include/c++/4.5/bitset" 3 template inline bitset<_Nb> operator&(const bitset<_Nb>& __x, const bitset<_Nb>& __y) { bitset<_Nb> __result(__x); __result &= __y; return __result; } template inline bitset<_Nb> operator|(const bitset<_Nb>& __x, const bitset<_Nb>& __y) { bitset<_Nb> __result(__x); __result |= __y; return __result; } template inline bitset<_Nb> operator^(const bitset<_Nb>& __x, const bitset<_Nb>& __y) { bitset<_Nb> __result(__x); __result ^= __y; return __result; } # 1401 "/usr/include/c++/4.5/bitset" 3 template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, bitset<_Nb>& __x) { typedef typename _Traits::char_type char_type; typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; std::basic_string<_CharT, _Traits> __tmp; __tmp.reserve(_Nb); const char_type __zero = __is.widen('0'); const char_type __one = __is.widen('1'); typename __ios_base::iostate __state = __ios_base::goodbit; typename __istream_type::sentry __sentry(__is); if (__sentry) { try { for (size_t __i = _Nb; __i > 0; --__i) { static typename _Traits::int_type __eof = _Traits::eof(); typename _Traits::int_type __c1 = __is.rdbuf()->sbumpc(); if (_Traits::eq_int_type(__c1, __eof)) { __state |= __ios_base::eofbit; break; } else { const char_type __c2 = _Traits::to_char_type(__c1); if (_Traits::eq(__c2, __zero)) __tmp.push_back(__zero); else if (_Traits::eq(__c2, __one)) __tmp.push_back(__one); else if (_Traits:: eq_int_type(__is.rdbuf()->sputbackc(__c2), __eof)) { __state |= __ios_base::failbit; break; } } } } catch(__cxxabiv1::__forced_unwind&) { __is._M_setstate(__ios_base::badbit); throw; } catch(...) { __is._M_setstate(__ios_base::badbit); } } if (__tmp.empty() && _Nb) __state |= __ios_base::failbit; else __x._M_copy_from_string(__tmp, static_cast(0), _Nb, __zero, __one); if (__state) __is.setstate(__state); return __is; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const bitset<_Nb>& __x) { std::basic_string<_CharT, _Traits> __tmp; const ctype<_CharT>& __ct = use_facet >(__os.getloc()); __x._M_copy_to_string(__tmp, __ct.widen('0'), __ct.widen('1')); return __os << __tmp; } } # 1493 "/usr/include/c++/4.5/bitset" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template struct hash> : public std::unary_function, size_t> { size_t operator()(const std::bitset<_Nb>& __b) const { const size_t __clength = (_Nb + 8 - 1) / 8; return std::_Fnv_hash::hash(__b._M_getdata(), __clength); } }; template<> struct hash> : public std::unary_function, size_t> { size_t operator()(const std::bitset<0>&) const { return 0; } }; } # 9 "src/bp/symbol_filter.h" 2 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/config.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/user.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/config.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/select_compiler_config.hpp" 1 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/config.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/compiler/gcc.hpp" 1 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/config.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/select_stdlib_config.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/config/select_stdlib_config.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/config/select_stdlib_config.hpp" 2 3 4 # 33 "/home/jas/.tt/ttsetup/opt/include/boost/config/select_stdlib_config.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/no_tr1/utility.hpp" 1 3 4 # 34 "/home/jas/.tt/ttsetup/opt/include/boost/config/select_stdlib_config.hpp" 2 3 4 # 41 "/home/jas/.tt/ttsetup/opt/include/boost/config.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/stdlib/libstdcpp3.hpp" 1 3 4 # 45 "/home/jas/.tt/ttsetup/opt/include/boost/config.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/select_platform_config.hpp" 1 3 4 # 50 "/home/jas/.tt/ttsetup/opt/include/boost/config.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/platform/linux.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/config/platform/linux.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstdlib" 1 3 4 # 41 "/usr/include/c++/4.5/cstdlib" 3 4 # 42 "/usr/include/c++/4.5/cstdlib" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 45 "/usr/include/c++/4.5/cstdlib" 2 3 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/config/platform/linux.hpp" 2 3 4 # 70 "/home/jas/.tt/ttsetup/opt/include/boost/config/platform/linux.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/posix_features.hpp" 1 3 4 # 71 "/home/jas/.tt/ttsetup/opt/include/boost/config/platform/linux.hpp" 2 3 4 # 54 "/home/jas/.tt/ttsetup/opt/include/boost/config.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/suffix.hpp" 1 3 4 # 495 "/home/jas/.tt/ttsetup/opt/include/boost/config/suffix.hpp" 3 4 namespace boost{ __extension__ typedef long long long_long_type; __extension__ typedef unsigned long long ulong_long_type; } # 58 "/home/jas/.tt/ttsetup/opt/include/boost/config.hpp" 2 3 4 # 30 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/detail/workaround.hpp" 1 3 4 # 31 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 68 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/if.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/if.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/value_wknd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/value_wknd.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/static_cast.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/static_cast.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/workaround.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/static_cast.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/value_wknd.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/integral.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/integral.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/msvc.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/integral.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/value_wknd.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/eti.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/value_wknd.hpp" 2 3 4 # 73 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/value_wknd.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename T > struct value_type_wknd { typedef typename T::value_type type; }; # 87 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/value_wknd.hpp" 3 4 }}} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/if.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na_spec.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na_spec.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/lambda_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/lambda_fwd.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/void_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/void_fwd.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/adl_barrier.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/adl_barrier.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/adl.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/adl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/intel.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/adl.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/gcc.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/adl.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/adl_barrier.hpp" 2 3 4 # 33 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/adl_barrier.hpp" 3 4 namespace mpl_ { namespace aux {} } namespace boost { namespace mpl { using namespace mpl_; namespace aux { using namespace mpl_::aux; } }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/void_fwd.hpp" 2 3 4 namespace mpl_ { struct void_; } namespace boost { namespace mpl { using ::mpl_::void_; } } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/lambda_fwd.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bool.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bool.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bool_fwd.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bool_fwd.hpp" 3 4 namespace mpl_ { template< bool C_ > struct bool_; typedef bool_ true_; typedef bool_ false_; } namespace boost { namespace mpl { using ::mpl_::bool_; } } namespace boost { namespace mpl { using ::mpl_::true_; } } namespace boost { namespace mpl { using ::mpl_::false_; } } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bool.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/integral_c_tag.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/integral_c_tag.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/static_constant.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/integral_c_tag.hpp" 2 3 4 namespace mpl_ { struct integral_c_tag { static const int value = 0; }; } namespace boost { namespace mpl { using ::mpl_::integral_c_tag; } } # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bool.hpp" 2 3 4 namespace mpl_ { template< bool C_ > struct bool_ { static const bool value = C_; typedef integral_c_tag tag; typedef bool_ type; typedef bool value_type; operator bool() const { return this->value; } }; template< bool C_ > bool const bool_::value; } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na_fwd.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na_fwd.hpp" 3 4 namespace mpl_ { struct na { typedef na type; enum { value = 0 }; }; } namespace boost { namespace mpl { using ::mpl_::na; } } # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/ctps.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na.hpp" 2 3 4 namespace boost { namespace mpl { template< typename T > struct is_na : false_ { }; template<> struct is_na : true_ { }; template< typename T > struct is_not_na : true_ { }; template<> struct is_not_na : false_ { }; template< typename T, typename U > struct if_na { typedef T type; }; template< typename U > struct if_na { typedef U type; }; # 93 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na.hpp" 3 4 }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/lambda_fwd.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/lambda.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/lambda.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/ttp.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/lambda.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/lambda_fwd.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/int.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/int.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/int_fwd.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/int_fwd.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/nttp_decl.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/nttp_decl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/nttp.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/nttp_decl.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/int_fwd.hpp" 2 3 4 namespace mpl_ { template< int N > struct int_; } namespace boost { namespace mpl { using ::mpl_::int_; } } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/int.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/cat.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/cat.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/config/config.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/cat.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 2 3 4 # 40 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 namespace mpl_ { template< int N > struct int_ { static const int value = N; typedef int_ type; typedef int value_type; typedef integral_c_tag tag; # 72 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 typedef mpl_::int_< static_cast((value + 1)) > next; typedef mpl_::int_< static_cast((value - 1)) > prior; operator int() const { return static_cast(this->value); } }; template< int N > int const mpl_::int_< N >::value; } # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/int.hpp" 2 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/lambda_fwd.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/lambda_arity_param.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/lambda_fwd.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/template_arity_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/template_arity_fwd.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename F > struct template_arity; }}} # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/lambda_fwd.hpp" 2 3 4 namespace boost { namespace mpl { template< typename T = na , typename Tag = void_ , typename Arity = int_< aux::template_arity::value > > struct lambda; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arity.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arity.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/dtp.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arity.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/params.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/params.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/preprocessor.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/params.hpp" 2 3 4 # 45 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/params.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/comma_if.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/comma_if.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/punctuation/comma_if.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/punctuation/comma_if.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/if.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/if.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/iif.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/if.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/logical/bool.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/if.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/punctuation/comma_if.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/facilities/empty.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/punctuation/comma_if.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/punctuation/comma.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/punctuation/comma_if.hpp" 2 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/comma_if.hpp" 2 3 4 # 46 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/params.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repeat.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repeat.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/repeat.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/repeat.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/debug/error.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/repeat.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/repeat.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/tuple/eat.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/repeat.hpp" 2 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repeat.hpp" 2 3 4 # 47 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/params.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/inc.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/inc.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/inc.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/inc.hpp" 2 3 4 # 48 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/params.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/enum.hpp" 1 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/limits/arity.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/logical/and.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/logical/and.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/logical/bitand.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/logical/and.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/identity.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/identity.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/facilities/identity.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/identity.hpp" 2 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/empty.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4 # 66 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/add.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/add.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/dec.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/add.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/while.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/while.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/while.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/fold_left.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/fold_left.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/while.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/fold_left.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/fold_left.hpp" 2 3 4 # 41 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/fold_left.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/detail/fold_left.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/detail/fold_left.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/expr_iif.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/detail/fold_left.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/adt.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/adt.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/is_binary.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/is_binary.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/check.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/is_binary.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/adt.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/logical/compl.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/adt.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/detail/fold_left.hpp" 2 3 4 # 42 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/fold_left.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/while.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/fold_right.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/fold_right.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/fold_right.hpp" 2 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/fold_right.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/detail/fold_right.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/detail/fold_right.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/reverse.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/detail/fold_right.hpp" 2 3 4 # 38 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/fold_right.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/while.hpp" 2 3 4 # 48 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/while.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/detail/while.hpp" 1 3 4 # 49 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/while.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/add.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/tuple/elem.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/add.hpp" 2 3 4 # 67 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/sub.hpp" 1 3 4 # 68 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4 # 29 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/overload_resolution.hpp" 1 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/if.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/lambda_support.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/if.hpp" 2 3 4 namespace boost { namespace mpl { template< bool C , typename T1 , typename T2 > struct if_c { typedef T1 type; }; template< typename T1 , typename T2 > struct if_c { typedef T2 type; }; template< typename T1 = na , typename T2 = na , typename T3 = na > struct if_ { private: typedef if_c< static_cast(T1::value) , T2 , T3 > almost_type_; public: typedef typename almost_type_::type type; }; # 131 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/if.hpp" 3 4 template<> struct if_< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : if_< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< if_< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef if_< na , na , na > result_; typedef if_< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< if_< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< if_< na , na , na > > : int_<-1> { }; } }} # 69 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/assert.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/assert.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/not.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/not.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/nested_type_wknd.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/nested_type_wknd.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename T > struct nested_type_wknd : T::type { }; }}} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/not.hpp" 2 3 4 namespace boost { namespace mpl { namespace aux { template< long C_ > struct not_impl : bool_ { }; } template< typename T = na > struct not_ : aux::not_impl< ::boost::mpl::aux::nested_type_wknd::value > { }; template<> struct not_< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : not_< T1 > { }; }; template< typename Tag > struct lambda< not_< na > , Tag , int_<-1> > { typedef false_ is_le; typedef not_< na > result_; typedef not_< na > type; }; namespace aux { template< typename T1 > struct template_arity< not_< T1 > > : int_<1> { }; template<> struct template_arity< not_< na > > : int_<-1> { }; } }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/assert.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/yes_no.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/yes_no.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/arrays.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/yes_no.hpp" 2 3 4 namespace boost { namespace mpl { namespace aux { typedef char (&no_tag)[1]; typedef char (&yes_tag)[2]; template< bool C_ > struct yes_no_tag { typedef no_tag type; }; template<> struct yes_no_tag { typedef yes_tag type; }; template< long n > struct weighted_tag { typedef char (&type)[n]; }; # 56 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/yes_no.hpp" 3 4 }}} # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/assert.hpp" 2 3 4 # 29 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/assert.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/pp_counter.hpp" 1 3 4 # 30 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/assert.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/assert.hpp" 2 3 4 # 62 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/assert.hpp" 3 4 namespace mpl_ { struct failed {}; # 75 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/assert.hpp" 3 4 template< bool C > struct assert { typedef void* type; }; template<> struct assert { typedef assert type; }; template< bool C > int assertion_failed( typename assert::type ); template< bool C > struct assertion { static int failed( assert ); }; template<> struct assertion { static int failed( void* ); }; struct assert_ { template< typename T1, typename T2 = na, typename T3 = na, typename T4 = na > struct types {}; static assert_ const arg; enum relations { equal = 1, not_equal, greater, greater_equal, less, less_equal }; }; # 123 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/assert.hpp" 3 4 boost::mpl::aux::weighted_tag<1>::type operator==( assert_, assert_ ); boost::mpl::aux::weighted_tag<2>::type operator!=( assert_, assert_ ); boost::mpl::aux::weighted_tag<3>::type operator>( assert_, assert_ ); boost::mpl::aux::weighted_tag<4>::type operator>=( assert_, assert_ ); boost::mpl::aux::weighted_tag<5>::type operator<( assert_, assert_ ); boost::mpl::aux::weighted_tag<6>::type operator<=( assert_, assert_ ); template< assert_::relations r, long x, long y > struct assert_relation {}; template< bool > struct assert_arg_pred_impl { typedef int type; }; template<> struct assert_arg_pred_impl { typedef void* type; }; template< typename P > struct assert_arg_pred { typedef typename P::type p_type; typedef typename assert_arg_pred_impl< p_type::value >::type type; }; template< typename P > struct assert_arg_pred_not { typedef typename P::type p_type; enum { p = !p_type::value }; typedef typename assert_arg_pred_impl

::type type; }; template< typename Pred > failed ************ (Pred::************ assert_arg( void (*)(Pred), typename assert_arg_pred::type ) ); template< typename Pred > failed ************ (boost::mpl::not_::************ assert_not_arg( void (*)(Pred), typename assert_arg_pred_not::type ) ); template< typename Pred > assert assert_arg( void (*)(Pred), typename assert_arg_pred_not::type ); template< typename Pred > assert assert_not_arg( void (*)(Pred), typename assert_arg_pred::type ); # 212 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/assert.hpp" 3 4 } # 70 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/logical.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/logical.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/or.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/or.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/use_preprocessed.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/or.hpp" 2 3 4 # 43 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/or.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/compiler.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/stringize.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/or.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/or.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< bool C_, typename T1, typename T2, typename T3, typename T4 > struct or_impl : true_ { }; template< typename T1, typename T2, typename T3, typename T4 > struct or_impl< false,T1,T2,T3,T4 > : or_impl< ::boost::mpl::aux::nested_type_wknd::value , T2, T3, T4 , false_ > { }; template<> struct or_impl< false , false_, false_, false_, false_ > : false_ { }; } template< typename T1 = na , typename T2 = na , typename T3 = false_, typename T4 = false_, typename T5 = false_ > struct or_ : aux::or_impl< ::boost::mpl::aux::nested_type_wknd::value , T2, T3, T4, T5 > { }; template<> struct or_< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : or_< T1 , T2 > { }; }; template< typename Tag > struct lambda< or_< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef or_< na , na > result_; typedef or_< na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct template_arity< or_< T1 , T2 , T3 , T4 , T5 > > : int_<5> { }; template<> struct template_arity< or_< na , na > > : int_<-1> { }; } }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 44 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/or.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/logical.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/and.hpp" 1 3 4 # 42 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/and.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/and.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/and.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< bool C_, typename T1, typename T2, typename T3, typename T4 > struct and_impl : false_ { }; template< typename T1, typename T2, typename T3, typename T4 > struct and_impl< true,T1,T2,T3,T4 > : and_impl< ::boost::mpl::aux::nested_type_wknd::value , T2, T3, T4 , true_ > { }; template<> struct and_impl< true , true_, true_, true_, true_ > : true_ { }; } template< typename T1 = na , typename T2 = na , typename T3 = true_, typename T4 = true_, typename T5 = true_ > struct and_ : aux::and_impl< ::boost::mpl::aux::nested_type_wknd::value , T2, T3, T4, T5 > { }; template<> struct and_< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : and_< T1 , T2 > { }; }; template< typename Tag > struct lambda< and_< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef and_< na , na > result_; typedef and_< na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct template_arity< and_< T1 , T2 , T3 , T4 , T5 > > : int_<5> { }; template<> struct template_arity< and_< na , na > > : int_<-1> { }; } }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 43 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/and.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/logical.hpp" 2 3 4 # 71 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/eval_if.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/eval_if.hpp" 3 4 namespace boost { namespace mpl { template< typename C = na , typename F1 = na , typename F2 = na > struct eval_if { typedef typename if_::type f_; typedef typename f_::type type; }; template< bool C , typename F1 , typename F2 > struct eval_if_c { typedef typename if_c::type f_; typedef typename f_::type type; }; template<> struct eval_if< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : eval_if< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< eval_if< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef eval_if< na , na , na > result_; typedef eval_if< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< eval_if< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< eval_if< na , na , na > > : int_<-1> { }; } }} # 72 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/noncopyable.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/noncopyable.hpp" 3 4 namespace boost { namespace noncopyable_ { class noncopyable { protected: noncopyable() {} ~noncopyable() {} private: noncopyable( const noncopyable& ); const noncopyable& operator=( const noncopyable& ); }; } typedef noncopyable_::noncopyable noncopyable; } # 73 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/end.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/range/end.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/config.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/range/end.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/implementation_help.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/implementation_help.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/common.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/common.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/sfinae.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/sfinae.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_array.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_array.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/config.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_array.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_array.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/integral_constant.hpp" 1 3 4 # 11 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/integral_constant.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/integral_c.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/integral_c.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/integral_c_fwd.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/integral_c_fwd.hpp" 3 4 namespace mpl_ { template< typename T, T N > struct integral_c; } namespace boost { namespace mpl { using ::mpl_::integral_c; } } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/integral_c.hpp" 2 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/integral_c.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 1 3 4 # 40 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 namespace mpl_ { template< typename T, T N > struct integral_c { static const T value = N; typedef integral_c type; typedef T value_type; typedef integral_c_tag tag; # 72 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 typedef integral_c< T, static_cast((value + 1)) > next; typedef integral_c< T, static_cast((value - 1)) > prior; operator T() const { return static_cast(this->value); } }; template< typename T, T N > T const integral_c< T, N >::value; } # 33 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/integral_c.hpp" 2 3 4 namespace mpl_ { template< bool C > struct integral_c { static const bool value = C; typedef integral_c_tag tag; typedef integral_c type; typedef bool value_type; operator bool() const { return this->value; } }; } # 12 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/integral_constant.hpp" 2 3 4 namespace boost{ template struct integral_constant : public mpl::integral_c { typedef integral_constant type; }; template<> struct integral_constant : public mpl::true_ { typedef integral_constant type; }; template<> struct integral_constant : public mpl::false_ { typedef integral_constant type; }; typedef integral_constant true_type; typedef integral_constant false_type; } # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_array.hpp" 2 3 4 namespace boost { template< typename T > struct is_array : ::boost::integral_constant { }; template< typename T, std::size_t N > struct is_array< T[N] > : ::boost::integral_constant { }; template< typename T, std::size_t N > struct is_array< T const[N] > : ::boost::integral_constant { }; template< typename T, std::size_t N > struct is_array< T volatile[N] > : ::boost::integral_constant { }; template< typename T, std::size_t N > struct is_array< T const volatile[N] > : ::boost::integral_constant { }; template< typename T > struct is_array< T[] > : ::boost::integral_constant { }; template< typename T > struct is_array< T const[] > : ::boost::integral_constant { }; template< typename T > struct is_array< T volatile[] > : ::boost::integral_constant { }; template< typename T > struct is_array< T const volatile[] > : ::boost::integral_constant { }; # 87 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_array.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 90 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_array.hpp" 2 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/sfinae.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/yes_no_type.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/yes_no_type.hpp" 3 4 namespace boost { namespace type_traits { typedef char yes_type; struct no_type { char padding[8]; }; } } # 17 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/sfinae.hpp" 2 3 4 namespace boost { namespace range_detail { using type_traits::yes_type; using type_traits::no_type; yes_type is_string_impl( const char* const ); yes_type is_string_impl( const wchar_t* const ); no_type is_string_impl( ... ); template< std::size_t sz > yes_type is_char_array_impl( char (&boost_range_array)[sz] ); template< std::size_t sz > yes_type is_char_array_impl( const char (&boost_range_array)[sz] ); no_type is_char_array_impl( ... ); template< std::size_t sz > yes_type is_wchar_t_array_impl( wchar_t (&boost_range_array)[sz] ); template< std::size_t sz > yes_type is_wchar_t_array_impl( const wchar_t (&boost_range_array)[sz] ); no_type is_wchar_t_array_impl( ... ); yes_type is_char_ptr_impl( char* const ); no_type is_char_ptr_impl( ... ); yes_type is_const_char_ptr_impl( const char* const ); no_type is_const_char_ptr_impl( ... ); yes_type is_wchar_t_ptr_impl( wchar_t* const ); no_type is_wchar_t_ptr_impl( ... ); yes_type is_const_wchar_t_ptr_impl( const wchar_t* const ); no_type is_const_wchar_t_ptr_impl( ... ); template< typename Iterator > yes_type is_pair_impl( const std::pair* ); no_type is_pair_impl( ... ); struct char_or_wchar_t_array_tag {}; } } # 20 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/common.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_void.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_void.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_void.hpp" 2 3 4 namespace boost { template< typename T > struct is_void : ::boost::integral_constant { }; template<> struct is_void< void > : ::boost::integral_constant { }; template<> struct is_void< void const > : ::boost::integral_constant { }; template<> struct is_void< void volatile > : ::boost::integral_constant { }; template<> struct is_void< void const volatile > : ::boost::integral_constant { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_void.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/common.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/ice_or.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/ice_or.hpp" 3 4 namespace boost { namespace type_traits { template struct ice_or; template struct ice_or { static const bool value = true; }; template <> struct ice_or { static const bool value = false; }; } } # 22 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/common.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/common.hpp" 2 3 4 namespace boost { namespace range_detail { # 47 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/common.hpp" 3 4 typedef mpl::int_<1>::type std_container_; typedef mpl::int_<2>::type std_pair_; typedef mpl::int_<3>::type const_std_pair_; typedef mpl::int_<4>::type array_; typedef mpl::int_<5>::type const_array_; typedef mpl::int_<6>::type char_array_; typedef mpl::int_<7>::type wchar_t_array_; typedef mpl::int_<8>::type char_ptr_; typedef mpl::int_<9>::type const_char_ptr_; typedef mpl::int_<10>::type wchar_t_ptr_; typedef mpl::int_<11>::type const_wchar_t_ptr_; typedef mpl::int_<12>::type string_; template< typename C > struct range_helper { static C* c; static C ptr; static const bool is_pair_ = sizeof( boost::range_detail::is_pair_impl( c ) ) == sizeof( yes_type ); static const bool is_char_ptr_ = sizeof( boost::range_detail::is_char_ptr_impl( ptr ) ) == sizeof( yes_type ); static const bool is_const_char_ptr_ = sizeof( boost::range_detail::is_const_char_ptr_impl( ptr ) ) == sizeof( yes_type ); static const bool is_wchar_t_ptr_ = sizeof( boost::range_detail::is_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ); static const bool is_const_wchar_t_ptr_ = sizeof( boost::range_detail::is_const_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ); static const bool is_char_array_ = sizeof( boost::range_detail::is_char_array_impl( ptr ) ) == sizeof( yes_type ); static const bool is_wchar_t_array_ = sizeof( boost::range_detail::is_wchar_t_array_impl( ptr ) ) == sizeof( yes_type ); static const bool is_string_ = (boost::type_traits::ice_or::value ); static const bool is_array_ = boost::is_array::value; }; template< typename C > class range { typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_pair_, boost::range_detail::std_pair_, void >::type pair_t; typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_array_, boost::range_detail::array_, pair_t >::type array_t; typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_string_, boost::range_detail::string_, array_t >::type string_t; typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_const_char_ptr_, boost::range_detail::const_char_ptr_, string_t >::type const_char_ptr_t; typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_char_ptr_, boost::range_detail::char_ptr_, const_char_ptr_t >::type char_ptr_t; typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_const_wchar_t_ptr_, boost::range_detail::const_wchar_t_ptr_, char_ptr_t >::type const_wchar_ptr_t; typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_wchar_t_ptr_, boost::range_detail::wchar_t_ptr_, const_wchar_ptr_t >::type wchar_ptr_t; typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_wchar_t_array_, boost::range_detail::wchar_t_array_, wchar_ptr_t >::type wchar_array_t; typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_char_array_, boost::range_detail::char_array_, wchar_array_t >::type char_array_t; public: typedef typename boost::mpl::if_c< ::boost::is_void::value, boost::range_detail::std_container_, char_array_t >::type type; }; } } # 16 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/implementation_help.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_same.hpp" 1 3 4 # 31 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_same.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_same.hpp" 2 3 4 namespace boost { template< typename T, typename U > struct is_same : ::boost::integral_constant { }; template< typename T > struct is_same< T,T > : ::boost::integral_constant { }; # 98 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_same.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 101 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_same.hpp" 2 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/implementation_help.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/implementation_help.hpp" 2 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/implementation_help.hpp" 2 3 4 namespace boost { namespace range_detail { template inline void boost_range_silence_warning( const T& ) { } inline const char* str_end( const char* s, const char* ) { return s + strlen( s ); } inline const wchar_t* str_end( const wchar_t* s, const wchar_t* ) { return s + wcslen( s ); } # 56 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/implementation_help.hpp" 3 4 template< class Char > inline Char* str_end( Char* s ) { return const_cast( str_end( s, s ) ); } template< class T, std::size_t sz > inline T* array_end( T (&boost_range_array)[sz] ) { return boost_range_array + sz; } template< class T, std::size_t sz > inline const T* array_end( const T (&boost_range_array)[sz] ) { return boost_range_array + sz; } template< class Char > inline std::size_t str_size( const Char* const& s ) { return str_end( s ) - s; } template< class T, std::size_t sz > inline std::size_t array_size( T (&boost_range_array)[sz] ) { boost_range_silence_warning( boost_range_array ); return sz; } template< class T, std::size_t sz > inline std::size_t array_size( const T (&boost_range_array)[sz] ) { boost_range_silence_warning( boost_range_array ); return sz; } } } # 25 "/home/jas/.tt/ttsetup/opt/include/boost/range/end.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/iterator.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/range/iterator.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/mutable_iterator.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/range/mutable_iterator.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/extract_optional_type.hpp" 1 3 4 # 30 "/home/jas/.tt/ttsetup/opt/include/boost/range/detail/extract_optional_type.hpp" 3 4 namespace boost { namespace range_detail { template< typename T > struct exists { typedef void type; }; } } # 25 "/home/jas/.tt/ttsetup/opt/include/boost/range/mutable_iterator.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_traits.hpp" 1 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/detail/iterator.hpp" 1 3 4 # 54 "/home/jas/.tt/ttsetup/opt/include/boost/detail/iterator.hpp" 3 4 # 1 "/usr/include/c++/4.5/iterator" 1 3 4 # 58 "/usr/include/c++/4.5/iterator" 3 4 # 59 "/usr/include/c++/4.5/iterator" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 62 "/usr/include/c++/4.5/iterator" 2 3 # 1 "/usr/include/c++/4.5/ostream" 1 3 # 38 "/usr/include/c++/4.5/ostream" 3 # 39 "/usr/include/c++/4.5/ostream" 3 # 1 "/usr/include/c++/4.5/ios" 1 3 # 37 "/usr/include/c++/4.5/ios" 3 # 38 "/usr/include/c++/4.5/ios" 3 # 1 "/usr/include/c++/4.5/bits/ios_base.h" 1 3 # 39 "/usr/include/c++/4.5/bits/ios_base.h" 3 # 40 "/usr/include/c++/4.5/bits/ios_base.h" 3 # 1 "/usr/include/c++/4.5/bits/locale_classes.h" 1 3 # 39 "/usr/include/c++/4.5/bits/locale_classes.h" 3 # 40 "/usr/include/c++/4.5/bits/locale_classes.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 62 "/usr/include/c++/4.5/bits/locale_classes.h" 3 class locale { public: typedef int category; class facet; class id; class _Impl; friend class facet; friend class _Impl; template friend bool has_facet(const locale&) throw(); template friend const _Facet& use_facet(const locale&); template friend struct __use_cache; # 98 "/usr/include/c++/4.5/bits/locale_classes.h" 3 static const category none = 0; static const category ctype = 1L << 0; static const category numeric = 1L << 1; static const category collate = 1L << 2; static const category time = 1L << 3; static const category monetary = 1L << 4; static const category messages = 1L << 5; static const category all = (ctype | numeric | collate | time | monetary | messages); # 117 "/usr/include/c++/4.5/bits/locale_classes.h" 3 locale() throw(); # 126 "/usr/include/c++/4.5/bits/locale_classes.h" 3 locale(const locale& __other) throw(); # 136 "/usr/include/c++/4.5/bits/locale_classes.h" 3 explicit locale(const char* __s); # 151 "/usr/include/c++/4.5/bits/locale_classes.h" 3 locale(const locale& __base, const char* __s, category __cat); # 164 "/usr/include/c++/4.5/bits/locale_classes.h" 3 locale(const locale& __base, const locale& __add, category __cat); # 176 "/usr/include/c++/4.5/bits/locale_classes.h" 3 template locale(const locale& __other, _Facet* __f); ~locale() throw(); # 190 "/usr/include/c++/4.5/bits/locale_classes.h" 3 const locale& operator=(const locale& __other) throw(); # 205 "/usr/include/c++/4.5/bits/locale_classes.h" 3 template locale combine(const locale& __other) const; string name() const; # 224 "/usr/include/c++/4.5/bits/locale_classes.h" 3 bool operator==(const locale& __other) const throw(); bool operator!=(const locale& __other) const throw() { return !(this->operator==(__other)); } # 252 "/usr/include/c++/4.5/bits/locale_classes.h" 3 template bool operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, const basic_string<_Char, _Traits, _Alloc>& __s2) const; # 268 "/usr/include/c++/4.5/bits/locale_classes.h" 3 static locale global(const locale&); static const locale& classic(); private: _Impl* _M_impl; static _Impl* _S_classic; static _Impl* _S_global; static const char* const* const _S_categories; # 303 "/usr/include/c++/4.5/bits/locale_classes.h" 3 enum { _S_categories_size = 6 + 6 }; static __gthread_once_t _S_once; explicit locale(_Impl*) throw(); static void _S_initialize(); static void _S_initialize_once() throw(); static category _S_normalize_category(category); void _M_coalesce(const locale& __base, const locale& __add, category __cat); }; # 337 "/usr/include/c++/4.5/bits/locale_classes.h" 3 class locale::facet { private: friend class locale; friend class locale::_Impl; mutable _Atomic_word _M_refcount; static __c_locale _S_c_locale; static const char _S_c_name[2]; static __gthread_once_t _S_once; static void _S_initialize_once(); protected: # 368 "/usr/include/c++/4.5/bits/locale_classes.h" 3 explicit facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) { } virtual ~facet(); static void _S_create_c_locale(__c_locale& __cloc, const char* __s, __c_locale __old = 0); static __c_locale _S_clone_c_locale(__c_locale& __cloc) throw(); static void _S_destroy_c_locale(__c_locale& __cloc); static __c_locale _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); static __c_locale _S_get_c_locale(); __attribute__ ((__const__)) static const char* _S_get_c_name() throw(); private: void _M_add_reference() const throw() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } void _M_remove_reference() const throw() { if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) { try { delete this; } catch(...) { } } } facet(const facet&); facet& operator=(const facet&); }; # 432 "/usr/include/c++/4.5/bits/locale_classes.h" 3 class locale::id { private: friend class locale; friend class locale::_Impl; template friend const _Facet& use_facet(const locale&); template friend bool has_facet(const locale&) throw(); mutable size_t _M_index; static _Atomic_word _S_refcount; void operator=(const id&); id(const id&); public: id() { } size_t _M_id() const throw(); }; class locale::_Impl { public: friend class locale; friend class locale::facet; template friend bool has_facet(const locale&) throw(); template friend const _Facet& use_facet(const locale&); template friend struct __use_cache; private: _Atomic_word _M_refcount; const facet** _M_facets; size_t _M_facets_size; const facet** _M_caches; char** _M_names; static const locale::id* const _S_id_ctype[]; static const locale::id* const _S_id_numeric[]; static const locale::id* const _S_id_collate[]; static const locale::id* const _S_id_time[]; static const locale::id* const _S_id_monetary[]; static const locale::id* const _S_id_messages[]; static const locale::id* const* const _S_facet_categories[]; void _M_add_reference() throw() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } void _M_remove_reference() throw() { if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) { try { delete this; } catch(...) { } } } _Impl(const _Impl&, size_t); _Impl(const char*, size_t); _Impl(size_t) throw(); ~_Impl() throw(); _Impl(const _Impl&); void operator=(const _Impl&); bool _M_check_same_name() { bool __ret = true; if (_M_names[1]) for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; return __ret; } void _M_replace_categories(const _Impl*, category); void _M_replace_category(const _Impl*, const locale::id* const*); void _M_replace_facet(const _Impl*, const locale::id*); void _M_install_facet(const locale::id*, const facet*); template void _M_init_facet(_Facet* __facet) { _M_install_facet(&_Facet::id, __facet); } void _M_install_cache(const facet*, size_t); }; # 575 "/usr/include/c++/4.5/bits/locale_classes.h" 3 template bool has_facet(const locale& __loc) throw(); # 592 "/usr/include/c++/4.5/bits/locale_classes.h" 3 template const _Facet& use_facet(const locale& __loc); # 609 "/usr/include/c++/4.5/bits/locale_classes.h" 3 template class collate : public locale::facet { public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; protected: __c_locale _M_c_locale_collate; public: static locale::id id; # 636 "/usr/include/c++/4.5/bits/locale_classes.h" 3 explicit collate(size_t __refs = 0) : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) { } # 650 "/usr/include/c++/4.5/bits/locale_classes.h" 3 explicit collate(__c_locale __cloc, size_t __refs = 0) : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) { } # 667 "/usr/include/c++/4.5/bits/locale_classes.h" 3 int compare(const _CharT* __lo1, const _CharT* __hi1, const _CharT* __lo2, const _CharT* __hi2) const { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } # 686 "/usr/include/c++/4.5/bits/locale_classes.h" 3 string_type transform(const _CharT* __lo, const _CharT* __hi) const { return this->do_transform(__lo, __hi); } # 700 "/usr/include/c++/4.5/bits/locale_classes.h" 3 long hash(const _CharT* __lo, const _CharT* __hi) const { return this->do_hash(__lo, __hi); } int _M_compare(const _CharT*, const _CharT*) const throw(); size_t _M_transform(_CharT*, const _CharT*, size_t) const throw(); protected: virtual ~collate() { _S_destroy_c_locale(_M_c_locale_collate); } # 729 "/usr/include/c++/4.5/bits/locale_classes.h" 3 virtual int do_compare(const _CharT* __lo1, const _CharT* __hi1, const _CharT* __lo2, const _CharT* __hi2) const; # 745 "/usr/include/c++/4.5/bits/locale_classes.h" 3 virtual string_type do_transform(const _CharT* __lo, const _CharT* __hi) const; # 758 "/usr/include/c++/4.5/bits/locale_classes.h" 3 virtual long do_hash(const _CharT* __lo, const _CharT* __hi) const; }; template locale::id collate<_CharT>::id; template<> int collate::_M_compare(const char*, const char*) const throw(); template<> size_t collate::_M_transform(char*, const char*, size_t) const throw(); template<> int collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); template<> size_t collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); template class collate_byname : public collate<_CharT> { public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; explicit collate_byname(const char* __s, size_t __refs = 0) : collate<_CharT>(__refs) { if (__builtin_strcmp(__s, "C") != 0 && __builtin_strcmp(__s, "POSIX") != 0) { this->_S_destroy_c_locale(this->_M_c_locale_collate); this->_S_create_c_locale(this->_M_c_locale_collate, __s); } } protected: virtual ~collate_byname() { } }; } # 1 "/usr/include/c++/4.5/bits/locale_classes.tcc" 1 3 # 37 "/usr/include/c++/4.5/bits/locale_classes.tcc" 3 # 38 "/usr/include/c++/4.5/bits/locale_classes.tcc" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template locale:: locale(const locale& __other, _Facet* __f) { _M_impl = new _Impl(*__other._M_impl, 1); try { _M_impl->_M_install_facet(&_Facet::id, __f); } catch(...) { _M_impl->_M_remove_reference(); throw; } delete [] _M_impl->_M_names[0]; _M_impl->_M_names[0] = 0; } template locale locale:: combine(const locale& __other) const { _Impl* __tmp = new _Impl(*_M_impl, 1); try { __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); } catch(...) { __tmp->_M_remove_reference(); throw; } return locale(__tmp); } template bool locale:: operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, const basic_string<_CharT, _Traits, _Alloc>& __s2) const { typedef std::collate<_CharT> __collate_type; const __collate_type& __collate = use_facet<__collate_type>(*this); return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), __s2.data(), __s2.data() + __s2.length()) < 0); } template bool has_facet(const locale& __loc) throw() { const size_t __i = _Facet::id._M_id(); const locale::facet** __facets = __loc._M_impl->_M_facets; return (__i < __loc._M_impl->_M_facets_size && dynamic_cast(__facets[__i])); } template const _Facet& use_facet(const locale& __loc) { const size_t __i = _Facet::id._M_id(); const locale::facet** __facets = __loc._M_impl->_M_facets; if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) __throw_bad_cast(); return dynamic_cast(*__facets[__i]); } template int collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () { return 0; } template size_t collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () { return 0; } template int collate<_CharT>:: do_compare(const _CharT* __lo1, const _CharT* __hi1, const _CharT* __lo2, const _CharT* __hi2) const { const string_type __one(__lo1, __hi1); const string_type __two(__lo2, __hi2); const _CharT* __p = __one.c_str(); const _CharT* __pend = __one.data() + __one.length(); const _CharT* __q = __two.c_str(); const _CharT* __qend = __two.data() + __two.length(); for (;;) { const int __res = _M_compare(__p, __q); if (__res) return __res; __p += char_traits<_CharT>::length(__p); __q += char_traits<_CharT>::length(__q); if (__p == __pend && __q == __qend) return 0; else if (__p == __pend) return -1; else if (__q == __qend) return 1; __p++; __q++; } } template typename collate<_CharT>::string_type collate<_CharT>:: do_transform(const _CharT* __lo, const _CharT* __hi) const { string_type __ret; const string_type __str(__lo, __hi); const _CharT* __p = __str.c_str(); const _CharT* __pend = __str.data() + __str.length(); size_t __len = (__hi - __lo) * 2; _CharT* __c = new _CharT[__len]; try { for (;;) { size_t __res = _M_transform(__c, __p, __len); if (__res >= __len) { __len = __res + 1; delete [] __c, __c = 0; __c = new _CharT[__len]; __res = _M_transform(__c, __p, __len); } __ret.append(__c, __res); __p += char_traits<_CharT>::length(__p); if (__p == __pend) break; __p++; __ret.push_back(_CharT()); } } catch(...) { delete [] __c; throw; } delete [] __c; return __ret; } template long collate<_CharT>:: do_hash(const _CharT* __lo, const _CharT* __hi) const { unsigned long __val = 0; for (; __lo < __hi; ++__lo) __val = *__lo + ((__val << 7) | (__val >> (__gnu_cxx::__numeric_traits:: __digits - 7))); return static_cast(__val); } extern template class collate; extern template class collate_byname; extern template const collate& use_facet >(const locale&); extern template bool has_facet >(const locale&); extern template class collate; extern template class collate_byname; extern template const collate& use_facet >(const locale&); extern template bool has_facet >(const locale&); } # 816 "/usr/include/c++/4.5/bits/locale_classes.h" 2 3 # 44 "/usr/include/c++/4.5/bits/ios_base.h" 2 3 # 54 "/usr/include/c++/4.5/bits/ios_base.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { enum _Ios_Fmtflags { _S_boolalpha = 1L << 0, _S_dec = 1L << 1, _S_fixed = 1L << 2, _S_hex = 1L << 3, _S_internal = 1L << 4, _S_left = 1L << 5, _S_oct = 1L << 6, _S_right = 1L << 7, _S_scientific = 1L << 8, _S_showbase = 1L << 9, _S_showpoint = 1L << 10, _S_showpos = 1L << 11, _S_skipws = 1L << 12, _S_unitbuf = 1L << 13, _S_uppercase = 1L << 14, _S_adjustfield = _S_left | _S_right | _S_internal, _S_basefield = _S_dec | _S_oct | _S_hex, _S_floatfield = _S_scientific | _S_fixed, _S_ios_fmtflags_end = 1L << 16 }; inline _Ios_Fmtflags operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } inline _Ios_Fmtflags operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } inline _Ios_Fmtflags operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } inline _Ios_Fmtflags& operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) { return __a = __a | __b; } inline _Ios_Fmtflags& operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) { return __a = __a & __b; } inline _Ios_Fmtflags& operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) { return __a = __a ^ __b; } inline _Ios_Fmtflags operator~(_Ios_Fmtflags __a) { return _Ios_Fmtflags(~static_cast(__a)); } enum _Ios_Openmode { _S_app = 1L << 0, _S_ate = 1L << 1, _S_bin = 1L << 2, _S_in = 1L << 3, _S_out = 1L << 4, _S_trunc = 1L << 5, _S_ios_openmode_end = 1L << 16 }; inline _Ios_Openmode operator&(_Ios_Openmode __a, _Ios_Openmode __b) { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } inline _Ios_Openmode operator|(_Ios_Openmode __a, _Ios_Openmode __b) { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } inline _Ios_Openmode operator^(_Ios_Openmode __a, _Ios_Openmode __b) { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } inline _Ios_Openmode& operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) { return __a = __a | __b; } inline _Ios_Openmode& operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) { return __a = __a & __b; } inline _Ios_Openmode& operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) { return __a = __a ^ __b; } inline _Ios_Openmode operator~(_Ios_Openmode __a) { return _Ios_Openmode(~static_cast(__a)); } enum _Ios_Iostate { _S_goodbit = 0, _S_badbit = 1L << 0, _S_eofbit = 1L << 1, _S_failbit = 1L << 2, _S_ios_iostate_end = 1L << 16 }; inline _Ios_Iostate operator&(_Ios_Iostate __a, _Ios_Iostate __b) { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } inline _Ios_Iostate operator|(_Ios_Iostate __a, _Ios_Iostate __b) { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } inline _Ios_Iostate operator^(_Ios_Iostate __a, _Ios_Iostate __b) { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } inline _Ios_Iostate& operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) { return __a = __a | __b; } inline _Ios_Iostate& operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) { return __a = __a & __b; } inline _Ios_Iostate& operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) { return __a = __a ^ __b; } inline _Ios_Iostate operator~(_Ios_Iostate __a) { return _Ios_Iostate(~static_cast(__a)); } enum _Ios_Seekdir { _S_beg = 0, _S_cur = 1, _S_end = 2, _S_ios_seekdir_end = 1L << 16 }; # 207 "/usr/include/c++/4.5/bits/ios_base.h" 3 class ios_base { public: class failure : public exception { public: explicit failure(const string& __str) throw(); virtual ~failure() throw(); virtual const char* what() const throw(); private: string _M_msg; }; # 263 "/usr/include/c++/4.5/bits/ios_base.h" 3 typedef _Ios_Fmtflags fmtflags; static const fmtflags boolalpha = _S_boolalpha; static const fmtflags dec = _S_dec; static const fmtflags fixed = _S_fixed; static const fmtflags hex = _S_hex; static const fmtflags internal = _S_internal; static const fmtflags left = _S_left; static const fmtflags oct = _S_oct; static const fmtflags right = _S_right; static const fmtflags scientific = _S_scientific; static const fmtflags showbase = _S_showbase; static const fmtflags showpoint = _S_showpoint; static const fmtflags showpos = _S_showpos; static const fmtflags skipws = _S_skipws; static const fmtflags unitbuf = _S_unitbuf; static const fmtflags uppercase = _S_uppercase; static const fmtflags adjustfield = _S_adjustfield; static const fmtflags basefield = _S_basefield; static const fmtflags floatfield = _S_floatfield; # 338 "/usr/include/c++/4.5/bits/ios_base.h" 3 typedef _Ios_Iostate iostate; static const iostate badbit = _S_badbit; static const iostate eofbit = _S_eofbit; static const iostate failbit = _S_failbit; static const iostate goodbit = _S_goodbit; # 369 "/usr/include/c++/4.5/bits/ios_base.h" 3 typedef _Ios_Openmode openmode; static const openmode app = _S_app; static const openmode ate = _S_ate; static const openmode binary = _S_bin; static const openmode in = _S_in; static const openmode out = _S_out; static const openmode trunc = _S_trunc; # 401 "/usr/include/c++/4.5/bits/ios_base.h" 3 typedef _Ios_Seekdir seekdir; static const seekdir beg = _S_beg; static const seekdir cur = _S_cur; static const seekdir end = _S_end; typedef int io_state; typedef int open_mode; typedef int seek_dir; typedef std::streampos streampos; typedef std::streamoff streamoff; # 427 "/usr/include/c++/4.5/bits/ios_base.h" 3 enum event { erase_event, imbue_event, copyfmt_event }; # 444 "/usr/include/c++/4.5/bits/ios_base.h" 3 typedef void (*event_callback) (event, ios_base&, int); # 456 "/usr/include/c++/4.5/bits/ios_base.h" 3 void register_callback(event_callback __fn, int __index); protected: streamsize _M_precision; streamsize _M_width; fmtflags _M_flags; iostate _M_exception; iostate _M_streambuf_state; struct _Callback_list { _Callback_list* _M_next; ios_base::event_callback _M_fn; int _M_index; _Atomic_word _M_refcount; _Callback_list(ios_base::event_callback __fn, int __index, _Callback_list* __cb) : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } void _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } int _M_remove_reference() { return __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); } }; _Callback_list* _M_callbacks; void _M_call_callbacks(event __ev) throw(); void _M_dispose_callbacks(void) throw(); struct _Words { void* _M_pword; long _M_iword; _Words() : _M_pword(0), _M_iword(0) { } }; _Words _M_word_zero; enum { _S_local_word_size = 8 }; _Words _M_local_word[_S_local_word_size]; int _M_word_size; _Words* _M_word; _Words& _M_grow_words(int __index, bool __iword); locale _M_ios_locale; void _M_init() throw(); public: class Init { friend class ios_base; public: Init(); ~Init(); private: static _Atomic_word _S_refcount; static bool _S_synced_with_stdio; }; fmtflags flags() const { return _M_flags; } # 560 "/usr/include/c++/4.5/bits/ios_base.h" 3 fmtflags flags(fmtflags __fmtfl) { fmtflags __old = _M_flags; _M_flags = __fmtfl; return __old; } # 576 "/usr/include/c++/4.5/bits/ios_base.h" 3 fmtflags setf(fmtflags __fmtfl) { fmtflags __old = _M_flags; _M_flags |= __fmtfl; return __old; } # 593 "/usr/include/c++/4.5/bits/ios_base.h" 3 fmtflags setf(fmtflags __fmtfl, fmtflags __mask) { fmtflags __old = _M_flags; _M_flags &= ~__mask; _M_flags |= (__fmtfl & __mask); return __old; } void unsetf(fmtflags __mask) { _M_flags &= ~__mask; } # 619 "/usr/include/c++/4.5/bits/ios_base.h" 3 streamsize precision() const { return _M_precision; } streamsize precision(streamsize __prec) { streamsize __old = _M_precision; _M_precision = __prec; return __old; } streamsize width() const { return _M_width; } streamsize width(streamsize __wide) { streamsize __old = _M_width; _M_width = __wide; return __old; } # 670 "/usr/include/c++/4.5/bits/ios_base.h" 3 static bool sync_with_stdio(bool __sync = true); # 682 "/usr/include/c++/4.5/bits/ios_base.h" 3 locale imbue(const locale& __loc) throw(); # 693 "/usr/include/c++/4.5/bits/ios_base.h" 3 locale getloc() const { return _M_ios_locale; } # 704 "/usr/include/c++/4.5/bits/ios_base.h" 3 const locale& _M_getloc() const { return _M_ios_locale; } # 723 "/usr/include/c++/4.5/bits/ios_base.h" 3 static int xalloc() throw(); # 739 "/usr/include/c++/4.5/bits/ios_base.h" 3 long& iword(int __ix) { _Words& __word = (__ix < _M_word_size) ? _M_word[__ix] : _M_grow_words(__ix, true); return __word._M_iword; } # 760 "/usr/include/c++/4.5/bits/ios_base.h" 3 void*& pword(int __ix) { _Words& __word = (__ix < _M_word_size) ? _M_word[__ix] : _M_grow_words(__ix, false); return __word._M_pword; } # 777 "/usr/include/c++/4.5/bits/ios_base.h" 3 virtual ~ios_base(); protected: ios_base() throw (); private: ios_base(const ios_base&); ios_base& operator=(const ios_base&); }; inline ios_base& boolalpha(ios_base& __base) { __base.setf(ios_base::boolalpha); return __base; } inline ios_base& noboolalpha(ios_base& __base) { __base.unsetf(ios_base::boolalpha); return __base; } inline ios_base& showbase(ios_base& __base) { __base.setf(ios_base::showbase); return __base; } inline ios_base& noshowbase(ios_base& __base) { __base.unsetf(ios_base::showbase); return __base; } inline ios_base& showpoint(ios_base& __base) { __base.setf(ios_base::showpoint); return __base; } inline ios_base& noshowpoint(ios_base& __base) { __base.unsetf(ios_base::showpoint); return __base; } inline ios_base& showpos(ios_base& __base) { __base.setf(ios_base::showpos); return __base; } inline ios_base& noshowpos(ios_base& __base) { __base.unsetf(ios_base::showpos); return __base; } inline ios_base& skipws(ios_base& __base) { __base.setf(ios_base::skipws); return __base; } inline ios_base& noskipws(ios_base& __base) { __base.unsetf(ios_base::skipws); return __base; } inline ios_base& uppercase(ios_base& __base) { __base.setf(ios_base::uppercase); return __base; } inline ios_base& nouppercase(ios_base& __base) { __base.unsetf(ios_base::uppercase); return __base; } inline ios_base& unitbuf(ios_base& __base) { __base.setf(ios_base::unitbuf); return __base; } inline ios_base& nounitbuf(ios_base& __base) { __base.unsetf(ios_base::unitbuf); return __base; } inline ios_base& internal(ios_base& __base) { __base.setf(ios_base::internal, ios_base::adjustfield); return __base; } inline ios_base& left(ios_base& __base) { __base.setf(ios_base::left, ios_base::adjustfield); return __base; } inline ios_base& right(ios_base& __base) { __base.setf(ios_base::right, ios_base::adjustfield); return __base; } inline ios_base& dec(ios_base& __base) { __base.setf(ios_base::dec, ios_base::basefield); return __base; } inline ios_base& hex(ios_base& __base) { __base.setf(ios_base::hex, ios_base::basefield); return __base; } inline ios_base& oct(ios_base& __base) { __base.setf(ios_base::oct, ios_base::basefield); return __base; } inline ios_base& fixed(ios_base& __base) { __base.setf(ios_base::fixed, ios_base::floatfield); return __base; } inline ios_base& scientific(ios_base& __base) { __base.setf(ios_base::scientific, ios_base::floatfield); return __base; } } # 44 "/usr/include/c++/4.5/ios" 2 3 # 1 "/usr/include/c++/4.5/streambuf" 1 3 # 37 "/usr/include/c++/4.5/streambuf" 3 # 38 "/usr/include/c++/4.5/streambuf" 3 # 46 "/usr/include/c++/4.5/streambuf" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template streamsize __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, basic_streambuf<_CharT, _Traits>*, bool&); # 114 "/usr/include/c++/4.5/streambuf" 3 template class basic_streambuf { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef basic_streambuf __streambuf_type; friend class basic_ios; friend class basic_istream; friend class basic_ostream; friend class istreambuf_iterator; friend class ostreambuf_iterator; friend streamsize __copy_streambufs_eof<>(__streambuf_type*, __streambuf_type*, bool&); template friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, _CharT2*>::__type __copy_move_a2(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, _CharT2*); template friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, istreambuf_iterator<_CharT2> >::__type find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, const _CharT2&); template friend basic_istream<_CharT2, _Traits2>& operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); template friend basic_istream<_CharT2, _Traits2>& operator>>(basic_istream<_CharT2, _Traits2>&, basic_string<_CharT2, _Traits2, _Alloc>&); template friend basic_istream<_CharT2, _Traits2>& getline(basic_istream<_CharT2, _Traits2>&, basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); protected: # 180 "/usr/include/c++/4.5/streambuf" 3 char_type* _M_in_beg; char_type* _M_in_cur; char_type* _M_in_end; char_type* _M_out_beg; char_type* _M_out_cur; char_type* _M_out_end; locale _M_buf_locale; public: virtual ~basic_streambuf() { } # 204 "/usr/include/c++/4.5/streambuf" 3 locale pubimbue(const locale &__loc) { locale __tmp(this->getloc()); this->imbue(__loc); _M_buf_locale = __loc; return __tmp; } # 221 "/usr/include/c++/4.5/streambuf" 3 locale getloc() const { return _M_buf_locale; } # 234 "/usr/include/c++/4.5/streambuf" 3 __streambuf_type* pubsetbuf(char_type* __s, streamsize __n) { return this->setbuf(__s, __n); } pos_type pubseekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode = ios_base::in | ios_base::out) { return this->seekoff(__off, __way, __mode); } pos_type pubseekpos(pos_type __sp, ios_base::openmode __mode = ios_base::in | ios_base::out) { return this->seekpos(__sp, __mode); } int pubsync() { return this->sync(); } # 261 "/usr/include/c++/4.5/streambuf" 3 streamsize in_avail() { const streamsize __ret = this->egptr() - this->gptr(); return __ret ? __ret : this->showmanyc(); } # 275 "/usr/include/c++/4.5/streambuf" 3 int_type snextc() { int_type __ret = traits_type::eof(); if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), __ret), true)) __ret = this->sgetc(); return __ret; } # 293 "/usr/include/c++/4.5/streambuf" 3 int_type sbumpc() { int_type __ret; if (__builtin_expect(this->gptr() < this->egptr(), true)) { __ret = traits_type::to_int_type(*this->gptr()); this->gbump(1); } else __ret = this->uflow(); return __ret; } # 315 "/usr/include/c++/4.5/streambuf" 3 int_type sgetc() { int_type __ret; if (__builtin_expect(this->gptr() < this->egptr(), true)) __ret = traits_type::to_int_type(*this->gptr()); else __ret = this->underflow(); return __ret; } # 334 "/usr/include/c++/4.5/streambuf" 3 streamsize sgetn(char_type* __s, streamsize __n) { return this->xsgetn(__s, __n); } # 349 "/usr/include/c++/4.5/streambuf" 3 int_type sputbackc(char_type __c) { int_type __ret; const bool __testpos = this->eback() < this->gptr(); if (__builtin_expect(!__testpos || !traits_type::eq(__c, this->gptr()[-1]), false)) __ret = this->pbackfail(traits_type::to_int_type(__c)); else { this->gbump(-1); __ret = traits_type::to_int_type(*this->gptr()); } return __ret; } # 374 "/usr/include/c++/4.5/streambuf" 3 int_type sungetc() { int_type __ret; if (__builtin_expect(this->eback() < this->gptr(), true)) { this->gbump(-1); __ret = traits_type::to_int_type(*this->gptr()); } else __ret = this->pbackfail(); return __ret; } # 401 "/usr/include/c++/4.5/streambuf" 3 int_type sputc(char_type __c) { int_type __ret; if (__builtin_expect(this->pptr() < this->epptr(), true)) { *this->pptr() = __c; this->pbump(1); __ret = traits_type::to_int_type(__c); } else __ret = this->overflow(traits_type::to_int_type(__c)); return __ret; } # 427 "/usr/include/c++/4.5/streambuf" 3 streamsize sputn(const char_type* __s, streamsize __n) { return this->xsputn(__s, __n); } protected: # 441 "/usr/include/c++/4.5/streambuf" 3 basic_streambuf() : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), _M_out_beg(0), _M_out_cur(0), _M_out_end(0), _M_buf_locale(locale()) { } # 459 "/usr/include/c++/4.5/streambuf" 3 char_type* eback() const { return _M_in_beg; } char_type* gptr() const { return _M_in_cur; } char_type* egptr() const { return _M_in_end; } # 475 "/usr/include/c++/4.5/streambuf" 3 void gbump(int __n) { _M_in_cur += __n; } # 486 "/usr/include/c++/4.5/streambuf" 3 void setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) { _M_in_beg = __gbeg; _M_in_cur = __gnext; _M_in_end = __gend; } # 506 "/usr/include/c++/4.5/streambuf" 3 char_type* pbase() const { return _M_out_beg; } char_type* pptr() const { return _M_out_cur; } char_type* epptr() const { return _M_out_end; } # 522 "/usr/include/c++/4.5/streambuf" 3 void pbump(int __n) { _M_out_cur += __n; } # 532 "/usr/include/c++/4.5/streambuf" 3 void setp(char_type* __pbeg, char_type* __pend) { _M_out_beg = _M_out_cur = __pbeg; _M_out_end = __pend; } # 553 "/usr/include/c++/4.5/streambuf" 3 virtual void imbue(const locale&) { } # 568 "/usr/include/c++/4.5/streambuf" 3 virtual basic_streambuf* setbuf(char_type*, streamsize) { return this; } # 579 "/usr/include/c++/4.5/streambuf" 3 virtual pos_type seekoff(off_type, ios_base::seekdir, ios_base::openmode = ios_base::in | ios_base::out) { return pos_type(off_type(-1)); } # 591 "/usr/include/c++/4.5/streambuf" 3 virtual pos_type seekpos(pos_type, ios_base::openmode = ios_base::in | ios_base::out) { return pos_type(off_type(-1)); } # 604 "/usr/include/c++/4.5/streambuf" 3 virtual int sync() { return 0; } # 626 "/usr/include/c++/4.5/streambuf" 3 virtual streamsize showmanyc() { return 0; } # 642 "/usr/include/c++/4.5/streambuf" 3 virtual streamsize xsgetn(char_type* __s, streamsize __n); # 664 "/usr/include/c++/4.5/streambuf" 3 virtual int_type underflow() { return traits_type::eof(); } # 677 "/usr/include/c++/4.5/streambuf" 3 virtual int_type uflow() { int_type __ret = traits_type::eof(); const bool __testeof = traits_type::eq_int_type(this->underflow(), __ret); if (!__testeof) { __ret = traits_type::to_int_type(*this->gptr()); this->gbump(1); } return __ret; } # 701 "/usr/include/c++/4.5/streambuf" 3 virtual int_type pbackfail(int_type = traits_type::eof()) { return traits_type::eof(); } # 719 "/usr/include/c++/4.5/streambuf" 3 virtual streamsize xsputn(const char_type* __s, streamsize __n); # 745 "/usr/include/c++/4.5/streambuf" 3 virtual int_type overflow(int_type = traits_type::eof()) { return traits_type::eof(); } public: # 760 "/usr/include/c++/4.5/streambuf" 3 void stossc() { if (this->gptr() < this->egptr()) this->gbump(1); else this->uflow(); } private: basic_streambuf(const __streambuf_type& __sb) : _M_in_beg(__sb._M_in_beg), _M_in_cur(__sb._M_in_cur), _M_in_end(__sb._M_in_end), _M_out_beg(__sb._M_out_beg), _M_out_cur(__sb._M_out_cur), _M_out_end(__sb._M_out_cur), _M_buf_locale(__sb._M_buf_locale) { } __streambuf_type& operator=(const __streambuf_type&) { return *this; }; }; template<> streamsize __copy_streambufs_eof(basic_streambuf* __sbin, basic_streambuf* __sbout, bool& __ineof); template<> streamsize __copy_streambufs_eof(basic_streambuf* __sbin, basic_streambuf* __sbout, bool& __ineof); } # 1 "/usr/include/c++/4.5/bits/streambuf.tcc" 1 3 # 38 "/usr/include/c++/4.5/bits/streambuf.tcc" 3 # 39 "/usr/include/c++/4.5/bits/streambuf.tcc" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template streamsize basic_streambuf<_CharT, _Traits>:: xsgetn(char_type* __s, streamsize __n) { streamsize __ret = 0; while (__ret < __n) { const streamsize __buf_len = this->egptr() - this->gptr(); if (__buf_len) { const streamsize __remaining = __n - __ret; const streamsize __len = std::min(__buf_len, __remaining); traits_type::copy(__s, this->gptr(), __len); __ret += __len; __s += __len; this->gbump(__len); } if (__ret < __n) { const int_type __c = this->uflow(); if (!traits_type::eq_int_type(__c, traits_type::eof())) { traits_type::assign(*__s++, traits_type::to_char_type(__c)); ++__ret; } else break; } } return __ret; } template streamsize basic_streambuf<_CharT, _Traits>:: xsputn(const char_type* __s, streamsize __n) { streamsize __ret = 0; while (__ret < __n) { const streamsize __buf_len = this->epptr() - this->pptr(); if (__buf_len) { const streamsize __remaining = __n - __ret; const streamsize __len = std::min(__buf_len, __remaining); traits_type::copy(this->pptr(), __s, __len); __ret += __len; __s += __len; this->pbump(__len); } if (__ret < __n) { int_type __c = this->overflow(traits_type::to_int_type(*__s)); if (!traits_type::eq_int_type(__c, traits_type::eof())) { ++__ret; ++__s; } else break; } } return __ret; } template streamsize __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, basic_streambuf<_CharT, _Traits>* __sbout, bool& __ineof) { streamsize __ret = 0; __ineof = true; typename _Traits::int_type __c = __sbin->sgetc(); while (!_Traits::eq_int_type(__c, _Traits::eof())) { __c = __sbout->sputc(_Traits::to_char_type(__c)); if (_Traits::eq_int_type(__c, _Traits::eof())) { __ineof = false; break; } ++__ret; __c = __sbin->snextc(); } return __ret; } template inline streamsize __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, basic_streambuf<_CharT, _Traits>* __sbout) { bool __ineof; return __copy_streambufs_eof(__sbin, __sbout, __ineof); } extern template class basic_streambuf; extern template streamsize __copy_streambufs(basic_streambuf*, basic_streambuf*); extern template streamsize __copy_streambufs_eof(basic_streambuf*, basic_streambuf*, bool&); extern template class basic_streambuf; extern template streamsize __copy_streambufs(basic_streambuf*, basic_streambuf*); extern template streamsize __copy_streambufs_eof(basic_streambuf*, basic_streambuf*, bool&); } # 800 "/usr/include/c++/4.5/streambuf" 2 3 # 45 "/usr/include/c++/4.5/ios" 2 3 # 1 "/usr/include/c++/4.5/bits/basic_ios.h" 1 3 # 35 "/usr/include/c++/4.5/bits/basic_ios.h" 3 # 36 "/usr/include/c++/4.5/bits/basic_ios.h" 3 # 1 "/usr/include/c++/4.5/bits/locale_facets.h" 1 3 # 39 "/usr/include/c++/4.5/bits/locale_facets.h" 3 # 40 "/usr/include/c++/4.5/bits/locale_facets.h" 3 # 1 "/usr/include/c++/4.5/cwctype" 1 3 # 41 "/usr/include/c++/4.5/cwctype" 3 # 42 "/usr/include/c++/4.5/cwctype" 3 # 1 "/usr/include/wctype.h" 1 3 4 # 34 "/usr/include/wctype.h" 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 35 "/usr/include/wctype.h" 2 3 4 # 50 "/usr/include/wctype.h" 3 4 typedef unsigned long int wctype_t; # 72 "/usr/include/wctype.h" 3 4 enum { __ISwupper = 0, __ISwlower = 1, __ISwalpha = 2, __ISwdigit = 3, __ISwxdigit = 4, __ISwspace = 5, __ISwprint = 6, __ISwgraph = 7, __ISwblank = 8, __ISwcntrl = 9, __ISwpunct = 10, __ISwalnum = 11, _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) }; extern "C" { extern int iswalnum (wint_t __wc) throw (); extern int iswalpha (wint_t __wc) throw (); extern int iswcntrl (wint_t __wc) throw (); extern int iswdigit (wint_t __wc) throw (); extern int iswgraph (wint_t __wc) throw (); extern int iswlower (wint_t __wc) throw (); extern int iswprint (wint_t __wc) throw (); extern int iswpunct (wint_t __wc) throw (); extern int iswspace (wint_t __wc) throw (); extern int iswupper (wint_t __wc) throw (); extern int iswxdigit (wint_t __wc) throw (); extern int iswblank (wint_t __wc) throw (); # 172 "/usr/include/wctype.h" 3 4 extern wctype_t wctype (__const char *__property) throw (); extern int iswctype (wint_t __wc, wctype_t __desc) throw (); typedef __const __int32_t *wctrans_t; extern wint_t towlower (wint_t __wc) throw (); extern wint_t towupper (wint_t __wc) throw (); } # 214 "/usr/include/wctype.h" 3 4 extern "C" { extern wctrans_t wctrans (__const char *__property) throw (); extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); extern int iswalnum_l (wint_t __wc, __locale_t __locale) throw (); extern int iswalpha_l (wint_t __wc, __locale_t __locale) throw (); extern int iswcntrl_l (wint_t __wc, __locale_t __locale) throw (); extern int iswdigit_l (wint_t __wc, __locale_t __locale) throw (); extern int iswgraph_l (wint_t __wc, __locale_t __locale) throw (); extern int iswlower_l (wint_t __wc, __locale_t __locale) throw (); extern int iswprint_l (wint_t __wc, __locale_t __locale) throw (); extern int iswpunct_l (wint_t __wc, __locale_t __locale) throw (); extern int iswspace_l (wint_t __wc, __locale_t __locale) throw (); extern int iswupper_l (wint_t __wc, __locale_t __locale) throw (); extern int iswxdigit_l (wint_t __wc, __locale_t __locale) throw (); extern int iswblank_l (wint_t __wc, __locale_t __locale) throw (); extern wctype_t wctype_l (__const char *__property, __locale_t __locale) throw (); extern int iswctype_l (wint_t __wc, wctype_t __desc, __locale_t __locale) throw (); extern wint_t towlower_l (wint_t __wc, __locale_t __locale) throw (); extern wint_t towupper_l (wint_t __wc, __locale_t __locale) throw (); extern wctrans_t wctrans_l (__const char *__property, __locale_t __locale) throw (); extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, __locale_t __locale) throw (); } # 47 "/usr/include/c++/4.5/cwctype" 2 3 # 76 "/usr/include/c++/4.5/cwctype" 3 namespace std __attribute__ ((__visibility__ ("default"))) { using ::wctrans_t; using ::wctype_t; using ::wint_t; using ::iswalnum; using ::iswalpha; using ::iswblank; using ::iswcntrl; using ::iswctype; using ::iswdigit; using ::iswgraph; using ::iswlower; using ::iswprint; using ::iswpunct; using ::iswspace; using ::iswupper; using ::iswxdigit; using ::towctrans; using ::towlower; using ::towupper; using ::wctrans; using ::wctype; } # 118 "/usr/include/c++/4.5/cwctype" 3 # 1 "/usr/include/c++/4.5/tr1_impl/cwctype" 1 3 # 32 "/usr/include/c++/4.5/tr1_impl/cwctype" 3 namespace std { using std::iswblank; } # 119 "/usr/include/c++/4.5/cwctype" 2 3 # 42 "/usr/include/c++/4.5/bits/locale_facets.h" 2 3 # 1 "/usr/include/c++/4.5/cctype" 1 3 # 41 "/usr/include/c++/4.5/cctype" 3 # 42 "/usr/include/c++/4.5/cctype" 3 # 43 "/usr/include/c++/4.5/bits/locale_facets.h" 2 3 # 1 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h" 1 3 # 37 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { struct ctype_base { typedef const int* __to_type; typedef unsigned short mask; static const mask upper = _ISupper; static const mask lower = _ISlower; static const mask alpha = _ISalpha; static const mask digit = _ISdigit; static const mask xdigit = _ISxdigit; static const mask space = _ISspace; static const mask print = _ISprint; static const mask graph = _ISalpha | _ISdigit | _ISpunct; static const mask cntrl = _IScntrl; static const mask punct = _ISpunct; static const mask alnum = _ISalpha | _ISdigit; }; } # 44 "/usr/include/c++/4.5/bits/locale_facets.h" 2 3 # 1 "/usr/include/c++/4.5/bits/streambuf_iterator.h" 1 3 # 35 "/usr/include/c++/4.5/bits/streambuf_iterator.h" 3 # 36 "/usr/include/c++/4.5/bits/streambuf_iterator.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 49 "/usr/include/c++/4.5/bits/streambuf_iterator.h" 3 template class istreambuf_iterator : public iterator { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename _Traits::int_type int_type; typedef basic_streambuf<_CharT, _Traits> streambuf_type; typedef basic_istream<_CharT, _Traits> istream_type; template friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, ostreambuf_iterator<_CharT2> >::__type copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, ostreambuf_iterator<_CharT2>); template friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, _CharT2*>::__type __copy_move_a2(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, _CharT2*); template friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, istreambuf_iterator<_CharT2> >::__type find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, const _CharT2&); private: mutable streambuf_type* _M_sbuf; mutable int_type _M_c; public: istreambuf_iterator() throw() : _M_sbuf(0), _M_c(traits_type::eof()) { } istreambuf_iterator(istream_type& __s) throw() : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } istreambuf_iterator(streambuf_type* __s) throw() : _M_sbuf(__s), _M_c(traits_type::eof()) { } char_type operator*() const { return traits_type::to_char_type(_M_get()); } istreambuf_iterator& operator++() { ; if (_M_sbuf) { _M_sbuf->sbumpc(); _M_c = traits_type::eof(); } return *this; } istreambuf_iterator operator++(int) { ; istreambuf_iterator __old = *this; if (_M_sbuf) { __old._M_c = _M_sbuf->sbumpc(); _M_c = traits_type::eof(); } return __old; } bool equal(const istreambuf_iterator& __b) const { return _M_at_eof() == __b._M_at_eof(); } private: int_type _M_get() const { const int_type __eof = traits_type::eof(); int_type __ret = __eof; if (_M_sbuf) { if (!traits_type::eq_int_type(_M_c, __eof)) __ret = _M_c; else if (!traits_type::eq_int_type((__ret = _M_sbuf->sgetc()), __eof)) _M_c = __ret; else _M_sbuf = 0; } return __ret; } bool _M_at_eof() const { const int_type __eof = traits_type::eof(); return traits_type::eq_int_type(_M_get(), __eof); } }; template inline bool operator==(const istreambuf_iterator<_CharT, _Traits>& __a, const istreambuf_iterator<_CharT, _Traits>& __b) { return __a.equal(__b); } template inline bool operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, const istreambuf_iterator<_CharT, _Traits>& __b) { return !__a.equal(__b); } template class ostreambuf_iterator : public iterator { public: typedef _CharT char_type; typedef _Traits traits_type; typedef basic_streambuf<_CharT, _Traits> streambuf_type; typedef basic_ostream<_CharT, _Traits> ostream_type; template friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, ostreambuf_iterator<_CharT2> >::__type copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, ostreambuf_iterator<_CharT2>); private: streambuf_type* _M_sbuf; bool _M_failed; public: ostreambuf_iterator(ostream_type& __s) throw () : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } ostreambuf_iterator(streambuf_type* __s) throw () : _M_sbuf(__s), _M_failed(!_M_sbuf) { } ostreambuf_iterator& operator=(_CharT __c) { if (!_M_failed && _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) _M_failed = true; return *this; } ostreambuf_iterator& operator*() { return *this; } ostreambuf_iterator& operator++(int) { return *this; } ostreambuf_iterator& operator++() { return *this; } bool failed() const throw() { return _M_failed; } ostreambuf_iterator& _M_put(const _CharT* __ws, streamsize __len) { if (__builtin_expect(!_M_failed, true) && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, false)) _M_failed = true; return *this; } }; template typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT> >::__type copy(istreambuf_iterator<_CharT> __first, istreambuf_iterator<_CharT> __last, ostreambuf_iterator<_CharT> __result) { if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) { bool __ineof; __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); if (!__ineof) __result._M_failed = true; } return __result; } template typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT> >::__type __copy_move_a2(_CharT* __first, _CharT* __last, ostreambuf_iterator<_CharT> __result) { const streamsize __num = __last - __first; if (__num > 0) __result._M_put(__first, __num); return __result; } template typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT> >::__type __copy_move_a2(const _CharT* __first, const _CharT* __last, ostreambuf_iterator<_CharT> __result) { const streamsize __num = __last - __first; if (__num > 0) __result._M_put(__first, __num); return __result; } template typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, _CharT*>::__type __copy_move_a2(istreambuf_iterator<_CharT> __first, istreambuf_iterator<_CharT> __last, _CharT* __result) { typedef istreambuf_iterator<_CharT> __is_iterator_type; typedef typename __is_iterator_type::traits_type traits_type; typedef typename __is_iterator_type::streambuf_type streambuf_type; typedef typename traits_type::int_type int_type; if (__first._M_sbuf && !__last._M_sbuf) { streambuf_type* __sb = __first._M_sbuf; int_type __c = __sb->sgetc(); while (!traits_type::eq_int_type(__c, traits_type::eof())) { const streamsize __n = __sb->egptr() - __sb->gptr(); if (__n > 1) { traits_type::copy(__result, __sb->gptr(), __n); __sb->gbump(__n); __result += __n; __c = __sb->underflow(); } else { *__result++ = traits_type::to_char_type(__c); __c = __sb->snextc(); } } } return __result; } template typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, istreambuf_iterator<_CharT> >::__type find(istreambuf_iterator<_CharT> __first, istreambuf_iterator<_CharT> __last, const _CharT& __val) { typedef istreambuf_iterator<_CharT> __is_iterator_type; typedef typename __is_iterator_type::traits_type traits_type; typedef typename __is_iterator_type::streambuf_type streambuf_type; typedef typename traits_type::int_type int_type; if (__first._M_sbuf && !__last._M_sbuf) { const int_type __ival = traits_type::to_int_type(__val); streambuf_type* __sb = __first._M_sbuf; int_type __c = __sb->sgetc(); while (!traits_type::eq_int_type(__c, traits_type::eof()) && !traits_type::eq_int_type(__c, __ival)) { streamsize __n = __sb->egptr() - __sb->gptr(); if (__n > 1) { const _CharT* __p = traits_type::find(__sb->gptr(), __n, __val); if (__p) __n = __p - __sb->gptr(); __sb->gbump(__n); __c = __sb->sgetc(); } else __c = __sb->snextc(); } if (!traits_type::eq_int_type(__c, traits_type::eof())) __first._M_c = __c; else __first._M_sbuf = 0; } return __first; } } # 51 "/usr/include/c++/4.5/bits/locale_facets.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 64 "/usr/include/c++/4.5/bits/locale_facets.h" 3 template void __convert_to_v(const char*, _Tp&, ios_base::iostate&, const __c_locale&) throw(); template<> void __convert_to_v(const char*, float&, ios_base::iostate&, const __c_locale&) throw(); template<> void __convert_to_v(const char*, double&, ios_base::iostate&, const __c_locale&) throw(); template<> void __convert_to_v(const char*, long double&, ios_base::iostate&, const __c_locale&) throw(); template struct __pad { static void _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, const _CharT* __olds, streamsize __newlen, streamsize __oldlen); }; template _CharT* __add_grouping(_CharT* __s, _CharT __sep, const char* __gbeg, size_t __gsize, const _CharT* __first, const _CharT* __last); template inline ostreambuf_iterator<_CharT> __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) { __s._M_put(__ws, __len); return __s; } template inline _OutIter __write(_OutIter __s, const _CharT* __ws, int __len) { for (int __j = 0; __j < __len; __j++, ++__s) *__s = __ws[__j]; return __s; } # 142 "/usr/include/c++/4.5/bits/locale_facets.h" 3 template class __ctype_abstract_base : public locale::facet, public ctype_base { public: typedef _CharT char_type; # 160 "/usr/include/c++/4.5/bits/locale_facets.h" 3 bool is(mask __m, char_type __c) const { return this->do_is(__m, __c); } # 177 "/usr/include/c++/4.5/bits/locale_facets.h" 3 const char_type* is(const char_type *__lo, const char_type *__hi, mask *__vec) const { return this->do_is(__lo, __hi, __vec); } # 193 "/usr/include/c++/4.5/bits/locale_facets.h" 3 const char_type* scan_is(mask __m, const char_type* __lo, const char_type* __hi) const { return this->do_scan_is(__m, __lo, __hi); } # 209 "/usr/include/c++/4.5/bits/locale_facets.h" 3 const char_type* scan_not(mask __m, const char_type* __lo, const char_type* __hi) const { return this->do_scan_not(__m, __lo, __hi); } # 223 "/usr/include/c++/4.5/bits/locale_facets.h" 3 char_type toupper(char_type __c) const { return this->do_toupper(__c); } # 238 "/usr/include/c++/4.5/bits/locale_facets.h" 3 const char_type* toupper(char_type *__lo, const char_type* __hi) const { return this->do_toupper(__lo, __hi); } # 252 "/usr/include/c++/4.5/bits/locale_facets.h" 3 char_type tolower(char_type __c) const { return this->do_tolower(__c); } # 267 "/usr/include/c++/4.5/bits/locale_facets.h" 3 const char_type* tolower(char_type* __lo, const char_type* __hi) const { return this->do_tolower(__lo, __hi); } # 284 "/usr/include/c++/4.5/bits/locale_facets.h" 3 char_type widen(char __c) const { return this->do_widen(__c); } # 303 "/usr/include/c++/4.5/bits/locale_facets.h" 3 const char* widen(const char* __lo, const char* __hi, char_type* __to) const { return this->do_widen(__lo, __hi, __to); } # 322 "/usr/include/c++/4.5/bits/locale_facets.h" 3 char narrow(char_type __c, char __dfault) const { return this->do_narrow(__c, __dfault); } # 344 "/usr/include/c++/4.5/bits/locale_facets.h" 3 const char_type* narrow(const char_type* __lo, const char_type* __hi, char __dfault, char *__to) const { return this->do_narrow(__lo, __hi, __dfault, __to); } protected: explicit __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } virtual ~__ctype_abstract_base() { } # 369 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual bool do_is(mask __m, char_type __c) const = 0; # 388 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const = 0; # 407 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const = 0; # 426 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const = 0; # 444 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char_type do_toupper(char_type) const = 0; # 461 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_toupper(char_type* __lo, const char_type* __hi) const = 0; # 477 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char_type do_tolower(char_type) const = 0; # 494 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_tolower(char_type* __lo, const char_type* __hi) const = 0; # 513 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char_type do_widen(char) const = 0; # 534 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char* do_widen(const char* __lo, const char* __hi, char_type* __dest) const = 0; # 556 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char do_narrow(char_type, char __dfault) const = 0; # 580 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_narrow(const char_type* __lo, const char_type* __hi, char __dfault, char* __dest) const = 0; }; # 603 "/usr/include/c++/4.5/bits/locale_facets.h" 3 template class ctype : public __ctype_abstract_base<_CharT> { public: typedef _CharT char_type; typedef typename __ctype_abstract_base<_CharT>::mask mask; static locale::id id; explicit ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } protected: virtual ~ctype(); virtual bool do_is(mask __m, char_type __c) const; virtual const char_type* do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; virtual const char_type* do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; virtual const char_type* do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const; virtual char_type do_toupper(char_type __c) const; virtual const char_type* do_toupper(char_type* __lo, const char_type* __hi) const; virtual char_type do_tolower(char_type __c) const; virtual const char_type* do_tolower(char_type* __lo, const char_type* __hi) const; virtual char_type do_widen(char __c) const; virtual const char* do_widen(const char* __lo, const char* __hi, char_type* __dest) const; virtual char do_narrow(char_type, char __dfault) const; virtual const char_type* do_narrow(const char_type* __lo, const char_type* __hi, char __dfault, char* __dest) const; }; template locale::id ctype<_CharT>::id; # 672 "/usr/include/c++/4.5/bits/locale_facets.h" 3 template<> class ctype : public locale::facet, public ctype_base { public: typedef char char_type; protected: __c_locale _M_c_locale_ctype; bool _M_del; __to_type _M_toupper; __to_type _M_tolower; const mask* _M_table; mutable char _M_widen_ok; mutable char _M_widen[1 + static_cast(-1)]; mutable char _M_narrow[1 + static_cast(-1)]; mutable char _M_narrow_ok; public: static locale::id id; static const size_t table_size = 1 + static_cast(-1); # 709 "/usr/include/c++/4.5/bits/locale_facets.h" 3 explicit ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); # 722 "/usr/include/c++/4.5/bits/locale_facets.h" 3 explicit ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, size_t __refs = 0); # 735 "/usr/include/c++/4.5/bits/locale_facets.h" 3 inline bool is(mask __m, char __c) const; # 750 "/usr/include/c++/4.5/bits/locale_facets.h" 3 inline const char* is(const char* __lo, const char* __hi, mask* __vec) const; # 764 "/usr/include/c++/4.5/bits/locale_facets.h" 3 inline const char* scan_is(mask __m, const char* __lo, const char* __hi) const; # 778 "/usr/include/c++/4.5/bits/locale_facets.h" 3 inline const char* scan_not(mask __m, const char* __lo, const char* __hi) const; # 793 "/usr/include/c++/4.5/bits/locale_facets.h" 3 char_type toupper(char_type __c) const { return this->do_toupper(__c); } # 810 "/usr/include/c++/4.5/bits/locale_facets.h" 3 const char_type* toupper(char_type *__lo, const char_type* __hi) const { return this->do_toupper(__lo, __hi); } # 826 "/usr/include/c++/4.5/bits/locale_facets.h" 3 char_type tolower(char_type __c) const { return this->do_tolower(__c); } # 843 "/usr/include/c++/4.5/bits/locale_facets.h" 3 const char_type* tolower(char_type* __lo, const char_type* __hi) const { return this->do_tolower(__lo, __hi); } # 863 "/usr/include/c++/4.5/bits/locale_facets.h" 3 char_type widen(char __c) const { if (_M_widen_ok) return _M_widen[static_cast(__c)]; this->_M_widen_init(); return this->do_widen(__c); } # 890 "/usr/include/c++/4.5/bits/locale_facets.h" 3 const char* widen(const char* __lo, const char* __hi, char_type* __to) const { if (_M_widen_ok == 1) { __builtin_memcpy(__to, __lo, __hi - __lo); return __hi; } if (!_M_widen_ok) _M_widen_init(); return this->do_widen(__lo, __hi, __to); } # 921 "/usr/include/c++/4.5/bits/locale_facets.h" 3 char narrow(char_type __c, char __dfault) const { if (_M_narrow[static_cast(__c)]) return _M_narrow[static_cast(__c)]; const char __t = do_narrow(__c, __dfault); if (__t != __dfault) _M_narrow[static_cast(__c)] = __t; return __t; } # 954 "/usr/include/c++/4.5/bits/locale_facets.h" 3 const char_type* narrow(const char_type* __lo, const char_type* __hi, char __dfault, char *__to) const { if (__builtin_expect(_M_narrow_ok == 1, true)) { __builtin_memcpy(__to, __lo, __hi - __lo); return __hi; } if (!_M_narrow_ok) _M_narrow_init(); return this->do_narrow(__lo, __hi, __dfault, __to); } const mask* table() const throw() { return _M_table; } static const mask* classic_table() throw(); protected: virtual ~ctype(); # 1003 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char_type do_toupper(char_type) const; # 1020 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_toupper(char_type* __lo, const char_type* __hi) const; # 1036 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char_type do_tolower(char_type) const; # 1053 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_tolower(char_type* __lo, const char_type* __hi) const; # 1073 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char_type do_widen(char __c) const { return __c; } # 1096 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char* do_widen(const char* __lo, const char* __hi, char_type* __dest) const { __builtin_memcpy(__dest, __lo, __hi - __lo); return __hi; } # 1122 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char do_narrow(char_type __c, char) const { return __c; } # 1148 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_narrow(const char_type* __lo, const char_type* __hi, char, char* __dest) const { __builtin_memcpy(__dest, __lo, __hi - __lo); return __hi; } private: void _M_narrow_init() const; void _M_widen_init() const; }; # 1173 "/usr/include/c++/4.5/bits/locale_facets.h" 3 template<> class ctype : public __ctype_abstract_base { public: typedef wchar_t char_type; typedef wctype_t __wmask_type; protected: __c_locale _M_c_locale_ctype; bool _M_narrow_ok; char _M_narrow[128]; wint_t _M_widen[1 + static_cast(-1)]; mask _M_bit[16]; __wmask_type _M_wmask[16]; public: static locale::id id; # 1206 "/usr/include/c++/4.5/bits/locale_facets.h" 3 explicit ctype(size_t __refs = 0); # 1217 "/usr/include/c++/4.5/bits/locale_facets.h" 3 explicit ctype(__c_locale __cloc, size_t __refs = 0); protected: __wmask_type _M_convert_to_wmask(const mask __m) const throw(); virtual ~ctype(); # 1241 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual bool do_is(mask __m, char_type __c) const; # 1260 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; # 1278 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; # 1296 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const; # 1313 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char_type do_toupper(char_type) const; # 1330 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_toupper(char_type* __lo, const char_type* __hi) const; # 1346 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char_type do_tolower(char_type) const; # 1363 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_tolower(char_type* __lo, const char_type* __hi) const; # 1383 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char_type do_widen(char) const; # 1405 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char* do_widen(const char* __lo, const char* __hi, char_type* __dest) const; # 1428 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char do_narrow(char_type, char __dfault) const; # 1454 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual const char_type* do_narrow(const char_type* __lo, const char_type* __hi, char __dfault, char* __dest) const; void _M_initialize_ctype() throw(); }; template class ctype_byname : public ctype<_CharT> { public: typedef typename ctype<_CharT>::mask mask; explicit ctype_byname(const char* __s, size_t __refs = 0); protected: virtual ~ctype_byname() { }; }; template<> class ctype_byname : public ctype { public: explicit ctype_byname(const char* __s, size_t __refs = 0); protected: virtual ~ctype_byname(); }; template<> class ctype_byname : public ctype { public: explicit ctype_byname(const char* __s, size_t __refs = 0); protected: virtual ~ctype_byname(); }; } # 1 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h" 1 3 # 37 "/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { bool ctype:: is(mask __m, char __c) const { return _M_table[static_cast(__c)] & __m; } const char* ctype:: is(const char* __low, const char* __high, mask* __vec) const { while (__low < __high) *__vec++ = _M_table[static_cast(*__low++)]; return __high; } const char* ctype:: scan_is(mask __m, const char* __low, const char* __high) const { while (__low < __high && !(_M_table[static_cast(*__low)] & __m)) ++__low; return __low; } const char* ctype:: scan_not(mask __m, const char* __low, const char* __high) const { while (__low < __high && (_M_table[static_cast(*__low)] & __m) != 0) ++__low; return __low; } } # 1510 "/usr/include/c++/4.5/bits/locale_facets.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { class __num_base { public: enum { _S_ominus, _S_oplus, _S_ox, _S_oX, _S_odigits, _S_odigits_end = _S_odigits + 16, _S_oudigits = _S_odigits_end, _S_oudigits_end = _S_oudigits + 16, _S_oe = _S_odigits + 14, _S_oE = _S_oudigits + 14, _S_oend = _S_oudigits_end }; static const char* _S_atoms_out; static const char* _S_atoms_in; enum { _S_iminus, _S_iplus, _S_ix, _S_iX, _S_izero, _S_ie = _S_izero + 14, _S_iE = _S_izero + 20, _S_iend = 26 }; static void _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); }; template struct __numpunct_cache : public locale::facet { const char* _M_grouping; size_t _M_grouping_size; bool _M_use_grouping; const _CharT* _M_truename; size_t _M_truename_size; const _CharT* _M_falsename; size_t _M_falsename_size; _CharT _M_decimal_point; _CharT _M_thousands_sep; _CharT _M_atoms_out[__num_base::_S_oend]; _CharT _M_atoms_in[__num_base::_S_iend]; bool _M_allocated; __numpunct_cache(size_t __refs = 0) : facet(__refs), _M_grouping(__null), _M_grouping_size(0), _M_use_grouping(false), _M_truename(__null), _M_truename_size(0), _M_falsename(__null), _M_falsename_size(0), _M_decimal_point(_CharT()), _M_thousands_sep(_CharT()), _M_allocated(false) { } ~__numpunct_cache(); void _M_cache(const locale& __loc); private: __numpunct_cache& operator=(const __numpunct_cache&); explicit __numpunct_cache(const __numpunct_cache&); }; template __numpunct_cache<_CharT>::~__numpunct_cache() { if (_M_allocated) { delete [] _M_grouping; delete [] _M_truename; delete [] _M_falsename; } } # 1635 "/usr/include/c++/4.5/bits/locale_facets.h" 3 template class numpunct : public locale::facet { public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; typedef __numpunct_cache<_CharT> __cache_type; protected: __cache_type* _M_data; public: static locale::id id; explicit numpunct(size_t __refs = 0) : facet(__refs), _M_data(__null) { _M_initialize_numpunct(); } # 1672 "/usr/include/c++/4.5/bits/locale_facets.h" 3 explicit numpunct(__cache_type* __cache, size_t __refs = 0) : facet(__refs), _M_data(__cache) { _M_initialize_numpunct(); } # 1686 "/usr/include/c++/4.5/bits/locale_facets.h" 3 explicit numpunct(__c_locale __cloc, size_t __refs = 0) : facet(__refs), _M_data(__null) { _M_initialize_numpunct(__cloc); } # 1700 "/usr/include/c++/4.5/bits/locale_facets.h" 3 char_type decimal_point() const { return this->do_decimal_point(); } # 1713 "/usr/include/c++/4.5/bits/locale_facets.h" 3 char_type thousands_sep() const { return this->do_thousands_sep(); } # 1744 "/usr/include/c++/4.5/bits/locale_facets.h" 3 string grouping() const { return this->do_grouping(); } # 1757 "/usr/include/c++/4.5/bits/locale_facets.h" 3 string_type truename() const { return this->do_truename(); } # 1770 "/usr/include/c++/4.5/bits/locale_facets.h" 3 string_type falsename() const { return this->do_falsename(); } protected: virtual ~numpunct(); # 1787 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char_type do_decimal_point() const { return _M_data->_M_decimal_point; } # 1799 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual char_type do_thousands_sep() const { return _M_data->_M_thousands_sep; } # 1812 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual string do_grouping() const { return _M_data->_M_grouping; } # 1825 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual string_type do_truename() const { return _M_data->_M_truename; } # 1838 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual string_type do_falsename() const { return _M_data->_M_falsename; } void _M_initialize_numpunct(__c_locale __cloc = __null); }; template locale::id numpunct<_CharT>::id; template<> numpunct::~numpunct(); template<> void numpunct::_M_initialize_numpunct(__c_locale __cloc); template<> numpunct::~numpunct(); template<> void numpunct::_M_initialize_numpunct(__c_locale __cloc); template class numpunct_byname : public numpunct<_CharT> { public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; explicit numpunct_byname(const char* __s, size_t __refs = 0) : numpunct<_CharT>(__refs) { if (__builtin_strcmp(__s, "C") != 0 && __builtin_strcmp(__s, "POSIX") != 0) { __c_locale __tmp; this->_S_create_c_locale(__tmp, __s); this->_M_initialize_numpunct(__tmp); this->_S_destroy_c_locale(__tmp); } } protected: virtual ~numpunct_byname() { } }; # 1908 "/usr/include/c++/4.5/bits/locale_facets.h" 3 template class num_get : public locale::facet { public: typedef _CharT char_type; typedef _InIter iter_type; static locale::id id; # 1929 "/usr/include/c++/4.5/bits/locale_facets.h" 3 explicit num_get(size_t __refs = 0) : facet(__refs) { } # 1955 "/usr/include/c++/4.5/bits/locale_facets.h" 3 iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, bool& __v) const { return this->do_get(__in, __end, __io, __err, __v); } # 1991 "/usr/include/c++/4.5/bits/locale_facets.h" 3 iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, long& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned short& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned int& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned long& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, long long& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned long long& __v) const { return this->do_get(__in, __end, __io, __err, __v); } # 2050 "/usr/include/c++/4.5/bits/locale_facets.h" 3 iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, float& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, double& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, long double& __v) const { return this->do_get(__in, __end, __io, __err, __v); } # 2092 "/usr/include/c++/4.5/bits/locale_facets.h" 3 iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, void*& __v) const { return this->do_get(__in, __end, __io, __err, __v); } protected: virtual ~num_get() { } iter_type _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, string&) const; template iter_type _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, _ValueT&) const; template typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type _M_find(const _CharT2*, size_t __len, _CharT2 __c) const { int __ret = -1; if (__len <= 10) { if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) __ret = __c - _CharT2('0'); } else { if (__c >= _CharT2('0') && __c <= _CharT2('9')) __ret = __c - _CharT2('0'); else if (__c >= _CharT2('a') && __c <= _CharT2('f')) __ret = 10 + (__c - _CharT2('a')); else if (__c >= _CharT2('A') && __c <= _CharT2('F')) __ret = 10 + (__c - _CharT2('A')); } return __ret; } template typename __gnu_cxx::__enable_if::__value, int>::__type _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const { int __ret = -1; const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); if (__q) { __ret = __q - __zero; if (__ret > 15) __ret -= 6; } return __ret; } # 2163 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; virtual iter_type do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, long& __v) const { return _M_extract_int(__beg, __end, __io, __err, __v); } virtual iter_type do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned short& __v) const { return _M_extract_int(__beg, __end, __io, __err, __v); } virtual iter_type do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned int& __v) const { return _M_extract_int(__beg, __end, __io, __err, __v); } virtual iter_type do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned long& __v) const { return _M_extract_int(__beg, __end, __io, __err, __v); } virtual iter_type do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, long long& __v) const { return _M_extract_int(__beg, __end, __io, __err, __v); } virtual iter_type do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned long long& __v) const { return _M_extract_int(__beg, __end, __io, __err, __v); } virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, float&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, double&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, long double&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, void*&) const; # 2228 "/usr/include/c++/4.5/bits/locale_facets.h" 3 }; template locale::id num_get<_CharT, _InIter>::id; # 2246 "/usr/include/c++/4.5/bits/locale_facets.h" 3 template class num_put : public locale::facet { public: typedef _CharT char_type; typedef _OutIter iter_type; static locale::id id; # 2267 "/usr/include/c++/4.5/bits/locale_facets.h" 3 explicit num_put(size_t __refs = 0) : facet(__refs) { } # 2285 "/usr/include/c++/4.5/bits/locale_facets.h" 3 iter_type put(iter_type __s, ios_base& __f, char_type __fill, bool __v) const { return this->do_put(__s, __f, __fill, __v); } # 2327 "/usr/include/c++/4.5/bits/locale_facets.h" 3 iter_type put(iter_type __s, ios_base& __f, char_type __fill, long __v) const { return this->do_put(__s, __f, __fill, __v); } iter_type put(iter_type __s, ios_base& __f, char_type __fill, unsigned long __v) const { return this->do_put(__s, __f, __fill, __v); } iter_type put(iter_type __s, ios_base& __f, char_type __fill, long long __v) const { return this->do_put(__s, __f, __fill, __v); } iter_type put(iter_type __s, ios_base& __f, char_type __fill, unsigned long long __v) const { return this->do_put(__s, __f, __fill, __v); } # 2390 "/usr/include/c++/4.5/bits/locale_facets.h" 3 iter_type put(iter_type __s, ios_base& __f, char_type __fill, double __v) const { return this->do_put(__s, __f, __fill, __v); } iter_type put(iter_type __s, ios_base& __f, char_type __fill, long double __v) const { return this->do_put(__s, __f, __fill, __v); } # 2415 "/usr/include/c++/4.5/bits/locale_facets.h" 3 iter_type put(iter_type __s, ios_base& __f, char_type __fill, const void* __v) const { return this->do_put(__s, __f, __fill, __v); } protected: template iter_type _M_insert_float(iter_type, ios_base& __io, char_type __fill, char __mod, _ValueT __v) const; void _M_group_float(const char* __grouping, size_t __grouping_size, char_type __sep, const char_type* __p, char_type* __new, char_type* __cs, int& __len) const; template iter_type _M_insert_int(iter_type, ios_base& __io, char_type __fill, _ValueT __v) const; void _M_group_int(const char* __grouping, size_t __grouping_size, char_type __sep, ios_base& __io, char_type* __new, char_type* __cs, int& __len) const; void _M_pad(char_type __fill, streamsize __w, ios_base& __io, char_type* __new, const char_type* __cs, int& __len) const; virtual ~num_put() { }; # 2463 "/usr/include/c++/4.5/bits/locale_facets.h" 3 virtual iter_type do_put(iter_type, ios_base&, char_type __fill, bool __v) const; virtual iter_type do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const { return _M_insert_int(__s, __io, __fill, __v); } virtual iter_type do_put(iter_type __s, ios_base& __io, char_type __fill, unsigned long __v) const { return _M_insert_int(__s, __io, __fill, __v); } virtual iter_type do_put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const { return _M_insert_int(__s, __io, __fill, __v); } virtual iter_type do_put(iter_type __s, ios_base& __io, char_type __fill, unsigned long long __v) const { return _M_insert_int(__s, __io, __fill, __v); } virtual iter_type do_put(iter_type, ios_base&, char_type __fill, double __v) const; virtual iter_type do_put(iter_type, ios_base&, char_type __fill, long double __v) const; virtual iter_type do_put(iter_type, ios_base&, char_type __fill, const void* __v) const; }; template locale::id num_put<_CharT, _OutIter>::id; template inline bool isspace(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::space, __c); } template inline bool isprint(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::print, __c); } template inline bool iscntrl(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::cntrl, __c); } template inline bool isupper(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::upper, __c); } template inline bool islower(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::lower, __c); } template inline bool isalpha(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::alpha, __c); } template inline bool isdigit(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::digit, __c); } template inline bool ispunct(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::punct, __c); } template inline bool isxdigit(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::xdigit, __c); } template inline bool isalnum(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::alnum, __c); } template inline bool isgraph(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::graph, __c); } template inline _CharT toupper(_CharT __c, const locale& __loc) { return use_facet >(__loc).toupper(__c); } template inline _CharT tolower(_CharT __c, const locale& __loc) { return use_facet >(__loc).tolower(__c); } } # 1 "/usr/include/c++/4.5/bits/locale_facets.tcc" 1 3 # 35 "/usr/include/c++/4.5/bits/locale_facets.tcc" 3 # 36 "/usr/include/c++/4.5/bits/locale_facets.tcc" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template struct __use_cache { const _Facet* operator() (const locale& __loc) const; }; template struct __use_cache<__numpunct_cache<_CharT> > { const __numpunct_cache<_CharT>* operator() (const locale& __loc) const { const size_t __i = numpunct<_CharT>::id._M_id(); const locale::facet** __caches = __loc._M_impl->_M_caches; if (!__caches[__i]) { __numpunct_cache<_CharT>* __tmp = __null; try { __tmp = new __numpunct_cache<_CharT>; __tmp->_M_cache(__loc); } catch(...) { delete __tmp; throw; } __loc._M_impl->_M_install_cache(__tmp, __i); } return static_cast*>(__caches[__i]); } }; template void __numpunct_cache<_CharT>::_M_cache(const locale& __loc) { _M_allocated = true; const numpunct<_CharT>& __np = use_facet >(__loc); char* __grouping = 0; _CharT* __truename = 0; _CharT* __falsename = 0; try { _M_grouping_size = __np.grouping().size(); __grouping = new char[_M_grouping_size]; __np.grouping().copy(__grouping, _M_grouping_size); _M_grouping = __grouping; _M_use_grouping = (_M_grouping_size && static_cast(_M_grouping[0]) > 0 && (_M_grouping[0] != __gnu_cxx::__numeric_traits::__max)); _M_truename_size = __np.truename().size(); __truename = new _CharT[_M_truename_size]; __np.truename().copy(__truename, _M_truename_size); _M_truename = __truename; _M_falsename_size = __np.falsename().size(); __falsename = new _CharT[_M_falsename_size]; __np.falsename().copy(__falsename, _M_falsename_size); _M_falsename = __falsename; _M_decimal_point = __np.decimal_point(); _M_thousands_sep = __np.thousands_sep(); const ctype<_CharT>& __ct = use_facet >(__loc); __ct.widen(__num_base::_S_atoms_out, __num_base::_S_atoms_out + __num_base::_S_oend, _M_atoms_out); __ct.widen(__num_base::_S_atoms_in, __num_base::_S_atoms_in + __num_base::_S_iend, _M_atoms_in); } catch(...) { delete [] __grouping; delete [] __truename; delete [] __falsename; throw; } } # 136 "/usr/include/c++/4.5/bits/locale_facets.tcc" 3 __attribute__ ((__pure__)) bool __verify_grouping(const char* __grouping, size_t __grouping_size, const string& __grouping_tmp) throw (); template _InIter num_get<_CharT, _InIter>:: _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, ios_base::iostate& __err, string& __xtrc) const { typedef char_traits<_CharT> __traits_type; typedef __numpunct_cache<_CharT> __cache_type; __use_cache<__cache_type> __uc; const locale& __loc = __io._M_getloc(); const __cache_type* __lc = __uc(__loc); const _CharT* __lit = __lc->_M_atoms_in; char_type __c = char_type(); bool __testeof = __beg == __end; if (!__testeof) { __c = *__beg; const bool __plus = __c == __lit[__num_base::_S_iplus]; if ((__plus || __c == __lit[__num_base::_S_iminus]) && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) && !(__c == __lc->_M_decimal_point)) { __xtrc += __plus ? '+' : '-'; if (++__beg != __end) __c = *__beg; else __testeof = true; } } bool __found_mantissa = false; int __sep_pos = 0; while (!__testeof) { if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) || __c == __lc->_M_decimal_point) break; else if (__c == __lit[__num_base::_S_izero]) { if (!__found_mantissa) { __xtrc += '0'; __found_mantissa = true; } ++__sep_pos; if (++__beg != __end) __c = *__beg; else __testeof = true; } else break; } bool __found_dec = false; bool __found_sci = false; string __found_grouping; if (__lc->_M_use_grouping) __found_grouping.reserve(32); const char_type* __lit_zero = __lit + __num_base::_S_izero; if (!__lc->_M_allocated) while (!__testeof) { const int __digit = _M_find(__lit_zero, 10, __c); if (__digit != -1) { __xtrc += '0' + __digit; __found_mantissa = true; } else if (__c == __lc->_M_decimal_point && !__found_dec && !__found_sci) { __xtrc += '.'; __found_dec = true; } else if ((__c == __lit[__num_base::_S_ie] || __c == __lit[__num_base::_S_iE]) && !__found_sci && __found_mantissa) { __xtrc += 'e'; __found_sci = true; if (++__beg != __end) { __c = *__beg; const bool __plus = __c == __lit[__num_base::_S_iplus]; if (__plus || __c == __lit[__num_base::_S_iminus]) __xtrc += __plus ? '+' : '-'; else continue; } else { __testeof = true; break; } } else break; if (++__beg != __end) __c = *__beg; else __testeof = true; } else while (!__testeof) { if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) { if (!__found_dec && !__found_sci) { if (__sep_pos) { __found_grouping += static_cast(__sep_pos); __sep_pos = 0; } else { __xtrc.clear(); break; } } else break; } else if (__c == __lc->_M_decimal_point) { if (!__found_dec && !__found_sci) { if (__found_grouping.size()) __found_grouping += static_cast(__sep_pos); __xtrc += '.'; __found_dec = true; } else break; } else { const char_type* __q = __traits_type::find(__lit_zero, 10, __c); if (__q) { __xtrc += '0' + (__q - __lit_zero); __found_mantissa = true; ++__sep_pos; } else if ((__c == __lit[__num_base::_S_ie] || __c == __lit[__num_base::_S_iE]) && !__found_sci && __found_mantissa) { if (__found_grouping.size() && !__found_dec) __found_grouping += static_cast(__sep_pos); __xtrc += 'e'; __found_sci = true; if (++__beg != __end) { __c = *__beg; const bool __plus = __c == __lit[__num_base::_S_iplus]; if ((__plus || __c == __lit[__num_base::_S_iminus]) && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) && !(__c == __lc->_M_decimal_point)) __xtrc += __plus ? '+' : '-'; else continue; } else { __testeof = true; break; } } else break; } if (++__beg != __end) __c = *__beg; else __testeof = true; } if (__found_grouping.size()) { if (!__found_dec && !__found_sci) __found_grouping += static_cast(__sep_pos); if (!std::__verify_grouping(__lc->_M_grouping, __lc->_M_grouping_size, __found_grouping)) __err = ios_base::failbit; } return __beg; } template template _InIter num_get<_CharT, _InIter>:: _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, ios_base::iostate& __err, _ValueT& __v) const { typedef char_traits<_CharT> __traits_type; using __gnu_cxx::__add_unsigned; typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; typedef __numpunct_cache<_CharT> __cache_type; __use_cache<__cache_type> __uc; const locale& __loc = __io._M_getloc(); const __cache_type* __lc = __uc(__loc); const _CharT* __lit = __lc->_M_atoms_in; char_type __c = char_type(); const ios_base::fmtflags __basefield = __io.flags() & ios_base::basefield; const bool __oct = __basefield == ios_base::oct; int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); bool __testeof = __beg == __end; bool __negative = false; if (!__testeof) { __c = *__beg; __negative = __c == __lit[__num_base::_S_iminus]; if ((__negative || __c == __lit[__num_base::_S_iplus]) && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) && !(__c == __lc->_M_decimal_point)) { if (++__beg != __end) __c = *__beg; else __testeof = true; } } bool __found_zero = false; int __sep_pos = 0; while (!__testeof) { if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) || __c == __lc->_M_decimal_point) break; else if (__c == __lit[__num_base::_S_izero] && (!__found_zero || __base == 10)) { __found_zero = true; ++__sep_pos; if (__basefield == 0) __base = 8; if (__base == 8) __sep_pos = 0; } else if (__found_zero && (__c == __lit[__num_base::_S_ix] || __c == __lit[__num_base::_S_iX])) { if (__basefield == 0) __base = 16; if (__base == 16) { __found_zero = false; __sep_pos = 0; } else break; } else break; if (++__beg != __end) { __c = *__beg; if (!__found_zero) break; } else __testeof = true; } const size_t __len = (__base == 16 ? __num_base::_S_iend - __num_base::_S_izero : __base); string __found_grouping; if (__lc->_M_use_grouping) __found_grouping.reserve(32); bool __testfail = false; bool __testoverflow = false; const __unsigned_type __max = (__negative && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) ? -__gnu_cxx::__numeric_traits<_ValueT>::__min : __gnu_cxx::__numeric_traits<_ValueT>::__max; const __unsigned_type __smax = __max / __base; __unsigned_type __result = 0; int __digit = 0; const char_type* __lit_zero = __lit + __num_base::_S_izero; if (!__lc->_M_allocated) while (!__testeof) { __digit = _M_find(__lit_zero, __len, __c); if (__digit == -1) break; if (__result > __smax) __testoverflow = true; else { __result *= __base; __testoverflow |= __result > __max - __digit; __result += __digit; ++__sep_pos; } if (++__beg != __end) __c = *__beg; else __testeof = true; } else while (!__testeof) { if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) { if (__sep_pos) { __found_grouping += static_cast(__sep_pos); __sep_pos = 0; } else { __testfail = true; break; } } else if (__c == __lc->_M_decimal_point) break; else { const char_type* __q = __traits_type::find(__lit_zero, __len, __c); if (!__q) break; __digit = __q - __lit_zero; if (__digit > 15) __digit -= 6; if (__result > __smax) __testoverflow = true; else { __result *= __base; __testoverflow |= __result > __max - __digit; __result += __digit; ++__sep_pos; } } if (++__beg != __end) __c = *__beg; else __testeof = true; } if (__found_grouping.size()) { __found_grouping += static_cast(__sep_pos); if (!std::__verify_grouping(__lc->_M_grouping, __lc->_M_grouping_size, __found_grouping)) __err = ios_base::failbit; } if ((!__sep_pos && !__found_zero && !__found_grouping.size()) || __testfail) { __v = 0; __err = ios_base::failbit; } else if (__testoverflow) { if (__negative && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) __v = __gnu_cxx::__numeric_traits<_ValueT>::__min; else __v = __gnu_cxx::__numeric_traits<_ValueT>::__max; __err = ios_base::failbit; } else __v = __negative ? -__result : __result; if (__testeof) __err |= ios_base::eofbit; return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, bool& __v) const { if (!(__io.flags() & ios_base::boolalpha)) { long __l = -1; __beg = _M_extract_int(__beg, __end, __io, __err, __l); if (__l == 0 || __l == 1) __v = bool(__l); else { __v = true; __err = ios_base::failbit; if (__beg == __end) __err |= ios_base::eofbit; } } else { typedef __numpunct_cache<_CharT> __cache_type; __use_cache<__cache_type> __uc; const locale& __loc = __io._M_getloc(); const __cache_type* __lc = __uc(__loc); bool __testf = true; bool __testt = true; bool __donef = __lc->_M_falsename_size == 0; bool __donet = __lc->_M_truename_size == 0; bool __testeof = false; size_t __n = 0; while (!__donef || !__donet) { if (__beg == __end) { __testeof = true; break; } const char_type __c = *__beg; if (!__donef) __testf = __c == __lc->_M_falsename[__n]; if (!__testf && __donet) break; if (!__donet) __testt = __c == __lc->_M_truename[__n]; if (!__testt && __donef) break; if (!__testt && !__testf) break; ++__n; ++__beg; __donef = !__testf || __n >= __lc->_M_falsename_size; __donet = !__testt || __n >= __lc->_M_truename_size; } if (__testf && __n == __lc->_M_falsename_size && __n) { __v = false; if (__testt && __n == __lc->_M_truename_size) __err = ios_base::failbit; else __err = __testeof ? ios_base::eofbit : ios_base::goodbit; } else if (__testt && __n == __lc->_M_truename_size && __n) { __v = true; __err = __testeof ? ios_base::eofbit : ios_base::goodbit; } else { __v = false; __err = ios_base::failbit; if (__testeof) __err |= ios_base::eofbit; } } return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, float& __v) const { string __xtrc; __xtrc.reserve(32); __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); if (__beg == __end) __err |= ios_base::eofbit; return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, double& __v) const { string __xtrc; __xtrc.reserve(32); __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); if (__beg == __end) __err |= ios_base::eofbit; return __beg; } # 730 "/usr/include/c++/4.5/bits/locale_facets.tcc" 3 template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, long double& __v) const { string __xtrc; __xtrc.reserve(32); __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); if (__beg == __end) __err |= ios_base::eofbit; return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, void*& __v) const { typedef ios_base::fmtflags fmtflags; const fmtflags __fmt = __io.flags(); __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); typedef __gnu_cxx::__conditional_type<(sizeof(void*) <= sizeof(unsigned long)), unsigned long, unsigned long long>::__type _UIntPtrType; _UIntPtrType __ul; __beg = _M_extract_int(__beg, __end, __io, __err, __ul); __io.flags(__fmt); __v = reinterpret_cast(__ul); return __beg; } template void num_put<_CharT, _OutIter>:: _M_pad(_CharT __fill, streamsize __w, ios_base& __io, _CharT* __new, const _CharT* __cs, int& __len) const { __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, __cs, __w, __len); __len = static_cast(__w); } template int __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, ios_base::fmtflags __flags, bool __dec) { _CharT* __buf = __bufend; if (__builtin_expect(__dec, true)) { do { *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; __v /= 10; } while (__v != 0); } else if ((__flags & ios_base::basefield) == ios_base::oct) { do { *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; __v >>= 3; } while (__v != 0); } else { const bool __uppercase = __flags & ios_base::uppercase; const int __case_offset = __uppercase ? __num_base::_S_oudigits : __num_base::_S_odigits; do { *--__buf = __lit[(__v & 0xf) + __case_offset]; __v >>= 4; } while (__v != 0); } return __bufend - __buf; } template void num_put<_CharT, _OutIter>:: _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, ios_base&, _CharT* __new, _CharT* __cs, int& __len) const { _CharT* __p = std::__add_grouping(__new, __sep, __grouping, __grouping_size, __cs, __cs + __len); __len = __p - __new; } template template _OutIter num_put<_CharT, _OutIter>:: _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, _ValueT __v) const { using __gnu_cxx::__add_unsigned; typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; typedef __numpunct_cache<_CharT> __cache_type; __use_cache<__cache_type> __uc; const locale& __loc = __io._M_getloc(); const __cache_type* __lc = __uc(__loc); const _CharT* __lit = __lc->_M_atoms_out; const ios_base::fmtflags __flags = __io.flags(); const int __ilen = 5 * sizeof(_ValueT); _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __ilen)); const ios_base::fmtflags __basefield = __flags & ios_base::basefield; const bool __dec = (__basefield != ios_base::oct && __basefield != ios_base::hex); const __unsigned_type __u = ((__v > 0 || !__dec) ? __unsigned_type(__v) : -__unsigned_type(__v)); int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); __cs += __ilen - __len; if (__lc->_M_use_grouping) { _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__len + 1) * 2)); _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); __cs = __cs2 + 2; } if (__builtin_expect(__dec, true)) { if (__v >= 0) { if (bool(__flags & ios_base::showpos) && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) *--__cs = __lit[__num_base::_S_oplus], ++__len; } else *--__cs = __lit[__num_base::_S_ominus], ++__len; } else if (bool(__flags & ios_base::showbase) && __v) { if (__basefield == ios_base::oct) *--__cs = __lit[__num_base::_S_odigits], ++__len; else { const bool __uppercase = __flags & ios_base::uppercase; *--__cs = __lit[__num_base::_S_ox + __uppercase]; *--__cs = __lit[__num_base::_S_odigits]; __len += 2; } } const streamsize __w = __io.width(); if (__w > static_cast(__len)) { _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w)); _M_pad(__fill, __w, __io, __cs3, __cs, __len); __cs = __cs3; } __io.width(0); return std::__write(__s, __cs, __len); } template void num_put<_CharT, _OutIter>:: _M_group_float(const char* __grouping, size_t __grouping_size, _CharT __sep, const _CharT* __p, _CharT* __new, _CharT* __cs, int& __len) const { const int __declen = __p ? __p - __cs : __len; _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, __grouping_size, __cs, __cs + __declen); int __newlen = __p2 - __new; if (__p) { char_traits<_CharT>::copy(__p2, __p, __len - __declen); __newlen += __len - __declen; } __len = __newlen; } # 966 "/usr/include/c++/4.5/bits/locale_facets.tcc" 3 template template _OutIter num_put<_CharT, _OutIter>:: _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, _ValueT __v) const { typedef __numpunct_cache<_CharT> __cache_type; __use_cache<__cache_type> __uc; const locale& __loc = __io._M_getloc(); const __cache_type* __lc = __uc(__loc); const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); const int __max_digits = __gnu_cxx::__numeric_traits<_ValueT>::__digits10; int __len; char __fbuf[16]; __num_base::_S_format_float(__io, __fbuf, __mod); int __cs_size = __max_digits * 3; char* __cs = static_cast(__builtin_alloca(__cs_size)); __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, __fbuf, __prec, __v); if (__len >= __cs_size) { __cs_size = __len + 1; __cs = static_cast(__builtin_alloca(__cs_size)); __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, __fbuf, __prec, __v); } # 1027 "/usr/include/c++/4.5/bits/locale_facets.tcc" 3 const ctype<_CharT>& __ctype = use_facet >(__loc); _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len)); __ctype.widen(__cs, __cs + __len, __ws); _CharT* __wp = 0; const char* __p = char_traits::find(__cs, __len, '.'); if (__p) { __wp = __ws + (__p - __cs); *__wp = __lc->_M_decimal_point; } if (__lc->_M_use_grouping && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' && __cs[1] >= '0' && __cs[2] >= '0'))) { _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len * 2)); streamsize __off = 0; if (__cs[0] == '-' || __cs[0] == '+') { __off = 1; __ws2[0] = __ws[0]; __len -= 1; } _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, __lc->_M_thousands_sep, __wp, __ws2 + __off, __ws + __off, __len); __len += __off; __ws = __ws2; } const streamsize __w = __io.width(); if (__w > static_cast(__len)) { _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w)); _M_pad(__fill, __w, __io, __ws3, __ws, __len); __ws = __ws3; } __io.width(0); return std::__write(__s, __ws, __len); } template _OutIter num_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const { const ios_base::fmtflags __flags = __io.flags(); if ((__flags & ios_base::boolalpha) == 0) { const long __l = __v; __s = _M_insert_int(__s, __io, __fill, __l); } else { typedef __numpunct_cache<_CharT> __cache_type; __use_cache<__cache_type> __uc; const locale& __loc = __io._M_getloc(); const __cache_type* __lc = __uc(__loc); const _CharT* __name = __v ? __lc->_M_truename : __lc->_M_falsename; int __len = __v ? __lc->_M_truename_size : __lc->_M_falsename_size; const streamsize __w = __io.width(); if (__w > static_cast(__len)) { const streamsize __plen = __w - __len; _CharT* __ps = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __plen)); char_traits<_CharT>::assign(__ps, __plen, __fill); __io.width(0); if ((__flags & ios_base::adjustfield) == ios_base::left) { __s = std::__write(__s, __name, __len); __s = std::__write(__s, __ps, __plen); } else { __s = std::__write(__s, __ps, __plen); __s = std::__write(__s, __name, __len); } return __s; } __io.width(0); __s = std::__write(__s, __name, __len); } return __s; } template _OutIter num_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const { return _M_insert_float(__s, __io, __fill, char(), __v); } # 1152 "/usr/include/c++/4.5/bits/locale_facets.tcc" 3 template _OutIter num_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __io, char_type __fill, long double __v) const { return _M_insert_float(__s, __io, __fill, 'L', __v); } template _OutIter num_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __io, char_type __fill, const void* __v) const { const ios_base::fmtflags __flags = __io.flags(); const ios_base::fmtflags __fmt = ~(ios_base::basefield | ios_base::uppercase); __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); typedef __gnu_cxx::__conditional_type<(sizeof(const void*) <= sizeof(unsigned long)), unsigned long, unsigned long long>::__type _UIntPtrType; __s = _M_insert_int(__s, __io, __fill, reinterpret_cast<_UIntPtrType>(__v)); __io.flags(__flags); return __s; } # 1189 "/usr/include/c++/4.5/bits/locale_facets.tcc" 3 template void __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, _CharT* __news, const _CharT* __olds, streamsize __newlen, streamsize __oldlen) { const size_t __plen = static_cast(__newlen - __oldlen); const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; if (__adjust == ios_base::left) { _Traits::copy(__news, __olds, __oldlen); _Traits::assign(__news + __oldlen, __plen, __fill); return; } size_t __mod = 0; if (__adjust == ios_base::internal) { const locale& __loc = __io._M_getloc(); const ctype<_CharT>& __ctype = use_facet >(__loc); if (__ctype.widen('-') == __olds[0] || __ctype.widen('+') == __olds[0]) { __news[0] = __olds[0]; __mod = 1; ++__news; } else if (__ctype.widen('0') == __olds[0] && __oldlen > 1 && (__ctype.widen('x') == __olds[1] || __ctype.widen('X') == __olds[1])) { __news[0] = __olds[0]; __news[1] = __olds[1]; __mod = 2; __news += 2; } } _Traits::assign(__news, __plen, __fill); _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); } template _CharT* __add_grouping(_CharT* __s, _CharT __sep, const char* __gbeg, size_t __gsize, const _CharT* __first, const _CharT* __last) { size_t __idx = 0; size_t __ctr = 0; while (__last - __first > __gbeg[__idx] && static_cast(__gbeg[__idx]) > 0 && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) { __last -= __gbeg[__idx]; __idx < __gsize - 1 ? ++__idx : ++__ctr; } while (__first != __last) *__s++ = *__first++; while (__ctr--) { *__s++ = __sep; for (char __i = __gbeg[__idx]; __i > 0; --__i) *__s++ = *__first++; } while (__idx--) { *__s++ = __sep; for (char __i = __gbeg[__idx]; __i > 0; --__i) *__s++ = *__first++; } return __s; } extern template class numpunct; extern template class numpunct_byname; extern template class num_get; extern template class num_put; extern template class ctype_byname; extern template const ctype& use_facet >(const locale&); extern template const numpunct& use_facet >(const locale&); extern template const num_put& use_facet >(const locale&); extern template const num_get& use_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template class numpunct; extern template class numpunct_byname; extern template class num_get; extern template class num_put; extern template class ctype_byname; extern template const ctype& use_facet >(const locale&); extern template const numpunct& use_facet >(const locale&); extern template const num_put& use_facet >(const locale&); extern template const num_get& use_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); } # 2602 "/usr/include/c++/4.5/bits/locale_facets.h" 2 3 # 40 "/usr/include/c++/4.5/bits/basic_ios.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { template inline const _Facet& __check_facet(const _Facet* __f) { if (!__f) __throw_bad_cast(); return *__f; } # 61 "/usr/include/c++/4.5/bits/basic_ios.h" 3 template class basic_ios : public ios_base { public: typedef _CharT char_type; typedef typename _Traits::int_type int_type; typedef typename _Traits::pos_type pos_type; typedef typename _Traits::off_type off_type; typedef _Traits traits_type; typedef ctype<_CharT> __ctype_type; typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > __num_put_type; typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > __num_get_type; protected: basic_ostream<_CharT, _Traits>* _M_tie; mutable char_type _M_fill; mutable bool _M_fill_init; basic_streambuf<_CharT, _Traits>* _M_streambuf; const __ctype_type* _M_ctype; const __num_put_type* _M_num_put; const __num_get_type* _M_num_get; public: operator void*() const { return this->fail() ? 0 : const_cast(this); } bool operator!() const { return this->fail(); } # 126 "/usr/include/c++/4.5/bits/basic_ios.h" 3 iostate rdstate() const { return _M_streambuf_state; } # 137 "/usr/include/c++/4.5/bits/basic_ios.h" 3 void clear(iostate __state = goodbit); void setstate(iostate __state) { this->clear(this->rdstate() | __state); } void _M_setstate(iostate __state) { _M_streambuf_state |= __state; if (this->exceptions() & __state) throw; } bool good() const { return this->rdstate() == 0; } bool eof() const { return (this->rdstate() & eofbit) != 0; } # 190 "/usr/include/c++/4.5/bits/basic_ios.h" 3 bool fail() const { return (this->rdstate() & (badbit | failbit)) != 0; } bool bad() const { return (this->rdstate() & badbit) != 0; } # 211 "/usr/include/c++/4.5/bits/basic_ios.h" 3 iostate exceptions() const { return _M_exception; } # 246 "/usr/include/c++/4.5/bits/basic_ios.h" 3 void exceptions(iostate __except) { _M_exception = __except; this->clear(_M_streambuf_state); } explicit basic_ios(basic_streambuf<_CharT, _Traits>* __sb) : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) { this->init(__sb); } virtual ~basic_ios() { } # 284 "/usr/include/c++/4.5/bits/basic_ios.h" 3 basic_ostream<_CharT, _Traits>* tie() const { return _M_tie; } # 296 "/usr/include/c++/4.5/bits/basic_ios.h" 3 basic_ostream<_CharT, _Traits>* tie(basic_ostream<_CharT, _Traits>* __tiestr) { basic_ostream<_CharT, _Traits>* __old = _M_tie; _M_tie = __tiestr; return __old; } basic_streambuf<_CharT, _Traits>* rdbuf() const { return _M_streambuf; } # 336 "/usr/include/c++/4.5/bits/basic_ios.h" 3 basic_streambuf<_CharT, _Traits>* rdbuf(basic_streambuf<_CharT, _Traits>* __sb); # 350 "/usr/include/c++/4.5/bits/basic_ios.h" 3 basic_ios& copyfmt(const basic_ios& __rhs); char_type fill() const { if (!_M_fill_init) { _M_fill = this->widen(' '); _M_fill_init = true; } return _M_fill; } # 379 "/usr/include/c++/4.5/bits/basic_ios.h" 3 char_type fill(char_type __ch) { char_type __old = this->fill(); _M_fill = __ch; return __old; } # 399 "/usr/include/c++/4.5/bits/basic_ios.h" 3 locale imbue(const locale& __loc); # 419 "/usr/include/c++/4.5/bits/basic_ios.h" 3 char narrow(char_type __c, char __dfault) const { return __check_facet(_M_ctype).narrow(__c, __dfault); } # 438 "/usr/include/c++/4.5/bits/basic_ios.h" 3 char_type widen(char __c) const { return __check_facet(_M_ctype).widen(__c); } protected: basic_ios() : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) { } void init(basic_streambuf<_CharT, _Traits>* __sb); void _M_cache_locale(const locale& __loc); }; } # 1 "/usr/include/c++/4.5/bits/basic_ios.tcc" 1 3 # 34 "/usr/include/c++/4.5/bits/basic_ios.tcc" 3 # 35 "/usr/include/c++/4.5/bits/basic_ios.tcc" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template void basic_ios<_CharT, _Traits>::clear(iostate __state) { if (this->rdbuf()) _M_streambuf_state = __state; else _M_streambuf_state = __state | badbit; if (this->exceptions() & this->rdstate()) __throw_ios_failure(("basic_ios::clear")); } template basic_streambuf<_CharT, _Traits>* basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) { basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; _M_streambuf = __sb; this->clear(); return __old; } template basic_ios<_CharT, _Traits>& basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) { if (this != &__rhs) { _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? _M_local_word : new _Words[__rhs._M_word_size]; _Callback_list* __cb = __rhs._M_callbacks; if (__cb) __cb->_M_add_reference(); _M_call_callbacks(erase_event); if (_M_word != _M_local_word) { delete [] _M_word; _M_word = 0; } _M_dispose_callbacks(); _M_callbacks = __cb; for (int __i = 0; __i < __rhs._M_word_size; ++__i) __words[__i] = __rhs._M_word[__i]; _M_word = __words; _M_word_size = __rhs._M_word_size; this->flags(__rhs.flags()); this->width(__rhs.width()); this->precision(__rhs.precision()); this->tie(__rhs.tie()); this->fill(__rhs.fill()); _M_ios_locale = __rhs.getloc(); _M_cache_locale(_M_ios_locale); _M_call_callbacks(copyfmt_event); this->exceptions(__rhs.exceptions()); } return *this; } template locale basic_ios<_CharT, _Traits>::imbue(const locale& __loc) { locale __old(this->getloc()); ios_base::imbue(__loc); _M_cache_locale(__loc); if (this->rdbuf() != 0) this->rdbuf()->pubimbue(__loc); return __old; } template void basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) { ios_base::_M_init(); _M_cache_locale(_M_ios_locale); # 145 "/usr/include/c++/4.5/bits/basic_ios.tcc" 3 _M_fill = _CharT(); _M_fill_init = false; _M_tie = 0; _M_exception = goodbit; _M_streambuf = __sb; _M_streambuf_state = __sb ? goodbit : badbit; } template void basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) { if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) _M_ctype = &use_facet<__ctype_type>(__loc); else _M_ctype = 0; if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) _M_num_put = &use_facet<__num_put_type>(__loc); else _M_num_put = 0; if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) _M_num_get = &use_facet<__num_get_type>(__loc); else _M_num_get = 0; } extern template class basic_ios; extern template class basic_ios; } # 472 "/usr/include/c++/4.5/bits/basic_ios.h" 2 3 # 46 "/usr/include/c++/4.5/ios" 2 3 # 41 "/usr/include/c++/4.5/ostream" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 54 "/usr/include/c++/4.5/ostream" 3 template class basic_ostream : virtual public basic_ios<_CharT, _Traits> { public: typedef _CharT char_type; typedef typename _Traits::int_type int_type; typedef typename _Traits::pos_type pos_type; typedef typename _Traits::off_type off_type; typedef _Traits traits_type; typedef basic_streambuf<_CharT, _Traits> __streambuf_type; typedef basic_ios<_CharT, _Traits> __ios_type; typedef basic_ostream<_CharT, _Traits> __ostream_type; typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > __num_put_type; typedef ctype<_CharT> __ctype_type; # 81 "/usr/include/c++/4.5/ostream" 3 explicit basic_ostream(__streambuf_type* __sb) { this->init(__sb); } virtual ~basic_ostream() { } class sentry; friend class sentry; # 107 "/usr/include/c++/4.5/ostream" 3 __ostream_type& operator<<(__ostream_type& (*__pf)(__ostream_type&)) { return __pf(*this); } __ostream_type& operator<<(__ios_type& (*__pf)(__ios_type&)) { __pf(*this); return *this; } __ostream_type& operator<<(ios_base& (*__pf) (ios_base&)) { __pf(*this); return *this; } # 164 "/usr/include/c++/4.5/ostream" 3 __ostream_type& operator<<(long __n) { return _M_insert(__n); } __ostream_type& operator<<(unsigned long __n) { return _M_insert(__n); } __ostream_type& operator<<(bool __n) { return _M_insert(__n); } __ostream_type& operator<<(short __n); __ostream_type& operator<<(unsigned short __n) { return _M_insert(static_cast(__n)); } __ostream_type& operator<<(int __n); __ostream_type& operator<<(unsigned int __n) { return _M_insert(static_cast(__n)); } __ostream_type& operator<<(long long __n) { return _M_insert(__n); } __ostream_type& operator<<(unsigned long long __n) { return _M_insert(__n); } __ostream_type& operator<<(double __f) { return _M_insert(__f); } __ostream_type& operator<<(float __f) { return _M_insert(static_cast(__f)); } __ostream_type& operator<<(long double __f) { return _M_insert(__f); } __ostream_type& operator<<(const void* __p) { return _M_insert(__p); } # 249 "/usr/include/c++/4.5/ostream" 3 __ostream_type& operator<<(__streambuf_type* __sb); # 282 "/usr/include/c++/4.5/ostream" 3 __ostream_type& put(char_type __c); void _M_write(const char_type* __s, streamsize __n) { const streamsize __put = this->rdbuf()->sputn(__s, __n); if (__put != __n) this->setstate(ios_base::badbit); } # 310 "/usr/include/c++/4.5/ostream" 3 __ostream_type& write(const char_type* __s, streamsize __n); # 323 "/usr/include/c++/4.5/ostream" 3 __ostream_type& flush(); # 334 "/usr/include/c++/4.5/ostream" 3 pos_type tellp(); # 345 "/usr/include/c++/4.5/ostream" 3 __ostream_type& seekp(pos_type); # 357 "/usr/include/c++/4.5/ostream" 3 __ostream_type& seekp(off_type, ios_base::seekdir); protected: basic_ostream() { this->init(0); } template __ostream_type& _M_insert(_ValueT __v); }; # 376 "/usr/include/c++/4.5/ostream" 3 template class basic_ostream<_CharT, _Traits>::sentry { bool _M_ok; basic_ostream<_CharT, _Traits>& _M_os; public: # 395 "/usr/include/c++/4.5/ostream" 3 explicit sentry(basic_ostream<_CharT, _Traits>& __os); # 405 "/usr/include/c++/4.5/ostream" 3 ~sentry() { if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) { if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) _M_os.setstate(ios_base::badbit); } } # 424 "/usr/include/c++/4.5/ostream" 3 explicit operator bool() const { return _M_ok; } }; # 447 "/usr/include/c++/4.5/ostream" 3 template inline basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) { return __ostream_insert(__out, &__c, 1); } template inline basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) { return (__out << __out.widen(__c)); } template inline basic_ostream& operator<<(basic_ostream& __out, char __c) { return __ostream_insert(__out, &__c, 1); } template inline basic_ostream& operator<<(basic_ostream& __out, signed char __c) { return (__out << static_cast(__c)); } template inline basic_ostream& operator<<(basic_ostream& __out, unsigned char __c) { return (__out << static_cast(__c)); } # 489 "/usr/include/c++/4.5/ostream" 3 template inline basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) { if (!__s) __out.setstate(ios_base::badbit); else __ostream_insert(__out, __s, static_cast(_Traits::length(__s))); return __out; } template basic_ostream<_CharT, _Traits> & operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); template inline basic_ostream& operator<<(basic_ostream& __out, const char* __s) { if (!__s) __out.setstate(ios_base::badbit); else __ostream_insert(__out, __s, static_cast(_Traits::length(__s))); return __out; } template inline basic_ostream& operator<<(basic_ostream& __out, const signed char* __s) { return (__out << reinterpret_cast(__s)); } template inline basic_ostream & operator<<(basic_ostream& __out, const unsigned char* __s) { return (__out << reinterpret_cast(__s)); } # 539 "/usr/include/c++/4.5/ostream" 3 template inline basic_ostream<_CharT, _Traits>& endl(basic_ostream<_CharT, _Traits>& __os) { return flush(__os.put(__os.widen('\n'))); } template inline basic_ostream<_CharT, _Traits>& ends(basic_ostream<_CharT, _Traits>& __os) { return __os.put(_CharT()); } template inline basic_ostream<_CharT, _Traits>& flush(basic_ostream<_CharT, _Traits>& __os) { return __os.flush(); } # 577 "/usr/include/c++/4.5/ostream" 3 template inline basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>&& __os, const _Tp& __x) { return (__os << __x); } } # 1 "/usr/include/c++/4.5/bits/ostream.tcc" 1 3 # 39 "/usr/include/c++/4.5/bits/ostream.tcc" 3 # 40 "/usr/include/c++/4.5/bits/ostream.tcc" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template basic_ostream<_CharT, _Traits>::sentry:: sentry(basic_ostream<_CharT, _Traits>& __os) : _M_ok(false), _M_os(__os) { if (__os.tie() && __os.good()) __os.tie()->flush(); if (__os.good()) _M_ok = true; else __os.setstate(ios_base::failbit); } template template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: _M_insert(_ValueT __v) { sentry __cerb(*this); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { const __num_put_type& __np = __check_facet(this->_M_num_put); if (__np.put(*this, *this, this->fill(), __v).failed()) __err |= ios_base::badbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(short __n) { const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; if (__fmt == ios_base::oct || __fmt == ios_base::hex) return _M_insert(static_cast(static_cast(__n))); else return _M_insert(static_cast(__n)); } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(int __n) { const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; if (__fmt == ios_base::oct || __fmt == ios_base::hex) return _M_insert(static_cast(static_cast(__n))); else return _M_insert(static_cast(__n)); } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(__streambuf_type* __sbin) { ios_base::iostate __err = ios_base::goodbit; sentry __cerb(*this); if (__cerb && __sbin) { try { if (!__copy_streambufs(__sbin, this->rdbuf())) __err |= ios_base::failbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::failbit); } } else if (!__sbin) __err |= ios_base::badbit; if (__err) this->setstate(__err); return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: put(char_type __c) { sentry __cerb(*this); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { const int_type __put = this->rdbuf()->sputc(__c); if (traits_type::eq_int_type(__put, traits_type::eof())) __err |= ios_base::badbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: write(const _CharT* __s, streamsize __n) { sentry __cerb(*this); if (__cerb) { try { _M_write(__s, __n); } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: flush() { ios_base::iostate __err = ios_base::goodbit; try { if (this->rdbuf() && this->rdbuf()->pubsync() == -1) __err |= ios_base::badbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); return *this; } template typename basic_ostream<_CharT, _Traits>::pos_type basic_ostream<_CharT, _Traits>:: tellp() { pos_type __ret = pos_type(-1); try { if (!this->fail()) __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } return __ret; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: seekp(pos_type __pos) { ios_base::iostate __err = ios_base::goodbit; try { if (!this->fail()) { const pos_type __p = this->rdbuf()->pubseekpos(__pos, ios_base::out); if (__p == pos_type(off_type(-1))) __err |= ios_base::failbit; } } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: seekp(off_type __off, ios_base::seekdir __dir) { ios_base::iostate __err = ios_base::goodbit; try { if (!this->fail()) { const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, ios_base::out); if (__p == pos_type(off_type(-1))) __err |= ios_base::failbit; } } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); return *this; } template basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) { if (!__s) __out.setstate(ios_base::badbit); else { const size_t __clen = char_traits::length(__s); try { struct __ptr_guard { _CharT *__p; __ptr_guard (_CharT *__ip): __p(__ip) { } ~__ptr_guard() { delete[] __p; } _CharT* __get() { return __p; } } __pg (new _CharT[__clen]); _CharT *__ws = __pg.__get(); for (size_t __i = 0; __i < __clen; ++__i) __ws[__i] = __out.widen(__s[__i]); __ostream_insert(__out, __ws, __clen); } catch(__cxxabiv1::__forced_unwind&) { __out._M_setstate(ios_base::badbit); throw; } catch(...) { __out._M_setstate(ios_base::badbit); } } return __out; } extern template class basic_ostream; extern template ostream& endl(ostream&); extern template ostream& ends(ostream&); extern template ostream& flush(ostream&); extern template ostream& operator<<(ostream&, char); extern template ostream& operator<<(ostream&, unsigned char); extern template ostream& operator<<(ostream&, signed char); extern template ostream& operator<<(ostream&, const char*); extern template ostream& operator<<(ostream&, const unsigned char*); extern template ostream& operator<<(ostream&, const signed char*); extern template ostream& ostream::_M_insert(long); extern template ostream& ostream::_M_insert(unsigned long); extern template ostream& ostream::_M_insert(bool); extern template ostream& ostream::_M_insert(long long); extern template ostream& ostream::_M_insert(unsigned long long); extern template ostream& ostream::_M_insert(double); extern template ostream& ostream::_M_insert(long double); extern template ostream& ostream::_M_insert(const void*); extern template class basic_ostream; extern template wostream& endl(wostream&); extern template wostream& ends(wostream&); extern template wostream& flush(wostream&); extern template wostream& operator<<(wostream&, wchar_t); extern template wostream& operator<<(wostream&, char); extern template wostream& operator<<(wostream&, const wchar_t*); extern template wostream& operator<<(wostream&, const char*); extern template wostream& wostream::_M_insert(long); extern template wostream& wostream::_M_insert(unsigned long); extern template wostream& wostream::_M_insert(bool); extern template wostream& wostream::_M_insert(long long); extern template wostream& wostream::_M_insert(unsigned long long); extern template wostream& wostream::_M_insert(double); extern template wostream& wostream::_M_insert(long double); extern template wostream& wostream::_M_insert(const void*); } # 587 "/usr/include/c++/4.5/ostream" 2 3 # 66 "/usr/include/c++/4.5/iterator" 2 3 # 1 "/usr/include/c++/4.5/istream" 1 3 # 38 "/usr/include/c++/4.5/istream" 3 # 39 "/usr/include/c++/4.5/istream" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 54 "/usr/include/c++/4.5/istream" 3 template class basic_istream : virtual public basic_ios<_CharT, _Traits> { public: typedef _CharT char_type; typedef typename _Traits::int_type int_type; typedef typename _Traits::pos_type pos_type; typedef typename _Traits::off_type off_type; typedef _Traits traits_type; typedef basic_streambuf<_CharT, _Traits> __streambuf_type; typedef basic_ios<_CharT, _Traits> __ios_type; typedef basic_istream<_CharT, _Traits> __istream_type; typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > __num_get_type; typedef ctype<_CharT> __ctype_type; protected: streamsize _M_gcount; public: # 90 "/usr/include/c++/4.5/istream" 3 explicit basic_istream(__streambuf_type* __sb) : _M_gcount(streamsize(0)) { this->init(__sb); } virtual ~basic_istream() { _M_gcount = streamsize(0); } class sentry; friend class sentry; # 119 "/usr/include/c++/4.5/istream" 3 __istream_type& operator>>(__istream_type& (*__pf)(__istream_type&)) { return __pf(*this); } __istream_type& operator>>(__ios_type& (*__pf)(__ios_type&)) { __pf(*this); return *this; } __istream_type& operator>>(ios_base& (*__pf)(ios_base&)) { __pf(*this); return *this; } # 166 "/usr/include/c++/4.5/istream" 3 __istream_type& operator>>(bool& __n) { return _M_extract(__n); } __istream_type& operator>>(short& __n); __istream_type& operator>>(unsigned short& __n) { return _M_extract(__n); } __istream_type& operator>>(int& __n); __istream_type& operator>>(unsigned int& __n) { return _M_extract(__n); } __istream_type& operator>>(long& __n) { return _M_extract(__n); } __istream_type& operator>>(unsigned long& __n) { return _M_extract(__n); } __istream_type& operator>>(long long& __n) { return _M_extract(__n); } __istream_type& operator>>(unsigned long long& __n) { return _M_extract(__n); } __istream_type& operator>>(float& __f) { return _M_extract(__f); } __istream_type& operator>>(double& __f) { return _M_extract(__f); } __istream_type& operator>>(long double& __f) { return _M_extract(__f); } __istream_type& operator>>(void*& __p) { return _M_extract(__p); } # 238 "/usr/include/c++/4.5/istream" 3 __istream_type& operator>>(__streambuf_type* __sb); # 248 "/usr/include/c++/4.5/istream" 3 streamsize gcount() const { return _M_gcount; } # 280 "/usr/include/c++/4.5/istream" 3 int_type get(); # 294 "/usr/include/c++/4.5/istream" 3 __istream_type& get(char_type& __c); # 321 "/usr/include/c++/4.5/istream" 3 __istream_type& get(char_type* __s, streamsize __n, char_type __delim); # 332 "/usr/include/c++/4.5/istream" 3 __istream_type& get(char_type* __s, streamsize __n) { return this->get(__s, __n, this->widen('\n')); } # 355 "/usr/include/c++/4.5/istream" 3 __istream_type& get(__streambuf_type& __sb, char_type __delim); # 365 "/usr/include/c++/4.5/istream" 3 __istream_type& get(__streambuf_type& __sb) { return this->get(__sb, this->widen('\n')); } # 394 "/usr/include/c++/4.5/istream" 3 __istream_type& getline(char_type* __s, streamsize __n, char_type __delim); # 405 "/usr/include/c++/4.5/istream" 3 __istream_type& getline(char_type* __s, streamsize __n) { return this->getline(__s, __n, this->widen('\n')); } # 429 "/usr/include/c++/4.5/istream" 3 __istream_type& ignore(); __istream_type& ignore(streamsize __n); __istream_type& ignore(streamsize __n, int_type __delim); # 446 "/usr/include/c++/4.5/istream" 3 int_type peek(); # 464 "/usr/include/c++/4.5/istream" 3 __istream_type& read(char_type* __s, streamsize __n); # 483 "/usr/include/c++/4.5/istream" 3 streamsize readsome(char_type* __s, streamsize __n); # 499 "/usr/include/c++/4.5/istream" 3 __istream_type& putback(char_type __c); # 514 "/usr/include/c++/4.5/istream" 3 __istream_type& unget(); # 532 "/usr/include/c++/4.5/istream" 3 int sync(); # 546 "/usr/include/c++/4.5/istream" 3 pos_type tellg(); # 561 "/usr/include/c++/4.5/istream" 3 __istream_type& seekg(pos_type); # 577 "/usr/include/c++/4.5/istream" 3 __istream_type& seekg(off_type, ios_base::seekdir); protected: basic_istream() : _M_gcount(streamsize(0)) { this->init(0); } template __istream_type& _M_extract(_ValueT& __v); }; template<> basic_istream& basic_istream:: getline(char_type* __s, streamsize __n, char_type __delim); template<> basic_istream& basic_istream:: ignore(streamsize __n); template<> basic_istream& basic_istream:: ignore(streamsize __n, int_type __delim); template<> basic_istream& basic_istream:: getline(char_type* __s, streamsize __n, char_type __delim); template<> basic_istream& basic_istream:: ignore(streamsize __n); template<> basic_istream& basic_istream:: ignore(streamsize __n, int_type __delim); # 632 "/usr/include/c++/4.5/istream" 3 template class basic_istream<_CharT, _Traits>::sentry { bool _M_ok; public: typedef _Traits traits_type; typedef basic_streambuf<_CharT, _Traits> __streambuf_type; typedef basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::__ctype_type __ctype_type; typedef typename _Traits::int_type __int_type; # 668 "/usr/include/c++/4.5/istream" 3 explicit sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); # 679 "/usr/include/c++/4.5/istream" 3 explicit operator bool() const { return _M_ok; } }; # 698 "/usr/include/c++/4.5/istream" 3 template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); template inline basic_istream& operator>>(basic_istream& __in, unsigned char& __c) { return (__in >> reinterpret_cast(__c)); } template inline basic_istream& operator>>(basic_istream& __in, signed char& __c) { return (__in >> reinterpret_cast(__c)); } # 740 "/usr/include/c++/4.5/istream" 3 template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); template<> basic_istream& operator>>(basic_istream& __in, char* __s); template inline basic_istream& operator>>(basic_istream& __in, unsigned char* __s) { return (__in >> reinterpret_cast(__s)); } template inline basic_istream& operator>>(basic_istream& __in, signed char* __s) { return (__in >> reinterpret_cast(__s)); } # 768 "/usr/include/c++/4.5/istream" 3 template class basic_iostream : public basic_istream<_CharT, _Traits>, public basic_ostream<_CharT, _Traits> { public: typedef _CharT char_type; typedef typename _Traits::int_type int_type; typedef typename _Traits::pos_type pos_type; typedef typename _Traits::off_type off_type; typedef _Traits traits_type; typedef basic_istream<_CharT, _Traits> __istream_type; typedef basic_ostream<_CharT, _Traits> __ostream_type; explicit basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) : __istream_type(__sb), __ostream_type(__sb) { } virtual ~basic_iostream() { } protected: basic_iostream() : __istream_type(), __ostream_type() { } }; # 829 "/usr/include/c++/4.5/istream" 3 template basic_istream<_CharT, _Traits>& ws(basic_istream<_CharT, _Traits>& __is); # 845 "/usr/include/c++/4.5/istream" 3 template inline basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x) { return (__is >> __x); } } # 1 "/usr/include/c++/4.5/bits/istream.tcc" 1 3 # 39 "/usr/include/c++/4.5/bits/istream.tcc" 3 # 40 "/usr/include/c++/4.5/bits/istream.tcc" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template basic_istream<_CharT, _Traits>::sentry:: sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) { ios_base::iostate __err = ios_base::goodbit; if (__in.good()) { if (__in.tie()) __in.tie()->flush(); if (!__noskip && bool(__in.flags() & ios_base::skipws)) { const __int_type __eof = traits_type::eof(); __streambuf_type* __sb = __in.rdbuf(); __int_type __c = __sb->sgetc(); const __ctype_type& __ct = __check_facet(__in._M_ctype); while (!traits_type::eq_int_type(__c, __eof) && __ct.is(ctype_base::space, traits_type::to_char_type(__c))) __c = __sb->snextc(); if (traits_type::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; } } if (__in.good() && __err == ios_base::goodbit) _M_ok = true; else { __err |= ios_base::failbit; __in.setstate(__err); } } template template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: _M_extract(_ValueT& __v) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { const __num_get_type& __ng = __check_facet(this->_M_num_get); __ng.get(*this, 0, *this, __err, __v); } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(short& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { long __l; const __num_get_type& __ng = __check_facet(this->_M_num_get); __ng.get(*this, 0, *this, __err, __l); if (__l < __gnu_cxx::__numeric_traits::__min) { __err |= ios_base::failbit; __n = __gnu_cxx::__numeric_traits::__min; } else if (__l > __gnu_cxx::__numeric_traits::__max) { __err |= ios_base::failbit; __n = __gnu_cxx::__numeric_traits::__max; } else __n = short(__l); } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(int& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { long __l; const __num_get_type& __ng = __check_facet(this->_M_num_get); __ng.get(*this, 0, *this, __err, __l); if (__l < __gnu_cxx::__numeric_traits::__min) { __err |= ios_base::failbit; __n = __gnu_cxx::__numeric_traits::__min; } else if (__l > __gnu_cxx::__numeric_traits::__max) { __err |= ios_base::failbit; __n = __gnu_cxx::__numeric_traits::__max; } else __n = int(__l); } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(__streambuf_type* __sbout) { ios_base::iostate __err = ios_base::goodbit; sentry __cerb(*this, false); if (__cerb && __sbout) { try { bool __ineof; if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) __err |= ios_base::failbit; if (__ineof) __err |= ios_base::eofbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::failbit); throw; } catch(...) { this->_M_setstate(ios_base::failbit); } } else if (!__sbout) __err |= ios_base::failbit; if (__err) this->setstate(__err); return *this; } template typename basic_istream<_CharT, _Traits>::int_type basic_istream<_CharT, _Traits>:: get(void) { const int_type __eof = traits_type::eof(); int_type __c = __eof; _M_gcount = 0; ios_base::iostate __err = ios_base::goodbit; sentry __cerb(*this, true); if (__cerb) { try { __c = this->rdbuf()->sbumpc(); if (!traits_type::eq_int_type(__c, __eof)) _M_gcount = 1; else __err |= ios_base::eofbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } } if (!_M_gcount) __err |= ios_base::failbit; if (__err) this->setstate(__err); return __c; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: get(char_type& __c) { _M_gcount = 0; ios_base::iostate __err = ios_base::goodbit; sentry __cerb(*this, true); if (__cerb) { try { const int_type __cb = this->rdbuf()->sbumpc(); if (!traits_type::eq_int_type(__cb, traits_type::eof())) { _M_gcount = 1; __c = traits_type::to_char_type(__cb); } else __err |= ios_base::eofbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } } if (!_M_gcount) __err |= ios_base::failbit; if (__err) this->setstate(__err); return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: get(char_type* __s, streamsize __n, char_type __delim) { _M_gcount = 0; ios_base::iostate __err = ios_base::goodbit; sentry __cerb(*this, true); if (__cerb) { try { const int_type __idelim = traits_type::to_int_type(__delim); const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); int_type __c = __sb->sgetc(); while (_M_gcount + 1 < __n && !traits_type::eq_int_type(__c, __eof) && !traits_type::eq_int_type(__c, __idelim)) { *__s++ = traits_type::to_char_type(__c); ++_M_gcount; __c = __sb->snextc(); } if (traits_type::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } } if (__n > 0) *__s = char_type(); if (!_M_gcount) __err |= ios_base::failbit; if (__err) this->setstate(__err); return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: get(__streambuf_type& __sb, char_type __delim) { _M_gcount = 0; ios_base::iostate __err = ios_base::goodbit; sentry __cerb(*this, true); if (__cerb) { try { const int_type __idelim = traits_type::to_int_type(__delim); const int_type __eof = traits_type::eof(); __streambuf_type* __this_sb = this->rdbuf(); int_type __c = __this_sb->sgetc(); char_type __c2 = traits_type::to_char_type(__c); while (!traits_type::eq_int_type(__c, __eof) && !traits_type::eq_int_type(__c, __idelim) && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) { ++_M_gcount; __c = __this_sb->snextc(); __c2 = traits_type::to_char_type(__c); } if (traits_type::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } } if (!_M_gcount) __err |= ios_base::failbit; if (__err) this->setstate(__err); return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: getline(char_type* __s, streamsize __n, char_type __delim) { _M_gcount = 0; ios_base::iostate __err = ios_base::goodbit; sentry __cerb(*this, true); if (__cerb) { try { const int_type __idelim = traits_type::to_int_type(__delim); const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); int_type __c = __sb->sgetc(); while (_M_gcount + 1 < __n && !traits_type::eq_int_type(__c, __eof) && !traits_type::eq_int_type(__c, __idelim)) { *__s++ = traits_type::to_char_type(__c); __c = __sb->snextc(); ++_M_gcount; } if (traits_type::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; else { if (traits_type::eq_int_type(__c, __idelim)) { __sb->sbumpc(); ++_M_gcount; } else __err |= ios_base::failbit; } } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } } if (__n > 0) *__s = char_type(); if (!_M_gcount) __err |= ios_base::failbit; if (__err) this->setstate(__err); return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: ignore(void) { _M_gcount = 0; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) __err |= ios_base::eofbit; else _M_gcount = 1; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: ignore(streamsize __n) { _M_gcount = 0; sentry __cerb(*this, true); if (__cerb && __n > 0) { ios_base::iostate __err = ios_base::goodbit; try { const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); int_type __c = __sb->sgetc(); # 513 "/usr/include/c++/4.5/bits/istream.tcc" 3 bool __large_ignore = false; while (true) { while (_M_gcount < __n && !traits_type::eq_int_type(__c, __eof)) { ++_M_gcount; __c = __sb->snextc(); } if (__n == __gnu_cxx::__numeric_traits::__max && !traits_type::eq_int_type(__c, __eof)) { _M_gcount = __gnu_cxx::__numeric_traits::__min; __large_ignore = true; } else break; } if (__large_ignore) _M_gcount = __gnu_cxx::__numeric_traits::__max; if (traits_type::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: ignore(streamsize __n, int_type __delim) { _M_gcount = 0; sentry __cerb(*this, true); if (__cerb && __n > 0) { ios_base::iostate __err = ios_base::goodbit; try { const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); int_type __c = __sb->sgetc(); bool __large_ignore = false; while (true) { while (_M_gcount < __n && !traits_type::eq_int_type(__c, __eof) && !traits_type::eq_int_type(__c, __delim)) { ++_M_gcount; __c = __sb->snextc(); } if (__n == __gnu_cxx::__numeric_traits::__max && !traits_type::eq_int_type(__c, __eof) && !traits_type::eq_int_type(__c, __delim)) { _M_gcount = __gnu_cxx::__numeric_traits::__min; __large_ignore = true; } else break; } if (__large_ignore) _M_gcount = __gnu_cxx::__numeric_traits::__max; if (traits_type::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; else if (traits_type::eq_int_type(__c, __delim)) { if (_M_gcount < __gnu_cxx::__numeric_traits::__max) ++_M_gcount; __sb->sbumpc(); } } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template typename basic_istream<_CharT, _Traits>::int_type basic_istream<_CharT, _Traits>:: peek(void) { int_type __c = traits_type::eof(); _M_gcount = 0; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { __c = this->rdbuf()->sgetc(); if (traits_type::eq_int_type(__c, traits_type::eof())) __err |= ios_base::eofbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return __c; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: read(char_type* __s, streamsize __n) { _M_gcount = 0; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { _M_gcount = this->rdbuf()->sgetn(__s, __n); if (_M_gcount != __n) __err |= (ios_base::eofbit | ios_base::failbit); } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template streamsize basic_istream<_CharT, _Traits>:: readsome(char_type* __s, streamsize __n) { _M_gcount = 0; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { const streamsize __num = this->rdbuf()->in_avail(); if (__num > 0) _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); else if (__num == -1) __err |= ios_base::eofbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return _M_gcount; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: putback(char_type __c) { _M_gcount = 0; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); if (!__sb || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) __err |= ios_base::badbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: unget(void) { _M_gcount = 0; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); if (!__sb || traits_type::eq_int_type(__sb->sungetc(), __eof)) __err |= ios_base::badbit; } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template int basic_istream<_CharT, _Traits>:: sync(void) { int __ret = -1; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { __streambuf_type* __sb = this->rdbuf(); if (__sb) { if (__sb->pubsync() == -1) __err |= ios_base::badbit; else __ret = 0; } } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return __ret; } template typename basic_istream<_CharT, _Traits>::pos_type basic_istream<_CharT, _Traits>:: tellg(void) { pos_type __ret = pos_type(-1); try { if (!this->fail()) __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::in); } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } return __ret; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: seekg(pos_type __pos) { ios_base::iostate __err = ios_base::goodbit; try { if (!this->fail()) { const pos_type __p = this->rdbuf()->pubseekpos(__pos, ios_base::in); if (__p == pos_type(off_type(-1))) __err |= ios_base::failbit; } } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: seekg(off_type __off, ios_base::seekdir __dir) { ios_base::iostate __err = ios_base::goodbit; try { if (!this->fail()) { const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, ios_base::in); if (__p == pos_type(off_type(-1))) __err |= ios_base::failbit; } } catch(__cxxabiv1::__forced_unwind&) { this->_M_setstate(ios_base::badbit); throw; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); return *this; } template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) { typedef basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::int_type __int_type; typename __istream_type::sentry __cerb(__in, false); if (__cerb) { ios_base::iostate __err = ios_base::goodbit; try { const __int_type __cb = __in.rdbuf()->sbumpc(); if (!_Traits::eq_int_type(__cb, _Traits::eof())) __c = _Traits::to_char_type(__cb); else __err |= (ios_base::eofbit | ios_base::failbit); } catch(__cxxabiv1::__forced_unwind&) { __in._M_setstate(ios_base::badbit); throw; } catch(...) { __in._M_setstate(ios_base::badbit); } if (__err) __in.setstate(__err); } return __in; } template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) { typedef basic_istream<_CharT, _Traits> __istream_type; typedef basic_streambuf<_CharT, _Traits> __streambuf_type; typedef typename _Traits::int_type int_type; typedef _CharT char_type; typedef ctype<_CharT> __ctype_type; streamsize __extracted = 0; ios_base::iostate __err = ios_base::goodbit; typename __istream_type::sentry __cerb(__in, false); if (__cerb) { try { streamsize __num = __in.width(); if (__num <= 0) __num = __gnu_cxx::__numeric_traits::__max; const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); const int_type __eof = _Traits::eof(); __streambuf_type* __sb = __in.rdbuf(); int_type __c = __sb->sgetc(); while (__extracted < __num - 1 && !_Traits::eq_int_type(__c, __eof) && !__ct.is(ctype_base::space, _Traits::to_char_type(__c))) { *__s++ = _Traits::to_char_type(__c); ++__extracted; __c = __sb->snextc(); } if (_Traits::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; *__s = char_type(); __in.width(0); } catch(__cxxabiv1::__forced_unwind&) { __in._M_setstate(ios_base::badbit); throw; } catch(...) { __in._M_setstate(ios_base::badbit); } } if (!__extracted) __err |= ios_base::failbit; if (__err) __in.setstate(__err); return __in; } template basic_istream<_CharT, _Traits>& ws(basic_istream<_CharT, _Traits>& __in) { typedef basic_istream<_CharT, _Traits> __istream_type; typedef basic_streambuf<_CharT, _Traits> __streambuf_type; typedef typename __istream_type::int_type __int_type; typedef ctype<_CharT> __ctype_type; const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); const __int_type __eof = _Traits::eof(); __streambuf_type* __sb = __in.rdbuf(); __int_type __c = __sb->sgetc(); while (!_Traits::eq_int_type(__c, __eof) && __ct.is(ctype_base::space, _Traits::to_char_type(__c))) __c = __sb->snextc(); if (_Traits::eq_int_type(__c, __eof)) __in.setstate(ios_base::eofbit); return __in; } extern template class basic_istream; extern template istream& ws(istream&); extern template istream& operator>>(istream&, char&); extern template istream& operator>>(istream&, char*); extern template istream& operator>>(istream&, unsigned char&); extern template istream& operator>>(istream&, signed char&); extern template istream& operator>>(istream&, unsigned char*); extern template istream& operator>>(istream&, signed char*); extern template istream& istream::_M_extract(unsigned short&); extern template istream& istream::_M_extract(unsigned int&); extern template istream& istream::_M_extract(long&); extern template istream& istream::_M_extract(unsigned long&); extern template istream& istream::_M_extract(bool&); extern template istream& istream::_M_extract(long long&); extern template istream& istream::_M_extract(unsigned long long&); extern template istream& istream::_M_extract(float&); extern template istream& istream::_M_extract(double&); extern template istream& istream::_M_extract(long double&); extern template istream& istream::_M_extract(void*&); extern template class basic_iostream; extern template class basic_istream; extern template wistream& ws(wistream&); extern template wistream& operator>>(wistream&, wchar_t&); extern template wistream& operator>>(wistream&, wchar_t*); extern template wistream& wistream::_M_extract(unsigned short&); extern template wistream& wistream::_M_extract(unsigned int&); extern template wistream& wistream::_M_extract(long&); extern template wistream& wistream::_M_extract(unsigned long&); extern template wistream& wistream::_M_extract(bool&); extern template wistream& wistream::_M_extract(long long&); extern template wistream& wistream::_M_extract(unsigned long long&); extern template wistream& wistream::_M_extract(float&); extern template wistream& wistream::_M_extract(double&); extern template wistream& wistream::_M_extract(long double&); extern template wistream& wistream::_M_extract(void*&); extern template class basic_iostream; } # 855 "/usr/include/c++/4.5/istream" 2 3 # 67 "/usr/include/c++/4.5/iterator" 2 3 # 1 "/usr/include/c++/4.5/bits/stream_iterator.h" 1 3 # 33 "/usr/include/c++/4.5/bits/stream_iterator.h" 3 # 34 "/usr/include/c++/4.5/bits/stream_iterator.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template, typename _Dist = ptrdiff_t> class istream_iterator : public iterator { public: typedef _CharT char_type; typedef _Traits traits_type; typedef basic_istream<_CharT, _Traits> istream_type; private: istream_type* _M_stream; _Tp _M_value; bool _M_ok; public: istream_iterator() : _M_stream(0), _M_value(), _M_ok(false) {} istream_iterator(istream_type& __s) : _M_stream(&__s) { _M_read(); } istream_iterator(const istream_iterator& __obj) : _M_stream(__obj._M_stream), _M_value(__obj._M_value), _M_ok(__obj._M_ok) { } const _Tp& operator*() const { ; return _M_value; } const _Tp* operator->() const { return &(operator*()); } istream_iterator& operator++() { ; _M_read(); return *this; } istream_iterator operator++(int) { ; istream_iterator __tmp = *this; _M_read(); return __tmp; } bool _M_equal(const istream_iterator& __x) const { return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); } private: void _M_read() { _M_ok = (_M_stream && *_M_stream) ? true : false; if (_M_ok) { *_M_stream >> _M_value; _M_ok = *_M_stream ? true : false; } } }; template inline bool operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) { return __x._M_equal(__y); } template inline bool operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) { return !__x._M_equal(__y); } # 150 "/usr/include/c++/4.5/bits/stream_iterator.h" 3 template > class ostream_iterator : public iterator { public: typedef _CharT char_type; typedef _Traits traits_type; typedef basic_ostream<_CharT, _Traits> ostream_type; private: ostream_type* _M_stream; const _CharT* _M_string; public: ostream_iterator(ostream_type& __s) : _M_stream(&__s), _M_string(0) {} # 181 "/usr/include/c++/4.5/bits/stream_iterator.h" 3 ostream_iterator(ostream_type& __s, const _CharT* __c) : _M_stream(&__s), _M_string(__c) { } ostream_iterator(const ostream_iterator& __obj) : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } ostream_iterator& operator=(const _Tp& __value) { ; *_M_stream << __value; if (_M_string) *_M_stream << _M_string; return *this; } ostream_iterator& operator*() { return *this; } ostream_iterator& operator++() { return *this; } ostream_iterator& operator++(int) { return *this; } }; } # 68 "/usr/include/c++/4.5/iterator" 2 3 # 55 "/home/jas/.tt/ttsetup/opt/include/boost/detail/iterator.hpp" 2 3 4 # 77 "/home/jas/.tt/ttsetup/opt/include/boost/detail/iterator.hpp" 3 4 namespace boost { namespace detail { template struct iterator_traits : std::iterator_traits {}; using std::distance; }} # 9 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_traits.hpp" 2 3 4 namespace boost { # 27 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_traits.hpp" 3 4 template struct iterator_value { typedef typename boost::detail::iterator_traits::value_type type; }; template struct iterator_reference { typedef typename boost::detail::iterator_traits::reference type; }; template struct iterator_pointer { typedef typename boost::detail::iterator_traits::pointer type; }; template struct iterator_difference { typedef typename boost::detail::iterator_traits::difference_type type; }; template struct iterator_category { typedef typename boost::detail::iterator_traits::iterator_category type; }; # 90 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_traits.hpp" 3 4 } # 26 "/home/jas/.tt/ttsetup/opt/include/boost/range/mutable_iterator.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/range/mutable_iterator.hpp" 2 3 4 namespace boost { namespace range_detail { template< typename C, typename Enable=void > struct extract_iterator {}; template< typename C > struct extract_iterator< C , typename boost::range_detail::exists< typename C::iterator >::type > { typedef typename C::iterator type; }; } template< typename C > struct range_mutable_iterator : range_detail::extract_iterator {}; template< typename Iterator > struct range_mutable_iterator< std::pair > { typedef Iterator type; }; template< typename T, std::size_t sz > struct range_mutable_iterator< T[sz] > { typedef T* type; }; } # 20 "/home/jas/.tt/ttsetup/opt/include/boost/range/iterator.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/const_iterator.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/range/const_iterator.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_const.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_const.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_volatile.hpp" 1 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_volatile.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/cv_traits_impl.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/cv_traits_impl.hpp" 3 4 namespace boost { namespace detail { template struct cv_traits_imp {}; template struct cv_traits_imp { static const bool is_const = false; static const bool is_volatile = false; typedef T unqualified_type; }; template struct cv_traits_imp { static const bool is_const = true; static const bool is_volatile = false; typedef T unqualified_type; }; template struct cv_traits_imp { static const bool is_const = false; static const bool is_volatile = true; typedef T unqualified_type; }; template struct cv_traits_imp { static const bool is_const = true; static const bool is_volatile = true; typedef T unqualified_type; }; # 92 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/cv_traits_impl.hpp" 3 4 } } # 29 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_volatile.hpp" 2 3 4 # 40 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_volatile.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 41 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_volatile.hpp" 2 3 4 namespace boost { namespace detail{ template struct is_volatile_rval_filter { static const bool value = ::boost::detail::cv_traits_imp::is_volatile; }; template struct is_volatile_rval_filter { static const bool value = false; }; } template< typename T > struct is_volatile : ::boost::integral_constant::value> { }; template< typename T > struct is_volatile< T& > : ::boost::integral_constant { }; # 148 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_volatile.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 151 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_volatile.hpp" 2 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_const.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/broken_compiler_spec.hpp" 1 3 4 # 95 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/broken_compiler_spec.hpp" 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_const.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_const.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_const.hpp" 2 3 4 namespace boost { namespace detail { template struct remove_const_helper { typedef T type; }; template struct remove_const_helper { typedef T volatile type; }; template struct remove_const_impl { typedef typename remove_const_helper< typename cv_traits_imp::unqualified_type , ::boost::is_volatile::value >::type type; }; template struct remove_const_impl { typedef T&& type; }; } template< typename T > struct remove_const { typedef typename boost::detail::remove_const_impl::type type; }; template< typename T > struct remove_const { typedef T& type; }; template< typename T, std::size_t N > struct remove_const { typedef T type[N]; }; template< typename T, std::size_t N > struct remove_const { typedef T volatile type[N]; }; # 86 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_const.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4 # 89 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_const.hpp" 2 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/range/const_iterator.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/range/const_iterator.hpp" 2 3 4 namespace boost { namespace range_detail { template< typename C, typename Enable=void > struct extract_const_iterator {}; template< typename C > struct extract_const_iterator< C , typename boost::range_detail::exists< typename C::const_iterator >::type > { typedef typename C::const_iterator type; }; } template< typename C > struct range_const_iterator : range_detail::extract_const_iterator {}; template< typename Iterator > struct range_const_iterator< std::pair > { typedef Iterator type; }; template< typename T, std::size_t sz > struct range_const_iterator< T[sz] > { typedef const T* type; }; } # 21 "/home/jas/.tt/ttsetup/opt/include/boost/range/iterator.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_const.hpp" 1 3 4 # 30 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_const.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_reference.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_reference.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_lvalue_reference.hpp" 1 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_lvalue_reference.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 33 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_lvalue_reference.hpp" 2 3 4 namespace boost { template< typename T > struct is_lvalue_reference : ::boost::integral_constant { }; template< typename T > struct is_lvalue_reference< T& > : ::boost::integral_constant { }; # 113 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_lvalue_reference.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 116 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_lvalue_reference.hpp" 2 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_reference.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_rvalue_reference.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_rvalue_reference.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_rvalue_reference.hpp" 2 3 4 namespace boost { template< typename T > struct is_rvalue_reference : ::boost::integral_constant { }; template< typename T > struct is_rvalue_reference< T&& > : ::boost::integral_constant { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_rvalue_reference.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_reference.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/ice.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/ice.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/ice_and.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/ice_and.hpp" 3 4 namespace boost { namespace type_traits { template struct ice_and; template struct ice_and { static const bool value = false; }; template <> struct ice_and { static const bool value = true; }; } } # 17 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/ice.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/ice_not.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/ice_not.hpp" 3 4 namespace boost { namespace type_traits { template struct ice_not { static const bool value = true; }; template <> struct ice_not { static const bool value = false; }; } } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/ice.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/ice_eq.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/ice_eq.hpp" 3 4 namespace boost { namespace type_traits { template struct ice_eq { static const bool value = (b1 == b2); }; template struct ice_ne { static const bool value = (b1 != b2); }; template bool const ice_eq::value; template bool const ice_ne::value; } } # 19 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/ice.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_reference.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_reference.hpp" 2 3 4 namespace boost { namespace detail { template struct is_reference_impl { static const bool value = (::boost::type_traits::ice_or< ::boost::is_lvalue_reference::value, ::boost::is_rvalue_reference::value >::value) ; }; } template< typename T > struct is_reference : ::boost::integral_constant::value> { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 43 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_reference.hpp" 2 3 4 # 31 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_const.hpp" 2 3 4 # 43 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_const.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 44 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_const.hpp" 2 3 4 namespace boost { namespace detail{ template struct is_const_rvalue_filter { static const bool value = ::boost::detail::cv_traits_imp::is_const; }; template struct is_const_rvalue_filter { static const bool value = false; }; } template< typename T > struct is_const : ::boost::integral_constant::value> { }; template< typename T > struct is_const< T& > : ::boost::integral_constant { }; # 160 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_const.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 163 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_const.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/range/iterator.hpp" 2 3 4 namespace boost { # 50 "/home/jas/.tt/ttsetup/opt/include/boost/range/iterator.hpp" 3 4 template< typename C > struct range_iterator { typedef typename mpl::eval_if_c< is_const::value, range_const_iterator< typename remove_const::type >, range_mutable_iterator >::type type; }; } # 26 "/home/jas/.tt/ttsetup/opt/include/boost/range/end.hpp" 2 3 4 namespace boost { namespace range_detail { template< typename C > inline typename range_iterator::type range_end( C& c ) { return c.end(); } template< typename Iterator > inline Iterator range_end( const std::pair& p ) { return p.second; } template< typename Iterator > inline Iterator range_end( std::pair& p ) { return p.second; } template< typename T, std::size_t sz > inline const T* range_end( const T (&a)[sz] ) { return range_detail::array_end( a ); } template< typename T, std::size_t sz > inline T* range_end( T (&a)[sz] ) { return range_detail::array_end( a ); } } template< class T > inline typename range_iterator::type end( T& r ) { using namespace range_detail; return range_end( r ); } template< class T > inline typename range_iterator::type end( const T& r ) { using namespace range_detail; return range_end( r ); } } namespace boost { template< class T > inline typename range_iterator::type const_end( const T& r ) { return boost::end( r ); } } # 74 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/begin.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/range/begin.hpp" 3 4 namespace boost { namespace range_detail { template< typename C > inline typename range_iterator::type range_begin( C& c ) { return c.begin(); } template< typename Iterator > inline Iterator range_begin( const std::pair& p ) { return p.first; } template< typename Iterator > inline Iterator range_begin( std::pair& p ) { return p.first; } # 75 "/home/jas/.tt/ttsetup/opt/include/boost/range/begin.hpp" 3 4 template< typename T, std::size_t sz > inline const T* range_begin( const T (&a)[sz] ) { return a; } template< typename T, std::size_t sz > inline T* range_begin( T (&a)[sz] ) { return a; } } template< class T > inline typename range_iterator::type begin( T& r ) { using namespace range_detail; return range_begin( r ); } template< class T > inline typename range_iterator::type begin( const T& r ) { using namespace range_detail; return range_begin( r ); } } namespace boost { template< class T > inline typename range_iterator::type const_begin( const T& r ) { return boost::begin( r ); } } # 75 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/rend.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/range/rend.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/reverse_iterator.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/range/reverse_iterator.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/reverse_iterator.hpp" 1 3 4 # 10 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/reverse_iterator.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/iterator.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/iterator.hpp" 2 3 4 namespace boost { # 39 "/home/jas/.tt/ttsetup/opt/include/boost/iterator.hpp" 3 4 namespace detail { template struct iterator_base : std::iterator {}; # 51 "/home/jas/.tt/ttsetup/opt/include/boost/iterator.hpp" 3 4 } template struct iterator : boost::detail::iterator_base {}; } # 11 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/reverse_iterator.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/utility.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/utility.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/utility/addressof.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/utility/addressof.hpp" 3 4 namespace boost { namespace detail { template struct addr_impl_ref { T & v_; inline addr_impl_ref( T & v ): v_( v ) {} inline operator T& () const { return v_; } private: addr_impl_ref & operator=(const addr_impl_ref &); }; template struct addressof_impl { static inline T * f( T & v, long ) { return reinterpret_cast( &const_cast(reinterpret_cast(v))); } static inline T * f( T * v, int ) { return v; } }; } template T * addressof( T & v ) { return boost::detail::addressof_impl::f( boost::detail::addr_impl_ref( v ), 0 ); } # 100 "/home/jas/.tt/ttsetup/opt/include/boost/utility/addressof.hpp" 3 4 } # 13 "/home/jas/.tt/ttsetup/opt/include/boost/utility.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/utility/base_from_member.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/utility/base_from_member.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/enum_binary_params.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/enum_binary_params.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/tuple/rem.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/enum_binary_params.hpp" 2 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/utility/base_from_member.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/enum_params.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/utility/base_from_member.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/repeat_from_to.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/repeat_from_to.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/repeat_from_to.hpp" 2 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/utility/base_from_member.hpp" 2 3 4 # 53 "/home/jas/.tt/ttsetup/opt/include/boost/utility/base_from_member.hpp" 3 4 namespace boost { # 65 "/home/jas/.tt/ttsetup/opt/include/boost/utility/base_from_member.hpp" 3 4 template < typename MemberType, int UniqueID = 0 > class base_from_member { protected: MemberType member; base_from_member() : member() {} template < typename T0 > explicit base_from_member( T0 x0 ) : member( x0 ) {} template < typename T0 , typename T1 > explicit base_from_member( T0 x0 , T1 x1 ) : member( x0 , x1 ) {} template < typename T0 , typename T1 , typename T2 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 ) : member( x0 , x1 , x2 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 ) : member( x0 , x1 , x2 , x3 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 , typename T4 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 , T4 x4 ) : member( x0 , x1 , x2 , x3 , x4 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 , T4 x4 , T5 x5 ) : member( x0 , x1 , x2 , x3 , x4 , x5 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 , T4 x4 , T5 x5 , T6 x6 ) : member( x0 , x1 , x2 , x3 , x4 , x5 , x6 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 , T4 x4 , T5 x5 , T6 x6 , T7 x7 ) : member( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 , T4 x4 , T5 x5 , T6 x6 , T7 x7 , T8 x8 ) : member( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 , T4 x4 , T5 x5 , T6 x6 , T7 x7 , T8 x8 , T9 x9 ) : member( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 ) {} }; } # 14 "/home/jas/.tt/ttsetup/opt/include/boost/utility.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/utility/binary.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/utility/binary.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/deduce_d.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/deduce_d.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/deduce_d.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/utility/binary.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/cat.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/cat.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/fold_left.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/fold_left.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/fold_left.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/seq.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/seq.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/elem.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/seq.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/fold_left.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/size.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/fold_left.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/cat.hpp" 2 3 4 # 30 "/home/jas/.tt/ttsetup/opt/include/boost/utility/binary.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/seq/transform.hpp" 1 3 4 # 31 "/home/jas/.tt/ttsetup/opt/include/boost/utility/binary.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/mod.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/mod.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/detail/div_base.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/detail/div_base.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/comparison/less_equal.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/comparison/less_equal.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/logical/not.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/comparison/less_equal.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/detail/div_base.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/arithmetic/mod.hpp" 2 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/utility/binary.hpp" 2 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/utility.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/utility/enable_if.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/utility/enable_if.hpp" 3 4 namespace boost { template struct enable_if_c { typedef T type; }; template struct enable_if_c {}; template struct enable_if : public enable_if_c {}; template struct lazy_enable_if_c { typedef typename T::type type; }; template struct lazy_enable_if_c {}; template struct lazy_enable_if : public lazy_enable_if_c {}; template struct disable_if_c { typedef T type; }; template struct disable_if_c {}; template struct disable_if : public disable_if_c {}; template struct lazy_disable_if_c { typedef typename T::type type; }; template struct lazy_disable_if_c {}; template struct lazy_disable_if : public lazy_disable_if_c {}; } # 16 "/home/jas/.tt/ttsetup/opt/include/boost/utility.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/checked_delete.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/checked_delete.hpp" 3 4 namespace boost { template inline void checked_delete(T * x) { typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; (void) sizeof(type_must_be_complete); delete x; } template inline void checked_array_delete(T * x) { typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; (void) sizeof(type_must_be_complete); delete [] x; } template struct checked_deleter { typedef void result_type; typedef T * argument_type; void operator()(T * x) const { boost::checked_delete(x); } }; template struct checked_array_deleter { typedef void result_type; typedef T * argument_type; void operator()(T * x) const { boost::checked_array_delete(x); } }; } # 17 "/home/jas/.tt/ttsetup/opt/include/boost/utility.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/next_prior.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/next_prior.hpp" 3 4 namespace boost { # 29 "/home/jas/.tt/ttsetup/opt/include/boost/next_prior.hpp" 3 4 template inline T next(T x) { return ++x; } template inline T next(T x, Distance n) { std::advance(x, n); return x; } template inline T prior(T x) { return --x; } template inline T prior(T x, Distance n) { std::advance(x, -n); return x; } } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/utility.hpp" 2 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/reverse_iterator.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_adaptor.hpp" 1 3 4 # 10 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_adaptor.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/static_assert.hpp" 1 3 4 # 11 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_adaptor.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_categories.hpp" 1 3 4 # 11 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_categories.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/config_def.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_categories.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/identity.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/identity.hpp" 3 4 namespace boost { namespace mpl { template< typename T = na > struct identity { typedef T type; }; template< typename T = na > struct make_identity { typedef identity type; }; template<> struct identity< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : identity< T1 > { }; }; template< typename Tag > struct lambda< identity< na > , Tag , int_<-1> > { typedef false_ is_le; typedef identity< na > result_; typedef identity< na > type; }; namespace aux { template< typename T1 > struct template_arity< identity< T1 > > : int_<1> { }; template<> struct template_arity< identity< na > > : int_<-1> { }; } template<> struct make_identity< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : make_identity< T1 > { }; }; template< typename Tag > struct lambda< make_identity< na > , Tag , int_<-1> > { typedef false_ is_le; typedef make_identity< na > result_; typedef make_identity< na > type; }; namespace aux { template< typename T1 > struct template_arity< make_identity< T1 > > : int_<1> { }; template<> struct template_arity< make_identity< na > > : int_<-1> { }; } }} # 17 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_categories.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/placeholders.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/placeholders.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg_fwd.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg_fwd.hpp" 3 4 namespace mpl_ { template< int N > struct arg; } namespace boost { namespace mpl { using ::mpl_::arg; } } # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/na_assert.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arity_spec.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arg_typedef.hpp" 1 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg.hpp" 2 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/arg.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/arg.hpp" 3 4 namespace mpl_ { template<> struct arg< -1 > { static const int value = -1; template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { typedef U1 type; enum { mpl_assertion_in_line_27 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (boost::mpl::is_na))0, 1 ) ) ) }; }; }; template<> struct arg<1> { static const int value = 1; typedef arg<2> next; template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { typedef U1 type; enum { mpl_assertion_in_line_45 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (boost::mpl::is_na))0, 1 ) ) ) }; }; }; template<> struct arg<2> { static const int value = 2; typedef arg<3> next; template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { typedef U2 type; enum { mpl_assertion_in_line_63 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (boost::mpl::is_na))0, 1 ) ) ) }; }; }; template<> struct arg<3> { static const int value = 3; typedef arg<4> next; template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { typedef U3 type; enum { mpl_assertion_in_line_81 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (boost::mpl::is_na))0, 1 ) ) ) }; }; }; template<> struct arg<4> { static const int value = 4; typedef arg<5> next; template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { typedef U4 type; enum { mpl_assertion_in_line_99 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (boost::mpl::is_na))0, 1 ) ) ) }; }; }; template<> struct arg<5> { static const int value = 5; typedef arg<6> next; template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { typedef U5 type; enum { mpl_assertion_in_line_117 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (boost::mpl::is_na))0, 1 ) ) ) }; }; }; } # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg.hpp" 2 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/placeholders.hpp" 2 3 4 # 43 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/placeholders.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp" 3 4 namespace mpl_ { typedef arg< -1 > _; } namespace boost { namespace mpl { using ::mpl_::_; namespace placeholders { using mpl_::_; } }} namespace mpl_ { typedef arg<1> _1; } namespace boost { namespace mpl { using ::mpl_::_1; namespace placeholders { using mpl_::_1; } }} namespace mpl_ { typedef arg<2> _2; } namespace boost { namespace mpl { using ::mpl_::_2; namespace placeholders { using mpl_::_2; } }} namespace mpl_ { typedef arg<3> _3; } namespace boost { namespace mpl { using ::mpl_::_3; namespace placeholders { using mpl_::_3; } }} namespace mpl_ { typedef arg<4> _4; } namespace boost { namespace mpl { using ::mpl_::_4; namespace placeholders { using mpl_::_4; } }} namespace mpl_ { typedef arg<5> _5; } namespace boost { namespace mpl { using ::mpl_::_5; namespace placeholders { using mpl_::_5; } }} namespace mpl_ { typedef arg<6> _6; } namespace boost { namespace mpl { using ::mpl_::_6; namespace placeholders { using mpl_::_6; } }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 44 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/placeholders.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_categories.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/intrinsics.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_reference.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_reference.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_reference.hpp" 2 3 4 namespace boost { namespace detail { # 59 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_reference.hpp" 3 4 template struct add_reference_rvalue_layer { typedef T& type; }; template struct add_reference_rvalue_layer { typedef T&& type; }; template struct add_reference_impl { typedef typename add_reference_rvalue_layer::type type; }; template< typename T > struct add_reference_impl { typedef T& type; }; template<> struct add_reference_impl { typedef void type; }; template<> struct add_reference_impl { typedef void const type; }; template<> struct add_reference_impl { typedef void volatile type; }; template<> struct add_reference_impl { typedef void const volatile type; }; } template< typename T > struct add_reference { typedef typename boost::detail::add_reference_impl::type type; }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4 # 106 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_reference.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_arithmetic.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_arithmetic.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_integral.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_integral.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_integral.hpp" 2 3 4 namespace boost { template< typename T > struct is_integral : ::boost::integral_constant { }; template<> struct is_integral< unsigned char > : ::boost::integral_constant { }; template<> struct is_integral< unsigned char const > : ::boost::integral_constant { }; template<> struct is_integral< unsigned char volatile > : ::boost::integral_constant { }; template<> struct is_integral< unsigned char const volatile > : ::boost::integral_constant { }; template<> struct is_integral< unsigned short > : ::boost::integral_constant { }; template<> struct is_integral< unsigned short const > : ::boost::integral_constant { }; template<> struct is_integral< unsigned short volatile > : ::boost::integral_constant { }; template<> struct is_integral< unsigned short const volatile > : ::boost::integral_constant { }; template<> struct is_integral< unsigned int > : ::boost::integral_constant { }; template<> struct is_integral< unsigned int const > : ::boost::integral_constant { }; template<> struct is_integral< unsigned int volatile > : ::boost::integral_constant { }; template<> struct is_integral< unsigned int const volatile > : ::boost::integral_constant { }; template<> struct is_integral< unsigned long > : ::boost::integral_constant { }; template<> struct is_integral< unsigned long const > : ::boost::integral_constant { }; template<> struct is_integral< unsigned long volatile > : ::boost::integral_constant { }; template<> struct is_integral< unsigned long const volatile > : ::boost::integral_constant { }; template<> struct is_integral< signed char > : ::boost::integral_constant { }; template<> struct is_integral< signed char const > : ::boost::integral_constant { }; template<> struct is_integral< signed char volatile > : ::boost::integral_constant { }; template<> struct is_integral< signed char const volatile > : ::boost::integral_constant { }; template<> struct is_integral< signed short > : ::boost::integral_constant { }; template<> struct is_integral< signed short const > : ::boost::integral_constant { }; template<> struct is_integral< signed short volatile > : ::boost::integral_constant { }; template<> struct is_integral< signed short const volatile > : ::boost::integral_constant { }; template<> struct is_integral< signed int > : ::boost::integral_constant { }; template<> struct is_integral< signed int const > : ::boost::integral_constant { }; template<> struct is_integral< signed int volatile > : ::boost::integral_constant { }; template<> struct is_integral< signed int const volatile > : ::boost::integral_constant { }; template<> struct is_integral< signed long > : ::boost::integral_constant { }; template<> struct is_integral< signed long const > : ::boost::integral_constant { }; template<> struct is_integral< signed long volatile > : ::boost::integral_constant { }; template<> struct is_integral< signed long const volatile > : ::boost::integral_constant { }; template<> struct is_integral< bool > : ::boost::integral_constant { }; template<> struct is_integral< bool const > : ::boost::integral_constant { }; template<> struct is_integral< bool volatile > : ::boost::integral_constant { }; template<> struct is_integral< bool const volatile > : ::boost::integral_constant { }; template<> struct is_integral< char > : ::boost::integral_constant { }; template<> struct is_integral< char const > : ::boost::integral_constant { }; template<> struct is_integral< char volatile > : ::boost::integral_constant { }; template<> struct is_integral< char const volatile > : ::boost::integral_constant { }; template<> struct is_integral< wchar_t > : ::boost::integral_constant { }; template<> struct is_integral< wchar_t const > : ::boost::integral_constant { }; template<> struct is_integral< wchar_t volatile > : ::boost::integral_constant { }; template<> struct is_integral< wchar_t const volatile > : ::boost::integral_constant { }; # 65 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_integral.hpp" 3 4 template<> struct is_integral< ::boost::ulong_long_type > : ::boost::integral_constant { }; template<> struct is_integral< ::boost::ulong_long_type const > : ::boost::integral_constant { }; template<> struct is_integral< ::boost::ulong_long_type volatile > : ::boost::integral_constant { }; template<> struct is_integral< ::boost::ulong_long_type const volatile > : ::boost::integral_constant { }; template<> struct is_integral< ::boost::long_long_type > : ::boost::integral_constant { }; template<> struct is_integral< ::boost::long_long_type const > : ::boost::integral_constant { }; template<> struct is_integral< ::boost::long_long_type volatile > : ::boost::integral_constant { }; template<> struct is_integral< ::boost::long_long_type const volatile > : ::boost::integral_constant { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 77 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_integral.hpp" 2 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_arithmetic.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_float.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_float.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_float.hpp" 2 3 4 namespace boost { template< typename T > struct is_float : ::boost::integral_constant { }; template<> struct is_float< float > : ::boost::integral_constant { }; template<> struct is_float< float const > : ::boost::integral_constant { }; template<> struct is_float< float volatile > : ::boost::integral_constant { }; template<> struct is_float< float const volatile > : ::boost::integral_constant { }; template<> struct is_float< double > : ::boost::integral_constant { }; template<> struct is_float< double const > : ::boost::integral_constant { }; template<> struct is_float< double volatile > : ::boost::integral_constant { }; template<> struct is_float< double const volatile > : ::boost::integral_constant { }; template<> struct is_float< long double > : ::boost::integral_constant { }; template<> struct is_float< long double const > : ::boost::integral_constant { }; template<> struct is_float< long double volatile > : ::boost::integral_constant { }; template<> struct is_float< long double const volatile > : ::boost::integral_constant { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_float.hpp" 2 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_arithmetic.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_arithmetic.hpp" 2 3 4 namespace boost { namespace detail { template< typename T > struct is_arithmetic_impl { static const bool value = (::boost::type_traits::ice_or< ::boost::is_integral::value, ::boost::is_float::value >::value) ; }; } template< typename T > struct is_arithmetic : ::boost::integral_constant::value> { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 50 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_arithmetic.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_abstract.hpp" 1 3 4 # 62 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_abstract.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 63 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_abstract.hpp" 2 3 4 namespace boost { namespace detail{ template struct is_abstract_imp { static const bool value = __is_abstract(T); }; # 141 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_abstract.hpp" 3 4 } template< typename T > struct is_abstract : ::boost::integral_constant::value> { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 152 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_abstract.hpp" 2 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 2 3 4 namespace boost { # 52 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 3 4 namespace detail { # 119 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 3 4 struct any_conversion { template any_conversion(const volatile T&); template any_conversion(T&); }; template struct checker { static boost::type_traits::no_type _m_check(any_conversion ...); static boost::type_traits::yes_type _m_check(T, int); }; template struct is_convertible_basic_impl { static From _m_from; static bool const value = sizeof( boost::detail::checker::_m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type); }; # 291 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 3 4 template struct is_convertible_impl { typedef typename add_reference::type ref_type; static const bool value = (::boost::type_traits::ice_and< ::boost::type_traits::ice_or< ::boost::detail::is_convertible_basic_impl::value, ::boost::is_void::value >::value, ::boost::type_traits::ice_not< ::boost::is_array::value >::value >::value) # 305 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 3 4 ; }; template struct is_convertible_impl_select { template struct rebind { typedef is_convertible_impl type; }; }; template <> struct is_convertible_impl_select { template struct rebind { typedef true_type type; }; }; template <> struct is_convertible_impl_select { template struct rebind { typedef false_type type; }; }; template <> struct is_convertible_impl_select { template struct rebind { typedef false_type type; }; }; template struct is_convertible_impl_dispatch_base { typedef is_convertible_impl_select< ::boost::is_arithmetic::value, ::boost::is_arithmetic::value, ::boost::is_abstract::value > selector; typedef typename selector::template rebind isc_binder; typedef typename isc_binder::type type; }; template struct is_convertible_impl_dispatch : public is_convertible_impl_dispatch_base::type {}; # 394 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 3 4 template<> struct is_convertible_impl< void,void > { static const bool value = (true); }; template<> struct is_convertible_impl< void,void const > { static const bool value = (true); }; template<> struct is_convertible_impl< void,void volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void,void const volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void const,void > { static const bool value = (true); }; template<> struct is_convertible_impl< void const,void const > { static const bool value = (true); }; template<> struct is_convertible_impl< void const,void volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void const,void const volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void volatile,void > { static const bool value = (true); }; template<> struct is_convertible_impl< void volatile,void const > { static const bool value = (true); }; template<> struct is_convertible_impl< void volatile,void volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void volatile,void const volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void const volatile,void > { static const bool value = (true); }; template<> struct is_convertible_impl< void const volatile,void const > { static const bool value = (true); }; template<> struct is_convertible_impl< void const volatile,void volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void const volatile,void const volatile > { static const bool value = (true); }; # 404 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 3 4 template< typename To > struct is_convertible_impl< void,To > { static const bool value = (false); }; template< typename From > struct is_convertible_impl< From,void > { static const bool value = (true); }; template< typename To > struct is_convertible_impl< void const,To > { static const bool value = (false); }; template< typename To > struct is_convertible_impl< void volatile,To > { static const bool value = (false); }; template< typename To > struct is_convertible_impl< void const volatile,To > { static const bool value = (false); }; template< typename From > struct is_convertible_impl< From,void const > { static const bool value = (true); }; template< typename From > struct is_convertible_impl< From,void volatile > { static const bool value = (true); }; template< typename From > struct is_convertible_impl< From,void const volatile > { static const bool value = (true); }; } template< typename From, typename To > struct is_convertible : ::boost::integral_constant::value)> { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 429 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_convertible.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_categories.hpp" 2 3 4 namespace boost { struct no_traversal_tag {}; struct incrementable_traversal_tag : no_traversal_tag { }; struct single_pass_traversal_tag : incrementable_traversal_tag { }; struct forward_traversal_tag : single_pass_traversal_tag { }; struct bidirectional_traversal_tag : forward_traversal_tag { }; struct random_access_traversal_tag : bidirectional_traversal_tag { }; namespace detail { template struct old_category_to_traversal : mpl::eval_if< is_convertible , mpl::identity , mpl::eval_if< is_convertible , mpl::identity , mpl::eval_if< is_convertible , mpl::identity , mpl::eval_if< is_convertible , mpl::identity , mpl::eval_if< is_convertible , mpl::identity , void > > > > > {}; # 108 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_categories.hpp" 3 4 template struct pure_traversal_tag : mpl::eval_if< is_convertible , mpl::identity , mpl::eval_if< is_convertible , mpl::identity , mpl::eval_if< is_convertible , mpl::identity , mpl::eval_if< is_convertible , mpl::identity , mpl::eval_if< is_convertible , mpl::identity , void > > > > > { }; # 142 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_categories.hpp" 3 4 } template struct iterator_category_to_traversal : mpl::eval_if< is_convertible , mpl::identity , boost::detail::old_category_to_traversal > {}; template struct iterator_traversal : iterator_category_to_traversal< typename boost::detail::iterator_traits::iterator_category > {}; # 184 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_categories.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/config_undef.hpp" 1 3 4 # 187 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_categories.hpp" 2 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_adaptor.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 1 3 4 # 11 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/interoperable.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/interoperable.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/config_def.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/interoperable.hpp" 2 3 4 namespace boost { # 34 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/interoperable.hpp" 3 4 template struct is_interoperable : mpl::or_< is_convertible< A, B > , is_convertible< B, A > > { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/config_undef.hpp" 1 3 4 # 49 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/interoperable.hpp" 2 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/facade_iterator_category.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/facade_iterator_category.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/config_def.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/facade_iterator_category.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/detail/indirect_traits.hpp" 1 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_function.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_function.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/false_result.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/false_result.hpp" 3 4 namespace boost { namespace type_traits { struct false_result { template struct result_ { static const bool value = false; }; }; }} # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_function.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/is_function_ptr_helper.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/is_function_ptr_helper.hpp" 3 4 namespace boost { namespace type_traits { template struct is_function_ptr_helper { static const bool value = false; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; template struct is_function_ptr_helper { static const bool value = true; }; # 203 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/is_function_ptr_helper.hpp" 3 4 } } # 20 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_function.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_function.hpp" 2 3 4 namespace boost { namespace detail { template struct is_function_chooser : ::boost::type_traits::false_result { }; template <> struct is_function_chooser { template< typename T > struct result_ : ::boost::type_traits::is_function_ptr_helper { }; }; template struct is_function_impl : is_function_chooser< ::boost::is_reference::value > ::template result_ { }; # 90 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_function.hpp" 3 4 } template< typename T > struct is_function : ::boost::integral_constant::value> { }; template< typename T > struct is_function< T&& > : ::boost::integral_constant { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 105 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_function.hpp" 2 3 4 # 8 "/home/jas/.tt/ttsetup/opt/include/boost/detail/indirect_traits.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pointer.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pointer.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_pointer.hpp" 1 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_pointer.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_function_pointer.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_function_pointer.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp" 3 4 namespace boost { namespace type_traits { template struct is_mem_fun_pointer_impl { static const bool value = false; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; template struct is_mem_fun_pointer_impl { static const bool value = true; }; # 776 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp" 3 4 } } # 25 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_function_pointer.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_cv.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_cv.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_cv.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_cv.hpp" 2 3 4 namespace boost { namespace detail{ template struct rvalue_ref_filter_rem_cv { typedef typename boost::detail::cv_traits_imp::unqualified_type type; }; template struct rvalue_ref_filter_rem_cv { typedef T&& type; }; } template< typename T > struct remove_cv { typedef typename boost::detail::rvalue_ref_filter_rem_cv::type type; }; template< typename T > struct remove_cv { typedef T& type; }; template< typename T, std::size_t N > struct remove_cv { typedef T type[N]; }; template< typename T, std::size_t N > struct remove_cv { typedef T type[N]; }; template< typename T, std::size_t N > struct remove_cv { typedef T type[N]; }; # 79 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_cv.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4 # 82 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_cv.hpp" 2 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_function_pointer.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_function_pointer.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_function_pointer.hpp" 2 3 4 namespace boost { template< typename T > struct is_member_function_pointer : ::boost::integral_constant::type>::value> { }; # 132 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_function_pointer.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 135 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_function_pointer.hpp" 2 3 4 # 29 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_pointer.hpp" 2 3 4 # 39 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_pointer.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 40 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_pointer.hpp" 2 3 4 namespace boost { # 50 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_pointer.hpp" 3 4 template< typename T > struct is_member_pointer : ::boost::integral_constant::value> { }; template< typename T, typename U > struct is_member_pointer< U T::* > : ::boost::integral_constant { }; template< typename T, typename U > struct is_member_pointer< U T::*const > : ::boost::integral_constant { }; template< typename T, typename U > struct is_member_pointer< U T::*volatile > : ::boost::integral_constant { }; template< typename T, typename U > struct is_member_pointer< U T::*const volatile > : ::boost::integral_constant { }; # 112 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_pointer.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 115 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_member_pointer.hpp" 2 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pointer.hpp" 2 3 4 # 41 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pointer.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 42 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pointer.hpp" 2 3 4 namespace boost { namespace detail { template< typename T > struct is_pointer_helper { static const bool value = false; }; # 63 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pointer.hpp" 3 4 template< typename T > struct is_pointer_helper { static const bool value = true; }; template< typename T > struct is_pointer_impl { # 80 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pointer.hpp" 3 4 static const bool value = (::boost::type_traits::ice_and< ::boost::detail::is_pointer_helper::type>::value , ::boost::type_traits::ice_not< ::boost::is_member_pointer::value >::value >::value) ; }; } template< typename T > struct is_pointer : ::boost::integral_constant::value> { }; # 158 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pointer.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 161 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pointer.hpp" 2 3 4 # 10 "/home/jas/.tt/ttsetup/opt/include/boost/detail/indirect_traits.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_class.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_class.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 38 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_class.hpp" 2 3 4 namespace boost { namespace detail { # 120 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_class.hpp" 3 4 template struct is_class_impl { static const bool value = __is_class(T); }; } template< typename T > struct is_class : ::boost::integral_constant::value> { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 139 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_class.hpp" 2 3 4 # 11 "/home/jas/.tt/ttsetup/opt/include/boost/detail/indirect_traits.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_reference.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_reference.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_reference.hpp" 2 3 4 namespace boost { namespace detail{ template struct remove_rvalue_ref { typedef T type; }; template struct remove_rvalue_ref { typedef T type; }; } template< typename T > struct remove_reference { typedef typename boost::detail::remove_rvalue_ref::type type; }; template< typename T > struct remove_reference { typedef T type; }; # 66 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_reference.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4 # 69 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_reference.hpp" 2 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/detail/indirect_traits.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_pointer.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_pointer.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_pointer.hpp" 2 3 4 namespace boost { template< typename T > struct remove_pointer { typedef T type; }; template< typename T > struct remove_pointer { typedef T type; }; template< typename T > struct remove_pointer { typedef T type; }; template< typename T > struct remove_pointer { typedef T type; }; template< typename T > struct remove_pointer { typedef T type; }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4 # 42 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_pointer.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/detail/indirect_traits.hpp" 2 3 4 # 33 "/home/jas/.tt/ttsetup/opt/include/boost/detail/indirect_traits.hpp" 3 4 namespace boost { namespace detail { namespace indirect_traits { template struct is_reference_to_const : mpl::false_ { }; template struct is_reference_to_const : mpl::true_ { }; # 55 "/home/jas/.tt/ttsetup/opt/include/boost/detail/indirect_traits.hpp" 3 4 template struct is_reference_to_function : mpl::false_ { }; template struct is_reference_to_function : is_function { }; template struct is_pointer_to_function : mpl::false_ { }; template struct is_pointer_to_function : is_function { }; template struct is_reference_to_member_function_pointer_impl : mpl::false_ { }; template struct is_reference_to_member_function_pointer_impl : is_member_function_pointer::type> { }; template struct is_reference_to_member_function_pointer : is_reference_to_member_function_pointer_impl { }; template struct is_reference_to_function_pointer_aux : mpl::and_< is_reference , is_pointer_to_function< typename remove_cv< typename remove_reference::type >::type > > { }; template struct is_reference_to_function_pointer : mpl::if_< is_reference_to_function , mpl::false_ , is_reference_to_function_pointer_aux >::type { }; template struct is_reference_to_non_const : mpl::and_< is_reference , mpl::not_< is_reference_to_const > > { }; template struct is_reference_to_volatile : mpl::false_ { }; template struct is_reference_to_volatile : mpl::true_ { }; # 149 "/home/jas/.tt/ttsetup/opt/include/boost/detail/indirect_traits.hpp" 3 4 template struct is_reference_to_pointer : mpl::false_ { }; template struct is_reference_to_pointer : mpl::true_ { }; template struct is_reference_to_pointer : mpl::true_ { }; template struct is_reference_to_pointer : mpl::true_ { }; template struct is_reference_to_pointer : mpl::true_ { }; template struct is_reference_to_class : mpl::and_< is_reference , is_class< typename remove_cv< typename remove_reference::type >::type > > { }; template struct is_pointer_to_class : mpl::and_< is_pointer , is_class< typename remove_cv< typename remove_pointer::type >::type > > { }; # 481 "/home/jas/.tt/ttsetup/opt/include/boost/detail/indirect_traits.hpp" 3 4 } using namespace indirect_traits; }} # 27 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/facade_iterator_category.hpp" 2 3 4 namespace boost { struct use_default; } namespace boost { namespace detail { struct input_output_iterator_tag : std::input_iterator_tag { operator std::output_iterator_tag() const { return std::output_iterator_tag(); } }; template struct iterator_writability_disabled : mpl::or_< is_const , boost::detail::indirect_traits::is_reference_to_const , is_const > {}; # 86 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/facade_iterator_category.hpp" 3 4 template struct iterator_facade_default_category : mpl::eval_if< mpl::and_< is_reference , is_convertible > , mpl::eval_if< is_convertible , mpl::identity , mpl::if_< is_convertible , std::bidirectional_iterator_tag , std::forward_iterator_tag > > , typename mpl::eval_if< mpl::and_< is_convertible , is_convertible > , mpl::identity , mpl::identity > > { }; template struct is_iterator_category : mpl::or_< is_convertible , is_convertible > { }; template struct is_iterator_traversal : is_convertible {}; template struct iterator_category_with_traversal : Category, Traversal { enum { mpl_assertion_in_line_149 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) ( is_convertible< typename iterator_category_to_traversal::type , Traversal >))0, 1 ) ) ) } ; enum { mpl_assertion_in_line_151 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_arg( (void (*) (is_iterator_category))0, 1 ) ) ) }; enum { mpl_assertion_in_line_152 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (is_iterator_category))0, 1 ) ) ) }; enum { mpl_assertion_in_line_153 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (is_iterator_traversal))0, 1 ) ) ) }; enum { mpl_assertion_in_line_155 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_arg( (void (*) (is_iterator_traversal))0, 1 ) ) ) }; }; template struct facade_iterator_category_impl { enum { mpl_assertion_in_line_166 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (is_iterator_category))0, 1 ) ) ) }; typedef typename iterator_facade_default_category< Traversal,ValueParam,Reference >::type category; typedef typename mpl::if_< is_same< Traversal , typename iterator_category_to_traversal::type > , category , iterator_category_with_traversal >::type type; }; template struct facade_iterator_category : mpl::eval_if< is_iterator_category , mpl::identity , facade_iterator_category_impl > { }; }} # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/config_undef.hpp" 1 3 4 # 199 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/facade_iterator_category.hpp" 2 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/enable_if.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/enable_if.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/config_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/enable_if.hpp" 2 3 4 namespace boost { namespace iterators { template struct enabled { template struct base { typedef T type; }; }; template<> struct enabled { template struct base { # 62 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/enable_if.hpp" 3 4 }; }; template struct enable_if : enabled<(Cond::value)>::template base { }; } } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/config_undef.hpp" 1 3 4 # 85 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/enable_if.hpp" 2 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/implicit_cast.hpp" 1 3 4 # 10 "/home/jas/.tt/ttsetup/opt/include/boost/implicit_cast.hpp" 3 4 namespace boost { template inline T implicit_cast (typename mpl::identity::type x) { return x; } } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_const.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_const.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_const.hpp" 2 3 4 namespace boost { # 33 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_const.hpp" 3 4 template< typename T > struct add_const { typedef T const type; }; template< typename T > struct add_const { typedef T& type; }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4 # 46 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_const.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_pointer.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_pointer.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_pointer.hpp" 2 3 4 namespace boost { namespace detail { # 55 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_pointer.hpp" 3 4 template struct add_pointer_impl { typedef typename remove_reference::type no_ref_type; typedef no_ref_type* type; }; } template< typename T > struct add_pointer { typedef typename boost::detail::add_pointer_impl::type type; }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4 # 71 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_pointer.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pod.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pod.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_scalar.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_scalar.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_enum.hpp" 1 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_enum.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 33 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_enum.hpp" 2 3 4 namespace boost { # 181 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_enum.hpp" 3 4 template< typename T > struct is_enum : ::boost::integral_constant { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 188 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_enum.hpp" 2 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_scalar.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_scalar.hpp" 2 3 4 namespace boost { namespace detail { template struct is_scalar_impl { static const bool value = (::boost::type_traits::ice_or< ::boost::is_arithmetic::value, ::boost::is_enum::value, ::boost::is_pointer::value, ::boost::is_member_pointer::value >::value) ; }; template <> struct is_scalar_impl{ static const bool value = false; }; template <> struct is_scalar_impl{ static const bool value = false; }; template <> struct is_scalar_impl{ static const bool value = false; }; template <> struct is_scalar_impl{ static const bool value = false; }; } template< typename T > struct is_scalar : ::boost::integral_constant::value> { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 54 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_scalar.hpp" 2 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pod.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pod.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pod.hpp" 2 3 4 namespace boost { template< typename T > struct is_POD; namespace detail { template struct is_pod_impl { static const bool value = (::boost::type_traits::ice_or< ::boost::is_scalar::value, ::boost::is_void::value, __is_pod(T) >::value) ; }; template struct is_pod_impl : is_pod_impl { }; # 118 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pod.hpp" 3 4 template<> struct is_pod_impl< void > { static const bool value = (true); }; template<> struct is_pod_impl< void const > { static const bool value = (true); }; template<> struct is_pod_impl< void volatile > { static const bool value = (true); }; template<> struct is_pod_impl< void const volatile > { static const bool value = (true); }; } template< typename T > struct is_POD : ::boost::integral_constant::value> { }; template< typename T > struct is_pod : ::boost::integral_constant::value> { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 134 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_pod.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/always.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/always.hpp" 3 4 namespace boost { namespace mpl { template< typename Value > struct always { template< typename T , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply { typedef Value type; }; }; }} # 34 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_fwd.hpp" 1 3 4 # 31 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_fwd.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename F, typename T1 = na, typename T2 = na, typename T3 = na , typename T4 = na, typename T5 = na > struct apply; template< typename F > struct apply0; template< typename F, typename T1 > struct apply1; template< typename F, typename T1, typename T2 > struct apply2; template< typename F, typename T1, typename T2, typename T3 > struct apply3; template< typename F, typename T1, typename T2, typename T3, typename T4 > struct apply4; template< typename F, typename T1, typename T2, typename T3, typename T4 , typename T5 > struct apply5; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_fwd.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_apply.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_apply.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/has_xxx.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/has_xxx.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/type_wrapper.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/type_wrapper.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename T > struct type_wrapper { typedef T type; }; template< typename T > struct wrapped_type; template< typename T > struct wrapped_type< type_wrapper > { typedef T type; }; }}} # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/has_xxx.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/has_xxx.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/has_xxx.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/msvc_typename.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/has_xxx.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/array/elem.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/array/elem.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/array/data.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/array/elem.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/array/size.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/array/elem.hpp" 2 3 4 # 31 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/has_xxx.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/enum_trailing_params.hpp" 1 3 4 # 35 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/has_xxx.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_apply.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/has_apply.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_apply.hpp" 2 3 4 namespace boost { namespace mpl { namespace aux { template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_apply { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; }}} # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/msvc_never_true.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 2 3 4 # 34 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp" 3 4 namespace boost { namespace mpl { template< typename F , typename has_apply_ = typename aux::has_apply::type > struct apply_wrap0 : F::template apply< > { }; template< typename F > struct apply_wrap0< F,true_ > : F::apply { }; template< typename F, typename T1 > struct apply_wrap1 : F::template apply { }; template< typename F, typename T1, typename T2 > struct apply_wrap2 : F::template apply< T1,T2 > { }; template< typename F, typename T1, typename T2, typename T3 > struct apply_wrap3 : F::template apply< T1,T2,T3 > { }; template< typename F, typename T1, typename T2, typename T3, typename T4 > struct apply_wrap4 : F::template apply< T1,T2,T3,T4 > { }; template< typename F, typename T1, typename T2, typename T3, typename T4 , typename T5 > struct apply_wrap5 : F::template apply< T1,T2,T3,T4,T5 > { }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 35 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 2 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/placeholders.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/lambda.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/lambda.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind_fwd.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind_fwd.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/bind.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind_fwd.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename F, typename T1 = na, typename T2 = na, typename T3 = na , typename T4 = na, typename T5 = na > struct bind; template< typename F > struct bind0; template< typename F, typename T1 > struct bind1; template< typename F, typename T1, typename T2 > struct bind2; template< typename F, typename T1, typename T2, typename T3 > struct bind3; template< typename F, typename T1, typename T2, typename T3, typename T4 > struct bind4; template< typename F, typename T1, typename T2, typename T3, typename T4 , typename T5 > struct bind5; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 33 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind_fwd.hpp" 2 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/placeholders.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/next.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/next.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/next_prior.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/next_prior.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/common_name_wknd.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/next_prior.hpp" 2 3 4 namespace boost { namespace mpl { template< typename T = na > struct next { typedef typename T::next type; }; template< typename T = na > struct prior { typedef typename T::prior type; }; template<> struct next< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : next< T1 > { }; }; template< typename Tag > struct lambda< next< na > , Tag , int_<-1> > { typedef false_ is_le; typedef next< na > result_; typedef next< na > type; }; namespace aux { template< typename T1 > struct template_arity< next< T1 > > : int_<1> { }; template<> struct template_arity< next< na > > : int_<-1> { }; } template<> struct prior< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : prior< T1 > { }; }; template< typename Tag > struct lambda< prior< na > , Tag , int_<-1> > { typedef false_ is_le; typedef prior< na > result_; typedef prior< na > type; }; namespace aux { template< typename T1 > struct template_arity< prior< T1 > > : int_<1> { }; template<> struct template_arity< prior< na > > : int_<-1> { }; } }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/next.hpp" 2 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/protect.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/protect.hpp" 3 4 namespace boost { namespace mpl { template< typename T = na , int not_le_ = 0 > struct protect : T { typedef protect type; }; # 48 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/protect.hpp" 3 4 template<> struct protect< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : protect< T1 > { }; }; namespace aux { template< typename T1 > struct template_arity< protect< T1 > > : int_<1> { }; template<> struct template_arity< protect< na > > : int_<-1> { }; } }} # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind.hpp" 2 3 4 # 50 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename T, typename U1, typename U2, typename U3, typename U4 , typename U5 > struct resolve_bind_arg { typedef T type; }; template< typename T , typename Arg > struct replace_unnamed_arg { typedef Arg next; typedef T type; }; template< typename Arg > struct replace_unnamed_arg< arg< -1 >, Arg > { typedef typename Arg::next next; typedef Arg type; }; template< int N, typename U1, typename U2, typename U3, typename U4, typename U5 > struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > { typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; }; template< typename F, typename T1, typename T2, typename T3, typename T4 , typename T5, typename U1, typename U2, typename U3, typename U4 , typename U5 > struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > { typedef bind< F,T1,T2,T3,T4,T5 > f_; typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; }; } template< typename F > struct bind0 { template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { private: typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; typedef typename r0::type a0; typedef typename r0::next n1; typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; public: typedef typename apply_wrap0< f_ >::type type; }; }; namespace aux { template< typename F, typename U1, typename U2, typename U3, typename U4 , typename U5 > struct resolve_bind_arg< bind0, U1, U2, U3, U4, U5 > { typedef bind0 f_; typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; }; } namespace aux { template< typename T1 > struct template_arity< bind0< T1> > : int_<1> { }; } template< typename F > struct bind< F,na,na,na,na,na > : bind0 { }; template< typename F, typename T1 > struct bind1 { template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { private: typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; typedef typename r0::type a0; typedef typename r0::next n1; typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; typedef aux::replace_unnamed_arg< T1,n1 > r1; typedef typename r1::type a1; typedef typename r1::next n2; typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; public: typedef typename apply_wrap1< f_ , typename t1::type >::type type; }; }; namespace aux { template< typename F, typename T1, typename U1, typename U2, typename U3 , typename U4, typename U5 > struct resolve_bind_arg< bind1< F,T1 >, U1, U2, U3, U4, U5 > { typedef bind1< F,T1 > f_; typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; }; } namespace aux { template< typename T1 , typename T2 > struct template_arity< bind1< T1 , T2> > : int_<2> { }; } template< typename F, typename T1 > struct bind< F,T1,na,na,na,na > : bind1< F,T1 > { }; template< typename F, typename T1, typename T2 > struct bind2 { template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { private: typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; typedef typename r0::type a0; typedef typename r0::next n1; typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; typedef aux::replace_unnamed_arg< T1,n1 > r1; typedef typename r1::type a1; typedef typename r1::next n2; typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; typedef aux::replace_unnamed_arg< T2,n2 > r2; typedef typename r2::type a2; typedef typename r2::next n3; typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; public: typedef typename apply_wrap2< f_ , typename t1::type, typename t2::type >::type type; }; }; namespace aux { template< typename F, typename T1, typename T2, typename U1, typename U2 , typename U3, typename U4, typename U5 > struct resolve_bind_arg< bind2< F,T1,T2 >, U1, U2, U3, U4, U5 > { typedef bind2< F,T1,T2 > f_; typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; }; } namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< bind2< T1 , T2 , T3> > : int_<3> { }; } template< typename F, typename T1, typename T2 > struct bind< F,T1,T2,na,na,na > : bind2< F,T1,T2 > { }; template< typename F, typename T1, typename T2, typename T3 > struct bind3 { template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { private: typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; typedef typename r0::type a0; typedef typename r0::next n1; typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; typedef aux::replace_unnamed_arg< T1,n1 > r1; typedef typename r1::type a1; typedef typename r1::next n2; typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; typedef aux::replace_unnamed_arg< T2,n2 > r2; typedef typename r2::type a2; typedef typename r2::next n3; typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; typedef aux::replace_unnamed_arg< T3,n3 > r3; typedef typename r3::type a3; typedef typename r3::next n4; typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; public: typedef typename apply_wrap3< f_ , typename t1::type, typename t2::type, typename t3::type >::type type; }; }; namespace aux { template< typename F, typename T1, typename T2, typename T3, typename U1 , typename U2, typename U3, typename U4, typename U5 > struct resolve_bind_arg< bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 > { typedef bind3< F,T1,T2,T3 > f_; typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; }; } namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 > struct template_arity< bind3< T1 , T2 , T3 , T4> > : int_<4> { }; } template< typename F, typename T1, typename T2, typename T3 > struct bind< F,T1,T2,T3,na,na > : bind3< F,T1,T2,T3 > { }; template< typename F, typename T1, typename T2, typename T3, typename T4 > struct bind4 { template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { private: typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; typedef typename r0::type a0; typedef typename r0::next n1; typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; typedef aux::replace_unnamed_arg< T1,n1 > r1; typedef typename r1::type a1; typedef typename r1::next n2; typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; typedef aux::replace_unnamed_arg< T2,n2 > r2; typedef typename r2::type a2; typedef typename r2::next n3; typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; typedef aux::replace_unnamed_arg< T3,n3 > r3; typedef typename r3::type a3; typedef typename r3::next n4; typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; typedef aux::replace_unnamed_arg< T4,n4 > r4; typedef typename r4::type a4; typedef typename r4::next n5; typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; public: typedef typename apply_wrap4< f_ , typename t1::type, typename t2::type, typename t3::type , typename t4::type >::type type; }; }; namespace aux { template< typename F, typename T1, typename T2, typename T3, typename T4 , typename U1, typename U2, typename U3, typename U4, typename U5 > struct resolve_bind_arg< bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 > { typedef bind4< F,T1,T2,T3,T4 > f_; typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; }; } namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct template_arity< bind4< T1 , T2 , T3 , T4 , T5> > : int_<5> { }; } template< typename F, typename T1, typename T2, typename T3, typename T4 > struct bind< F,T1,T2,T3,T4,na > : bind4< F,T1,T2,T3,T4 > { }; template< typename F, typename T1, typename T2, typename T3, typename T4 , typename T5 > struct bind5 { template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { private: typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; typedef typename r0::type a0; typedef typename r0::next n1; typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; typedef aux::replace_unnamed_arg< T1,n1 > r1; typedef typename r1::type a1; typedef typename r1::next n2; typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; typedef aux::replace_unnamed_arg< T2,n2 > r2; typedef typename r2::type a2; typedef typename r2::next n3; typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; typedef aux::replace_unnamed_arg< T3,n3 > r3; typedef typename r3::type a3; typedef typename r3::next n4; typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; typedef aux::replace_unnamed_arg< T4,n4 > r4; typedef typename r4::type a4; typedef typename r4::next n5; typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; typedef aux::replace_unnamed_arg< T5,n5 > r5; typedef typename r5::type a5; typedef typename r5::next n6; typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; public: typedef typename apply_wrap5< f_ , typename t1::type, typename t2::type, typename t3::type , typename t4::type, typename t5::type >::type type; }; }; namespace aux { template< typename F, typename T1, typename T2, typename T3, typename T4 , typename T5, typename U1, typename U2, typename U3, typename U4 , typename U5 > struct resolve_bind_arg< bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > { typedef bind5< F,T1,T2,T3,T4,T5 > f_; typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; }; } namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 > struct template_arity< bind5< T1 , T2 , T3 , T4 , T5 , T6> > : int_<6> { }; } template< typename F, typename T1, typename T2, typename T3, typename T4 , typename T5 > struct bind : bind5< F,T1,T2,T3,T4,T5 > { }; template< template< typename T1, typename T2, typename T3 > class F, typename Tag > struct quote3; template< typename T1, typename T2, typename T3 > struct if_; template< typename Tag, typename T1, typename T2, typename T3 > struct bind3< quote3< if_,Tag > , T1, T2, T3 > { template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { private: typedef mpl::arg<1> n1; typedef aux::replace_unnamed_arg< T1,n1 > r1; typedef typename r1::type a1; typedef typename r1::next n2; typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; typedef aux::replace_unnamed_arg< T2,n2 > r2; typedef typename r2::type a2; typedef typename r2::next n3; typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; typedef aux::replace_unnamed_arg< T3,n3 > r3; typedef typename r3::type a3; typedef typename r3::next n4; typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; typedef typename if_< typename t1::type , t2, t3 >::type f_; public: typedef typename f_::type type; }; }; template< template< typename T1, typename T2, typename T3 > class F, typename Tag > struct quote3; template< typename T1, typename T2, typename T3 > struct eval_if; template< typename Tag, typename T1, typename T2, typename T3 > struct bind3< quote3< eval_if,Tag > , T1, T2, T3 > { template< typename U1 = na, typename U2 = na, typename U3 = na , typename U4 = na, typename U5 = na > struct apply { private: typedef mpl::arg<1> n1; typedef aux::replace_unnamed_arg< T1,n1 > r1; typedef typename r1::type a1; typedef typename r1::next n2; typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; typedef aux::replace_unnamed_arg< T2,n2 > r2; typedef typename r2::type a2; typedef typename r2::next n3; typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; typedef aux::replace_unnamed_arg< T3,n3 > r3; typedef typename r3::type a3; typedef typename r3::next n4; typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; typedef typename eval_if< typename t1::type , t2, t3 >::type f_; public: typedef typename f_::type type; }; }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 51 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/lambda.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/full_lambda.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/full_lambda.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind_fwd.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/full_lambda.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/quote.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/quote.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/void.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/void.hpp" 3 4 namespace mpl_ { struct void_ { typedef void_ type; }; } namespace boost { namespace mpl { template< typename T > struct is_void_ : false_ { }; template<> struct is_void_ : true_ { }; template< typename T > struct is_not_void_ : true_ { }; template<> struct is_not_void_ : false_ { }; template<> struct is_void_< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : is_void_< T1 > { }; }; template< typename Tag > struct lambda< is_void_< na > , Tag , int_<-1> > { typedef false_ is_le; typedef is_void_< na > result_; typedef is_void_< na > type; }; namespace aux { template< typename T1 > struct template_arity< is_void_< T1 > > : int_<1> { }; template<> struct template_arity< is_void_< na > > : int_<-1> { }; } template<> struct is_not_void_< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : is_not_void_< T1 > { }; }; template< typename Tag > struct lambda< is_not_void_< na > , Tag , int_<-1> > { typedef false_ is_le; typedef is_not_void_< na > result_; typedef is_not_void_< na > type; }; namespace aux { template< typename T1 > struct template_arity< is_not_void_< T1 > > : int_<1> { }; template<> struct template_arity< is_not_void_< na > > : int_<-1> { }; } }} # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/quote.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_type.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_type.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_type { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; }}} # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/quote.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/bcc.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/quote.hpp" 2 3 4 # 45 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/quote.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/quote.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/quote.hpp" 3 4 namespace boost { namespace mpl { template< typename T, bool has_type_ > struct quote_impl { typedef typename T::type type; }; template< typename T > struct quote_impl< T,false > { typedef T type; }; template< template< typename P1 > class F , typename Tag = void_ > struct quote1 { template< typename U1 > struct apply : quote_impl< F , aux::has_type< F >::value > { }; }; template< template< typename P1, typename P2 > class F , typename Tag = void_ > struct quote2 { template< typename U1, typename U2 > struct apply : quote_impl< F< U1,U2 > , aux::has_type< F< U1,U2 > >::value > { }; }; template< template< typename P1, typename P2, typename P3 > class F , typename Tag = void_ > struct quote3 { template< typename U1, typename U2, typename U3 > struct apply : quote_impl< F< U1,U2,U3 > , aux::has_type< F< U1,U2,U3 > >::value > { }; }; template< template< typename P1, typename P2, typename P3, typename P4 > class F , typename Tag = void_ > struct quote4 { template< typename U1, typename U2, typename U3, typename U4 > struct apply : quote_impl< F< U1,U2,U3,U4 > , aux::has_type< F< U1,U2,U3,U4 > >::value > { }; }; template< template< typename P1, typename P2, typename P3, typename P4 , typename P5 > class F , typename Tag = void_ > struct quote5 { template< typename U1, typename U2, typename U3, typename U4 , typename U5 > struct apply : quote_impl< F< U1,U2,U3,U4,U5 > , aux::has_type< F< U1,U2,U3,U4,U5 > >::value > { }; }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 46 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/quote.hpp" 2 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/full_lambda.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/full_lambda.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/template_arity.hpp" 1 3 4 # 43 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/template_arity.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< int N > struct arity_tag { typedef char (&type)[N + 1]; }; template< int C1, int C2, int C3, int C4, int C5, int C6 > struct max_arity { static const int value = ( C6 > 0 ? C6 : ( C5 > 0 ? C5 : ( C4 > 0 ? C4 : ( C3 > 0 ? C3 : ( C2 > 0 ? C2 : ( C1 > 0 ? C1 : -1 ) ) ) ) ) ) ; }; arity_tag<0>::type arity_helper(...); template< template< typename P1 > class F , typename T1 > typename arity_tag<1>::type arity_helper(type_wrapper< F >, arity_tag<1>); template< template< typename P1, typename P2 > class F , typename T1, typename T2 > typename arity_tag<2>::type arity_helper(type_wrapper< F< T1,T2 > >, arity_tag<2>); template< template< typename P1, typename P2, typename P3 > class F , typename T1, typename T2, typename T3 > typename arity_tag<3>::type arity_helper(type_wrapper< F< T1,T2,T3 > >, arity_tag<3>); template< template< typename P1, typename P2, typename P3, typename P4 > class F , typename T1, typename T2, typename T3, typename T4 > typename arity_tag<4>::type arity_helper(type_wrapper< F< T1,T2,T3,T4 > >, arity_tag<4>); template< template< typename P1, typename P2, typename P3, typename P4 , typename P5 > class F , typename T1, typename T2, typename T3, typename T4, typename T5 > typename arity_tag<5>::type arity_helper(type_wrapper< F< T1,T2,T3,T4,T5 > >, arity_tag<5>); template< template< typename P1, typename P2, typename P3, typename P4 , typename P5, typename P6 > class F , typename T1, typename T2, typename T3, typename T4, typename T5 , typename T6 > typename arity_tag<6>::type arity_helper(type_wrapper< F< T1,T2,T3,T4,T5,T6 > >, arity_tag<6>); template< typename F, int N > struct template_arity_impl { static const int value = sizeof(::boost::mpl::aux::arity_helper(type_wrapper(), arity_tag())) - 1 ; }; template< typename F > struct template_arity { static const int value = ( max_arity< template_arity_impl< F,1 >::value, template_arity_impl< F,2 >::value, template_arity_impl< F,3 >::value, template_arity_impl< F,4 >::value, template_arity_impl< F,5 >::value, template_arity_impl< F,6 >::value >::value ) ; typedef mpl::int_ type; }; }}} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 44 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/template_arity.hpp" 2 3 4 # 30 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/full_lambda.hpp" 2 3 4 # 44 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/full_lambda.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false , bool C5 = false > struct lambda_or : true_ { }; template<> struct lambda_or< false,false,false,false,false > : false_ { }; } template< typename T , typename Tag , typename Arity > struct lambda { typedef false_ is_le; typedef T result_; typedef T type; }; template< typename T > struct is_lambda_expression : lambda::is_le { }; template< int N, typename Tag > struct lambda< arg,Tag, int_< -1 > > { typedef true_ is_le; typedef mpl::arg result_; typedef mpl::protect type; }; template< typename F , typename Tag > struct lambda< bind0 , Tag , int_<1> > { typedef false_ is_le; typedef bind0< F > result_; typedef result_ type; }; namespace aux { template< typename IsLE, typename Tag , template< typename P1 > class F , typename L1 > struct le_result1 { typedef F< typename L1::type > result_; typedef result_ type; }; template< typename Tag , template< typename P1 > class F , typename L1 > struct le_result1< true_,Tag,F,L1 > { typedef bind1< quote1< F,Tag > , typename L1::result_ > result_; typedef mpl::protect type; }; } template< template< typename P1 > class F , typename T1 , typename Tag > struct lambda< F , Tag , int_<1> > { typedef lambda< T1,Tag > l1; typedef typename l1::is_le is_le1; typedef typename aux::lambda_or< is_le1::value >::type is_le; typedef aux::le_result1< is_le, Tag, F, l1 > le_result_; typedef typename le_result_::result_ result_; typedef typename le_result_::type type; }; template< typename F, typename T1 , typename Tag > struct lambda< bind1< F,T1 > , Tag , int_<2> > { typedef false_ is_le; typedef bind1< F , T1 > result_; typedef result_ type; }; namespace aux { template< typename IsLE, typename Tag , template< typename P1, typename P2 > class F , typename L1, typename L2 > struct le_result2 { typedef F< typename L1::type, typename L2::type > result_; typedef result_ type; }; template< typename Tag , template< typename P1, typename P2 > class F , typename L1, typename L2 > struct le_result2< true_,Tag,F,L1,L2 > { typedef bind2< quote2< F,Tag > , typename L1::result_, typename L2::result_ > result_; typedef mpl::protect type; }; } template< template< typename P1, typename P2 > class F , typename T1, typename T2 , typename Tag > struct lambda< F< T1,T2 > , Tag , int_<2> > { typedef lambda< T1,Tag > l1; typedef lambda< T2,Tag > l2; typedef typename l1::is_le is_le1; typedef typename l2::is_le is_le2; typedef typename aux::lambda_or< is_le1::value, is_le2::value >::type is_le; typedef aux::le_result2< is_le, Tag, F, l1, l2 > le_result_; typedef typename le_result_::result_ result_; typedef typename le_result_::type type; }; template< typename F, typename T1, typename T2 , typename Tag > struct lambda< bind2< F,T1,T2 > , Tag , int_<3> > { typedef false_ is_le; typedef bind2< F , T1, T2 > result_; typedef result_ type; }; namespace aux { template< typename IsLE, typename Tag , template< typename P1, typename P2, typename P3 > class F , typename L1, typename L2, typename L3 > struct le_result3 { typedef F< typename L1::type, typename L2::type, typename L3::type > result_; typedef result_ type; }; template< typename Tag , template< typename P1, typename P2, typename P3 > class F , typename L1, typename L2, typename L3 > struct le_result3< true_,Tag,F,L1,L2,L3 > { typedef bind3< quote3< F,Tag > , typename L1::result_, typename L2::result_, typename L3::result_ > result_; typedef mpl::protect type; }; } template< template< typename P1, typename P2, typename P3 > class F , typename T1, typename T2, typename T3 , typename Tag > struct lambda< F< T1,T2,T3 > , Tag , int_<3> > { typedef lambda< T1,Tag > l1; typedef lambda< T2,Tag > l2; typedef lambda< T3,Tag > l3; typedef typename l1::is_le is_le1; typedef typename l2::is_le is_le2; typedef typename l3::is_le is_le3; typedef typename aux::lambda_or< is_le1::value, is_le2::value, is_le3::value >::type is_le; typedef aux::le_result3< is_le, Tag, F, l1, l2, l3 > le_result_; typedef typename le_result_::result_ result_; typedef typename le_result_::type type; }; template< typename F, typename T1, typename T2, typename T3 , typename Tag > struct lambda< bind3< F,T1,T2,T3 > , Tag , int_<4> > { typedef false_ is_le; typedef bind3< F , T1, T2, T3 > result_; typedef result_ type; }; namespace aux { template< typename IsLE, typename Tag , template< typename P1, typename P2, typename P3, typename P4 > class F , typename L1, typename L2, typename L3, typename L4 > struct le_result4 { typedef F< typename L1::type, typename L2::type, typename L3::type , typename L4::type > result_; typedef result_ type; }; template< typename Tag , template< typename P1, typename P2, typename P3, typename P4 > class F , typename L1, typename L2, typename L3, typename L4 > struct le_result4< true_,Tag,F,L1,L2,L3,L4 > { typedef bind4< quote4< F,Tag > , typename L1::result_, typename L2::result_, typename L3::result_ , typename L4::result_ > result_; typedef mpl::protect type; }; } template< template< typename P1, typename P2, typename P3, typename P4 > class F , typename T1, typename T2, typename T3, typename T4 , typename Tag > struct lambda< F< T1,T2,T3,T4 > , Tag , int_<4> > { typedef lambda< T1,Tag > l1; typedef lambda< T2,Tag > l2; typedef lambda< T3,Tag > l3; typedef lambda< T4,Tag > l4; typedef typename l1::is_le is_le1; typedef typename l2::is_le is_le2; typedef typename l3::is_le is_le3; typedef typename l4::is_le is_le4; typedef typename aux::lambda_or< is_le1::value, is_le2::value, is_le3::value, is_le4::value >::type is_le; typedef aux::le_result4< is_le, Tag, F, l1, l2, l3, l4 > le_result_; typedef typename le_result_::result_ result_; typedef typename le_result_::type type; }; template< typename F, typename T1, typename T2, typename T3, typename T4 , typename Tag > struct lambda< bind4< F,T1,T2,T3,T4 > , Tag , int_<5> > { typedef false_ is_le; typedef bind4< F , T1, T2, T3, T4 > result_; typedef result_ type; }; namespace aux { template< typename IsLE, typename Tag , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F , typename L1, typename L2, typename L3, typename L4, typename L5 > struct le_result5 { typedef F< typename L1::type, typename L2::type, typename L3::type , typename L4::type, typename L5::type > result_; typedef result_ type; }; template< typename Tag , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F , typename L1, typename L2, typename L3, typename L4, typename L5 > struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > { typedef bind5< quote5< F,Tag > , typename L1::result_, typename L2::result_, typename L3::result_ , typename L4::result_, typename L5::result_ > result_; typedef mpl::protect type; }; } template< template< typename P1, typename P2, typename P3, typename P4 , typename P5 > class F , typename T1, typename T2, typename T3, typename T4, typename T5 , typename Tag > struct lambda< F< T1,T2,T3,T4,T5 > , Tag , int_<5> > { typedef lambda< T1,Tag > l1; typedef lambda< T2,Tag > l2; typedef lambda< T3,Tag > l3; typedef lambda< T4,Tag > l4; typedef lambda< T5,Tag > l5; typedef typename l1::is_le is_le1; typedef typename l2::is_le is_le2; typedef typename l3::is_le is_le3; typedef typename l4::is_le is_le4; typedef typename l5::is_le is_le5; typedef typename aux::lambda_or< is_le1::value, is_le2::value, is_le3::value, is_le4::value , is_le5::value >::type is_le; typedef aux::le_result5< is_le, Tag, F, l1, l2, l3, l4, l5 > le_result_; typedef typename le_result_::result_ result_; typedef typename le_result_::type type; }; template< typename F, typename T1, typename T2, typename T3, typename T4 , typename T5 , typename Tag > struct lambda< bind5< F,T1,T2,T3,T4,T5 > , Tag , int_<6> > { typedef false_ is_le; typedef bind5< F , T1, T2, T3, T4, T5 > result_; typedef result_ type; }; template< typename T, typename Tag > struct lambda< mpl::protect,Tag, int_<1> > { typedef false_ is_le; typedef mpl::protect result_; typedef result_ type; }; template< typename F, typename T1, typename T2, typename T3, typename T4 , typename T5 , typename Tag > struct lambda< bind< F,T1,T2,T3,T4,T5 > , Tag , int_<6> > { typedef false_ is_le; typedef bind< F,T1,T2,T3,T4,T5 > result_; typedef result_ type; }; template< typename F , typename Tag1 , typename Tag2 , typename Arity > struct lambda< lambda< F,Tag1,Arity > , Tag2 , int_<3> > { typedef lambda< F,Tag2 > l1; typedef lambda< Tag1,Tag2 > l2; typedef typename l1::is_le is_le; typedef bind1< quote1, typename l1::result_ > arity_; typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3; typedef aux::le_result3 le_result_; typedef typename le_result_::result_ result_; typedef typename le_result_::type type; }; template<> struct lambda< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : lambda< T1 , T2 > { }; }; template< typename Tag > struct lambda< lambda< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef lambda< na , na > result_; typedef lambda< na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< lambda< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< lambda< na , na > > : int_<-1> { }; } }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 45 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/full_lambda.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/lambda.hpp" 2 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/apply.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/apply.hpp" 3 4 namespace boost { namespace mpl { template< typename F > struct apply0 : apply_wrap0< typename lambda::type > { }; template< typename F > struct apply< F,na,na,na,na,na > : apply0 { }; template< typename F, typename T1 > struct apply1 : apply_wrap1< typename lambda::type , T1 > { }; template< typename F, typename T1 > struct apply< F,T1,na,na,na,na > : apply1< F,T1 > { }; template< typename F, typename T1, typename T2 > struct apply2 : apply_wrap2< typename lambda::type , T1, T2 > { }; template< typename F, typename T1, typename T2 > struct apply< F,T1,T2,na,na,na > : apply2< F,T1,T2 > { }; template< typename F, typename T1, typename T2, typename T3 > struct apply3 : apply_wrap3< typename lambda::type , T1, T2, T3 > { }; template< typename F, typename T1, typename T2, typename T3 > struct apply< F,T1,T2,T3,na,na > : apply3< F,T1,T2,T3 > { }; template< typename F, typename T1, typename T2, typename T3, typename T4 > struct apply4 : apply_wrap4< typename lambda::type , T1, T2, T3, T4 > { }; template< typename F, typename T1, typename T2, typename T3, typename T4 > struct apply< F,T1,T2,T3,T4,na > : apply4< F,T1,T2,T3,T4 > { }; template< typename F, typename T1, typename T2, typename T3, typename T4 , typename T5 > struct apply5 : apply_wrap5< typename lambda::type , T1, T2, T3, T4, T5 > { }; template< typename F, typename T1, typename T2, typename T3, typename T4 , typename T5 > struct apply : apply5< F,T1,T2,T3,T4,T5 > { }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 2 3 4 # 35 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/config_def.hpp" 1 3 4 # 38 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 2 3 4 namespace boost { template class iterator_facade; namespace detail { struct always_bool2 { template struct apply { typedef bool type; }; }; template < class Facade1 , class Facade2 , class Return > struct enable_if_interoperable # 80 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 3 4 : ::boost::iterators::enable_if< mpl::or_< is_convertible , is_convertible > , Return > {}; template < class ValueParam , class CategoryOrTraversal , class Reference , class Difference > struct iterator_facade_types { typedef typename facade_iterator_category< CategoryOrTraversal, ValueParam, Reference >::type iterator_category; typedef typename remove_const::type value_type; typedef typename mpl::eval_if< boost::detail::iterator_writability_disabled , add_pointer , add_pointer >::type pointer; # 130 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 3 4 }; template class postfix_increment_proxy { typedef typename iterator_value::type value_type; public: explicit postfix_increment_proxy(Iterator const& x) : stored_value(*x) {} value_type& operator*() const { return this->stored_value; } private: mutable value_type stored_value; }; template class writable_postfix_increment_proxy { typedef typename iterator_value::type value_type; public: explicit writable_postfix_increment_proxy(Iterator const& x) : stored_value(*x) , stored_iterator(x) {} writable_postfix_increment_proxy const& operator*() const { return *this; } operator value_type&() const { return stored_value; } template T const& operator=(T const& x) const { *this->stored_iterator = x; return x; } template T& operator=(T& x) const { *this->stored_iterator = x; return x; } operator Iterator const&() const { return stored_iterator; } private: mutable value_type stored_value; Iterator stored_iterator; }; # 244 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 3 4 template struct is_non_proxy_reference : is_convertible< typename remove_reference::type const volatile* , Value const volatile* > {}; # 269 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 3 4 template struct postfix_increment_result : mpl::eval_if< mpl::and_< is_convertible , mpl::not_< is_convertible< typename iterator_category_to_traversal::type , forward_traversal_tag > > > , mpl::if_< is_non_proxy_reference , postfix_increment_proxy , writable_postfix_increment_proxy > , mpl::identity > {}; template struct operator_arrow_proxy { operator_arrow_proxy(T const* px) : m_value(*px) {} T* operator->() const { return &m_value; } operator T*() const { return &m_value; } mutable T m_value; }; template struct operator_arrow_result { typedef typename mpl::if_< is_reference , Pointer , operator_arrow_proxy >::type type; static type make(Reference x) { return implicit_cast(&x); } }; # 342 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 3 4 template class operator_brackets_proxy { typedef typename Iterator::reference reference; typedef typename Iterator::value_type value_type; public: operator_brackets_proxy(Iterator const& iter) : m_iter(iter) {} operator reference() const { return *m_iter; } operator_brackets_proxy& operator=(value_type const& val) { *m_iter = val; return *this; } private: Iterator m_iter; }; template struct use_operator_brackets_proxy : mpl::not_< mpl::and_< boost::is_POD , iterator_writability_disabled > > {}; template struct operator_brackets_result { typedef typename mpl::if_< use_operator_brackets_proxy , operator_brackets_proxy , Value >::type type; }; template operator_brackets_proxy make_operator_brackets_result(Iterator const& iter, mpl::true_) { return operator_brackets_proxy(iter); } template typename Iterator::value_type make_operator_brackets_result(Iterator const& iter, mpl::false_) { return *iter; } struct choose_difference_type { template struct apply : # 420 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 3 4 mpl::eval_if< is_convertible , iterator_difference , iterator_difference > {}; }; } # 471 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 3 4 class iterator_core_access { template friend class iterator_facade; template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator ==( iterator_facade const& lhs , iterator_facade const& rhs); template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator !=( iterator_facade const& lhs , iterator_facade const& rhs); template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator <( iterator_facade const& lhs , iterator_facade const& rhs); template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator >( iterator_facade const& lhs , iterator_facade const& rhs); template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator <=( iterator_facade const& lhs , iterator_facade const& rhs); template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator >=( iterator_facade const& lhs , iterator_facade const& rhs); template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator -( iterator_facade const& lhs , iterator_facade const& rhs) ; template friend inline Derived operator+ (iterator_facade const& , typename Derived::difference_type) ; template friend inline Derived operator+ (typename Derived::difference_type , iterator_facade const&) ; template static typename Facade::reference dereference(Facade const& f) { return f.dereference(); } template static void increment(Facade& f) { f.increment(); } template static void decrement(Facade& f) { f.decrement(); } template static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::true_) { return f1.equal(f2); } template static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::false_) { return f2.equal(f1); } template static void advance(Facade& f, typename Facade::difference_type n) { f.advance(n); } template static typename Facade1::difference_type distance_from( Facade1 const& f1, Facade2 const& f2, mpl::true_) { return -f1.distance_to(f2); } template static typename Facade2::difference_type distance_from( Facade1 const& f1, Facade2 const& f2, mpl::false_) { return f2.distance_to(f1); } template static I& derived(iterator_facade& facade) { return *static_cast(&facade); } template static I const& derived(iterator_facade const& facade) { return *static_cast(&facade); } private: iterator_core_access(); }; template < class Derived , class Value , class CategoryOrTraversal , class Reference = Value& , class Difference = std::ptrdiff_t > class iterator_facade { private: Derived& derived() { return *static_cast(this); } Derived const& derived() const { return *static_cast(this); } typedef boost::detail::iterator_facade_types< Value, CategoryOrTraversal, Reference, Difference > associated_types; protected: typedef iterator_facade iterator_facade_; public: typedef typename associated_types::value_type value_type; typedef Reference reference; typedef Difference difference_type; typedef typename associated_types::pointer pointer; typedef typename associated_types::iterator_category iterator_category; reference operator*() const { return iterator_core_access::dereference(this->derived()); } typename boost::detail::operator_arrow_result< value_type , reference , pointer >::type operator->() const { return boost::detail::operator_arrow_result< value_type , reference , pointer >::make(*this->derived()); } typename boost::detail::operator_brackets_result::type operator[](difference_type n) const { typedef boost::detail::use_operator_brackets_proxy use_proxy; return boost::detail::make_operator_brackets_result( this->derived() + n , use_proxy() ); } Derived& operator++() { iterator_core_access::increment(this->derived()); return this->derived(); } # 679 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 3 4 Derived& operator--() { iterator_core_access::decrement(this->derived()); return this->derived(); } Derived operator--(int) { Derived tmp(this->derived()); --*this; return tmp; } Derived& operator+=(difference_type n) { iterator_core_access::advance(this->derived(), n); return this->derived(); } Derived& operator-=(difference_type n) { iterator_core_access::advance(this->derived(), -n); return this->derived(); } Derived operator-(difference_type x) const { Derived result(this->derived()); return result -= x; } # 721 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 3 4 }; template inline typename boost::detail::postfix_increment_result::type operator++( iterator_facade& i , int ) { typename boost::detail::postfix_increment_result::type tmp(*static_cast(&i)); ++i; return tmp; } # 836 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 3 4 template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator ==( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value ), "( is_interoperable< Derived1, Derived2 >::value )"); return iterator_core_access::equal( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator !=( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value ), "( is_interoperable< Derived1, Derived2 >::value )"); return ! iterator_core_access::equal( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator <( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value ), "( is_interoperable< Derived1, Derived2 >::value )"); return 0 > iterator_core_access::distance_from( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator >( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value ), "( is_interoperable< Derived1, Derived2 >::value )"); return 0 < iterator_core_access::distance_from( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator <=( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value ), "( is_interoperable< Derived1, Derived2 >::value )"); return 0 >= iterator_core_access::distance_from( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator >=( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value ), "( is_interoperable< Derived1, Derived2 >::value )"); return 0 <= iterator_core_access::distance_from( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator -( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value ), "( is_interoperable< Derived1, Derived2 >::value )"); return iterator_core_access::distance_from( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } # 862 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 3 4 template inline Derived operator+ ( iterator_facade const& i , typename Derived::difference_type n ) { Derived tmp(static_cast(i)); return tmp += n; } template inline Derived operator+ ( typename Derived::difference_type n , iterator_facade const& i ) { Derived tmp(static_cast(i)); return tmp += n; } } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/config_undef.hpp" 1 3 4 # 877 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_facade.hpp" 2 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_adaptor.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_adaptor.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/config_def.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_adaptor.hpp" 2 3 4 namespace boost { struct use_default; template struct is_convertible : mpl::false_ {}; namespace detail { # 66 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_adaptor.hpp" 3 4 struct enable_type; } # 148 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_adaptor.hpp" 3 4 template struct enable_if_convertible : iterators::enable_if< is_convertible , boost::detail::enable_type > {}; namespace detail { template struct ia_dflt_help : mpl::eval_if< is_same , DefaultNullaryFn , mpl::identity > { }; template < class Derived , class Base , class Value , class Traversal , class Reference , class Difference > struct iterator_adaptor_base { typedef iterator_facade< Derived , typename boost::detail::ia_dflt_help< Value , mpl::eval_if< is_same , iterator_value , remove_reference > >::type , typename boost::detail::ia_dflt_help< Traversal , iterator_traversal >::type , typename boost::detail::ia_dflt_help< Reference , mpl::eval_if< is_same , iterator_reference , add_reference > >::type , typename boost::detail::ia_dflt_help< Difference, iterator_difference >::type > type; }; template inline void iterator_adaptor_assert_traversal () { static_assert((is_convertible::value), "(is_convertible::value)"); } } # 259 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_adaptor.hpp" 3 4 template < class Derived , class Base , class Value = use_default , class Traversal = use_default , class Reference = use_default , class Difference = use_default > class iterator_adaptor : public boost::detail::iterator_adaptor_base< Derived, Base, Value, Traversal, Reference, Difference >::type { friend class iterator_core_access; protected: typedef typename boost::detail::iterator_adaptor_base< Derived, Base, Value, Traversal, Reference, Difference >::type super_t; public: iterator_adaptor() {} explicit iterator_adaptor(Base const &iter) : m_iterator(iter) { } typedef Base base_type; Base const& base() const { return m_iterator; } protected: typedef iterator_adaptor iterator_adaptor_; Base const& base_reference() const { return m_iterator; } Base& base_reference() { return m_iterator; } private: typename super_t::reference dereference() const { return *m_iterator; } template < class OtherDerived, class OtherIterator, class V, class C, class R, class D > bool equal(iterator_adaptor const& x) const { return m_iterator == x.base(); } typedef typename iterator_category_to_traversal< typename super_t::iterator_category >::type my_traversal; void advance(typename super_t::difference_type n) { boost::detail::iterator_adaptor_assert_traversal(); m_iterator += n; } void increment() { ++m_iterator; } void decrement() { boost::detail::iterator_adaptor_assert_traversal(); --m_iterator; } template < class OtherDerived, class OtherIterator, class V, class C, class R, class D > typename super_t::difference_type distance_to( iterator_adaptor const& y) const { boost::detail::iterator_adaptor_assert_traversal(); return y.base() - m_iterator; } private: Base m_iterator; }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/detail/config_undef.hpp" 1 3 4 # 370 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/iterator_adaptor.hpp" 2 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/iterator/reverse_iterator.hpp" 2 3 4 namespace boost { template class reverse_iterator : public iterator_adaptor< reverse_iterator, Iterator > { typedef iterator_adaptor< reverse_iterator, Iterator > super_t; friend class iterator_core_access; public: reverse_iterator() {} explicit reverse_iterator(Iterator x) : super_t(x) {} template reverse_iterator( reverse_iterator const& r , typename enable_if_convertible::type* = 0 ) : super_t(r.base()) {} private: typename super_t::reference dereference() const { return *boost::prior(this->base()); } void increment() { --this->base_reference(); } void decrement() { ++this->base_reference(); } void advance(typename super_t::difference_type n) { this->base_reference() += -n; } template typename super_t::difference_type distance_to(reverse_iterator const& y) const { return this->base_reference() - y.base(); } }; template reverse_iterator make_reverse_iterator(BidirectionalIterator x) { return reverse_iterator(x); } } # 21 "/home/jas/.tt/ttsetup/opt/include/boost/range/reverse_iterator.hpp" 2 3 4 namespace boost { template< typename C > struct range_reverse_iterator { typedef reverse_iterator< typename range_iterator::type > type; }; } # 20 "/home/jas/.tt/ttsetup/opt/include/boost/range/rend.hpp" 2 3 4 namespace boost { # 35 "/home/jas/.tt/ttsetup/opt/include/boost/range/rend.hpp" 3 4 template< class C > inline typename range_reverse_iterator::type rend( C& c ) { typedef typename range_reverse_iterator::type iter_type; return iter_type( boost::begin( c ) ); } template< class C > inline typename range_reverse_iterator::type rend( const C& c ) { typedef typename range_reverse_iterator::type iter_type; return iter_type( boost::begin( c ) ); } template< class T > inline typename range_reverse_iterator::type const_rend( const T& r ) { return boost::rend( r ); } } # 76 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/range/rbegin.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/range/rbegin.hpp" 3 4 namespace boost { # 35 "/home/jas/.tt/ttsetup/opt/include/boost/range/rbegin.hpp" 3 4 template< class C > inline typename range_reverse_iterator::type rbegin( C& c ) { typedef typename range_reverse_iterator::type iter_type; return iter_type( boost::end( c ) ); } template< class C > inline typename range_reverse_iterator::type rbegin( const C& c ) { typedef typename range_reverse_iterator::type iter_type; return iter_type( boost::end( c ) ); } template< class T > inline typename range_reverse_iterator::type const_rbegin( const T& r ) { return boost::rbegin( r ); } } # 77 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_base_and_derived.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_base_and_derived.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_base_and_derived.hpp" 2 3 4 namespace boost { namespace detail { # 222 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_base_and_derived.hpp" 3 4 template struct is_base_and_derived_impl { typedef typename remove_cv::type ncvB; typedef typename remove_cv::type ncvD; static const bool value = ((__is_base_of(B,D) && !is_same::value) && ! ::boost::is_same::value); }; } template< typename Base, typename Derived > struct is_base_and_derived : ::boost::integral_constant::value)> { }; template< typename Base, typename Derived > struct is_base_and_derived< Base&,Derived > : ::boost::integral_constant { }; template< typename Base, typename Derived > struct is_base_and_derived< Base,Derived& > : ::boost::integral_constant { }; template< typename Base, typename Derived > struct is_base_and_derived< Base&,Derived& > : ::boost::integral_constant { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 253 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_base_and_derived.hpp" 2 3 4 # 83 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/foreach_fwd.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/foreach_fwd.hpp" 3 4 enum boost_foreach_argument_dependent_lookup_hack { boost_foreach_argument_dependent_lookup_hack_value }; namespace boost { namespace foreach { typedef boost_foreach_argument_dependent_lookup_hack tag; template struct is_lightweight_proxy; template struct is_noncopyable; } } # 86 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 2 3 4 # 94 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 namespace boost { template class iterator_range; template class sub_range; namespace foreach { template inline std::pair in_range(T begin, T end) { return std::make_pair(begin, end); } template struct is_lightweight_proxy : boost::mpl::false_ { }; template struct is_noncopyable : boost::mpl::or_< boost::is_abstract , boost::is_base_and_derived > { }; } } # 163 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 template inline boost::foreach::is_lightweight_proxy * boost_foreach_is_lightweight_proxy(T *&, boost::foreach::tag) { return 0; } template inline boost::mpl::true_ * boost_foreach_is_lightweight_proxy(std::pair *&, boost::foreach::tag) { return 0; } template inline boost::mpl::true_ * boost_foreach_is_lightweight_proxy(boost::iterator_range *&, boost::foreach::tag) { return 0; } template inline boost::mpl::true_ * boost_foreach_is_lightweight_proxy(boost::sub_range *&, boost::foreach::tag) { return 0; } template inline boost::mpl::true_ * boost_foreach_is_lightweight_proxy(T **&, boost::foreach::tag) { return 0; } template inline boost::foreach::is_noncopyable * boost_foreach_is_noncopyable(T *&, boost::foreach::tag) { return 0; } namespace boost { namespace foreach_detail_ { template inline boost::mpl::and_ *and_(Bool1 *, Bool2 *) { return 0; } template inline boost::mpl::and_ *and_(Bool1 *, Bool2 *, Bool3 *) { return 0; } template inline boost::mpl::or_ *or_(Bool1 *, Bool2 *) { return 0; } template inline boost::mpl::or_ *or_(Bool1 *, Bool2 *, Bool3 *) { return 0; } template inline boost::mpl::not_ *not_(Bool1 *) { return 0; } template inline boost::mpl::false_ *is_rvalue_(T &, int) { return 0; } template inline boost::mpl::true_ *is_rvalue_(T const &, ...) { return 0; } template inline boost::is_array *is_array_(T const &) { return 0; } template inline boost::is_const *is_const_(T &) { return 0; } template inline boost::mpl::true_ *is_const_(T const &) { return 0; } struct auto_any_base { operator bool() const { return false; } }; template struct auto_any : auto_any_base { auto_any(T const &t) : item(t) { } mutable T item; }; typedef auto_any_base const &auto_any_t; template inline typename boost::mpl::if_::type &auto_any_cast(auto_any_t a) { return static_cast const &>(a).item; } typedef boost::mpl::true_ const_; template struct type2type : boost::mpl::if_ { }; template struct wrap_cstr { typedef T type; }; template<> struct wrap_cstr { typedef wrap_cstr type; typedef char *iterator; typedef char *const_iterator; }; template<> struct wrap_cstr { typedef wrap_cstr type; typedef char const *iterator; typedef char const *const_iterator; }; template<> struct wrap_cstr { typedef wrap_cstr type; typedef wchar_t *iterator; typedef wchar_t *const_iterator; }; template<> struct wrap_cstr { typedef wrap_cstr type; typedef wchar_t const *iterator; typedef wchar_t const *const_iterator; }; template struct is_char_array : mpl::and_< is_array , mpl::or_< is_convertible , is_convertible > > {}; template struct foreach_iterator { # 344 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 struct IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING; typedef struct IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING344 : boost::mpl::assert_ { static boost::mpl::failed ************ (IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING::************ assert_arg()) (T&) { return 0; } } mpl_assert_arg344; enum { mpl_assertion_in_line_344 = sizeof( boost::mpl::assertion_failed<((!is_char_array::value))>( mpl_assert_arg344::assert_arg() ) ) }; typedef typename wrap_cstr::type container; typedef typename boost::mpl::eval_if< C , range_const_iterator , range_mutable_iterator >::type type; }; template struct foreach_reverse_iterator { # 375 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 struct IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING; typedef struct IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING375 : boost::mpl::assert_ { static boost::mpl::failed ************ (IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING::************ assert_arg()) (T&) { return 0; } } mpl_assert_arg375; enum { mpl_assertion_in_line_375 = sizeof( boost::mpl::assertion_failed<((!is_char_array::value))>( mpl_assert_arg375::assert_arg() ) ) }; typedef typename wrap_cstr::type container; typedef typename boost::mpl::eval_if< C , range_reverse_iterator , range_reverse_iterator >::type type; }; template struct foreach_reference : iterator_reference::type> { }; template inline type2type *encode_type(T &, boost::mpl::false_ *) { return 0; } template inline type2type *encode_type(T const &, boost::mpl::true_ *) { return 0; } inline bool set_false(bool &b) { b = false; return false; } template inline T *&to_ptr(T const &) { static T *t = 0; return t; } # 436 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 template inline T &derefof(T *t) { return reinterpret_cast( *const_cast( reinterpret_cast(t) ) ); } # 458 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 template struct rvalue_probe { struct private_type_ {}; typedef typename boost::mpl::if_< boost::mpl::or_, boost::is_array >, private_type_, T >::type value_type; operator value_type() { return *reinterpret_cast(this); } operator T &() const { return *reinterpret_cast(const_cast(this)); } }; template rvalue_probe const make_probe(T const &) { return rvalue_probe(); } # 606 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 template inline auto_any contain(T const &t, boost::mpl::true_ *) { return t; } template inline auto_any contain(T &t, boost::mpl::false_ *) { return boost::addressof(t); } # 635 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 template inline auto_any::type> begin(auto_any_t col, type2type *, boost::mpl::true_ *) { return boost::begin(auto_any_cast(col)); } template inline auto_any::type> begin(auto_any_t col, type2type *, boost::mpl::false_ *) { typedef typename type2type::type type; typedef typename foreach_iterator::type iterator; return iterator(boost::begin(derefof(auto_any_cast(col)))); } # 661 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 template inline auto_any begin(auto_any_t col, type2type *, boost::mpl::true_ *) { return auto_any_cast(col); } template inline auto_any::type> end(auto_any_t col, type2type *, boost::mpl::true_ *) { return boost::end(auto_any_cast(col)); } template inline auto_any::type> end(auto_any_t col, type2type *, boost::mpl::false_ *) { typedef typename type2type::type type; typedef typename foreach_iterator::type iterator; return iterator(boost::end(derefof(auto_any_cast(col)))); } # 698 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 template inline auto_any end(auto_any_t, type2type *, boost::mpl::true_ *) { return 0; } template inline bool done(auto_any_t cur, auto_any_t end, type2type *) { typedef typename foreach_iterator::type iter_t; return auto_any_cast(cur) == auto_any_cast(end); } template inline bool done(auto_any_t cur, auto_any_t, type2type *) { return ! *auto_any_cast(cur); } template inline void next(auto_any_t cur, type2type *) { typedef typename foreach_iterator::type iter_t; ++auto_any_cast(cur); } template inline typename foreach_reference::type deref(auto_any_t cur, type2type *) { typedef typename foreach_iterator::type iter_t; return *auto_any_cast(cur); } template inline auto_any::type> rbegin(auto_any_t col, type2type *, boost::mpl::true_ *) { return boost::rbegin(auto_any_cast(col)); } template inline auto_any::type> rbegin(auto_any_t col, type2type *, boost::mpl::false_ *) { typedef typename type2type::type type; typedef typename foreach_reverse_iterator::type iterator; return iterator(boost::rbegin(derefof(auto_any_cast(col)))); } # 774 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 template inline auto_any > rbegin(auto_any_t col, type2type *, boost::mpl::true_ *) { T *p = auto_any_cast(col); while(0 != *p) ++p; return reverse_iterator(p); } template inline auto_any::type> rend(auto_any_t col, type2type *, boost::mpl::true_ *) { return boost::rend(auto_any_cast(col)); } template inline auto_any::type> rend(auto_any_t col, type2type *, boost::mpl::false_ *) { typedef typename type2type::type type; typedef typename foreach_reverse_iterator::type iterator; return iterator(boost::rend(derefof(auto_any_cast(col)))); } # 814 "/home/jas/.tt/ttsetup/opt/include/boost/foreach.hpp" 3 4 template inline auto_any > rend(auto_any_t col, type2type *, boost::mpl::true_ *) { return reverse_iterator(auto_any_cast(col)); } template inline bool rdone(auto_any_t cur, auto_any_t end, type2type *) { typedef typename foreach_reverse_iterator::type iter_t; return auto_any_cast(cur) == auto_any_cast(end); } template inline void rnext(auto_any_t cur, type2type *) { typedef typename foreach_reverse_iterator::type iter_t; ++auto_any_cast(cur); } template inline typename foreach_reference::type rderef(auto_any_t cur, type2type *) { typedef typename foreach_reverse_iterator::type iter_t; return *auto_any_cast(cur); } } } # 11 "src/bp/symbol_filter.h" 2 # 1 "src/core/stocks_table.h" 1 # 1 "src/core/symbol_common.h" 1 namespace tt { struct symbol_entry { const char* name; int length; int id; }; struct symbol_table_entry { unsigned short length; char symbol[30]; }; } # 8 "src/core/stocks_table.h" 2 namespace tt { static struct symbol_table_entry g_stock_symbol_table[] = { { 5, "tzero " }, { 4, "AACC " }, { 5, "AACOU " }, { 5, "AACOW " }, { 3, "AAC " }, { 4, "AADR " }, { 4, "AAME " }, { 3, "AAN " }, { 4, "AAON " }, { 4, "AAPL " }, { 3, "AAP " }, { 3, "AAR " }, { 4, "AATI " }, { 3, "AAT " }, { 3, "AAU " }, { 3, "AAV " }, { 4, "AAWW " }, { 4, "AAXJ " }, { 2, "AA " }, { 4, "ABAT " }, { 4, "ABAX " }, { 4, "ABBC " }, { 3, "ABB " }, { 4, "ABCB " }, { 4, "ABCD " }, { 4, "ABCO " }, { 4, "ABCS " }, { 4, "ABCW " }, { 3, "ABC " }, { 3, "ABD " }, { 4, "ABFS " }, { 3, "ABG " }, { 3, "ABH " }, { 4, "ABIO " }, { 3, "ABI " }, { 3, "ABL " }, { 4, "ABMD " }, { 3, "ABM " }, { 3, "ABR " }, { 4, "ABTL " }, { 3, "ABT " }, { 4, "ABVA " }, { 4, "ABVT " }, { 3, "ABV " }, { 3, "ABX " }, { 2, "AB " }, { 4, "ACAD " }, { 4, "ACAS " }, { 4, "ACAT " }, { 4, "ACCL " }, { 3, "ACC " }, { 4, "ACET " }, { 3, "ACE " }, { 4, "ACFC " }, { 4, "ACFN " }, { 4, "ACGL " }, { 3, "ACG " }, { 4, "ACHN " }, { 3, "ACH " }, { 4, "ACIW " }, { 3, "ACI " }, { 3, "ACK " }, { 4, "ACLS " }, { 4, "ACMR " }, { 3, "ACM " }, { 4, "ACNB " }, { 3, "ACN " }, { 4, "ACOM " }, { 4, "ACOR " }, { 3, "ACO " }, { 4, "ACPW " }, { 3, "ACP " }, { 4, "ACRX " }, { 4, "ACTG " }, { 4, "ACTS " }, { 4, "ACTV " }, { 4, "ACUR " }, { 3, "ACU " }, { 4, "ACWI " }, { 4, "ACWX " }, { 3, "ACW " }, { 4, "ACXM " }, { 3, "ACY " }, { 4, "ADAT " }, { 4, "ADBE " }, { 3, "ADC " }, { 4, "ADEP " }, { 4, "ADES " }, { 4, "ADGE " }, { 4, "ADGF " }, { 3, "ADI " }, { 3, "ADJ " }, { 3, "ADK " }, { 4, "ADLR " }, { 3, "ADM " }, { 4, "ADPI " }, { 3, "ADP " }, { 4, "ADRA " }, { 4, "ADRD " }, { 4, "ADRE " }, { 4, "ADRU " }, { 4, "ADSK " }, { 3, "ADS " }, { 4, "ADTN " }, { 4, "ADUS " }, { 4, "ADVS " }, { 3, "ADX " }, { 3, "ADY " }, { 3, "ADZ " }, { 3, "AEA " }, { 3, "AEB " }, { 3, "AEC " }, { 3, "AED " }, { 3, "AEE " }, { 3, "AEF " }, { 4, "AEGR " }, { 3, "AEG " }, { 4, "AEHR " }, { 3, "AEH " }, { 4, "AEIS " }, { 3, "AEL " }, { 3, "AEM " }, { 3, "AEN " }, { 3, "AEO " }, { 4, "AEPI " }, { 3, "AEP " }, { 4, "AERG " }, { 4, "AERL " }, { 3, "AER " }, { 3, "AES " }, { 4, "AETI " }, { 3, "AET " }, { 3, "AEV " }, { 3, "AEY " }, { 4, "AEZS " }, { 2, "AE " }, { 4, "AFAM " }, { 3, "AFB " }, { 4, "AFCB " }, { 4, "AFCE " }, { 3, "AFC " }, { 3, "AFE " }, { 4, "AFFM " }, { 4, "AFFX " }, { 4, "AFFY " }, { 3, "AFF " }, { 3, "AFG " }, { 3, "AFK " }, { 3, "AFL " }, { 4, "AFOP " }, { 3, "AFP " }, { 3, "AFQ " }, { 4, "AFSI " }, { 3, "AFT " }, { 2, "AF " }, { 3, "AGA " }, { 4, "AGCO " }, { 3, "AGC " }, { 3, "AGD " }, { 4, "AGEM " }, { 4, "AGEN " }, { 3, "AGF " }, { 3, "AGG " }, { 4, "AGII " }, { 3, "AGL " }, { 3, "AGM " }, { 4, "AGNC " }, { 3, "AGN " }, { 4, "AGOL " }, { 3, "AGO " }, { 3, "AGP " }, { 3, "AGQ " }, { 4, "AGRG " }, { 4, "AGRO " }, { 3, "AGU " }, { 3, "AGX " }, { 4, "AGYS " }, { 3, "AGZ " }, { 2, "AG " }, { 3, "AHB " }, { 4, "AHCI " }, { 3, "AHC " }, { 4, "AHGP " }, { 3, "AHL " }, { 4, "AHPI " }, { 3, "AHS " }, { 3, "AHT " }, { 3, "AHY " }, { 2, "AH " }, { 3, "AIA " }, { 3, "AIB " }, { 3, "AIG " }, { 4, "AIMC " }, { 3, "AIM " }, { 4, "AINV " }, { 3, "AIN " }, { 3, "AIP " }, { 3, "AIQ " }, { 4, "AIRM " }, { 4, "AIRT " }, { 3, "AIR " }, { 3, "AIS " }, { 3, "AIT " }, { 3, "AIV " }, { 4, "AIXG " }, { 3, "AIZ " }, { 2, "AI " }, { 3, "AJB " }, { 3, "AJG " }, { 4, "AKAM " }, { 3, "AKE " }, { 3, "AKN " }, { 3, "AKP " }, { 4, "AKRX " }, { 3, "AKR " }, { 3, "AKS " }, { 4, "ALAN " }, { 3, "ALB " }, { 4, "ALCO " }, { 3, "ALC " }, { 3, "ALD " }, { 4, "ALEX " }, { 3, "ALE " }, { 4, "ALGN " }, { 4, "ALGT " }, { 3, "ALG " }, { 4, "ALIM " }, { 3, "ALJ " }, { 4, "ALKS " }, { 3, "ALK " }, { 4, "ALLB " }, { 4, "ALLT " }, { 3, "ALL " }, { 3, "ALM " }, { 4, "ALNC " }, { 4, "ALNY " }, { 3, "ALN " }, { 4, "ALOG " }, { 4, "ALOT " }, { 4, "ALRN " }, { 3, "ALR " }, { 4, "ALSK " }, { 4, "ALTE " }, { 4, "ALTH " }, { 4, "ALTI " }, { 4, "ALTR " }, { 3, "ALT " }, { 4, "ALUM " }, { 3, "ALU " }, { 4, "ALVR " }, { 3, "ALV " }, { 4, "ALXA " }, { 4, "ALXN " }, { 3, "ALX " }, { 2, "AL " }, { 4, "AMAC " }, { 4, "AMAG " }, { 4, "AMAP " }, { 4, "AMAT " }, { 4, "AMBO " }, { 4, "AMCC " }, { 4, "AMCF " }, { 4, "AMCN " }, { 5, "AMCXV " }, { 3, "AMD " }, { 4, "AMED " }, { 3, "AME " }, { 4, "AMGN " }, { 3, "AMG " }, { 4, "AMIC " }, { 3, "AMJ " }, { 4, "AMKR " }, { 4, "AMLN " }, { 4, "AMLP " }, { 3, "AMM " }, { 4, "AMNB " }, { 3, "AMN " }, { 4, "AMOT " }, { 4, "AMOV " }, { 4, "AMPE " }, { 4, "AMPL " }, { 3, "AMP " }, { 4, "AMRB " }, { 4, "AMRC " }, { 4, "AMRI " }, { 4, "AMRN " }, { 4, "AMRS " }, { 3, "AMR " }, { 4, "AMSC " }, { 4, "AMSF " }, { 4, "AMSG " }, { 5, "AMSWA " }, { 3, "AMS " }, { 5, "AMTCP " }, { 4, "AMTC " }, { 4, "AMTD " }, { 3, "AMT " }, { 4, "AMWD " }, { 3, "AMX " }, { 4, "AMZN " }, { 2, "AM " }, { 4, "ANAC " }, { 4, "ANAD " }, { 4, "ANAT " }, { 4, "ANCB " }, { 4, "ANCI " }, { 4, "ANCX " }, { 4, "ANDE " }, { 4, "ANDS " }, { 3, "AND " }, { 4, "ANEN " }, { 3, "ANF " }, { 4, "ANGN " }, { 4, "ANGO " }, { 3, "ANH " }, { 4, "ANIK " }, { 4, "ANLY " }, { 4, "ANNB " }, { 3, "ANN " }, { 3, "ANO " }, { 3, "ANR " }, { 4, "ANSS " }, { 4, "ANTH " }, { 4, "ANTP " }, { 3, "ANV " }, { 3, "ANW " }, { 3, "ANX " }, { 2, "AN " }, { 3, "AOA " }, { 3, "AOB " }, { 3, "AOD " }, { 3, "AOI " }, { 3, "AOK " }, { 3, "AOL " }, { 3, "AOM " }, { 4, "AONE " }, { 3, "AON " }, { 3, "AOR " }, { 4, "AOSL " }, { 3, "AOS " }, { 4, "APAC " }, { 5, "APAGF " }, { 3, "APA " }, { 3, "APB " }, { 3, "APC " }, { 3, "APD " }, { 4, "APEI " }, { 4, "APFC " }, { 3, "APF " }, { 3, "APH " }, { 3, "API " }, { 4, "APKT " }, { 3, "APL " }, { 4, "APOG " }, { 4, "APOL " }, { 3, "APO " }, { 4, "APPY " }, { 3, "APP " }, { 4, "APRI " }, { 4, "APSA " }, { 4, "APTS " }, { 3, "APT " }, { 3, "APU " }, { 4, "APWC " }, { 4, "APWR " }, { 2, "AP " }, { 3, "AQQ " }, { 4, "ARAY " }, { 4, "ARBA " }, { 3, "ARB " }, { 4, "ARCC " }, { 4, "ARCI " }, { 4, "ARCL " }, { 4, "ARCO " }, { 4, "ARCW " }, { 3, "ARC " }, { 5, "ARDNA " }, { 4, "AREX " }, { 3, "ARE " }, { 4, "ARGN " }, { 4, "ARGT " }, { 3, "ARG " }, { 4, "ARIA " }, { 4, "ARII " }, { 3, "ARI " }, { 3, "ARJ " }, { 4, "ARKR " }, { 3, "ARK " }, { 4, "ARLP " }, { 3, "ARL " }, { 4, "ARMH " }, { 4, "ARNA " }, { 4, "AROW " }, { 3, "ARO " }, { 4, "ARQL " }, { 4, "ARRS " }, { 4, "ARRY " }, { 3, "ARR " }, { 4, "ARSD " }, { 4, "ARTC " }, { 5, "ARTNA " }, { 4, "ARTW " }, { 4, "ARTX " }, { 3, "ART " }, { 4, "ARUN " }, { 4, "ARWR " }, { 3, "ARW " }, { 3, "ARX " }, { 3, "ARY " }, { 3, "ASA " }, { 4, "ASBC " }, { 4, "ASBI " }, { 4, "ASCA " }, { 5, "ASCMA " }, { 4, "ASEA " }, { 4, "ASEI " }, { 4, "ASFI " }, { 4, "ASGN " }, { 3, "ASG " }, { 3, "ASH " }, { 4, "ASIA " }, { 3, "ASI " }, { 4, "ASMI " }, { 4, "ASML " }, { 4, "ASNA " }, { 4, "ASPS " }, { 3, "ASP " }, { 5, "ASRVP " }, { 4, "ASRV " }, { 3, "ASR " }, { 4, "ASTC " }, { 4, "ASTE " }, { 5, "ASTIZ " }, { 4, "ASTI " }, { 4, "ASTM " }, { 4, "ASUR " }, { 3, "ASX " }, { 4, "ASYS " }, { 4, "ATAI " }, { 4, "ATAX " }, { 3, "ATA " }, { 3, "ATC " }, { 4, "ATEA " }, { 4, "ATEC " }, { 3, "ATE " }, { 4, "ATHN " }, { 4, "ATHX " }, { 3, "ATI " }, { 3, "ATK " }, { 4, "ATLO " }, { 4, "ATLS " }, { 4, "ATMI " }, { 4, "ATML " }, { 4, "ATNI " }, { 4, "ATNY " }, { 3, "ATO " }, { 4, "ATPG " }, { 4, "ATRC " }, { 4, "ATRI " }, { 4, "ATRM " }, { 4, "ATRN " }, { 4, "ATRO " }, { 3, "ATR " }, { 4, "ATSC " }, { 4, "ATSG " }, { 3, "ATT " }, { 3, "ATU " }, { 4, "ATVI " }, { 3, "ATV " }, { 3, "ATW " }, { 3, "ATX " }, { 2, "AT " }, { 4, "AUBN " }, { 4, "AUDC " }, { 4, "AUMN " }, { 3, "AUO " }, { 3, "AUQ " }, { 4, "AUSE " }, { 4, "AUTC " }, { 4, "AUTH " }, { 4, "AUXL " }, { 3, "AUY " }, { 2, "AU " }, { 4, "AVAV " }, { 3, "AVA " }, { 3, "AVB " }, { 4, "AVCA " }, { 3, "AVD " }, { 4, "AVEO " }, { 3, "AVF " }, { 4, "AVGO " }, { 4, "AVID " }, { 4, "AVII " }, { 3, "AVK " }, { 3, "AVL " }, { 4, "AVNR " }, { 4, "AVNW " }, { 3, "AVP " }, { 4, "AVTR " }, { 3, "AVT " }, { 3, "AVX " }, { 3, "AVY " }, { 2, "AV " }, { 4, "AWAY " }, { 3, "AWC " }, { 3, "AWF " }, { 3, "AWH " }, { 3, "AWI " }, { 3, "AWK " }, { 3, "AWP " }, { 4, "AWRE " }, { 3, "AWR " }, { 3, "AWX " }, { 4, "AXAS " }, { 4, "AXDI " }, { 4, "AXEN " }, { 3, "AXE " }, { 4, "AXFN " }, { 4, "AXHE " }, { 4, "AXID " }, { 4, "AXIT " }, { 4, "AXJL " }, { 3, "AXK " }, { 3, "AXL " }, { 4, "AXMT " }, { 3, "AXN " }, { 3, "AXP " }, { 3, "AXR " }, { 4, "AXSL " }, { 3, "AXS " }, { 4, "AXTE " }, { 4, "AXTI " }, { 4, "AXUT " }, { 3, "AXU " }, { 3, "AYI " }, { 3, "AYN " }, { 3, "AYR " }, { 3, "AYT " }, { 3, "AZC " }, { 3, "AZK " }, { 3, "AZN " }, { 3, "AZO " }, { 4, "AZPN " }, { 3, "AZZ " }, { 1, "A " }, { 3, "BAA " }, { 4, "BABS " }, { 4, "BABY " }, { 4, "BABZ " }, { 3, "BAB " }, { 3, "BAC " }, { 3, "BAF " }, { 4, "BAGL " }, { 3, "BAH " }, { 3, "BAK " }, { 4, "BALT " }, { 3, "BAL " }, { 4, "BAMM " }, { 3, "BAM " }, { 5, "BANFP " }, { 4, "BANF " }, { 4, "BANR " }, { 3, "BAP " }, { 4, "BARI " }, { 4, "BARL " }, { 4, "BARN " }, { 4, "BASI " }, { 3, "BAS " }, { 3, "BAX " }, { 2, "BA " }, { 4, "BBBB " }, { 4, "BBBY " }, { 3, "BBD " }, { 4, "BBEP " }, { 3, "BBF " }, { 4, "BBGI " }, { 3, "BBG " }, { 3, "BBH " }, { 3, "BBK " }, { 3, "BBL " }, { 4, "BBND " }, { 4, "BBNK " }, { 3, "BBN " }, { 4, "BBOX " }, { 4, "BBRG " }, { 4, "BBSI " }, { 3, "BBT " }, { 4, "BBVA " }, { 3, "BBW " }, { 4, "BBXT " }, { 3, "BBX " }, { 3, "BBY " }, { 4, "BCAR " }, { 3, "BCA " }, { 4, "BCBP " }, { 4, "BCDS " }, { 3, "BCE " }, { 3, "BCF " }, { 3, "BCH " }, { 3, "BCM " }, { 4, "BCOM " }, { 4, "BCON " }, { 3, "BCO " }, { 4, "BCPC " }, { 4, "BCRX " }, { 3, "BCR " }, { 4, "BCSB " }, { 4, "BCSI " }, { 3, "BCS " }, { 3, "BCV " }, { 3, "BCX " }, { 2, "BC " }, { 4, "BDCL " }, { 4, "BDCS " }, { 3, "BDC " }, { 3, "BDD " }, { 3, "BDE " }, { 3, "BDF " }, { 4, "BDGE " }, { 3, "BDG " }, { 3, "BDH " }, { 3, "BDJ " }, { 3, "BDL " }, { 4, "BDMS " }, { 3, "BDN " }, { 3, "BDR " }, { 4, "BDSI " }, { 3, "BDT " }, { 3, "BDV " }, { 3, "BDX " }, { 4, "BEAT " }, { 4, "BEAV " }, { 4, "BEBE " }, { 4, "BECN " }, { 3, "BEC " }, { 3, "BEE " }, { 5, "BELFA " }, { 5, "BELFB " }, { 3, "BEM " }, { 3, "BEN " }, { 4, "BERK " }, { 4, "BEST " }, { 4, "BEXP " }, { 4, "BFED " }, { 4, "BFIN " }, { 3, "BFK " }, { 4, "BFLY " }, { 3, "BFO " }, { 3, "BFR " }, { 4, "BFSB " }, { 3, "BFS " }, { 3, "BFY " }, { 3, "BFZ " }, { 4, "BGCP " }, { 3, "BGC " }, { 4, "BGFV " }, { 3, "BGG " }, { 4, "BGMD " }, { 3, "BGR " }, { 3, "BGS " }, { 3, "BGT " }, { 3, "BGU " }, { 3, "BGX " }, { 3, "BGY " }, { 3, "BGZ " }, { 2, "BG " }, { 3, "BHB " }, { 3, "BHD " }, { 3, "BHE " }, { 3, "BHH " }, { 3, "BHI " }, { 3, "BHK " }, { 4, "BHLB " }, { 3, "BHL " }, { 3, "BHO " }, { 3, "BHP " }, { 3, "BHV " }, { 3, "BHY " }, { 3, "BIB " }, { 4, "BICK " }, { 4, "BIDU " }, { 4, "BIDZ " }, { 3, "BID " }, { 3, "BIE " }, { 3, "BIF " }, { 3, "BIG " }, { 4, "BIIB " }, { 3, "BIK " }, { 3, "BIL " }, { 3, "BIN " }, { 4, "BIOC " }, { 4, "BIOD " }, { 4, "BIOF " }, { 4, "BIOS " }, { 3, "BIO " }, { 3, "BIP " }, { 4, "BIRT " }, { 3, "BIS " }, { 4, "BITA " }, { 4, "BITS " }, { 3, "BIV " }, { 3, "BJK " }, { 4, "BJRI " }, { 3, "BJZ " }, { 2, "BJ " }, { 4, "BKBK " }, { 4, "BKCC " }, { 3, "BKD " }, { 4, "BKEP " }, { 3, "BKE " }, { 3, "BKF " }, { 3, "BKH " }, { 3, "BKI " }, { 3, "BKJ " }, { 3, "BKK " }, { 4, "BKLN " }, { 4, "BKMU " }, { 3, "BKN " }, { 4, "BKOR " }, { 3, "BKR " }, { 4, "BKSC " }, { 3, "BKS " }, { 3, "BKT " }, { 3, "BKU " }, { 4, "BKYF " }, { 2, "BK " }, { 3, "BLC " }, { 4, "BLDP " }, { 4, "BLDR " }, { 3, "BLD " }, { 3, "BLE " }, { 3, "BLH " }, { 4, "BLIN " }, { 3, "BLJ " }, { 4, "BLKB " }, { 3, "BLK " }, { 3, "BLL " }, { 4, "BLNG " }, { 3, "BLN " }, { 4, "BLTI " }, { 3, "BLT " }, { 4, "BLUD " }, { 3, "BLV " }, { 3, "BLW " }, { 3, "BLX " }, { 3, "BMA " }, { 3, "BMC " }, { 3, "BME " }, { 3, "BMI " }, { 3, "BMJ " }, { 3, "BMO " }, { 4, "BMRC " }, { 4, "BMRN " }, { 3, "BMR " }, { 3, "BMS " }, { 4, "BMTC " }, { 4, "BMTI " }, { 3, "BMY " }, { 3, "BNA " }, { 4, "BNCL " }, { 4, "BNCN " }, { 3, "BND " }, { 5, "BNHNA " }, { 4, "BNHN " }, { 3, "BNJ " }, { 3, "BNO " }, { 4, "BNSO " }, { 3, "BNS " }, { 4, "BNVI " }, { 3, "BNX " }, { 3, "BNY " }, { 3, "BNZ " }, { 4, "BOBE " }, { 4, "BOCH " }, { 4, "BODY " }, { 3, "BOE " }, { 4, "BOFI " }, { 3, "BOH " }, { 4, "BOKF " }, { 4, "BOLT " }, { 3, "BOM " }, { 4, "BONA " }, { 4, "BONE " }, { 4, "BONO " }, { 4, "BONT " }, { 4, "BOOM " }, { 4, "BOOT " }, { 4, "BORN " }, { 4, "BOSC " }, { 3, "BOS " }, { 4, "BOVA " }, { 3, "BOX " }, { 4, "BPAX " }, { 5, "BPFHW " }, { 4, "BPFH " }, { 4, "BPHX " }, { 3, "BPI " }, { 3, "BPK " }, { 3, "BPL " }, { 5, "BPOPM " }, { 5, "BPOPN " }, { 4, "BPOP " }, { 3, "BPO " }, { 3, "BPP " }, { 3, "BPS " }, { 3, "BPT " }, { 3, "BPZ " }, { 2, "BP " }, { 3, "BQH " }, { 3, "BQI " }, { 3, "BQR " }, { 3, "BQY " }, { 4, "BRAF " }, { 4, "BRAQ " }, { 4, "BRAZ " }, { 4, "BRCD " }, { 4, "BRCM " }, { 3, "BRC " }, { 3, "BRD " }, { 3, "BRE " }, { 4, "BRFS " }, { 3, "BRF " }, { 4, "BRID " }, { 4, "BRIL " }, { 4, "BRIS " }, { 4, "BRKL " }, { 4, "BRKR " }, { 4, "BRKS " }, { 4, "BRLI " }, { 3, "BRN " }, { 3, "BRO " }, { 3, "BRP " }, { 3, "BRS " }, { 3, "BRT " }, { 4, "BRXX " }, { 3, "BRY " }, { 2, "BR " }, { 4, "BSBR " }, { 4, "BSCB " }, { 4, "BSCC " }, { 4, "BSCD " }, { 4, "BSCE " }, { 4, "BSCF " }, { 4, "BSCG " }, { 4, "BSCH " }, { 3, "BSC " }, { 4, "BSDM " }, { 3, "BSD " }, { 4, "BSET " }, { 3, "BSE " }, { 4, "BSFT " }, { 3, "BSI " }, { 4, "BSJC " }, { 4, "BSJD " }, { 4, "BSJE " }, { 4, "BSJF " }, { 3, "BSL " }, { 4, "BSPM " }, { 3, "BSP " }, { 4, "BSQR " }, { 3, "BSQ " }, { 4, "BSRR " }, { 4, "BSTC " }, { 3, "BSV " }, { 3, "BSX " }, { 3, "BTA " }, { 3, "BTC " }, { 3, "BTE " }, { 4, "BTFG " }, { 3, "BTF " }, { 3, "BTH " }, { 3, "BTI " }, { 3, "BTM " }, { 3, "BTN " }, { 3, "BTO " }, { 4, "BTUI " }, { 3, "BTU " }, { 3, "BTX " }, { 3, "BTZ " }, { 2, "BT " }, { 4, "BUCY " }, { 3, "BUD " }, { 4, "BUNL " }, { 4, "BUNT " }, { 4, "BUSE " }, { 3, "BVL " }, { 3, "BVN " }, { 4, "BVSN " }, { 3, "BVT " }, { 3, "BVX " }, { 3, "BWA " }, { 3, "BWC " }, { 4, "BWEN " }, { 3, "BWF " }, { 5, "BWINA " }, { 5, "BWINB " }, { 4, "BWLD " }, { 3, "BWN " }, { 5, "BWOWU " }, { 5, "BWOWW " }, { 4, "BWOW " }, { 3, "BWP " }, { 3, "BWS " }, { 3, "BWV " }, { 3, "BWX " }, { 3, "BWZ " }, { 3, "BXC " }, { 4, "BXDB " }, { 4, "BXDC " }, { 3, "BXG " }, { 3, "BXP " }, { 3, "BXS " }, { 4, "BXUB " }, { 4, "BXUC " }, { 2, "BX " }, { 3, "BYD " }, { 4, "BYFC " }, { 3, "BYI " }, { 3, "BYM " }, { 3, "BZC " }, { 3, "BZF " }, { 3, "BZH " }, { 4, "BZMD " }, { 3, "BZM " }, { 3, "BZQ " }, { 3, "BZU " }, { 2, "BZ " }, { 1, "B " }, { 4, "CAAS " }, { 4, "CABL " }, { 3, "CAB " }, { 4, "CACB " }, { 4, "CACC " }, { 4, "CACH " }, { 4, "CACI " }, { 3, "CAC " }, { 4, "CADC " }, { 4, "CADX " }, { 3, "CAE " }, { 4, "CAFE " }, { 4, "CAFI " }, { 3, "CAF " }, { 3, "CAG " }, { 3, "CAH " }, { 3, "CAJ " }, { 4, "CAKE " }, { 3, "CAK " }, { 4, "CALD " }, { 4, "CALI " }, { 4, "CALL " }, { 4, "CALM " }, { 5, "CALPW " }, { 4, "CALP " }, { 4, "CALX " }, { 4, "CAMP " }, { 4, "CAMT " }, { 3, "CAM " }, { 4, "CAPS " }, { 3, "CAP " }, { 4, "CART " }, { 4, "CARV " }, { 4, "CARZ " }, { 3, "CAR " }, { 4, "CASB " }, { 4, "CASC " }, { 4, "CASH " }, { 4, "CASM " }, { 4, "CASS " }, { 4, "CAST " }, { 4, "CASY " }, { 3, "CAS " }, { 4, "CATM " }, { 4, "CATO " }, { 4, "CATY " }, { 3, "CAT " }, { 4, "CAVM " }, { 4, "CAVO " }, { 3, "CAW " }, { 5, "CAZAU " }, { 5, "CAZAW " }, { 4, "CAZA " }, { 2, "CA " }, { 4, "CBAK " }, { 4, "CBAN " }, { 3, "CBB " }, { 3, "CBD " }, { 4, "CBEY " }, { 3, "CBE " }, { 3, "CBG " }, { 4, "CBIN " }, { 3, "CBI " }, { 4, "CBKN " }, { 3, "CBK " }, { 4, "CBLI " }, { 3, "CBL " }, { 5, "CBMXW " }, { 4, "CBMX " }, { 3, "CBM " }, { 4, "CBND " }, { 4, "CBNJ " }, { 4, "CBNK " }, { 4, "CBOE " }, { 4, "CBOU " }, { 3, "CBO " }, { 4, "CBPO " }, { 3, "CBP " }, { 4, "CBRL " }, { 4, "CBRX " }, { 3, "CBR " }, { 4, "CBSH " }, { 4, "CBST " }, { 3, "CBS " }, { 3, "CBT " }, { 3, "CBU " }, { 3, "CBX " }, { 3, "CBZ " }, { 2, "CB " }, { 3, "CCA " }, { 4, "CCBG " }, { 5, "CCCLU " }, { 5, "CCCLW " }, { 4, "CCCL " }, { 3, "CCC " }, { 3, "CCE " }, { 3, "CCF " }, { 4, "CCGM " }, { 3, "CCG " }, { 3, "CCH " }, { 4, "CCIH " }, { 4, "CCIX " }, { 3, "CCI " }, { 3, "CCJ " }, { 3, "CCK " }, { 3, "CCL " }, { 4, "CCMP " }, { 3, "CCM " }, { 4, "CCNE " }, { 4, "CCOI " }, { 3, "CCO " }, { 4, "CCRN " }, { 4, "CCRT " }, { 4, "CCSC " }, { 3, "CCS " }, { 3, "CCT " }, { 4, "CCUR " }, { 3, "CCU " }, { 3, "CCW " }, { 4, "CCXE " }, { 3, "CCX " }, { 3, "CCZ " }, { 4, "CDCS " }, { 3, "CDE " }, { 4, "CDII " }, { 3, "CDI " }, { 3, "CDK " }, { 4, "CDNS " }, { 3, "CDR " }, { 4, "CDTI " }, { 4, "CDXS " }, { 3, "CDY " }, { 4, "CDZI " }, { 3, "CEA " }, { 4, "CEBK " }, { 4, "CECE " }, { 4, "CECO " }, { 3, "CEC " }, { 4, "CEDC " }, { 4, "CEDU " }, { 3, "CEE " }, { 3, "CEF " }, { 3, "CEG " }, { 5, "CELGZ " }, { 4, "CELG " }, { 4, "CELL " }, { 3, "CEL " }, { 3, "CEM " }, { 5, "CENTA " }, { 4, "CENT " }, { 4, "CENX " }, { 3, "CEO " }, { 4, "CEPH " }, { 3, "CEP " }, { 4, "CERN " }, { 4, "CERP " }, { 4, "CERS " }, { 4, "CETV " }, { 3, "CET " }, { 3, "CEU " }, { 4, "CEVA " }, { 3, "CEV " }, { 3, "CEW " }, { 2, "CE " }, { 4, "CFBK " }, { 3, "CFD " }, { 4, "CFFC " }, { 4, "CFFI " }, { 4, "CFFN " }, { 3, "CFI " }, { 3, "CFK " }, { 4, "CFNB " }, { 4, "CFNL " }, { 3, "CFN " }, { 3, "CFP " }, { 3, "CFR " }, { 4, "CFSG " }, { 3, "CFT " }, { 3, "CFW " }, { 3, "CFX " }, { 2, "CF " }, { 3, "CGA " }, { 5, "CGEIU " }, { 4, "CGEN " }, { 3, "CGI " }, { 4, "CGNX " }, { 3, "CGO " }, { 3, "CGQ " }, { 3, "CGR " }, { 3, "CGV " }, { 3, "CGW " }, { 3, "CGX " }, { 3, "CHA " }, { 4, "CHBT " }, { 4, "CHCI " }, { 4, "CHCO " }, { 3, "CHC " }, { 4, "CHDN " }, { 4, "CHDX " }, { 3, "CHD " }, { 4, "CHEV " }, { 3, "CHE " }, { 4, "CHFC " }, { 4, "CHFN " }, { 4, "CHGS " }, { 3, "CHG " }, { 3, "CHH " }, { 4, "CHIB " }, { 4, "CHIE " }, { 4, "CHII " }, { 4, "CHIM " }, { 5, "CHINA " }, { 4, "CHIQ " }, { 4, "CHIX " }, { 3, "CHI " }, { 4, "CHKE " }, { 4, "CHKM " }, { 4, "CHKP " }, { 3, "CHK " }, { 4, "CHLN " }, { 3, "CHL " }, { 4, "CHMP " }, { 4, "CHMT " }, { 4, "CHNG " }, { 4, "CHNR " }, { 3, "CHN " }, { 4, "CHOC " }, { 4, "CHOP " }, { 4, "CHRM " }, { 4, "CHRS " }, { 4, "CHRW " }, { 5, "CHSCP " }, { 4, "CHSI " }, { 4, "CHSP " }, { 3, "CHS " }, { 4, "CHTP " }, { 4, "CHTR " }, { 3, "CHT " }, { 4, "CHUX " }, { 3, "CHU " }, { 3, "CHW " }, { 4, "CHXX " }, { 4, "CHYR " }, { 3, "CHY " }, { 2, "CH " }, { 3, "CIA " }, { 3, "CIB " }, { 4, "CIDM " }, { 4, "CIEN " }, { 3, "CIE " }, { 3, "CIF " }, { 4, "CIGX " }, { 3, "CIG " }, { 4, "CIIC " }, { 3, "CII " }, { 3, "CIK " }, { 4, "CIMT " }, { 3, "CIM " }, { 4, "CINF " }, { 3, "CIR " }, { 4, "CISG " }, { 3, "CIS " }, { 4, "CITZ " }, { 3, "CIT " }, { 3, "CIU " }, { 3, "CIX " }, { 4, "CIZN " }, { 2, "CI " }, { 4, "CJJD " }, { 3, "CJS " }, { 3, "CJT " }, { 4, "CKEC " }, { 3, "CKH " }, { 3, "CKP " }, { 4, "CKSW " }, { 3, "CKX " }, { 4, "CLBH " }, { 3, "CLB " }, { 4, "CLCT " }, { 3, "CLC " }, { 4, "CLDT " }, { 4, "CLDX " }, { 3, "CLD " }, { 4, "CLFC " }, { 4, "CLFD " }, { 3, "CLF " }, { 4, "CLGX " }, { 3, "CLH " }, { 3, "CLI " }, { 4, "CLMS " }, { 4, "CLMT " }, { 3, "CLM " }, { 4, "CLNE " }, { 4, "CLNT " }, { 4, "CLNY " }, { 3, "CLP " }, { 4, "CLRO " }, { 3, "CLR " }, { 4, "CLSN " }, { 3, "CLS " }, { 4, "CLUB " }, { 4, "CLWR " }, { 4, "CLWT " }, { 3, "CLW " }, { 3, "CLX " }, { 3, "CLY " }, { 2, "CL " }, { 3, "CMA " }, { 4, "CMCO " }, { 5, "CMCSA " }, { 5, "CMCSK " }, { 3, "CMC " }, { 3, "CMD " }, { 4, "CMED " }, { 3, "CME " }, { 4, "CMFB " }, { 4, "CMFO " }, { 3, "CMF " }, { 3, "CMG " }, { 3, "CMI " }, { 3, "CMK " }, { 4, "CMLP " }, { 4, "CMLS " }, { 3, "CMM " }, { 3, "CMN " }, { 3, "CMO " }, { 3, "CMP " }, { 4, "CMRE " }, { 4, "CMRG " }, { 4, "CMSB " }, { 3, "CMS " }, { 4, "CMTL " }, { 3, "CMT " }, { 3, "CMU " }, { 2, "CM " }, { 4, "CNAF " }, { 4, "CNAM " }, { 3, "CNA " }, { 4, "CNBC " }, { 5, "CNBKA " }, { 3, "CNC " }, { 4, "CNDA " }, { 4, "CNET " }, { 4, "CNGL " }, { 3, "CNH " }, { 4, "CNIT " }, { 3, "CNI " }, { 3, "CNK " }, { 3, "CNL " }, { 4, "CNMD " }, { 3, "CNO " }, { 4, "CNPF " }, { 3, "CNP " }, { 4, "CNQR " }, { 3, "CNQ " }, { 3, "CNR " }, { 4, "CNSL " }, { 3, "CNS " }, { 4, "CNTF " }, { 4, "CNTR " }, { 4, "CNTY " }, { 3, "CNU " }, { 4, "CNVO " }, { 3, "CNW " }, { 3, "CNX " }, { 4, "CNYD " }, { 3, "CNY " }, { 4, "COBK " }, { 4, "COBR " }, { 4, "COBZ " }, { 4, "COCO " }, { 4, "CODE " }, { 4, "CODI " }, { 3, "COF " }, { 4, "COGO " }, { 3, "COG " }, { 4, "COHR " }, { 4, "COHU " }, { 3, "COH " }, { 5, "COINW " }, { 5, "COINZ " }, { 4, "COIN " }, { 4, "COKE " }, { 4, "COLB " }, { 4, "COLM " }, { 4, "COLX " }, { 3, "COL " }, { 4, "COMV " }, { 4, "CONG " }, { 4, "CONM " }, { 4, "CONN " }, { 4, "COOL " }, { 3, "COO " }, { 4, "COPX " }, { 3, "COP " }, { 4, "CORE " }, { 4, "CORN " }, { 4, "CORP " }, { 4, "CORT " }, { 3, "COR " }, { 4, "COSI " }, { 4, "COST " }, { 3, "COT " }, { 4, "COVR " }, { 3, "COV " }, { 4, "COWL " }, { 4, "COWN " }, { 4, "COWS " }, { 3, "COW " }, { 3, "COY " }, { 2, "CO " }, { 3, "CPA " }, { 4, "CPBC " }, { 4, "CPBK " }, { 3, "CPB " }, { 3, "CPC " }, { 3, "CPE " }, { 3, "CPF " }, { 4, "CPGI " }, { 4, "CPHC " }, { 4, "CPHD " }, { 4, "CPHI " }, { 4, "CPIX " }, { 3, "CPI " }, { 4, "CPKI " }, { 3, "CPK " }, { 4, "CPLA " }, { 4, "CPLP " }, { 3, "CPL " }, { 4, "CPNO " }, { 3, "CPN " }, { 3, "CPO " }, { 3, "CPP " }, { 4, "CPRT " }, { 4, "CPRX " }, { 4, "CPSI " }, { 4, "CPSL " }, { 4, "CPSS " }, { 4, "CPST " }, { 4, "CPTS " }, { 3, "CPT " }, { 3, "CPV " }, { 4, "CPWM " }, { 4, "CPWR " }, { 3, "CPX " }, { 3, "CPY " }, { 2, "CP " }, { 3, "CQB " }, { 3, "CQP " }, { 4, "CQQQ " }, { 4, "CRAI " }, { 4, "CRAY " }, { 4, "CRBA " }, { 4, "CRBC " }, { 4, "CRBI " }, { 4, "CRBQ " }, { 3, "CRC " }, { 4, "CRDC " }, { 5, "CRDIU " }, { 4, "CRDN " }, { 4, "CRED " }, { 4, "CREE " }, { 4, "CREG " }, { 5, "CRESW " }, { 5, "CRESY " }, { 4, "CRFN " }, { 3, "CRF " }, { 3, "CRH " }, { 4, "CRIC " }, { 4, "CRIS " }, { 3, "CRI " }, { 3, "CRK " }, { 3, "CRL " }, { 5, "CRMBU " }, { 5, "CRMBW " }, { 4, "CRMB " }, { 4, "CRMD " }, { 4, "CRME " }, { 4, "CRMT " }, { 3, "CRM " }, { 4, "CRNT " }, { 4, "CROP " }, { 4, "CROX " }, { 3, "CRP " }, { 4, "CRRB " }, { 4, "CRRC " }, { 3, "CRR " }, { 3, "CRS " }, { 4, "CRTX " }, { 3, "CRT " }, { 4, "CRUD " }, { 4, "CRUS " }, { 3, "CRU " }, { 4, "CRVL " }, { 4, "CRVP " }, { 3, "CRV " }, { 4, "CRWN " }, { 4, "CRWS " }, { 4, "CRYP " }, { 3, "CRY " }, { 4, "CRZO " }, { 2, "CR " }, { 3, "CSA " }, { 4, "CSBC " }, { 4, "CSBK " }, { 4, "CSCD " }, { 4, "CSCO " }, { 3, "CSC " }, { 3, "CSD " }, { 3, "CSE " }, { 4, "CSFL " }, { 4, "CSFS " }, { 4, "CSGP " }, { 4, "CSGS " }, { 3, "CSH " }, { 4, "CSII " }, { 4, "CSIQ " }, { 3, "CSJ " }, { 4, "CSKI " }, { 4, "CSLS " }, { 3, "CSL " }, { 4, "CSMA " }, { 4, "CSMB " }, { 3, "CSM " }, { 4, "CSOD " }, { 4, "CSPI " }, { 3, "CSP " }, { 3, "CSQ " }, { 3, "CSR " }, { 3, "CSS " }, { 4, "CSTR " }, { 4, "CSUN " }, { 3, "CSU " }, { 3, "CSV " }, { 4, "CSWC " }, { 3, "CSX " }, { 2, "CS " }, { 4, "CTAS " }, { 4, "CTBC " }, { 4, "CTBI " }, { 3, "CTB " }, { 4, "CTCH " }, { 4, "CTCM " }, { 4, "CTCT " }, { 3, "CTC " }, { 4, "CTDC " }, { 4, "CTEL " }, { 3, "CTE " }, { 4, "CTFO " }, { 4, "CTGX " }, { 4, "CTHR " }, { 4, "CTIB " }, { 4, "CTIC " }, { 3, "CTL " }, { 4, "CTNN " }, { 3, "CTO " }, { 3, "CTP " }, { 3, "CTQ " }, { 4, "CTRN " }, { 4, "CTRP " }, { 4, "CTSH " }, { 3, "CTS " }, { 4, "CTWS " }, { 4, "CTXS " }, { 2, "CT " }, { 4, "CUBA " }, { 3, "CUB " }, { 3, "CUK " }, { 3, "CUO " }, { 4, "CUPM " }, { 4, "CURE " }, { 3, "CUR " }, { 4, "CUTR " }, { 3, "CUT " }, { 3, "CUZ " }, { 2, "CU " }, { 3, "CVA " }, { 4, "CVBF " }, { 4, "CVBK " }, { 3, "CVB " }, { 4, "CVCO " }, { 4, "CVCY " }, { 3, "CVC " }, { 3, "CVD " }, { 3, "CVE " }, { 3, "CVF " }, { 4, "CVGI " }, { 4, "CVGW " }, { 3, "CVG " }, { 3, "CVH " }, { 3, "CVI " }, { 4, "CVLT " }, { 4, "CVLY " }, { 3, "CVM " }, { 4, "CVOL " }, { 3, "CVO " }, { 4, "CVRT " }, { 3, "CVR " }, { 3, "CVS " }, { 4, "CVTI " }, { 3, "CVU " }, { 4, "CVVT " }, { 3, "CVV " }, { 3, "CVX " }, { 3, "CVY " }, { 2, "CV " }, { 4, "CWBC " }, { 4, "CWBS " }, { 3, "CWB " }, { 4, "CWCO " }, { 4, "CWEI " }, { 4, "CWHN " }, { 3, "CWH " }, { 3, "CWI " }, { 4, "CWST " }, { 4, "CWTR " }, { 3, "CWT " }, { 3, "CWZ " }, { 2, "CW " }, { 3, "CXA " }, { 4, "CXDC " }, { 3, "CXE " }, { 3, "CXH " }, { 3, "CXM " }, { 3, "CXO " }, { 4, "CXPO " }, { 3, "CXS " }, { 3, "CXW " }, { 3, "CXZ " }, { 2, "CX " }, { 4, "CYAN " }, { 4, "CYBE " }, { 4, "CYBI " }, { 4, "CYBX " }, { 3, "CYB " }, { 5, "CYCCP " }, { 4, "CYCC " }, { 4, "CYDE " }, { 3, "CYD " }, { 3, "CYE " }, { 3, "CYH " }, { 4, "CYMI " }, { 4, "CYNO " }, { 3, "CYN " }, { 4, "CYOU " }, { 3, "CYS " }, { 4, "CYTK " }, { 4, "CYTR " }, { 5, "CYTXW " }, { 4, "CYTX " }, { 3, "CYT " }, { 2, "CY " }, { 3, "CZA " }, { 4, "CZFC " }, { 4, "CZNC " }, { 4, "CZWI " }, { 3, "CZZ " }, { 1, "C " }, { 3, "DAC " }, { 3, "DAG " }, { 4, "DAIO " }, { 4, "DAKT " }, { 3, "DAL " }, { 4, "DANG " }, { 3, "DAN " }, { 4, "DARA " }, { 3, "DAR " }, { 4, "DATE " }, { 4, "DAVE " }, { 3, "DBA " }, { 4, "DBBR " }, { 3, "DBB " }, { 4, "DBCN " }, { 3, "DBC " }, { 3, "DBD " }, { 4, "DBEF " }, { 4, "DBEM " }, { 3, "DBE " }, { 4, "DBJP " }, { 5, "DBLEP " }, { 4, "DBLE " }, { 3, "DBO " }, { 3, "DBP " }, { 3, "DBS " }, { 3, "DBU " }, { 3, "DBV " }, { 3, "DBY " }, { 3, "DBZ " }, { 2, "DB " }, { 3, "DCA " }, { 3, "DCE " }, { 4, "DCIX " }, { 3, "DCI " }, { 3, "DCM " }, { 4, "DCNG " }, { 4, "DCOM " }, { 3, "DCO " }, { 4, "DCTH " }, { 3, "DCT " }, { 3, "DDD " }, { 3, "DDE " }, { 3, "DDF " }, { 3, "DDG " }, { 4, "DDIC " }, { 3, "DDM " }, { 3, "DDP " }, { 3, "DDR " }, { 3, "DDS " }, { 3, "DDT " }, { 2, "DD " }, { 4, "DEAR " }, { 4, "DECK " }, { 4, "DEER " }, { 3, "DEE " }, { 3, "DEF " }, { 3, "DEG " }, { 3, "DEI " }, { 3, "DEJ " }, { 4, "DELL " }, { 3, "DEL " }, { 3, "DEM " }, { 4, "DENN " }, { 4, "DENT " }, { 3, "DEO " }, { 4, "DEPO " }, { 3, "DEP " }, { 4, "DEST " }, { 3, "DES " }, { 3, "DEW " }, { 4, "DEXO " }, { 3, "DEX " }, { 2, "DE " }, { 3, "DFE " }, { 3, "DFF " }, { 3, "DFG " }, { 3, "DFJ " }, { 3, "DFP " }, { 3, "DFR " }, { 3, "DFS " }, { 3, "DFT " }, { 3, "DFZ " }, { 2, "DF " }, { 4, "DGAS " }, { 3, "DGF " }, { 5, "DGICA " }, { 5, "DGICB " }, { 4, "DGII " }, { 4, "DGIT " }, { 3, "DGI " }, { 4, "DGLY " }, { 3, "DGL " }, { 3, "DGP " }, { 4, "DGSE " }, { 3, "DGS " }, { 3, "DGT " }, { 3, "DGW " }, { 3, "DGX " }, { 3, "DGZ " }, { 2, "DG " }, { 4, "DHFT " }, { 3, "DHF " }, { 3, "DHG " }, { 4, "DHIL " }, { 3, "DHI " }, { 4, "DHRM " }, { 3, "DHR " }, { 3, "DHS " }, { 3, "DHT " }, { 3, "DHX " }, { 3, "DHY " }, { 3, "DIA " }, { 4, "DIET " }, { 3, "DIG " }, { 3, "DIM " }, { 3, "DIN " }, { 4, "DIOD " }, { 4, "DIRT " }, { 5, "DISCA " }, { 5, "DISCB " }, { 5, "DISCK " }, { 4, "DISH " }, { 3, "DIS " }, { 4, "DITC " }, { 3, "DIT " }, { 4, "DJCI " }, { 4, "DJCO " }, { 3, "DJP " }, { 3, "DKP " }, { 3, "DKQ " }, { 3, "DKS " }, { 3, "DKT " }, { 2, "DK " }, { 3, "DLA " }, { 4, "DLBL " }, { 4, "DLBS " }, { 3, "DLB " }, { 4, "DLGC " }, { 4, "DLIA " }, { 4, "DLLR " }, { 3, "DLN " }, { 3, "DLR " }, { 3, "DLS " }, { 4, "DLTR " }, { 3, "DLX " }, { 2, "DL " }, { 4, "DMAN " }, { 3, "DMC " }, { 3, "DMD " }, { 4, "DMED " }, { 3, "DMF " }, { 4, "DMLP " }, { 4, "DMND " }, { 3, "DMO " }, { 4, "DMRC " }, { 2, "DM " }, { 4, "DNBF " }, { 4, "DNBK " }, { 3, "DNB " }, { 4, "DNDN " }, { 3, "DNI " }, { 3, "DNL " }, { 3, "DNN " }, { 3, "DNO " }, { 3, "DNP " }, { 3, "DNR " }, { 3, "DNY " }, { 3, "DOD " }, { 3, "DOG " }, { 4, "DOLE " }, { 3, "DOL " }, { 3, "DOM " }, { 3, "DON " }, { 3, "DOO " }, { 4, "DORM " }, { 4, "DOVR " }, { 3, "DOV " }, { 3, "DOW " }, { 3, "DOX " }, { 2, "DO " }, { 3, "DPD " }, { 3, "DPK " }, { 3, "DPL " }, { 3, "DPM " }, { 3, "DPO " }, { 3, "DPS " }, { 4, "DPTR " }, { 3, "DPU " }, { 3, "DPW " }, { 3, "DPZ " }, { 2, "DQ " }, { 4, "DRAD " }, { 4, "DRAM " }, { 4, "DRCO " }, { 3, "DRC " }, { 3, "DRE " }, { 3, "DRH " }, { 4, "DRIV " }, { 3, "DRI " }, { 3, "DRJ " }, { 3, "DRL " }, { 3, "DRN " }, { 5, "DROOY " }, { 3, "DRQ " }, { 4, "DRRX " }, { 3, "DRR " }, { 3, "DRU " }, { 3, "DRV " }, { 4, "DRWI " }, { 3, "DRW " }, { 4, "DRYS " }, { 4, "DSCI " }, { 4, "DSCO " }, { 4, "DSGX " }, { 3, "DSI " }, { 3, "DSM " }, { 4, "DSPG " }, { 4, "DSTI " }, { 4, "DSTJ " }, { 3, "DST " }, { 3, "DSU " }, { 4, "DSWL " }, { 3, "DSW " }, { 4, "DSXJ " }, { 3, "DSX " }, { 3, "DTD " }, { 3, "DTE " }, { 3, "DTF " }, { 3, "DTG " }, { 3, "DTH " }, { 3, "DTK " }, { 4, "DTLK " }, { 3, "DTN " }, { 3, "DTO " }, { 4, "DTSI " }, { 3, "DTT " }, { 4, "DTUL " }, { 4, "DTUS " }, { 3, "DTV " }, { 4, "DTYL " }, { 4, "DTYS " }, { 3, "DUA " }, { 4, "DUCK " }, { 3, "DUC " }, { 3, "DUF " }, { 3, "DUG " }, { 3, "DUK " }, { 4, "DUSA " }, { 4, "DUST " }, { 4, "DVAX " }, { 3, "DVA " }, { 3, "DVD " }, { 3, "DVF " }, { 3, "DVM " }, { 3, "DVN " }, { 4, "DVOX " }, { 3, "DVR " }, { 3, "DVY " }, { 2, "DV " }, { 3, "DWA " }, { 4, "DWCH " }, { 3, "DWM " }, { 4, "DWSN " }, { 3, "DWX " }, { 2, "DW " }, { 3, "DXB " }, { 4, "DXCM " }, { 3, "DXD " }, { 3, "DXJ " }, { 4, "DXPE " }, { 3, "DXR " }, { 4, "DXYN " }, { 2, "DX " }, { 4, "DYAX " }, { 4, "DYII " }, { 4, "DYNT " }, { 3, "DYN " }, { 4, "DYSL " }, { 3, "DYY " }, { 2, "DY " }, { 3, "DZK " }, { 3, "DZZ " }, { 1, "D " }, { 3, "EAA " }, { 3, "EAD " }, { 5, "EAGLU " }, { 5, "EAGLW " }, { 4, "EAGL " }, { 3, "EAG " }, { 4, "EAPS " }, { 4, "EATX " }, { 3, "EAT " }, { 4, "EBAY " }, { 3, "EBF " }, { 4, "EBIX " }, { 3, "EBK " }, { 4, "EBMT " }, { 4, "EBND " }, { 3, "EBR " }, { 4, "EBSB " }, { 3, "EBS " }, { 4, "EBTC " }, { 4, "EBTX " }, { 3, "ECA " }, { 4, "ECBE " }, { 3, "ECF " }, { 4, "ECGI " }, { 4, "ECHO " }, { 3, "ECH " }, { 3, "ECL " }, { 4, "ECNS " }, { 4, "ECOL " }, { 4, "ECON " }, { 4, "ECPG " }, { 4, "ECTE " }, { 4, "ECTY " }, { 3, "ECT " }, { 4, "ECYT " }, { 2, "EC " }, { 4, "EDAC " }, { 4, "EDAP " }, { 3, "EDC " }, { 3, "EDD " }, { 3, "EDE " }, { 3, "EDF " }, { 4, "EDGR " }, { 4, "EDGW " }, { 4, "EDIV " }, { 4, "EDMC " }, { 3, "EDN " }, { 3, "EDR " }, { 5, "EDSUU " }, { 5, "EDSWW " }, { 3, "EDS " }, { 3, "EDT " }, { 4, "EDUC " }, { 3, "EDU " }, { 3, "EDV " }, { 3, "EDZ " }, { 2, "ED " }, { 3, "EEA " }, { 3, "EEB " }, { 3, "EEE " }, { 4, "EEFT " }, { 3, "EEH " }, { 3, "EEI " }, { 3, "EEM " }, { 3, "EEN " }, { 3, "EEP " }, { 3, "EEQ " }, { 3, "EES " }, { 3, "EET " }, { 3, "EEV " }, { 2, "EE " }, { 3, "EFA " }, { 3, "EFC " }, { 3, "EFG " }, { 4, "EFII " }, { 3, "EFM " }, { 4, "EFOI " }, { 3, "EFO " }, { 3, "EFR " }, { 4, "EFSC " }, { 3, "EFT " }, { 4, "EFUT " }, { 3, "EFU " }, { 3, "EFV " }, { 3, "EFX " }, { 3, "EFZ " }, { 2, "EF " }, { 4, "EGAS " }, { 4, "EGBN " }, { 3, "EGF " }, { 4, "EGHT " }, { 3, "EGI " }, { 4, "EGLE " }, { 3, "EGN " }, { 4, "EGOV " }, { 3, "EGO " }, { 4, "EGPT " }, { 3, "EGP " }, { 3, "EGT " }, { 3, "EGX " }, { 3, "EGY " }, { 3, "EHI " }, { 4, "EHTH " }, { 3, "EIA " }, { 4, "EIDO " }, { 3, "EIG " }, { 4, "EIHI " }, { 3, "EIM " }, { 3, "EIO " }, { 3, "EIP " }, { 4, "EIRL " }, { 3, "EIS " }, { 3, "EIV " }, { 3, "EIX " }, { 2, "EJ " }, { 3, "EKH " }, { 2, "EK " }, { 3, "ELA " }, { 3, "ELB " }, { 3, "ELC " }, { 3, "ELD " }, { 4, "ELGX " }, { 4, "ELLI " }, { 4, "ELMD " }, { 4, "ELMG " }, { 4, "ELNK " }, { 3, "ELN " }, { 4, "ELON " }, { 4, "ELOS " }, { 3, "ELP " }, { 4, "ELRC " }, { 3, "ELR " }, { 4, "ELSE " }, { 3, "ELS " }, { 4, "ELTK " }, { 3, "ELT " }, { 3, "ELX " }, { 3, "ELY " }, { 2, "EL " }, { 4, "EMAN " }, { 3, "EMB " }, { 4, "EMCF " }, { 4, "EMCI " }, { 3, "EMC " }, { 3, "EMD " }, { 3, "EME " }, { 4, "EMFN " }, { 3, "EMF " }, { 4, "EMGX " }, { 4, "EMIF " }, { 5, "EMITF " }, { 3, "EMI " }, { 3, "EMJ " }, { 4, "EMKR " }, { 4, "EMLB " }, { 4, "EMLC " }, { 3, "EML " }, { 5, "EMMSP " }, { 4, "EMMS " }, { 4, "EMMT " }, { 3, "EMM " }, { 3, "EMN " }, { 3, "EMO " }, { 3, "EMQ " }, { 3, "EMR " }, { 4, "EMSA " }, { 3, "EMT " }, { 4, "EMVX " }, { 3, "EMZ " }, { 2, "EM " }, { 3, "ENA " }, { 3, "ENB " }, { 4, "ENDP " }, { 3, "END " }, { 4, "ENER " }, { 3, "ENG " }, { 3, "ENH " }, { 3, "ENI " }, { 3, "ENL " }, { 4, "ENMD " }, { 4, "ENOC " }, { 3, "ENP " }, { 3, "ENR " }, { 4, "ENSG " }, { 3, "ENS " }, { 4, "ENTG " }, { 4, "ENTR " }, { 4, "ENVI " }, { 3, "ENV " }, { 3, "ENX " }, { 3, "ENY " }, { 4, "ENZL " }, { 4, "ENZN " }, { 3, "ENZ " }, { 3, "EOC " }, { 3, "EOD " }, { 3, "EOG " }, { 3, "EOI " }, { 4, "EONC " }, { 5, "EOSPN " }, { 3, "EOS " }, { 3, "EOT " }, { 4, "EPAX " }, { 4, "EPAY " }, { 3, "EPB " }, { 4, "EPCT " }, { 3, "EPD " }, { 4, "EPHC " }, { 4, "EPHE " }, { 4, "EPIQ " }, { 3, "EPI " }, { 3, "EPL " }, { 3, "EPM " }, { 4, "EPOC " }, { 4, "EPOL " }, { 3, "EPP " }, { 3, "EPR " }, { 3, "EPS " }, { 3, "EPU " }, { 3, "EPV " }, { 2, "EP " }, { 4, "EQIN " }, { 4, "EQIX " }, { 3, "EQL " }, { 3, "EQR " }, { 3, "EQS " }, { 3, "EQT " }, { 3, "EQU " }, { 3, "EQY " }, { 3, "ERC " }, { 3, "ERF " }, { 3, "ERH " }, { 4, "ERIC " }, { 4, "ERIE " }, { 4, "ERII " }, { 3, "ERJ " }, { 5, "EROCW " }, { 4, "EROC " }, { 3, "ERO " }, { 4, "ERTS " }, { 3, "ERT " }, { 4, "ERUS " }, { 3, "ERX " }, { 3, "ERY " }, { 3, "ESA " }, { 4, "ESBF " }, { 4, "ESBK " }, { 4, "ESCA " }, { 3, "ESC " }, { 3, "ESD " }, { 4, "ESEA " }, { 3, "ESE " }, { 4, "ESGR " }, { 4, "ESIC " }, { 4, "ESIO " }, { 3, "ESI " }, { 4, "ESLR " }, { 4, "ESLT " }, { 3, "ESL " }, { 4, "ESMC " }, { 3, "ESP " }, { 4, "ESRX " }, { 3, "ESR " }, { 4, "ESSA " }, { 4, "ESSX " }, { 3, "ESS " }, { 4, "ESTE " }, { 3, "ESV " }, { 4, "ESYS " }, { 2, "ES " }, { 3, "ETB " }, { 3, "ETE " }, { 4, "ETFC " }, { 3, "ETF " }, { 3, "ETG " }, { 3, "ETH " }, { 3, "ETJ " }, { 3, "ETM " }, { 3, "ETN " }, { 3, "ETO " }, { 3, "ETP " }, { 4, "ETRM " }, { 3, "ETR " }, { 3, "ETV " }, { 3, "ETW " }, { 3, "ETY " }, { 4, "EUFN " }, { 3, "EUM " }, { 3, "EUO " }, { 4, "EUSA " }, { 2, "EU " }, { 4, "EVBN " }, { 4, "EVBS " }, { 3, "EVC " }, { 4, "EVEP " }, { 3, "EVF " }, { 3, "EVG " }, { 3, "EVI " }, { 3, "EVJ " }, { 3, "EVK " }, { 3, "EVM " }, { 3, "EVN " }, { 4, "EVOL " }, { 3, "EVO " }, { 3, "EVP " }, { 3, "EVR " }, { 3, "EVT " }, { 3, "EVV " }, { 3, "EVX " }, { 3, "EVY " }, { 2, "EV " }, { 4, "EWAC " }, { 3, "EWA " }, { 4, "EWBC " }, { 3, "EWC " }, { 3, "EWD " }, { 4, "EWEF " }, { 4, "EWEM " }, { 3, "EWG " }, { 3, "EWH " }, { 3, "EWI " }, { 3, "EWJ " }, { 3, "EWK " }, { 3, "EWL " }, { 3, "EWM " }, { 3, "EWN " }, { 3, "EWO " }, { 3, "EWP " }, { 3, "EWQ " }, { 4, "EWRI " }, { 4, "EWRM " }, { 4, "EWRS " }, { 3, "EWS " }, { 3, "EWT " }, { 3, "EWU " }, { 3, "EWV " }, { 3, "EWW " }, { 3, "EWX " }, { 3, "EWY " }, { 4, "EWZS " }, { 3, "EWZ " }, { 2, "EW " }, { 4, "EXAC " }, { 4, "EXAM " }, { 4, "EXAR " }, { 4, "EXAS " }, { 4, "EXBD " }, { 3, "EXC " }, { 3, "EXD " }, { 4, "EXEL " }, { 3, "EXE " }, { 4, "EXFO " }, { 3, "EXG " }, { 3, "EXH " }, { 3, "EXI " }, { 3, "EXK " }, { 4, "EXLP " }, { 4, "EXLS " }, { 3, "EXL " }, { 3, "EXM " }, { 4, "EXPD " }, { 4, "EXPE " }, { 4, "EXPO " }, { 4, "EXPR " }, { 3, "EXP " }, { 3, "EXR " }, { 4, "EXTR " }, { 3, "EXT " }, { 4, "EXXI " }, { 3, "EZA " }, { 4, "EZCH " }, { 3, "EZJ " }, { 3, "EZM " }, { 4, "EZPW " }, { 3, "EZU " }, { 3, "EZY " }, { 1, "E " }, { 3, "FAA " }, { 4, "FABK " }, { 3, "FAB " }, { 4, "FACE " }, { 3, "FAC " }, { 3, "FAD " }, { 3, "FAF " }, { 4, "FALC " }, { 3, "FAM " }, { 3, "FAN " }, { 4, "FARM " }, { 4, "FARO " }, { 4, "FAST " }, { 3, "FAS " }, { 3, "FAV " }, { 3, "FAX " }, { 3, "FAZ " }, { 4, "FBCM " }, { 3, "FBC " }, { 4, "FBIZ " }, { 4, "FBMI " }, { 4, "FBMS " }, { 3, "FBM " }, { 4, "FBNC " }, { 4, "FBNK " }, { 3, "FBN " }, { 3, "FBP " }, { 3, "FBR " }, { 4, "FBSI " }, { 4, "FBSS " }, { 3, "FBT " }, { 3, "FBZ " }, { 4, "FCAL " }, { 4, "FCAP " }, { 3, "FCA " }, { 4, "FCBC " }, { 4, "FCCO " }, { 4, "FCCY " }, { 3, "FCD " }, { 4, "FCEL " }, { 4, "FCFC " }, { 4, "FCFS " }, { 3, "FCF " }, { 3, "FCG " }, { 4, "FCHI " }, { 3, "FCH " }, { 4, "FCLF " }, { 3, "FCL " }, { 5, "FCNCA " }, { 3, "FCN " }, { 3, "FCO " }, { 3, "FCQ " }, { 3, "FCS " }, { 4, "FCTY " }, { 3, "FCT " }, { 4, "FCVA " }, { 3, "FCV " }, { 3, "FCX " }, { 3, "FCY " }, { 4, "FCZA " }, { 2, "FC " }, { 3, "FDD " }, { 4, "FDEF " }, { 3, "FDI " }, { 3, "FDL " }, { 4, "FDML " }, { 3, "FDM " }, { 3, "FDN " }, { 3, "FDO " }, { 3, "FDP " }, { 3, "FDS " }, { 3, "FDT " }, { 4, "FDUS " }, { 3, "FDV " }, { 3, "FDX " }, { 4, "FEED " }, { 4, "FEFN " }, { 3, "FEG " }, { 4, "FEIC " }, { 4, "FEIM " }, { 4, "FELE " }, { 3, "FEM " }, { 4, "FENG " }, { 3, "FEN " }, { 3, "FEO " }, { 3, "FEP " }, { 3, "FEU " }, { 3, "FEX " }, { 3, "FEZ " }, { 2, "FE " }, { 3, "FFA " }, { 5, "FFBCW " }, { 4, "FFBC " }, { 4, "FFBH " }, { 4, "FFCH " }, { 4, "FFCO " }, { 3, "FFC " }, { 4, "FFDF " }, { 3, "FFD " }, { 4, "FFEX " }, { 4, "FFFD " }, { 3, "FFG " }, { 4, "FFHL " }, { 4, "FFIC " }, { 4, "FFIN " }, { 4, "FFIV " }, { 3, "FFI " }, { 4, "FFKT " }, { 4, "FFKY " }, { 3, "FFL " }, { 4, "FFNM " }, { 4, "FFNW " }, { 3, "FFN " }, { 3, "FFR " }, { 2, "FF " }, { 3, "FGB " }, { 3, "FGC " }, { 3, "FGD " }, { 4, "FGEM " }, { 3, "FGE " }, { 3, "FGF " }, { 3, "FGI " }, { 3, "FGP " }, { 4, "FHCO " }, { 3, "FHC " }, { 3, "FHI " }, { 3, "FHN " }, { 3, "FHO " }, { 3, "FHY " }, { 4, "FIBK " }, { 4, "FICO " }, { 3, "FIG " }, { 3, "FII " }, { 3, "FIL " }, { 4, "FINL " }, { 3, "FIO " }, { 4, "FIRE " }, { 4, "FISI " }, { 4, "FISN " }, { 4, "FISV " }, { 3, "FIS " }, { 5, "FITBP " }, { 4, "FITB " }, { 4, "FIVZ " }, { 3, "FIW " }, { 3, "FIX " }, { 4, "FIZZ " }, { 3, "FJA " }, { 3, "FJP " }, { 3, "FKL " }, { 3, "FKO " }, { 4, "FLAT " }, { 3, "FLC " }, { 4, "FLDM " }, { 4, "FLEX " }, { 3, "FLG " }, { 4, "FLIC " }, { 4, "FLIR " }, { 3, "FLL " }, { 4, "FLML " }, { 3, "FLM " }, { 3, "FLN " }, { 4, "FLOT " }, { 4, "FLOW " }, { 3, "FLO " }, { 3, "FLR " }, { 3, "FLS " }, { 4, "FLTR " }, { 3, "FLT " }, { 4, "FLWS " }, { 4, "FLXS " }, { 4, "FLYX " }, { 3, "FLY " }, { 2, "FL " }, { 4, "FMAR " }, { 4, "FMBI " }, { 4, "FMCN " }, { 3, "FMC " }, { 3, "FMD " }, { 4, "FMER " }, { 4, "FMFC " }, { 3, "FMK " }, { 3, "FMM " }, { 3, "FMN " }, { 3, "FMO " }, { 3, "FMS " }, { 3, "FMU " }, { 3, "FMV " }, { 3, "FMX " }, { 3, "FMY " }, { 4, "FNBN " }, { 3, "FNB " }, { 4, "FNDT " }, { 4, "FNFG " }, { 3, "FNF " }, { 4, "FNGN " }, { 4, "FNIO " }, { 3, "FNI " }, { 3, "FNK " }, { 4, "FNLC " }, { 4, "FNSR " }, { 3, "FNX " }, { 3, "FNY " }, { 2, "FN " }, { 3, "FOC " }, { 3, "FOE " }, { 3, "FOF " }, { 3, "FOH " }, { 4, "FOIL " }, { 4, "FOLD " }, { 3, "FOL " }, { 4, "FONE " }, { 4, "FONR " }, { 4, "FORD " }, { 4, "FORM " }, { 4, "FORR " }, { 5, "FORTY " }, { 3, "FOR " }, { 4, "FOSL " }, { 3, "FOS " }, { 2, "FO " }, { 3, "FPA " }, { 4, "FPFC " }, { 4, "FPIC " }, { 3, "FPO " }, { 3, "FPP " }, { 4, "FPTB " }, { 3, "FPT " }, { 3, "FPX " }, { 3, "FRA " }, { 4, "FRBK " }, { 3, "FRB " }, { 5, "FRCCO " }, { 3, "FRC " }, { 3, "FRD " }, { 4, "FRED " }, { 5, "FREEZ " }, { 4, "FREE " }, { 3, "FRF " }, { 3, "FRI " }, { 3, "FRL " }, { 4, "FRME " }, { 3, "FRM " }, { 4, "FRNK " }, { 3, "FRN " }, { 3, "FRO " }, { 4, "FRPT " }, { 3, "FRP " }, { 3, "FRS " }, { 3, "FRT " }, { 3, "FRX " }, { 3, "FRZ " }, { 2, "FR " }, { 3, "FSA " }, { 4, "FSBI " }, { 4, "FSBK " }, { 4, "FSCI " }, { 3, "FSC " }, { 3, "FSD " }, { 3, "FSE " }, { 4, "FSFG " }, { 4, "FSGI " }, { 3, "FSG " }, { 4, "FSII " }, { 4, "FSIN " }, { 3, "FSI " }, { 4, "FSLR " }, { 3, "FSL " }, { 3, "FSP " }, { 4, "FSRV " }, { 3, "FSR " }, { 3, "FSS " }, { 4, "FSTR " }, { 3, "FST " }, { 3, "FSU " }, { 4, "FSYS " }, { 3, "FTA " }, { 3, "FTC " }, { 4, "FTEK " }, { 3, "FTE " }, { 3, "FTF " }, { 3, "FTI " }, { 3, "FTK " }, { 4, "FTLK " }, { 4, "FTNT " }, { 3, "FTO " }, { 3, "FTQ " }, { 3, "FTR " }, { 3, "FTT " }, { 4, "FTWR " }, { 3, "FTY " }, { 2, "FT " }, { 4, "FUBC " }, { 3, "FUD " }, { 4, "FUEL " }, { 3, "FUE " }, { 3, "FUI " }, { 4, "FULL " }, { 4, "FULT " }, { 3, "FUL " }, { 4, "FUNC " }, { 4, "FUND " }, { 3, "FUN " }, { 4, "FURX " }, { 3, "FUR " }, { 3, "FVD " }, { 3, "FVE " }, { 3, "FVI " }, { 3, "FVL " }, { 4, "FWDB " }, { 4, "FWDD " }, { 4, "FWDI " }, { 3, "FWF " }, { 4, "FWLT " }, { 4, "FWRD " }, { 3, "FWV " }, { 3, "FXA " }, { 3, "FXB " }, { 4, "FXCB " }, { 4, "FXCM " }, { 3, "FXC " }, { 3, "FXD " }, { 4, "FXEN " }, { 3, "FXE " }, { 3, "FXF " }, { 3, "FXG " }, { 3, "FXH " }, { 3, "FXI " }, { 3, "FXL " }, { 3, "FXM " }, { 3, "FXN " }, { 3, "FXO " }, { 3, "FXP " }, { 3, "FXR " }, { 3, "FXS " }, { 3, "FXU " }, { 3, "FXY " }, { 3, "FXZ " }, { 3, "FYC " }, { 3, "FYT " }, { 3, "FYX " }, { 3, "FZB " }, { 1, "F " }, { 4, "GABC " }, { 3, "GAB " }, { 3, "GAF " }, { 4, "GAGA " }, { 4, "GAIA " }, { 4, "GAIN " }, { 3, "GAI " }, { 4, "GAME " }, { 3, "GAM " }, { 3, "GAR " }, { 4, "GASL " }, { 4, "GASS " }, { 4, "GASX " }, { 4, "GASZ " }, { 3, "GAS " }, { 3, "GAT " }, { 3, "GAZ " }, { 2, "GA " }, { 4, "GBAB " }, { 3, "GBB " }, { 4, "GBCI " }, { 3, "GBC " }, { 4, "GBDC " }, { 3, "GBE " }, { 3, "GBF " }, { 3, "GBG " }, { 4, "GBLI " }, { 3, "GBL " }, { 4, "GBNK " }, { 3, "GBR " }, { 3, "GBX " }, { 2, "GB " }, { 4, "GCAP " }, { 3, "GCA " }, { 4, "GCBC " }, { 3, "GCC " }, { 3, "GCE " }, { 4, "GCFB " }, { 3, "GCF " }, { 3, "GCH " }, { 3, "GCI " }, { 4, "GCOM " }, { 3, "GCO " }, { 5, "GCVRZ " }, { 3, "GCV " }, { 3, "GDF " }, { 3, "GDI " }, { 3, "GDL " }, { 4, "GDOT " }, { 3, "GDO " }, { 3, "GDP " }, { 3, "GDV " }, { 4, "GDXJ " }, { 3, "GDX " }, { 2, "GD " }, { 3, "GEA " }, { 3, "GEC " }, { 4, "GEDU " }, { 3, "GED " }, { 3, "GEF " }, { 3, "GEG " }, { 3, "GEJ " }, { 3, "GEL " }, { 4, "GENC " }, { 4, "GENE " }, { 4, "GENT " }, { 3, "GEN " }, { 4, "GEOI " }, { 4, "GEOY " }, { 3, "GEO " }, { 3, "GEP " }, { 4, "GERJ " }, { 4, "GERN " }, { 3, "GER " }, { 3, "GES " }, { 3, "GET " }, { 4, "GEVO " }, { 3, "GEX " }, { 2, "GE " }, { 3, "GFA " }, { 4, "GFED " }, { 3, "GFF " }, { 4, "GFIG " }, { 3, "GFI " }, { 5, "GFNCL " }, { 5, "GFNCZ " }, { 3, "GFN " }, { 3, "GFW " }, { 3, "GFY " }, { 3, "GFZ " }, { 2, "GF " }, { 4, "GGAL " }, { 3, "GGB " }, { 3, "GGC " }, { 4, "GGEM " }, { 3, "GGE " }, { 4, "GGGG " }, { 3, "GGG " }, { 3, "GGN " }, { 3, "GGP " }, { 3, "GGR " }, { 3, "GGS " }, { 3, "GGT " }, { 2, "GG " }, { 4, "GHDX " }, { 3, "GHI " }, { 3, "GHL " }, { 3, "GHM " }, { 3, "GIB " }, { 4, "GIFI " }, { 4, "GIGA " }, { 4, "GIGM " }, { 4, "GIII " }, { 3, "GII " }, { 4, "GILD " }, { 4, "GILT " }, { 3, "GIL " }, { 3, "GIM " }, { 3, "GIS " }, { 3, "GIT " }, { 4, "GIVN " }, { 3, "GIY " }, { 3, "GJD " }, { 3, "GJH " }, { 3, "GJI " }, { 3, "GJJ " }, { 3, "GJK " }, { 3, "GJM " }, { 3, "GJN " }, { 3, "GJO " }, { 3, "GJP " }, { 3, "GJR " }, { 3, "GJS " }, { 3, "GJT " }, { 3, "GJV " }, { 3, "GKK " }, { 3, "GKM " }, { 4, "GKNT " }, { 4, "GKSR " }, { 4, "GLAD " }, { 3, "GLA " }, { 4, "GLBC " }, { 4, "GLBL " }, { 4, "GLBS " }, { 4, "GLBZ " }, { 4, "GLCH " }, { 4, "GLDC " }, { 4, "GLDD " }, { 4, "GLDX " }, { 3, "GLD " }, { 3, "GLF " }, { 4, "GLGL " }, { 3, "GLJ " }, { 3, "GLL " }, { 4, "GLNG " }, { 3, "GLO " }, { 4, "GLPW " }, { 3, "GLP " }, { 3, "GLQ " }, { 4, "GLRE " }, { 4, "GLTR " }, { 3, "GLT " }, { 4, "GLUU " }, { 3, "GLU " }, { 3, "GLV " }, { 3, "GLW " }, { 4, "GMAN " }, { 3, "GMA " }, { 4, "GMCR " }, { 5, "GMETP " }, { 4, "GMET " }, { 3, "GME " }, { 3, "GMF " }, { 3, "GMK " }, { 4, "GMLP " }, { 3, "GML " }, { 4, "GMMB " }, { 3, "GMM " }, { 3, "GMO " }, { 3, "GMR " }, { 4, "GMTB " }, { 4, "GMTC " }, { 3, "GMT " }, { 4, "GMXR " }, { 2, "GM " }, { 4, "GNAT " }, { 5, "GNCMA " }, { 3, "GNC " }, { 4, "GNET " }, { 3, "GNI " }, { 3, "GNK " }, { 4, "GNMK " }, { 4, "GNOM " }, { 4, "GNRC " }, { 3, "GNR " }, { 4, "GNTX " }, { 3, "GNT " }, { 4, "GNVC " }, { 3, "GNW " }, { 3, "GOF " }, { 3, "GOK " }, { 4, "GOLD " }, { 4, "GOLF " }, { 3, "GOL " }, { 3, "GOM " }, { 5, "GOODO " }, { 5, "GOODP " }, { 4, "GOOD " }, { 4, "GOOG " }, { 4, "GORO " }, { 3, "GOV " }, { 3, "GPC " }, { 4, "GPIC " }, { 3, "GPI " }, { 3, "GPK " }, { 3, "GPL " }, { 3, "GPM " }, { 3, "GPN " }, { 4, "GPOR " }, { 4, "GPRC " }, { 4, "GPRE " }, { 4, "GPRO " }, { 3, "GPR " }, { 3, "GPS " }, { 3, "GPX " }, { 4, "GRAN " }, { 3, "GRA " }, { 3, "GRB " }, { 3, "GRC " }, { 4, "GRES " }, { 4, "GRFS " }, { 3, "GRF " }, { 3, "GRH " }, { 4, "GRID " }, { 4, "GRIF " }, { 3, "GRI " }, { 5, "GRMHD " }, { 4, "GRMN " }, { 3, "GRM " }, { 4, "GRNB " }, { 3, "GRN " }, { 4, "GROW " }, { 3, "GRO " }, { 4, "GRPC " }, { 4, "GRRF " }, { 3, "GRR " }, { 3, "GRT " }, { 3, "GRU " }, { 4, "GRVY " }, { 3, "GRV " }, { 4, "GRWN " }, { 3, "GRX " }, { 3, "GRZ " }, { 2, "GR " }, { 4, "GSAT " }, { 4, "GSBC " }, { 3, "GSB " }, { 3, "GSC " }, { 3, "GSF " }, { 3, "GSG " }, { 3, "GSH " }, { 4, "GSIG " }, { 4, "GSIT " }, { 3, "GSI " }, { 4, "GSJK " }, { 3, "GSK " }, { 4, "GSLA " }, { 3, "GSL " }, { 3, "GSM " }, { 4, "GSOL " }, { 3, "GSP " }, { 3, "GSS " }, { 3, "GST " }, { 4, "GSVC " }, { 3, "GSX " }, { 3, "GSY " }, { 2, "GS " }, { 4, "GTAA " }, { 3, "GTE " }, { 4, "GTIM " }, { 4, "GTIP " }, { 4, "GTIV " }, { 3, "GTI " }, { 4, "GTLS " }, { 3, "GTN " }, { 4, "GTSI " }, { 3, "GTS " }, { 3, "GTU " }, { 4, "GTXI " }, { 3, "GTY " }, { 2, "GT " }, { 3, "GUA " }, { 4, "GUID " }, { 4, "GULF " }, { 3, "GUL " }, { 4, "GURE " }, { 3, "GUR " }, { 3, "GUT " }, { 2, "GU " }, { 3, "GVA " }, { 3, "GVI " }, { 3, "GVP " }, { 3, "GVT " }, { 2, "GV " }, { 3, "GWF " }, { 3, "GWL " }, { 3, "GWO " }, { 3, "GWR " }, { 3, "GWW " }, { 3, "GWX " }, { 3, "GXC " }, { 3, "GXF " }, { 3, "GXG " }, { 3, "GXP " }, { 3, "GYA " }, { 3, "GYB " }, { 3, "GYC " }, { 4, "GYRO " }, { 2, "GY " }, { 1, "G " }, { 3, "HAE " }, { 4, "HAFC " }, { 4, "HAIN " }, { 4, "HALL " }, { 4, "HALO " }, { 3, "HAL " }, { 4, "HANS " }, { 3, "HAO " }, { 3, "HAP " }, { 4, "HARL " }, { 3, "HAR " }, { 4, "HAST " }, { 3, "HAS " }, { 4, "HAUP " }, { 5, "HAVNP " }, { 3, "HAV " }, { 4, "HAYN " }, { 2, "HA " }, { 4, "HBAN " }, { 4, "HBCP " }, { 3, "HBC " }, { 4, "HBHC " }, { 4, "HBIO " }, { 3, "HBI " }, { 3, "HBM " }, { 4, "HBNC " }, { 4, "HBNK " }, { 4, "HBOS " }, { 3, "HBP " }, { 4, "HBTA " }, { 3, "HCA " }, { 4, "HCBK " }, { 4, "HCCI " }, { 3, "HCC " }, { 3, "HCF " }, { 3, "HCH " }, { 5, "HCIIP " }, { 5, "HCIIW " }, { 4, "HCII " }, { 4, "HCKT " }, { 3, "HCN " }, { 3, "HCP " }, { 4, "HCSG " }, { 3, "HCS " }, { 3, "HDB " }, { 4, "HDGE " }, { 4, "HDNG " }, { 4, "HDSN " }, { 3, "HDV " }, { 3, "HDY " }, { 2, "HD " }, { 4, "HEAT " }, { 3, "HEB " }, { 4, "HEDJ " }, { 4, "HEES " }, { 3, "HEI " }, { 3, "HEK " }, { 4, "HELE " }, { 4, "HEOP " }, { 3, "HEP " }, { 3, "HEQ " }, { 4, "HERO " }, { 3, "HES " }, { 4, "HEVY " }, { 3, "HEV " }, { 2, "HE " }, { 4, "HFBC " }, { 4, "HFBL " }, { 3, "HFB " }, { 4, "HFFC " }, { 4, "HFWA " }, { 2, "HF " }, { 4, "HGEM " }, { 3, "HGG " }, { 4, "HGIC " }, { 3, "HGI " }, { 3, "HGR " }, { 4, "HGSH " }, { 4, "HGSI " }, { 3, "HGT " }, { 3, "HHC " }, { 4, "HHGP " }, { 3, "HHH " }, { 3, "HHS " }, { 3, "HHY " }, { 2, "HH " }, { 4, "HIBB " }, { 4, "HIFS " }, { 3, "HIF " }, { 3, "HIG " }, { 4, "HIHO " }, { 3, "HIH " }, { 3, "HII " }, { 4, "HILL " }, { 3, "HIL " }, { 4, "HIMX " }, { 3, "HIO " }, { 3, "HIS " }, { 4, "HITK " }, { 4, "HITT " }, { 3, "HIT " }, { 3, "HIW " }, { 3, "HIX " }, { 2, "HI " }, { 3, "HJA " }, { 3, "HJG " }, { 3, "HJJ " }, { 3, "HJL " }, { 3, "HJN " }, { 3, "HJO " }, { 3, "HJR " }, { 3, "HJT " }, { 3, "HJV " }, { 3, "HKK " }, { 3, "HKN " }, { 2, "HK " }, { 3, "HLF " }, { 4, "HLIT " }, { 3, "HLS " }, { 3, "HLX " }, { 4, "HLYS " }, { 2, "HL " }, { 3, "HMA " }, { 3, "HMC " }, { 3, "HME " }, { 3, "HMG " }, { 3, "HMH " }, { 4, "HMIN " }, { 4, "HMNF " }, { 5, "HMNYD " }, { 3, "HMN " }, { 4, "HMPR " }, { 4, "HMSY " }, { 4, "HMTM " }, { 3, "HMY " }, { 3, "HNB " }, { 3, "HNH " }, { 3, "HNI " }, { 3, "HNP " }, { 4, "HNRG " }, { 3, "HNR " }, { 4, "HNSN " }, { 3, "HNT " }, { 3, "HNW " }, { 3, "HNZ " }, { 3, "HOC " }, { 4, "HOFT " }, { 4, "HOGS " }, { 3, "HOG " }, { 4, "HOKU " }, { 4, "HOLI " }, { 4, "HOLL " }, { 4, "HOLX " }, { 4, "HOMB " }, { 4, "HOME " }, { 3, "HON " }, { 4, "HOOK " }, { 3, "HOS " }, { 4, "HOTT " }, { 3, "HOT " }, { 5, "HOVNP " }, { 4, "HOVU " }, { 3, "HOV " }, { 5, "HPCCP " }, { 3, "HPF " }, { 3, "HPI " }, { 3, "HPJ " }, { 4, "HPOL " }, { 3, "HPP " }, { 3, "HPQ " }, { 3, "HPS " }, { 3, "HPT " }, { 3, "HPY " }, { 2, "HP " }, { 3, "HQH " }, { 3, "HQL " }, { 3, "HQS " }, { 4, "HRBN " }, { 3, "HRB " }, { 3, "HRC " }, { 3, "HRG " }, { 3, "HRL " }, { 3, "HRS " }, { 3, "HRT " }, { 4, "HRZN " }, { 3, "HRZ " }, { 2, "HR " }, { 3, "HSA " }, { 3, "HSC " }, { 4, "HSFT " }, { 4, "HSIC " }, { 4, "HSII " }, { 4, "HSKA " }, { 3, "HSM " }, { 4, "HSNI " }, { 4, "HSOL " }, { 3, "HSP " }, { 4, "HSTM " }, { 3, "HST " }, { 4, "HSWI " }, { 3, "HSY " }, { 2, "HS " }, { 4, "HTBK " }, { 3, "HTB " }, { 4, "HTCH " }, { 4, "HTCO " }, { 3, "HTD " }, { 4, "HTGC " }, { 4, "HTHT " }, { 3, "HTH " }, { 4, "HTLD " }, { 4, "HTLF " }, { 3, "HTM " }, { 3, "HTN " }, { 3, "HTR " }, { 3, "HTS " }, { 4, "HTWR " }, { 3, "HTY " }, { 3, "HTZ " }, { 2, "HT " }, { 4, "HUBG " }, { 3, "HUM " }, { 3, "HUN " }, { 4, "HURC " }, { 4, "HURN " }, { 4, "HUSA " }, { 4, "HUVL " }, { 4, "HVOL " }, { 3, "HVT " }, { 4, "HWAY " }, { 4, "HWBK " }, { 4, "HWCC " }, { 3, "HWD " }, { 3, "HWG " }, { 4, "HWKN " }, { 2, "HW " }, { 3, "HXL " }, { 3, "HXM " }, { 3, "HYB " }, { 3, "HYC " }, { 3, "HYD " }, { 3, "HYF " }, { 4, "HYGS " }, { 3, "HYG " }, { 3, "HYH " }, { 3, "HYI " }, { 3, "HYK " }, { 4, "HYLD " }, { 3, "HYL " }, { 4, "HYMB " }, { 3, "HYM " }, { 3, "HYS " }, { 3, "HYT " }, { 3, "HYV " }, { 3, "HYY " }, { 3, "HZD " }, { 3, "HZK " }, { 3, "HZO " }, { 1, "H " }, { 4, "IACI " }, { 3, "IAE " }, { 3, "IAF " }, { 3, "IAG " }, { 3, "IAH " }, { 3, "IAI " }, { 3, "IAK " }, { 4, "IART " }, { 3, "IAT " }, { 3, "IAU " }, { 3, "IBA " }, { 3, "IBB " }, { 4, "IBCA " }, { 5, "IBCPO " }, { 4, "IBCP " }, { 4, "IBIO " }, { 3, "IBI " }, { 4, "IBKC " }, { 4, "IBKR " }, { 3, "IBM " }, { 4, "IBND " }, { 3, "IBN " }, { 4, "IBOC " }, { 3, "IBO " }, { 4, "ICAD " }, { 3, "ICA " }, { 3, "ICB " }, { 4, "ICCC " }, { 3, "ICE " }, { 4, "ICFI " }, { 3, "ICF " }, { 4, "ICGE " }, { 4, "ICGN " }, { 3, "ICH " }, { 3, "ICI " }, { 4, "ICLK " }, { 4, "ICLN " }, { 4, "ICLR " }, { 3, "ICN " }, { 4, "ICOG " }, { 4, "ICON " }, { 3, "ICS " }, { 4, "ICUI " }, { 3, "IDA " }, { 4, "IDCC " }, { 3, "IDE " }, { 3, "IDG " }, { 4, "IDIX " }, { 3, "IDI " }, { 3, "IDN " }, { 4, "IDRA " }, { 4, "IDSA " }, { 4, "IDSY " }, { 4, "IDTI " }, { 3, "IDT " }, { 3, "IDU " }, { 3, "IDV " }, { 4, "IDXX " }, { 3, "IDX " }, { 2, "ID " }, { 3, "IEC " }, { 3, "IEF " }, { 3, "IEI " }, { 3, "IEO " }, { 3, "IEP " }, { 4, "IESC " }, { 3, "IEV " }, { 3, "IEX " }, { 3, "IEZ " }, { 4, "IFAS " }, { 4, "IFEU " }, { 3, "IFF " }, { 4, "IFGL " }, { 4, "IFMI " }, { 4, "IFNA " }, { 3, "IFN " }, { 4, "IFON " }, { 3, "IFO " }, { 5, "IFSIA " }, { 4, "IFSM " }, { 3, "IFT " }, { 2, "IF " }, { 3, "IGA " }, { 3, "IGC " }, { 3, "IGD " }, { 4, "IGEM " }, { 3, "IGE " }, { 3, "IGF " }, { 3, "IGI " }, { 3, "IGK " }, { 4, "IGLD " }, { 3, "IGM " }, { 3, "IGN " }, { 4, "IGOI " }, { 4, "IGOV " }, { 3, "IGR " }, { 3, "IGS " }, { 4, "IGTE " }, { 3, "IGT " }, { 3, "IGU " }, { 3, "IGV " }, { 3, "IGZ " }, { 2, "IG " }, { 3, "IHC " }, { 3, "IHD " }, { 3, "IHE " }, { 3, "IHF " }, { 3, "IHG " }, { 3, "IHI " }, { 3, "IHS " }, { 3, "IHT " }, { 3, "IIC " }, { 3, "IID " }, { 3, "IIF " }, { 3, "IIH " }, { 4, "IIIN " }, { 3, "III " }, { 4, "IIJI " }, { 4, "IILG " }, { 3, "IIM " }, { 3, "IIN " }, { 3, "IIT " }, { 4, "IIVI " }, { 3, "IJH " }, { 3, "IJJ " }, { 3, "IJK " }, { 3, "IJR " }, { 3, "IJS " }, { 3, "IJT " }, { 4, "IKAN " }, { 3, "IKJ " }, { 3, "IKL " }, { 3, "IKM " }, { 4, "IKNX " }, { 3, "IKR " }, { 3, "ILF " }, { 4, "ILMN " }, { 2, "IL " }, { 4, "IMAX " }, { 3, "IMC " }, { 3, "IMF " }, { 4, "IMGN " }, { 3, "IMH " }, { 5, "IMKTA " }, { 4, "IMMR " }, { 4, "IMMU " }, { 3, "IMN " }, { 4, "IMOS " }, { 3, "IMO " }, { 4, "IMRS " }, { 3, "IMS " }, { 3, "IMT " }, { 2, "IM " }, { 4, "INAP " }, { 3, "INB " }, { 4, "INCB " }, { 4, "INCY " }, { 4, "INDB " }, { 4, "INDL " }, { 4, "INDY " }, { 4, "INDZ " }, { 3, "IND " }, { 4, "INFA " }, { 4, "INFI " }, { 4, "INFN " }, { 4, "INFU " }, { 4, "INFY " }, { 3, "ING " }, { 4, "INHX " }, { 4, "ININ " }, { 4, "INMD " }, { 3, "INN " }, { 4, "INOC " }, { 4, "INOD " }, { 3, "INO " }, { 4, "INPH " }, { 3, "INP " }, { 3, "INR " }, { 4, "INSM " }, { 4, "INSP " }, { 4, "INSU " }, { 4, "INSW " }, { 3, "INS " }, { 4, "INTC " }, { 4, "INTG " }, { 4, "INTL " }, { 4, "INTT " }, { 4, "INTU " }, { 4, "INTX " }, { 3, "INT " }, { 4, "INUV " }, { 4, "INVE " }, { 3, "INV " }, { 4, "INWK " }, { 4, "INXN " }, { 4, "INXX " }, { 3, "INY " }, { 3, "INZ " }, { 2, "IN " }, { 3, "IOC " }, { 4, "IOIL " }, { 3, "IOO " }, { 4, "IOSP " }, { 3, "IOT " }, { 2, "IO " }, { 4, "IPAR " }, { 4, "IPAS " }, { 3, "IPB " }, { 4, "IPCC " }, { 4, "IPCI " }, { 4, "IPCM " }, { 3, "IPD " }, { 3, "IPE " }, { 3, "IPF " }, { 4, "IPGP " }, { 3, "IPG " }, { 4, "IPHI " }, { 4, "IPHS " }, { 3, "IPI " }, { 3, "IPK " }, { 3, "IPN " }, { 4, "IPSU " }, { 3, "IPS " }, { 3, "IPT " }, { 3, "IPU " }, { 3, "IPW " }, { 4, "IPXL " }, { 2, "IP " }, { 3, "IQC " }, { 3, "IQI " }, { 3, "IQM " }, { 3, "IQN " }, { 3, "IQT " }, { 4, "IRBT " }, { 3, "IRC " }, { 5, "IRDMU " }, { 5, "IRDMW " }, { 5, "IRDMZ " }, { 4, "IRDM " }, { 5, "IRETP " }, { 4, "IRET " }, { 3, "IRE " }, { 3, "IRF " }, { 4, "IRIS " }, { 4, "IRIX " }, { 3, "IRL " }, { 3, "IRM " }, { 3, "IRR " }, { 3, "IRS " }, { 3, "IRV " }, { 4, "IRWD " }, { 3, "IRY " }, { 2, "IR " }, { 4, "ISBC " }, { 4, "ISCA " }, { 3, "ISF " }, { 3, "ISG " }, { 4, "ISHG " }, { 3, "ISH " }, { 4, "ISIG " }, { 4, "ISIL " }, { 4, "ISIS " }, { 3, "ISI " }, { 4, "ISLE " }, { 3, "ISL " }, { 3, "ISM " }, { 4, "ISNS " }, { 3, "ISP " }, { 4, "ISRG " }, { 4, "ISRL " }, { 3, "ISR " }, { 4, "ISSC " }, { 4, "ISSI " }, { 3, "ISS " }, { 4, "ISTA " }, { 3, "IST " }, { 4, "ISYS " }, { 3, "ITA " }, { 3, "ITB " }, { 3, "ITC " }, { 3, "ITE " }, { 3, "ITF " }, { 3, "ITG " }, { 4, "ITIC " }, { 4, "ITIP " }, { 3, "ITI " }, { 4, "ITLT " }, { 4, "ITLY " }, { 4, "ITMN " }, { 3, "ITM " }, { 4, "ITRI " }, { 4, "ITRN " }, { 3, "ITR " }, { 3, "ITT " }, { 4, "ITUB " }, { 3, "ITW " }, { 2, "IT " }, { 4, "IVAC " }, { 4, "IVAN " }, { 3, "IVC " }, { 3, "IVD " }, { 3, "IVE " }, { 3, "IVN " }, { 4, "IVOG " }, { 4, "IVOO " }, { 4, "IVOV " }, { 3, "IVO " }, { 3, "IVR " }, { 3, "IVV " }, { 3, "IVW " }, { 3, "IVZ " }, { 3, "IWB " }, { 3, "IWC " }, { 3, "IWD " }, { 3, "IWF " }, { 3, "IWL " }, { 3, "IWM " }, { 3, "IWN " }, { 3, "IWO " }, { 3, "IWP " }, { 3, "IWR " }, { 3, "IWS " }, { 3, "IWV " }, { 3, "IWW " }, { 3, "IWX " }, { 3, "IWY " }, { 3, "IWZ " }, { 3, "IXC " }, { 3, "IXG " }, { 3, "IXJ " }, { 3, "IXN " }, { 3, "IXP " }, { 4, "IXYS " }, { 2, "IX " }, { 3, "IYC " }, { 3, "IYE " }, { 3, "IYF " }, { 3, "IYG " }, { 3, "IYH " }, { 3, "IYJ " }, { 3, "IYK " }, { 3, "IYM " }, { 3, "IYR " }, { 3, "IYT " }, { 3, "IYW " }, { 3, "IYY " }, { 3, "IYZ " }, { 4, "JACK " }, { 4, "JADE " }, { 3, "JAG " }, { 3, "JAH " }, { 4, "JAKK " }, { 4, "JASO " }, { 4, "JAXB " }, { 3, "JAX " }, { 4, "JAZZ " }, { 4, "JBHT " }, { 3, "JBI " }, { 3, "JBJ " }, { 3, "JBK " }, { 4, "JBLU " }, { 3, "JBL " }, { 3, "JBN " }, { 3, "JBO " }, { 3, "JBR " }, { 4, "JBSS " }, { 3, "JBT " }, { 4, "JCDA " }, { 3, "JCE " }, { 3, "JCI " }, { 4, "JCOM " }, { 3, "JCO " }, { 3, "JCP " }, { 3, "JCS " }, { 5, "JCTCF " }, { 4, "JDAS " }, { 3, "JDD " }, { 4, "JDSU " }, { 3, "JEC " }, { 3, "JEF " }, { 3, "JEM " }, { 3, "JEQ " }, { 4, "JFBC " }, { 4, "JFBI " }, { 3, "JFC " }, { 3, "JFP " }, { 3, "JFR " }, { 3, "JFT " }, { 4, "JGBL " }, { 4, "JGBO " }, { 4, "JGBT " }, { 3, "JGG " }, { 3, "JGT " }, { 3, "JGV " }, { 3, "JHI " }, { 3, "JHP " }, { 3, "JHS " }, { 3, "JHX " }, { 3, "JJA " }, { 3, "JJC " }, { 3, "JJE " }, { 3, "JJG " }, { 3, "JJM " }, { 3, "JJN " }, { 3, "JJP " }, { 4, "JJSF " }, { 3, "JJS " }, { 3, "JJT " }, { 3, "JJU " }, { 3, "JKD " }, { 3, "JKE " }, { 3, "JKF " }, { 3, "JKG " }, { 4, "JKHY " }, { 3, "JKH " }, { 3, "JKI " }, { 3, "JKJ " }, { 3, "JKK " }, { 3, "JKL " }, { 3, "JKS " }, { 3, "JLA " }, { 3, "JLL " }, { 3, "JLS " }, { 4, "JMBA " }, { 3, "JMF " }, { 3, "JMP " }, { 3, "JMT " }, { 4, "JNGW " }, { 3, "JNJ " }, { 3, "JNK " }, { 4, "JNPR " }, { 3, "JNS " }, { 3, "JNY " }, { 4, "JOBS " }, { 3, "JOB " }, { 4, "JOEZ " }, { 3, "JOE " }, { 3, "JOF " }, { 4, "JOSB " }, { 4, "JOUT " }, { 4, "JOYG " }, { 2, "JO " }, { 3, "JPC " }, { 3, "JPG " }, { 3, "JPM " }, { 3, "JPP " }, { 3, "JPS " }, { 3, "JPX " }, { 3, "JPZ " }, { 3, "JQC " }, { 4, "JRCC " }, { 4, "JRJC " }, { 3, "JRN " }, { 3, "JRO " }, { 3, "JRS " }, { 3, "JSC " }, { 4, "JSDA " }, { 3, "JSD " }, { 3, "JSM " }, { 3, "JSN " }, { 3, "JST " }, { 3, "JTA " }, { 3, "JTD " }, { 3, "JTP " }, { 3, "JVA " }, { 3, "JWF " }, { 3, "JWN " }, { 3, "JXI " }, { 4, "JXSB " }, { 3, "JYF " }, { 3, "JYN " }, { 3, "JZC " }, { 3, "JZH " }, { 3, "JZJ " }, { 3, "JZK " }, { 3, "JZL " }, { 3, "JZS " }, { 3, "JZT " }, { 3, "JZV " }, { 3, "KAD " }, { 3, "KAI " }, { 4, "KALU " }, { 4, "KAMN " }, { 3, "KAR " }, { 3, "KAZ " }, { 5, "KBALB " }, { 3, "KBE " }, { 3, "KBH " }, { 3, "KBR " }, { 4, "KBWD " }, { 4, "KBWP " }, { 4, "KBWX " }, { 4, "KBWY " }, { 3, "KBW " }, { 3, "KBX " }, { 2, "KB " }, { 4, "KCAP " }, { 3, "KCC " }, { 3, "KCE " }, { 3, "KCG " }, { 3, "KCI " }, { 4, "KCLI " }, { 3, "KCP " }, { 3, "KCW " }, { 3, "KDN " }, { 3, "KED " }, { 3, "KEF " }, { 3, "KEG " }, { 5, "KELYA " }, { 5, "KELYB " }, { 3, "KEM " }, { 4, "KENT " }, { 3, "KEP " }, { 4, "KEQU " }, { 4, "KERX " }, { 3, "KEX " }, { 4, "KEYN " }, { 4, "KEYP " }, { 4, "KEYW " }, { 3, "KEY " }, { 4, "KFFB " }, { 4, "KFFG " }, { 3, "KFN " }, { 4, "KFRC " }, { 3, "KFS " }, { 3, "KFT " }, { 3, "KFY " }, { 2, "KF " }, { 3, "KGC " }, { 4, "KGJI " }, { 3, "KGN " }, { 3, "KHI " }, { 2, "KH " }, { 3, "KID " }, { 3, "KIE " }, { 3, "KIM " }, { 4, "KINS " }, { 4, "KIOR " }, { 4, "KIPS " }, { 4, "KIRK " }, { 4, "KITD " }, { 3, "KKD " }, { 3, "KKR " }, { 4, "KLAC " }, { 3, "KLD " }, { 4, "KLIC " }, { 3, "KMB " }, { 3, "KME " }, { 3, "KMF " }, { 4, "KMGB " }, { 3, "KMI " }, { 3, "KMM " }, { 3, "KMP " }, { 3, "KMR " }, { 3, "KMT " }, { 3, "KMX " }, { 4, "KNDI " }, { 4, "KNDL " }, { 3, "KND " }, { 3, "KNL " }, { 3, "KNM " }, { 4, "KNOL " }, { 3, "KNO " }, { 3, "KNR " }, { 4, "KNSY " }, { 4, "KNXA " }, { 3, "KNX " }, { 3, "KOF " }, { 3, "KOG " }, { 3, "KOL " }, { 4, "KONA " }, { 4, "KONE " }, { 4, "KONG " }, { 4, "KOOL " }, { 4, "KOPN " }, { 3, "KOP " }, { 4, "KOSS " }, { 3, "KOS " }, { 2, "KO " }, { 3, "KRA " }, { 3, "KRC " }, { 3, "KRE " }, { 3, "KRG " }, { 3, "KRJ " }, { 4, "KRNY " }, { 4, "KROO " }, { 3, "KRO " }, { 3, "KRS " }, { 3, "KRU " }, { 2, "KR " }, { 3, "KSA " }, { 3, "KSK " }, { 3, "KSM " }, { 3, "KSP " }, { 3, "KSS " }, { 3, "KST " }, { 3, "KSU " }, { 4, "KSWS " }, { 3, "KSW " }, { 2, "KS " }, { 4, "KTCC " }, { 4, "KTEC " }, { 3, "KTF " }, { 3, "KTH " }, { 3, "KTN " }, { 4, "KTOS " }, { 3, "KTP " }, { 2, "KT " }, { 3, "KUB " }, { 3, "KUN " }, { 4, "KUTV " }, { 4, "KVHI " }, { 3, "KWK " }, { 3, "KWR " }, { 3, "KWT " }, { 2, "KW " }, { 3, "KXI " }, { 3, "KXM " }, { 3, "KYE " }, { 3, "KYN " }, { 3, "KYO " }, { 1, "K " }, { 4, "LABC " }, { 4, "LABL " }, { 4, "LACO " }, { 3, "LAD " }, { 3, "LAG " }, { 4, "LAKE " }, { 4, "LAMR " }, { 4, "LANC " }, { 3, "LAQ " }, { 4, "LARK " }, { 3, "LAS " }, { 4, "LATM " }, { 4, "LAVA " }, { 4, "LAWS " }, { 4, "LAYN " }, { 3, "LAZ " }, { 4, "LBAI " }, { 3, "LBF " }, { 4, "LBIX " }, { 3, "LBJ " }, { 4, "LBND " }, { 4, "LBTA " }, { 5, "LBTYA " }, { 5, "LBTYB " }, { 5, "LBTYK " }, { 3, "LBY " }, { 5, "LCAPA " }, { 5, "LCAPB " }, { 4, "LCAV " }, { 3, "LCC " }, { 3, "LCI " }, { 3, "LCM " }, { 4, "LCRY " }, { 4, "LCUT " }, { 3, "LDF " }, { 3, "LDK " }, { 3, "LDL " }, { 3, "LDR " }, { 3, "LDX " }, { 2, "LD " }, { 4, "LEAP " }, { 3, "LEA " }, { 4, "LECO " }, { 4, "LEDD " }, { 4, "LEDR " }, { 4, "LEDS " }, { 3, "LEE " }, { 4, "LEGC " }, { 3, "LEG " }, { 3, "LEI " }, { 3, "LEN " }, { 3, "LEO " }, { 3, "LFC " }, { 3, "LFL " }, { 3, "LFT " }, { 4, "LFUS " }, { 2, "LF " }, { 4, "LGCY " }, { 4, "LGEM " }, { 3, "LGF " }, { 3, "LGI " }, { 3, "LGL " }, { 4, "LGND " }, { 2, "LG " }, { 3, "LHB " }, { 4, "LHCG " }, { 3, "LHO " }, { 2, "LH " }, { 4, "LIFE " }, { 3, "LII " }, { 4, "LIME " }, { 4, "LINC " }, { 4, "LINE " }, { 5, "LINTA " }, { 5, "LINTB " }, { 4, "LION " }, { 4, "LIOX " }, { 3, "LIT " }, { 4, "LIVE " }, { 4, "LIWA " }, { 3, "LIZ " }, { 4, "LKFN " }, { 4, "LKQX " }, { 4, "LLEN " }, { 3, "LLL " }, { 4, "LLNW " }, { 4, "LLTC " }, { 3, "LLY " }, { 2, "LL " }, { 4, "LMAT " }, { 4, "LMIA " }, { 3, "LMI " }, { 4, "LMLP " }, { 4, "LMNR " }, { 4, "LMNX " }, { 3, "LMT " }, { 3, "LMZ " }, { 2, "LM " }, { 4, "LNBB " }, { 4, "LNCE " }, { 4, "LNCR " }, { 3, "LNC " }, { 4, "LNDC " }, { 4, "LNET " }, { 3, "LNG " }, { 4, "LNKD " }, { 3, "LNN " }, { 3, "LNT " }, { 4, "LOAN " }, { 4, "LOCM " }, { 4, "LODE " }, { 4, "LOGI " }, { 4, "LOGM " }, { 4, "LOJN " }, { 4, "LONG " }, { 3, "LON " }, { 4, "LOOK " }, { 4, "LOOP " }, { 4, "LOPE " }, { 4, "LORL " }, { 3, "LOR " }, { 3, "LOV " }, { 3, "LOW " }, { 2, "LO " }, { 4, "LPHI " }, { 3, "LPH " }, { 4, "LPLA " }, { 3, "LPL " }, { 4, "LPNT " }, { 3, "LPR " }, { 4, "LPSB " }, { 4, "LPSN " }, { 3, "LPS " }, { 4, "LPTH " }, { 3, "LPX " }, { 4, "LQDT " }, { 3, "LQD " }, { 4, "LRAD " }, { 4, "LRCX " }, { 3, "LRN " }, { 3, "LRY " }, { 4, "LSBI " }, { 4, "LSBK " }, { 4, "LSCC " }, { 3, "LSC " }, { 3, "LSE " }, { 3, "LSI " }, { 4, "LSTK " }, { 4, "LSTR " }, { 5, "LSTZA " }, { 5, "LSTZB " }, { 4, "LTBR " }, { 3, "LTC " }, { 3, "LTD " }, { 3, "LTL " }, { 3, "LTM " }, { 4, "LTON " }, { 4, "LTPZ " }, { 4, "LTRE " }, { 4, "LTRX " }, { 3, "LTS " }, { 4, "LTXC " }, { 3, "LUB " }, { 4, "LUFK " }, { 3, "LUK " }, { 4, "LULU " }, { 4, "LUNA " }, { 3, "LUV " }, { 3, "LUX " }, { 3, "LVB " }, { 4, "LVLT " }, { 3, "LVL " }, { 4, "LVOL " }, { 3, "LVS " }, { 4, "LWAY " }, { 3, "LWC " }, { 4, "LWPE " }, { 4, "LWSN " }, { 3, "LXK " }, { 3, "LXP " }, { 4, "LXRX " }, { 3, "LXU " }, { 3, "LYB " }, { 3, "LYG " }, { 4, "LYTS " }, { 3, "LYV " }, { 3, "LZB " }, { 4, "LZEN " }, { 2, "LZ " }, { 1, "L " }, { 3, "MAA " }, { 3, "MAB " }, { 3, "MAC " }, { 4, "MAGS " }, { 3, "MAG " }, { 4, "MAIL " }, { 4, "MAIN " }, { 4, "MAKO " }, { 4, "MALL " }, { 4, "MANH " }, { 4, "MANT " }, { 3, "MAN " }, { 4, "MAPP " }, { 5, "MARPS " }, { 3, "MAR " }, { 4, "MASC " }, { 4, "MASI " }, { 3, "MAS " }, { 4, "MATH " }, { 4, "MATL " }, { 4, "MATR " }, { 4, "MATS " }, { 4, "MATW " }, { 3, "MAT " }, { 3, "MAV " }, { 4, "MAXY " }, { 4, "MAYS " }, { 3, "MAY " }, { 2, "MA " }, { 3, "MBA " }, { 3, "MBB " }, { 3, "MBC " }, { 4, "MBFI " }, { 3, "MBF " }, { 3, "MBG " }, { 3, "MBI " }, { 4, "MBLX " }, { 3, "MBL " }, { 4, "MBND " }, { 4, "MBRG " }, { 3, "MBR " }, { 4, "MBTF " }, { 3, "MBT " }, { 4, "MBVT " }, { 4, "MBWM " }, { 3, "MCA " }, { 4, "MCBC " }, { 4, "MCBF " }, { 4, "MCBI " }, { 3, "MCC " }, { 3, "MCD " }, { 3, "MCF " }, { 4, "MCGC " }, { 4, "MCHI " }, { 4, "MCHP " }, { 4, "MCHX " }, { 3, "MCI " }, { 3, "MCK " }, { 3, "MCN " }, { 4, "MCOX " }, { 3, "MCO " }, { 3, "MCP " }, { 4, "MCRI " }, { 4, "MCRL " }, { 4, "MCRO " }, { 4, "MCRS " }, { 3, "MCR " }, { 3, "MCS " }, { 3, "MCY " }, { 3, "MCZ " }, { 4, "MDAS " }, { 4, "MDCA " }, { 4, "MDCI " }, { 4, "MDCO " }, { 3, "MDC " }, { 3, "MDD " }, { 3, "MDF " }, { 4, "MDGN " }, { 3, "MDH " }, { 4, "MDMD " }, { 3, "MDM " }, { 3, "MDP " }, { 4, "MDRX " }, { 3, "MDR " }, { 4, "MDSO " }, { 3, "MDS " }, { 4, "MDTH " }, { 3, "MDT " }, { 3, "MDU " }, { 4, "MDVN " }, { 3, "MDW " }, { 4, "MDYG " }, { 4, "MDYV " }, { 3, "MDY " }, { 2, "MD " }, { 4, "MEAD " }, { 4, "MEAS " }, { 3, "MEA " }, { 4, "MEDH " }, { 4, "MEDW " }, { 3, "MED " }, { 3, "MEG " }, { 3, "MEI " }, { 4, "MELA " }, { 4, "MELI " }, { 4, "MEMS " }, { 4, "MENT " }, { 3, "MEN " }, { 4, "MEOH " }, { 4, "MERC " }, { 4, "MERR " }, { 4, "MERU " }, { 3, "MES " }, { 4, "METR " }, { 3, "MET " }, { 4, "MEXS " }, { 3, "MFA " }, { 3, "MFB " }, { 3, "MFC " }, { 3, "MFD " }, { 3, "MFG " }, { 3, "MFI " }, { 4, "MFLA " }, { 4, "MFLR " }, { 4, "MFLX " }, { 3, "MFL " }, { 3, "MFM " }, { 4, "MFNC " }, { 3, "MFN " }, { 4, "MFRI " }, { 4, "MFSA " }, { 4, "MFSF " }, { 3, "MFT " }, { 3, "MFV " }, { 3, "MFW " }, { 3, "MFY " }, { 2, "MF " }, { 4, "MGAM " }, { 3, "MGA " }, { 3, "MGC " }, { 4, "MGEE " }, { 3, "MGF " }, { 3, "MGH " }, { 4, "MGIC " }, { 3, "MGI " }, { 3, "MGJ " }, { 3, "MGK " }, { 4, "MGLN " }, { 3, "MGM " }, { 3, "MGN " }, { 4, "MGPI " }, { 4, "MGRC " }, { 3, "MGT " }, { 3, "MGU " }, { 3, "MGV " }, { 4, "MGYR " }, { 2, "MG " }, { 3, "MHC " }, { 3, "MHD " }, { 3, "MHE " }, { 3, "MHF " }, { 4, "MHGC " }, { 3, "MHH " }, { 3, "MHI " }, { 3, "MHK " }, { 4, "MHLD " }, { 3, "MHM " }, { 3, "MHN " }, { 3, "MHO " }, { 3, "MHP " }, { 3, "MHR " }, { 3, "MHS " }, { 3, "MHW " }, { 3, "MHY " }, { 3, "MIC " }, { 4, "MIDD " }, { 3, "MIF " }, { 3, "MIG " }, { 4, "MILL " }, { 3, "MIM " }, { 4, "MIND " }, { 4, "MINI " }, { 4, "MINT " }, { 3, "MIN " }, { 4, "MIPS " }, { 4, "MITI " }, { 4, "MITL " }, { 4, "MITT " }, { 3, "MIW " }, { 3, "MIY " }, { 2, "MI " }, { 3, "MJC " }, { 3, "MJH " }, { 3, "MJI " }, { 3, "MJN " }, { 3, "MKC " }, { 3, "MKF " }, { 3, "MKH " }, { 3, "MKL " }, { 3, "MKN " }, { 4, "MKSI " }, { 3, "MKS " }, { 5, "MKTAY " }, { 4, "MKTG " }, { 4, "MKTX " }, { 3, "MKV " }, { 3, "MKZ " }, { 4, "MLAB " }, { 3, "MLA " }, { 3, "MLG " }, { 4, "MLHR " }, { 3, "MLI " }, { 3, "MLM " }, { 4, "MLNK " }, { 4, "MLNX " }, { 3, "MLN " }, { 4, "MLPG " }, { 4, "MLPI " }, { 4, "MLPL " }, { 4, "MLPN " }, { 4, "MLPS " }, { 4, "MLPW " }, { 4, "MLPY " }, { 3, "MLP " }, { 3, "MLR " }, { 3, "MLU " }, { 4, "MLVF " }, { 3, "MLV " }, { 3, "MMC " }, { 3, "MMF " }, { 3, "MMI " }, { 4, "MMLP " }, { 3, "MMM " }, { 3, "MMP " }, { 3, "MMR " }, { 4, "MMSI " }, { 3, "MMS " }, { 3, "MMT " }, { 4, "MMUS " }, { 3, "MMU " }, { 3, "MMV " }, { 4, "MMYT " }, { 3, "MMY " }, { 3, "MNA " }, { 4, "MNDO " }, { 4, "MNEL " }, { 3, "MNE " }, { 3, "MNI " }, { 4, "MNKD " }, { 4, "MNOV " }, { 3, "MNP " }, { 5, "MNRKP " }, { 4, "MNRK " }, { 4, "MNRO " }, { 3, "MNR " }, { 4, "MNTA " }, { 4, "MNTG " }, { 4, "MNTX " }, { 4, "MOBI " }, { 4, "MOCO " }, { 3, "MOC " }, { 3, "MOD " }, { 4, "MOFG " }, { 3, "MOH " }, { 5, "MOLXA " }, { 4, "MOLX " }, { 3, "MOL " }, { 3, "MON " }, { 3, "MOO " }, { 4, "MORN " }, { 3, "MOR " }, { 4, "MOSY " }, { 3, "MOS " }, { 4, "MOTR " }, { 3, "MOU " }, { 4, "MOVE " }, { 3, "MOV " }, { 2, "MO " }, { 4, "MPAA " }, { 4, "MPAC " }, { 3, "MPA " }, { 3, "MPB " }, { 3, "MPD " }, { 4, "MPEL " }, { 4, "MPET " }, { 3, "MPE " }, { 3, "MPG " }, { 3, "MPJ " }, { 3, "MPR " }, { 3, "MPV " }, { 4, "MPWR " }, { 3, "MPW " }, { 3, "MPX " }, { 3, "MQC " }, { 3, "MQT " }, { 3, "MQY " }, { 4, "MRCY " }, { 3, "MRF " }, { 4, "MRGE " }, { 3, "MRH " }, { 3, "MRK " }, { 4, "MRLN " }, { 4, "MRNA " }, { 3, "MRO " }, { 4, "MRTN " }, { 3, "MRT " }, { 4, "MRVL " }, { 3, "MRX " }, { 2, "MR " }, { 3, "MSA " }, { 4, "MSBF " }, { 3, "MSB " }, { 4, "MSCC " }, { 4, "MSCI " }, { 3, "MSC " }, { 5, "MSDXP " }, { 3, "MSD " }, { 4, "MSEX " }, { 4, "MSFG " }, { 4, "MSFT " }, { 3, "MSF " }, { 3, "MSG " }, { 4, "MSHL " }, { 3, "MSI " }, { 3, "MSJ " }, { 3, "MSK " }, { 3, "MSL " }, { 3, "MSM " }, { 3, "MSN " }, { 4, "MSON " }, { 3, "MSO " }, { 4, "MSPD " }, { 3, "MSP " }, { 4, "MSSR " }, { 3, "MSS " }, { 4, "MSTR " }, { 3, "MSW " }, { 3, "MSY " }, { 3, "MSZ " }, { 2, "MS " }, { 3, "MTB " }, { 3, "MTD " }, { 4, "MTEX " }, { 3, "MTE " }, { 3, "MTG " }, { 3, "MTH " }, { 3, "MTK " }, { 3, "MTL " }, { 3, "MTN " }, { 4, "MTOR " }, { 4, "MTOX " }, { 3, "MTP " }, { 4, "MTRN " }, { 4, "MTRX " }, { 3, "MTR " }, { 4, "MTSC " }, { 4, "MTSL " }, { 4, "MTSN " }, { 3, "MTS " }, { 4, "MTTX " }, { 3, "MTT " }, { 3, "MTU " }, { 3, "MTW " }, { 3, "MTX " }, { 3, "MTY " }, { 3, "MTZ " }, { 2, "MT " }, { 4, "MUAA " }, { 4, "MUAB " }, { 4, "MUAC " }, { 4, "MUAD " }, { 4, "MUAE " }, { 4, "MUAF " }, { 3, "MUA " }, { 3, "MUB " }, { 3, "MUC " }, { 3, "MUE " }, { 3, "MUH " }, { 3, "MUI " }, { 3, "MUJ " }, { 3, "MUK " }, { 4, "MUNI " }, { 3, "MUR " }, { 4, "MUSA " }, { 3, "MUS " }, { 2, "MU " }, { 3, "MVC " }, { 3, "MVF " }, { 3, "MVG " }, { 5, "MVISW " }, { 4, "MVIS " }, { 3, "MVI " }, { 3, "MVO " }, { 3, "MVT " }, { 3, "MVV " }, { 3, "MWA " }, { 3, "MWE " }, { 3, "MWG " }, { 4, "MWIV " }, { 3, "MWJ " }, { 3, "MWN " }, { 3, "MWO " }, { 3, "MWR " }, { 3, "MWV " }, { 3, "MWW " }, { 2, "MW " }, { 3, "MXA " }, { 3, "MXC " }, { 3, "MXE " }, { 3, "MXF " }, { 3, "MXH " }, { 4, "MXIM " }, { 3, "MXI " }, { 3, "MXL " }, { 3, "MXN " }, { 3, "MXT " }, { 4, "MXWL " }, { 2, "MX " }, { 3, "MYC " }, { 3, "MYD " }, { 3, "MYE " }, { 3, "MYF " }, { 4, "MYGN " }, { 3, "MYI " }, { 3, "MYJ " }, { 3, "MYL " }, { 3, "MYM " }, { 3, "MYN " }, { 3, "MYP " }, { 4, "MYRG " }, { 4, "MYRX " }, { 3, "MYY " }, { 2, "MY " }, { 3, "MZA " }, { 3, "MZF " }, { 3, "MZW " }, { 3, "MZZ " }, { 1, "M " }, { 4, "NABI " }, { 3, "NAC " }, { 3, "NAD " }, { 4, "NAFC " }, { 4, "NAGS " }, { 4, "NAII " }, { 3, "NAI " }, { 3, "NAK " }, { 4, "NANO " }, { 4, "NANX " }, { 3, "NAN " }, { 4, "NARA " }, { 4, "NASB " }, { 4, "NASI " }, { 4, "NATH " }, { 4, "NATI " }, { 4, "NATL " }, { 4, "NATR " }, { 3, "NAT " }, { 4, "NAUH " }, { 4, "NAVG " }, { 4, "NAVR " }, { 3, "NAV " }, { 3, "NAZ " }, { 4, "NBBC " }, { 3, "NBB " }, { 3, "NBD " }, { 3, "NBG " }, { 3, "NBH " }, { 4, "NBIX " }, { 3, "NBJ " }, { 3, "NBL " }, { 3, "NBN " }, { 3, "NBO " }, { 3, "NBR " }, { 3, "NBS " }, { 4, "NBTB " }, { 4, "NBTF " }, { 3, "NBW " }, { 4, "NBXH " }, { 3, "NBY " }, { 3, "NCA " }, { 4, "NCBC " }, { 3, "NCB " }, { 4, "NCIT " }, { 3, "NCI " }, { 3, "NCL " }, { 4, "NCMI " }, { 3, "NCO " }, { 3, "NCP " }, { 3, "NCR " }, { 3, "NCS " }, { 4, "NCTY " }, { 3, "NCT " }, { 3, "NCU " }, { 3, "NCV " }, { 3, "NCZ " }, { 2, "NC " }, { 4, "NDAQ " }, { 3, "NDN " }, { 4, "NDSN " }, { 3, "NDZ " }, { 3, "NEA " }, { 4, "NEBS " }, { 4, "NECB " }, { 3, "NED " }, { 3, "NEE " }, { 3, "NEI " }, { 3, "NEM " }, { 3, "NEN " }, { 4, "NEOG " }, { 4, "NEOP " }, { 4, "NEPT " }, { 3, "NEP " }, { 4, "NETC " }, { 4, "NETL " }, { 3, "NEU " }, { 3, "NEV " }, { 4, "NEWL " }, { 4, "NEWN " }, { 4, "NEWP " }, { 4, "NEWS " }, { 4, "NEWT " }, { 4, "NEXS " }, { 2, "NE " }, { 4, "NFBK " }, { 3, "NFC " }, { 4, "NFEC " }, { 3, "NFG " }, { 3, "NFJ " }, { 4, "NFLX " }, { 3, "NFM " }, { 3, "NFO " }, { 3, "NFP " }, { 4, "NFSB " }, { 3, "NFX " }, { 3, "NFZ " }, { 3, "NGB " }, { 3, "NGD " }, { 3, "NGG " }, { 3, "NGK " }, { 4, "NGLS " }, { 3, "NGL " }, { 3, "NGO " }, { 4, "NGPC " }, { 4, "NGSX " }, { 3, "NGS " }, { 3, "NGT " }, { 3, "NGX " }, { 3, "NGZ " }, { 2, "NG " }, { 3, "NHC " }, { 3, "NHI " }, { 3, "NHP " }, { 3, "NHS " }, { 4, "NHTB " }, { 3, "NIB " }, { 4, "NICE " }, { 4, "NICK " }, { 3, "NIE " }, { 3, "NIF " }, { 4, "NIHD " }, { 3, "NII " }, { 4, "NILE " }, { 3, "NIM " }, { 4, "NINE " }, { 4, "NINI " }, { 3, "NIO " }, { 2, "NI " }, { 3, "NJR " }, { 3, "NJV " }, { 2, "NJ " }, { 3, "NKA " }, { 4, "NKBP " }, { 3, "NKE " }, { 3, "NKG " }, { 3, "NKL " }, { 3, "NKO " }, { 3, "NKR " }, { 4, "NKSH " }, { 4, "NKTR " }, { 3, "NKX " }, { 4, "NLCI " }, { 3, "NLC " }, { 3, "NLP " }, { 3, "NLR " }, { 4, "NLSN " }, { 4, "NLST " }, { 3, "NLS " }, { 3, "NLY " }, { 2, "NL " }, { 5, "NMARU " }, { 3, "NMA " }, { 3, "NMB " }, { 3, "NMD " }, { 4, "NMFC " }, { 3, "NMI " }, { 3, "NMM " }, { 3, "NMO " }, { 3, "NMP " }, { 4, "NMRX " }, { 3, "NMR " }, { 3, "NMT " }, { 3, "NMY " }, { 3, "NMZ " }, { 2, "NM " }, { 3, "NNA " }, { 4, "NNBR " }, { 3, "NNB " }, { 3, "NNC " }, { 3, "NNF " }, { 3, "NNI " }, { 3, "NNJ " }, { 3, "NNN " }, { 3, "NNO " }, { 3, "NNP " }, { 3, "NNY " }, { 4, "NOAH " }, { 3, "NOA " }, { 4, "NOBH " }, { 3, "NOC " }, { 3, "NOG " }, { 4, "NOIZ " }, { 3, "NOK " }, { 3, "NOM " }, { 4, "NOOF " }, { 4, "NORW " }, { 3, "NOR " }, { 4, "NOVB " }, { 3, "NOV " }, { 5, "NPBCO " }, { 4, "NPBC " }, { 3, "NPC " }, { 3, "NPD " }, { 3, "NPF " }, { 3, "NPG " }, { 3, "NPI " }, { 3, "NPK " }, { 3, "NPM " }, { 3, "NPN " }, { 3, "NPO " }, { 3, "NPP " }, { 4, "NPSP " }, { 4, "NPTN " }, { 3, "NPT " }, { 3, "NPV " }, { 3, "NPX " }, { 3, "NPY " }, { 2, "NP " }, { 3, "NQC " }, { 3, "NQI " }, { 3, "NQJ " }, { 3, "NQM " }, { 3, "NQN " }, { 3, "NQP " }, { 3, "NQS " }, { 3, "NQU " }, { 2, "NQ " }, { 3, "NRB " }, { 4, "NRCI " }, { 3, "NRC " }, { 3, "NRF " }, { 4, "NRGY " }, { 3, "NRG " }, { 4, "NRIM " }, { 3, "NRK " }, { 3, "NRO " }, { 3, "NRP " }, { 3, "NRT " }, { 3, "NRU " }, { 2, "NR " }, { 3, "NSC " }, { 4, "NSEC " }, { 4, "NSFC " }, { 3, "NSH " }, { 4, "NSIT " }, { 3, "NSL " }, { 3, "NSM " }, { 4, "NSPH " }, { 3, "NSP " }, { 3, "NSR " }, { 4, "NSSC " }, { 4, "NSTC " }, { 3, "NST " }, { 3, "NSU " }, { 4, "NSYS " }, { 2, "NS " }, { 4, "NTAP " }, { 4, "NTCT " }, { 3, "NTC " }, { 4, "NTES " }, { 3, "NTE " }, { 4, "NTGR " }, { 3, "NTG " }, { 4, "NTIC " }, { 4, "NTLS " }, { 3, "NTL " }, { 3, "NTN " }, { 4, "NTRI " }, { 4, "NTRS " }, { 4, "NTSC " }, { 4, "NTSP " }, { 3, "NTT " }, { 4, "NTWK " }, { 3, "NTX " }, { 3, "NTZ " }, { 4, "NUAN " }, { 4, "NUCL " }, { 3, "NUC " }, { 3, "NUE " }, { 4, "NUGT " }, { 3, "NUJ " }, { 3, "NUM " }, { 3, "NUN " }, { 3, "NUO " }, { 4, "NURO " }, { 3, "NUS " }, { 4, "NUTR " }, { 4, "NUVA " }, { 3, "NUV " }, { 3, "NUW " }, { 2, "NU " }, { 4, "NVAX " }, { 3, "NVC " }, { 4, "NVDA " }, { 4, "NVEC " }, { 3, "NVE " }, { 4, "NVGN " }, { 3, "NVG " }, { 3, "NVJ " }, { 4, "NVLS " }, { 4, "NVMI " }, { 3, "NVN " }, { 3, "NVO " }, { 3, "NVR " }, { 5, "NVSLD " }, { 3, "NVS " }, { 4, "NVTL " }, { 3, "NVX " }, { 3, "NVY " }, { 4, "NWBI " }, { 3, "NWE " }, { 4, "NWFL " }, { 3, "NWI " }, { 3, "NWK " }, { 4, "NWLI " }, { 3, "NWL " }, { 3, "NWN " }, { 4, "NWPX " }, { 4, "NWSA " }, { 3, "NWS " }, { 3, "NWY " }, { 3, "NXC " }, { 3, "NXE " }, { 3, "NXG " }, { 3, "NXI " }, { 3, "NXJ " }, { 3, "NXK " }, { 3, "NXM " }, { 3, "NXN " }, { 4, "NXPI " }, { 3, "NXP " }, { 3, "NXQ " }, { 3, "NXR " }, { 4, "NXST " }, { 4, "NXTM " }, { 3, "NXY " }, { 3, "NXZ " }, { 2, "NX " }, { 3, "NYB " }, { 3, "NYC " }, { 3, "NYF " }, { 3, "NYH " }, { 4, "NYMT " }, { 4, "NYMX " }, { 4, "NYNY " }, { 3, "NYT " }, { 3, "NYV " }, { 3, "NYX " }, { 2, "NY " }, { 3, "NZF " }, { 3, "NZH " }, { 3, "NZR " }, { 3, "NZT " }, { 3, "NZW " }, { 3, "NZX " }, { 1, "N " }, { 4, "OABC " }, { 3, "OAS " }, { 4, "OBAF " }, { 4, "OBAS " }, { 4, "OBCI " }, { 2, "OB " }, { 3, "OCC " }, { 4, "OCFC " }, { 4, "OCLR " }, { 4, "OCLS " }, { 4, "OCNF " }, { 3, "OCN " }, { 3, "OCR " }, { 3, "OCZ " }, { 2, "OC " }, { 3, "ODC " }, { 4, "ODFL " }, { 3, "ODP " }, { 3, "OEF " }, { 3, "OEH " }, { 4, "OESX " }, { 3, "OFC " }, { 4, "OFED " }, { 3, "OFG " }, { 4, "OFIX " }, { 3, "OFI " }, { 4, "OFLX " }, { 4, "OGEM " }, { 3, "OGE " }, { 4, "OGXI " }, { 3, "OHI " }, { 3, "OIA " }, { 3, "OIB " }, { 3, "OIC " }, { 3, "OIH " }, { 4, "OIIM " }, { 3, "OII " }, { 4, "OILZ " }, { 3, "OIL " }, { 4, "OINK " }, { 3, "OIS " }, { 2, "OI " }, { 3, "OKE " }, { 5, "OKSBP " }, { 4, "OKSB " }, { 3, "OKS " }, { 4, "OLBK " }, { 4, "OLCB " }, { 4, "OLEM " }, { 3, "OLN " }, { 3, "OLO " }, { 3, "OLP " }, { 4, "OMAB " }, { 4, "OMCL " }, { 3, "OMC " }, { 4, "OMER " }, { 4, "OMEX " }, { 3, "OME " }, { 3, "OMG " }, { 3, "OMI " }, { 3, "OMN " }, { 4, "OMPI " }, { 3, "OMX " }, { 4, "ONAV " }, { 3, "ONB " }, { 4, "ONCY " }, { 4, "ONEF " }, { 4, "ONEQ " }, { 3, "ONE " }, { 4, "ONFC " }, { 3, "ONG " }, { 4, "ONNN " }, { 3, "ONP " }, { 4, "ONSM " }, { 4, "ONTY " }, { 4, "ONVI " }, { 4, "ONXX " }, { 4, "OPEN " }, { 4, "OPHC " }, { 3, "OPK " }, { 4, "OPLK " }, { 4, "OPNT " }, { 4, "OPOF " }, { 4, "OPTR " }, { 4, "OPTT " }, { 4, "OPWV " }, { 5, "OPXAW " }, { 4, "OPXA " }, { 4, "OPXT " }, { 3, "OPY " }, { 3, "ORA " }, { 4, "ORBC " }, { 4, "ORBK " }, { 4, "ORBT " }, { 3, "ORB " }, { 4, "ORCC " }, { 4, "ORCH " }, { 4, "ORCL " }, { 4, "ORCT " }, { 4, "OREX " }, { 4, "ORIT " }, { 3, "ORI " }, { 4, "ORLY " }, { 3, "ORN " }, { 4, "ORRF " }, { 3, "ORS " }, { 5, "OSBCP " }, { 4, "OSBC " }, { 3, "OSG " }, { 4, "OSHC " }, { 4, "OSIR " }, { 4, "OSIS " }, { 3, "OSK " }, { 3, "OSM " }, { 3, "OSN " }, { 4, "OSTK " }, { 4, "OSUR " }, { 4, "OTEX " }, { 4, "OTIV " }, { 3, "OTP " }, { 3, "OTR " }, { 4, "OTTR " }, { 3, "OTT " }, { 4, "OUTD " }, { 4, "OVBC " }, { 4, "OVLY " }, { 4, "OVRL " }, { 4, "OVTI " }, { 3, "OWW " }, { 4, "OXBT " }, { 3, "OXF " }, { 4, "OXGN " }, { 4, "OXLC " }, { 3, "OXM " }, { 4, "OXPS " }, { 3, "OXY " }, { 4, "OYOG " }, { 3, "OZM " }, { 4, "OZRK " }, { 1, "O " }, { 4, "PAAS " }, { 3, "PAA " }, { 4, "PACB " }, { 5, "PACQU " }, { 5, "PACQW " }, { 4, "PACQ " }, { 4, "PACR " }, { 4, "PACW " }, { 3, "PAC " }, { 4, "PAET " }, { 3, "PAF " }, { 4, "PAGG " }, { 3, "PAG " }, { 3, "PAI " }, { 4, "PALL " }, { 3, "PAL " }, { 3, "PAM " }, { 4, "PANL " }, { 3, "PAO " }, { 4, "PARD " }, { 4, "PARL " }, { 3, "PAR " }, { 4, "PATH " }, { 4, "PATK " }, { 4, "PATR " }, { 4, "PAYX " }, { 3, "PAY " }, { 4, "PBCT " }, { 3, "PBD " }, { 3, "PBE " }, { 4, "PBHC " }, { 3, "PBH " }, { 4, "PBIB " }, { 4, "PBIO " }, { 4, "PBIP " }, { 3, "PBI " }, { 3, "PBJ " }, { 3, "PBM " }, { 4, "PBNY " }, { 3, "PBP " }, { 3, "PBR " }, { 3, "PBS " }, { 4, "PBTH " }, { 3, "PBT " }, { 3, "PBW " }, { 3, "PBY " }, { 4, "PCAR " }, { 3, "PCA " }, { 4, "PCBC " }, { 4, "PCBK " }, { 4, "PCBS " }, { 4, "PCCC " }, { 3, "PCC " }, { 4, "PCEF " }, { 3, "PCE " }, { 3, "PCF " }, { 3, "PCG " }, { 3, "PCH " }, { 3, "PCK " }, { 4, "PCLN " }, { 3, "PCL " }, { 3, "PCM " }, { 3, "PCN " }, { 4, "PCOM " }, { 3, "PCP " }, { 3, "PCQ " }, { 4, "PCRX " }, { 3, "PCS " }, { 4, "PCTI " }, { 3, "PCX " }, { 4, "PCYC " }, { 4, "PCYG " }, { 4, "PCYO " }, { 3, "PCY " }, { 2, "PC " }, { 4, "PDCO " }, { 3, "PDC " }, { 4, "PDEX " }, { 4, "PDFS " }, { 4, "PDII " }, { 3, "PDJ " }, { 4, "PDLI " }, { 3, "PDM " }, { 3, "PDN " }, { 3, "PDO " }, { 3, "PDP " }, { 3, "PDS " }, { 3, "PDT " }, { 4, "PEBK " }, { 4, "PEBO " }, { 3, "PEB " }, { 4, "PEDH " }, { 4, "PEET " }, { 4, "PEGA " }, { 3, "PEG " }, { 5, "PEIXD " }, { 3, "PEI " }, { 3, "PEJ " }, { 3, "PEK " }, { 3, "PEL " }, { 4, "PENN " }, { 4, "PENX " }, { 4, "PEOP " }, { 3, "PEO " }, { 3, "PEP " }, { 4, "PERF " }, { 4, "PERY " }, { 4, "PESI " }, { 4, "PETD " }, { 4, "PETM " }, { 4, "PETS " }, { 3, "PEY " }, { 3, "PEZ " }, { 3, "PFA " }, { 5, "PFBCD " }, { 4, "PFBI " }, { 4, "PFBX " }, { 4, "PFCB " }, { 3, "PFD " }, { 4, "PFED " }, { 3, "PFE " }, { 3, "PFF " }, { 3, "PFG " }, { 3, "PFH " }, { 4, "PFIN " }, { 3, "PFI " }, { 3, "PFK " }, { 4, "PFLT " }, { 3, "PFL " }, { 3, "PFM " }, { 3, "PFN " }, { 3, "PFO " }, { 4, "PFSW " }, { 3, "PFS " }, { 3, "PFX " }, { 3, "PGC " }, { 3, "PGD " }, { 4, "PGEB " }, { 3, "PGF " }, { 3, "PGH " }, { 3, "PGI " }, { 3, "PGJ " }, { 3, "PGM " }, { 4, "PGNX " }, { 3, "PGN " }, { 3, "PGP " }, { 3, "PGR " }, { 4, "PGTI " }, { 3, "PGX " }, { 2, "PG " }, { 3, "PHA " }, { 3, "PHB " }, { 3, "PHC " }, { 3, "PHD " }, { 3, "PHF " }, { 3, "PHG " }, { 3, "PHH " }, { 5, "PHIIK " }, { 4, "PHII " }, { 3, "PHI " }, { 3, "PHK " }, { 4, "PHMD " }, { 3, "PHM " }, { 3, "PHO " }, { 3, "PHR " }, { 3, "PHT " }, { 3, "PHX " }, { 4, "PHYS " }, { 2, "PH " }, { 3, "PIA " }, { 4, "PICB " }, { 4, "PICO " }, { 3, "PIC " }, { 3, "PID " }, { 3, "PIE " }, { 3, "PII " }, { 3, "PIJ " }, { 4, "PIKE " }, { 3, "PIM " }, { 3, "PIN " }, { 3, "PIO " }, { 3, "PIP " }, { 3, "PIQ " }, { 3, "PIR " }, { 3, "PIS " }, { 3, "PIV " }, { 3, "PIY " }, { 3, "PIZ " }, { 3, "PJA " }, { 3, "PJB " }, { 3, "PJC " }, { 3, "PJI " }, { 3, "PJL " }, { 3, "PJP " }, { 3, "PJR " }, { 3, "PJS " }, { 3, "PJT " }, { 4, "PKBK " }, { 3, "PKB " }, { 3, "PKD " }, { 3, "PKE " }, { 3, "PKG " }, { 3, "PKH " }, { 3, "PKI " }, { 3, "PKJ " }, { 3, "PKK " }, { 3, "PKN " }, { 4, "PKOH " }, { 4, "PKOL " }, { 3, "PKO " }, { 3, "PKT " }, { 3, "PKW " }, { 3, "PKX " }, { 3, "PKY " }, { 4, "PLAB " }, { 4, "PLBC " }, { 4, "PLCC " }, { 4, "PLCE " }, { 4, "PLCM " }, { 3, "PLD " }, { 4, "PLFE " }, { 3, "PLG " }, { 3, "PLK " }, { 3, "PLL " }, { 3, "PLM " }, { 4, "PLND " }, { 4, "PLNR " }, { 4, "PLOW " }, { 4, "PLPC " }, { 3, "PLP " }, { 3, "PLS " }, { 4, "PLTM " }, { 3, "PLT " }, { 4, "PLUG " }, { 4, "PLUS " }, { 3, "PLV " }, { 3, "PLW " }, { 4, "PLXS " }, { 4, "PLXT " }, { 3, "PLX " }, { 2, "PL " }, { 3, "PMA " }, { 4, "PMBC " }, { 4, "PMCS " }, { 3, "PMC " }, { 3, "PMD " }, { 4, "PMFG " }, { 3, "PMF " }, { 4, "PMIC " }, { 3, "PMI " }, { 3, "PML " }, { 3, "PMM " }, { 4, "PMNA " }, { 3, "PMO " }, { 3, "PMR " }, { 4, "PMTC " }, { 4, "PMTI " }, { 3, "PMT " }, { 3, "PMX " }, { 2, "PM " }, { 4, "PNBC " }, { 4, "PNBK " }, { 4, "PNCL " }, { 3, "PNC " }, { 4, "PNFP " }, { 3, "PNF " }, { 3, "PNG " }, { 3, "PNH " }, { 3, "PNI " }, { 3, "PNK " }, { 3, "PNM " }, { 4, "PNNT " }, { 4, "PNNW " }, { 4, "PNQI " }, { 4, "PNRA " }, { 4, "PNRG " }, { 3, "PNR " }, { 4, "PNSN " }, { 3, "PNS " }, { 4, "PNTR " }, { 3, "PNU " }, { 3, "PNW " }, { 3, "PNX " }, { 3, "PNY " }, { 4, "PODD " }, { 3, "POL " }, { 3, "POM " }, { 4, "POOL " }, { 4, "POPE " }, { 3, "POR " }, { 3, "POT " }, { 4, "POWI " }, { 4, "POWL " }, { 4, "POWR " }, { 4, "POZN " }, { 3, "PPA " }, { 4, "PPBI " }, { 3, "PPC " }, { 4, "PPDI " }, { 3, "PPD " }, { 3, "PPG " }, { 4, "PPHM " }, { 3, "PPH " }, { 4, "PPLT " }, { 3, "PPL " }, { 3, "PPO " }, { 3, "PPR " }, { 3, "PPS " }, { 3, "PPT " }, { 3, "PPY " }, { 3, "PQY " }, { 3, "PQZ " }, { 2, "PQ " }, { 4, "PRAA " }, { 4, "PRAN " }, { 3, "PRA " }, { 3, "PRB " }, { 4, "PRCP " }, { 3, "PRD " }, { 3, "PRE " }, { 4, "PRFT " }, { 4, "PRFZ " }, { 3, "PRF " }, { 4, "PRGN " }, { 4, "PRGO " }, { 4, "PRGS " }, { 4, "PRGX " }, { 4, "PRIM " }, { 4, "PRIS " }, { 3, "PRI " }, { 4, "PRKR " }, { 3, "PRK " }, { 4, "PRLS " }, { 4, "PRMW " }, { 3, "PRM " }, { 3, "PRN " }, { 4, "PROJ " }, { 4, "PROV " }, { 3, "PRO " }, { 4, "PRPH " }, { 4, "PRSC " }, { 4, "PRSP " }, { 4, "PRST " }, { 3, "PRS " }, { 4, "PRTS " }, { 3, "PRU " }, { 4, "PRVT " }, { 4, "PRWT " }, { 4, "PRXI " }, { 4, "PRXL " }, { 3, "PRX " }, { 4, "PSAU " }, { 3, "PSA " }, { 4, "PSBH " }, { 3, "PSB " }, { 4, "PSCC " }, { 4, "PSCD " }, { 4, "PSCE " }, { 4, "PSCF " }, { 4, "PSCH " }, { 4, "PSCI " }, { 4, "PSCM " }, { 4, "PSCT " }, { 4, "PSCU " }, { 4, "PSDV " }, { 4, "PSEC " }, { 4, "PSEM " }, { 3, "PSE " }, { 3, "PSF " }, { 4, "PSID " }, { 3, "PSI " }, { 3, "PSJ " }, { 3, "PSK " }, { 4, "PSLV " }, { 3, "PSL " }, { 4, "PSMT " }, { 4, "PSOF " }, { 3, "PSO " }, { 3, "PSP " }, { 3, "PSQ " }, { 3, "PSR " }, { 4, "PSSI " }, { 3, "PSS " }, { 4, "PSTB " }, { 4, "PSTI " }, { 4, "PSTL " }, { 4, "PSTR " }, { 3, "PST " }, { 4, "PSUN " }, { 3, "PSW " }, { 3, "PSY " }, { 3, "PTD " }, { 4, "PTEK " }, { 4, "PTEN " }, { 3, "PTF " }, { 4, "PTGI " }, { 3, "PTH " }, { 4, "PTIE " }, { 4, "PTIX " }, { 3, "PTI " }, { 3, "PTM " }, { 4, "PTNR " }, { 3, "PTN " }, { 3, "PTO " }, { 3, "PTP " }, { 4, "PTRY " }, { 3, "PTR " }, { 4, "PTSI " }, { 4, "PTSX " }, { 3, "PTX " }, { 3, "PTY " }, { 2, "PT " }, { 4, "PUDA " }, { 3, "PUI " }, { 3, "PUK " }, { 4, "PULB " }, { 4, "PULS " }, { 4, "PURE " }, { 3, "PUW " }, { 3, "PVA " }, { 3, "PVD " }, { 4, "PVFC " }, { 3, "PVH " }, { 3, "PVI " }, { 3, "PVR " }, { 4, "PVSA " }, { 4, "PVSW " }, { 5, "PVTBP " }, { 4, "PVTB " }, { 3, "PVX " }, { 4, "PWAV " }, { 3, "PWB " }, { 3, "PWC " }, { 4, "PWER " }, { 3, "PWE " }, { 4, "PWND " }, { 4, "PWOD " }, { 3, "PWO " }, { 4, "PWRD " }, { 3, "PWR " }, { 3, "PWV " }, { 3, "PWX " }, { 3, "PWZ " }, { 2, "PW " }, { 3, "PXD " }, { 3, "PXE " }, { 3, "PXF " }, { 3, "PXH " }, { 3, "PXI " }, { 3, "PXJ " }, { 4, "PXLC " }, { 4, "PXLG " }, { 4, "PXLV " }, { 4, "PXLW " }, { 4, "PXMC " }, { 4, "PXMG " }, { 4, "PXMV " }, { 3, "PXN " }, { 3, "PXP " }, { 3, "PXQ " }, { 3, "PXR " }, { 4, "PXSC " }, { 4, "PXSG " }, { 4, "PXSV " }, { 2, "PX " }, { 3, "PYA " }, { 3, "PYB " }, { 3, "PYC " }, { 3, "PYG " }, { 3, "PYH " }, { 3, "PYJ " }, { 3, "PYK " }, { 3, "PYL " }, { 3, "PYN " }, { 3, "PYS " }, { 3, "PYT " }, { 3, "PYV " }, { 3, "PYY " }, { 3, "PYZ " }, { 3, "PZA " }, { 3, "PZB " }, { 3, "PZC " }, { 3, "PZD " }, { 3, "PZE " }, { 3, "PZG " }, { 3, "PZI " }, { 3, "PZN " }, { 3, "PZT " }, { 4, "PZZA " }, { 4, "PZZI " }, { 1, "P " }, { 4, "QABA " }, { 4, "QADA " }, { 4, "QADB " }, { 3, "QAI " }, { 4, "QBAK " }, { 3, "QBC " }, { 4, "QCCO " }, { 4, "QCLN " }, { 4, "QCOM " }, { 4, "QCOR " }, { 4, "QCRH " }, { 4, "QDEL " }, { 3, "QEP " }, { 4, "QGEM " }, { 4, "QGEN " }, { 3, "QID " }, { 4, "QIHU " }, { 4, "QKLS " }, { 3, "QLD " }, { 4, "QLGC " }, { 4, "QLIK " }, { 4, "QLTI " }, { 4, "QLTY " }, { 3, "QMM " }, { 4, "QNST " }, { 4, "QPSA " }, { 4, "QQEW " }, { 4, "QQQX " }, { 3, "QQQ " }, { 4, "QQXT " }, { 3, "QRE " }, { 3, "QRM " }, { 4, "QSFT " }, { 4, "QSII " }, { 4, "QTEC " }, { 3, "QTM " }, { 4, "QTWW " }, { 4, "QUAD " }, { 4, "QUIK " }, { 3, "QXM " }, { 4, "RADA " }, { 4, "RADS " }, { 3, "RAD " }, { 3, "RAH " }, { 4, "RAIL " }, { 3, "RAI " }, { 4, "RALS " }, { 3, "RAM " }, { 4, "RAND " }, { 3, "RAP " }, { 3, "RAS " }, { 4, "RATE " }, { 4, "RAVN " }, { 3, "RAX " }, { 2, "RA " }, { 3, "RBA " }, { 5, "RBCAA " }, { 4, "RBCN " }, { 3, "RBC " }, { 3, "RBL " }, { 4, "RBNF " }, { 3, "RBN " }, { 5, "RBPAA " }, { 3, "RBS " }, { 3, "RBY " }, { 3, "RCD " }, { 3, "RCG " }, { 4, "RCII " }, { 3, "RCI " }, { 4, "RCKB " }, { 4, "RCKY " }, { 3, "RCL " }, { 4, "RCMT " }, { 4, "RCON " }, { 3, "RCS " }, { 2, "RC " }, { 3, "RDA " }, { 4, "RDCM " }, { 3, "RDC " }, { 4, "RDEA " }, { 4, "RDEN " }, { 4, "RDIB " }, { 3, "RDI " }, { 3, "RDK " }, { 4, "RDNT " }, { 3, "RDN " }, { 4, "RDWR " }, { 3, "RDY " }, { 4, "RECN " }, { 4, "REDF " }, { 4, "REED " }, { 3, "REE " }, { 4, "REFR " }, { 4, "REGN " }, { 3, "REG " }, { 4, "REIS " }, { 3, "REK " }, { 4, "RELL " }, { 4, "RELV " }, { 4, "REMX " }, { 3, "REM " }, { 4, "RENN " }, { 4, "RENT " }, { 3, "REN " }, { 3, "RES " }, { 4, "RETL " }, { 4, "RETS " }, { 4, "REVU " }, { 3, "REV " }, { 3, "REW " }, { 4, "REXI " }, { 4, "REXX " }, { 3, "REX " }, { 3, "REZ " }, { 2, "RE " }, { 3, "RFA " }, { 3, "RFG " }, { 4, "RFIL " }, { 3, "RFI " }, { 4, "RFMD " }, { 4, "RFMI " }, { 3, "RFV " }, { 2, "RF " }, { 3, "RGA " }, { 4, "RGCO " }, { 3, "RGC " }, { 4, "RGDX " }, { 4, "RGEN " }, { 3, "RGI " }, { 4, "RGLD " }, { 4, "RGNC " }, { 3, "RGR " }, { 3, "RGS " }, { 3, "RHI " }, { 3, "RHS " }, { 3, "RHT " }, { 4, "RICK " }, { 3, "RIC " }, { 3, "RIF " }, { 4, "RIGL " }, { 3, "RIG " }, { 3, "RIH " }, { 4, "RIMG " }, { 4, "RIMM " }, { 3, "RIO " }, { 4, "RITT " }, { 3, "RIT " }, { 4, "RIVR " }, { 3, "RJA " }, { 4, "RJET " }, { 3, "RJF " }, { 3, "RJI " }, { 3, "RJN " }, { 3, "RJZ " }, { 3, "RKH " }, { 3, "RKT " }, { 3, "RLD " }, { 3, "RLH " }, { 3, "RLI " }, { 3, "RLJ " }, { 4, "RLOC " }, { 4, "RLOG " }, { 4, "RLRN " }, { 2, "RL " }, { 4, "RMBS " }, { 4, "RMCF " }, { 3, "RMD " }, { 4, "RMKR " }, { 4, "RMTI " }, { 4, "RMTR " }, { 3, "RMT " }, { 4, "RNET " }, { 3, "RNE " }, { 4, "RNIN " }, { 3, "RNJ " }, { 3, "RNN " }, { 4, "RNOW " }, { 3, "RNO " }, { 3, "RNP " }, { 3, "RNR " }, { 4, "RNST " }, { 4, "RNWK " }, { 3, "RNY " }, { 4, "ROCK " }, { 4, "ROCM " }, { 3, "ROC " }, { 4, "RODM " }, { 3, "ROG " }, { 5, "ROIAK " }, { 4, "ROIA " }, { 5, "ROICU " }, { 5, "ROICW " }, { 4, "ROIC " }, { 3, "ROI " }, { 3, "ROK " }, { 4, "ROLA " }, { 4, "ROLL " }, { 3, "ROL " }, { 4, "ROMA " }, { 3, "ROM " }, { 4, "ROOF " }, { 3, "ROP " }, { 4, "ROSA " }, { 4, "ROSE " }, { 4, "ROSG " }, { 4, "ROST " }, { 4, "ROVI " }, { 3, "ROX " }, { 4, "ROYL " }, { 3, "RPG " }, { 3, "RPI " }, { 3, "RPM " }, { 5, "RPRXW " }, { 5, "RPRXZ " }, { 4, "RPRX " }, { 4, "RPTP " }, { 3, "RPT " }, { 3, "RPV " }, { 4, "RPXC " }, { 3, "RPX " }, { 2, "RP " }, { 3, "RQI " }, { 3, "RRC " }, { 3, "RRD " }, { 4, "RRGB " }, { 3, "RRR " }, { 4, "RRST " }, { 4, "RRTS " }, { 3, "RSG " }, { 3, "RSH " }, { 4, "RSOL " }, { 3, "RSO " }, { 3, "RSP " }, { 4, "RSTI " }, { 3, "RST " }, { 4, "RSUN " }, { 3, "RSU " }, { 3, "RSW " }, { 4, "RSXJ " }, { 3, "RSX " }, { 4, "RSYS " }, { 3, "RSY " }, { 2, "RS " }, { 4, "RTEC " }, { 3, "RTH " }, { 4, "RTIX " }, { 3, "RTI " }, { 3, "RTK " }, { 4, "RTLA " }, { 4, "RTLX " }, { 3, "RTL " }, { 3, "RTM " }, { 3, "RTN " }, { 3, "RTR " }, { 4, "RTSA " }, { 3, "RTS " }, { 2, "RT " }, { 3, "RUE " }, { 3, "RUK " }, { 4, "RURL " }, { 5, "RUSHA " }, { 5, "RUSHB " }, { 4, "RUSL " }, { 4, "RUSS " }, { 4, "RUTH " }, { 4, "RVBD " }, { 3, "RVM " }, { 3, "RVP " }, { 3, "RVR " }, { 4, "RVSB " }, { 4, "RVSN " }, { 3, "RVT " }, { 3, "RWC " }, { 3, "RWG " }, { 3, "RWJ " }, { 3, "RWK " }, { 3, "RWL " }, { 3, "RWM " }, { 3, "RWO " }, { 3, "RWR " }, { 3, "RWT " }, { 3, "RWV " }, { 3, "RWW " }, { 3, "RWX " }, { 3, "RXD " }, { 4, "RXII " }, { 3, "RXI " }, { 3, "RXL " }, { 5, "RYAAY " }, { 3, "RYE " }, { 3, "RYF " }, { 3, "RYH " }, { 3, "RYJ " }, { 3, "RYL " }, { 3, "RYN " }, { 3, "RYT " }, { 3, "RYU " }, { 2, "RY " }, { 3, "RZG " }, { 3, "RZV " }, { 1, "R " }, { 4, "SAAS " }, { 3, "SAA " }, { 4, "SABA " }, { 3, "SAB " }, { 4, "SAFM " }, { 4, "SAFT " }, { 4, "SAGG " }, { 3, "SAH " }, { 4, "SAIA " }, { 3, "SAI " }, { 4, "SALM " }, { 3, "SAL " }, { 3, "SAM " }, { 4, "SANM " }, { 5, "SANWW " }, { 5, "SANWZ " }, { 4, "SANW " }, { 3, "SAN " }, { 4, "SAPE " }, { 4, "SAPX " }, { 3, "SAP " }, { 3, "SAR " }, { 4, "SASR " }, { 4, "SATC " }, { 4, "SATS " }, { 4, "SAVB " }, { 4, "SAVE " }, { 2, "SA " }, { 4, "SBAC " }, { 3, "SBA " }, { 4, "SBBX " }, { 3, "SBB " }, { 4, "SBCF " }, { 4, "SBGI " }, { 3, "SBH " }, { 5, "SBIBN " }, { 5, "SBIBW " }, { 4, "SBIB " }, { 3, "SBI " }, { 4, "SBLK " }, { 3, "SBM " }, { 4, "SBND " }, { 5, "SBNYW " }, { 4, "SBNY " }, { 4, "SBRA " }, { 3, "SBR " }, { 4, "SBSA " }, { 4, "SBSI " }, { 3, "SBS " }, { 4, "SBUX " }, { 3, "SBV " }, { 3, "SBW " }, { 3, "SBX " }, { 2, "SB " }, { 4, "SCBT " }, { 4, "SCCO " }, { 3, "SCC " }, { 3, "SCD " }, { 4, "SCEI " }, { 3, "SCG " }, { 4, "SCHA " }, { 4, "SCHB " }, { 4, "SCHC " }, { 4, "SCHE " }, { 4, "SCHF " }, { 4, "SCHG " }, { 4, "SCHH " }, { 4, "SCHL " }, { 4, "SCHM " }, { 4, "SCHN " }, { 4, "SCHO " }, { 4, "SCHP " }, { 4, "SCHR " }, { 4, "SCHS " }, { 4, "SCHV " }, { 4, "SCHW " }, { 4, "SCHX " }, { 4, "SCIF " }, { 4, "SCIL " }, { 4, "SCIN " }, { 3, "SCI " }, { 3, "SCJ " }, { 4, "SCKT " }, { 4, "SCLN " }, { 3, "SCL " }, { 5, "SCMFO " }, { 4, "SCMF " }, { 4, "SCMP " }, { 4, "SCMR " }, { 4, "SCOK " }, { 4, "SCON " }, { 4, "SCOR " }, { 3, "SCO " }, { 4, "SCPB " }, { 3, "SCR " }, { 4, "SCSC " }, { 4, "SCSS " }, { 3, "SCS " }, { 3, "SCT " }, { 3, "SCU " }, { 4, "SCVL " }, { 3, "SCX " }, { 3, "SCZ " }, { 3, "SDA " }, { 4, "SDBT " }, { 3, "SDD " }, { 4, "SDIV " }, { 4, "SDIX " }, { 3, "SDK " }, { 4, "SDOW " }, { 3, "SDP " }, { 4, "SDRL " }, { 3, "SDS " }, { 3, "SDT " }, { 3, "SDY " }, { 2, "SD " }, { 4, "SEAC " }, { 3, "SEA " }, { 3, "SED " }, { 4, "SEED " }, { 3, "SEE " }, { 3, "SEF " }, { 3, "SEH " }, { 4, "SEIC " }, { 4, "SEMG " }, { 3, "SEM " }, { 5, "SENEA " }, { 5, "SENEB " }, { 3, "SEP " }, { 4, "SERV " }, { 3, "SEV " }, { 2, "SE " }, { 3, "SFD " }, { 3, "SFE " }, { 3, "SFG " }, { 3, "SFI " }, { 3, "SFK " }, { 4, "SFLA " }, { 4, "SFLY " }, { 3, "SFL " }, { 4, "SFNC " }, { 3, "SFN " }, { 4, "SFSA " }, { 4, "SFSF " }, { 4, "SFST " }, { 4, "SFUN " }, { 3, "SFY " }, { 2, "SF " }, { 4, "SGAR " }, { 3, "SGA " }, { 3, "SGB " }, { 3, "SGC " }, { 4, "SGEN " }, { 3, "SGF " }, { 3, "SGG " }, { 3, "SGI " }, { 3, "SGK " }, { 3, "SGL " }, { 4, "SGMA " }, { 4, "SGMO " }, { 4, "SGMS " }, { 4, "SGNT " }, { 4, "SGOC " }, { 4, "SGOL " }, { 4, "SGRP " }, { 3, "SGS " }, { 3, "SGU " }, { 3, "SGY " }, { 3, "SGZ " }, { 4, "SHAW " }, { 4, "SHBI " }, { 4, "SHBT " }, { 4, "SHEN " }, { 4, "SHFL " }, { 3, "SHG " }, { 5, "SHIPD " }, { 5, "SHIPW " }, { 3, "SHI " }, { 4, "SHLD " }, { 4, "SHLM " }, { 4, "SHLO " }, { 4, "SHMO " }, { 4, "SHMR " }, { 3, "SHM " }, { 3, "SHN " }, { 4, "SHOO " }, { 4, "SHOR " }, { 3, "SHO " }, { 5, "SHPGY " }, { 3, "SHP " }, { 3, "SHS " }, { 4, "SHVY " }, { 3, "SHV " }, { 3, "SHW " }, { 3, "SHY " }, { 3, "SHZ " }, { 2, "SH " }, { 4, "SIAL " }, { 4, "SICK " }, { 3, "SID " }, { 4, "SIEB " }, { 4, "SIFI " }, { 4, "SIFY " }, { 3, "SIF " }, { 4, "SIGA " }, { 4, "SIGI " }, { 4, "SIGM " }, { 3, "SIG " }, { 4, "SIHI " }, { 3, "SIJ " }, { 4, "SILC " }, { 4, "SILU " }, { 3, "SIL " }, { 4, "SIMG " }, { 4, "SIMO " }, { 3, "SIM " }, { 4, "SINA " }, { 4, "SINO " }, { 4, "SIRI " }, { 4, "SIRO " }, { 5, "SIVBO " }, { 4, "SIVB " }, { 4, "SIVR " }, { 3, "SIX " }, { 2, "SI " }, { 3, "SJB " }, { 3, "SJF " }, { 3, "SJH " }, { 3, "SJI " }, { 3, "SJL " }, { 3, "SJM " }, { 3, "SJR " }, { 3, "SJT " }, { 3, "SJW " }, { 4, "SKBI " }, { 3, "SKF " }, { 3, "SKH " }, { 3, "SKK " }, { 3, "SKL " }, { 3, "SKM " }, { 3, "SKN " }, { 4, "SKOR " }, { 3, "SKS " }, { 3, "SKT " }, { 3, "SKX " }, { 4, "SKYW " }, { 3, "SKY " }, { 4, "SLAB " }, { 3, "SLA " }, { 4, "SLBT " }, { 3, "SLB " }, { 3, "SLE " }, { 3, "SLF " }, { 4, "SLGN " }, { 3, "SLG " }, { 3, "SLH " }, { 3, "SLI " }, { 3, "SLM " }, { 3, "SLP " }, { 4, "SLRC " }, { 4, "SLTC " }, { 4, "SLTM " }, { 3, "SLT " }, { 4, "SLVY " }, { 3, "SLV " }, { 3, "SLW " }, { 4, "SLXP " }, { 3, "SLX " }, { 4, "SLYG " }, { 4, "SLYV " }, { 3, "SLY " }, { 3, "SMA " }, { 4, "SMBC " }, { 4, "SMBL " }, { 3, "SMB " }, { 4, "SMCG " }, { 4, "SMCI " }, { 4, "SMDD " }, { 4, "SMED " }, { 4, "SMFG " }, { 3, "SMF " }, { 3, "SMG " }, { 3, "SMH " }, { 4, "SMIT " }, { 3, "SMI " }, { 3, "SMK " }, { 4, "SMMF " }, { 4, "SMMU " }, { 3, "SMN " }, { 4, "SMOD " }, { 3, "SMP " }, { 4, "SMRT " }, { 4, "SMSC " }, { 4, "SMSI " }, { 3, "SMS " }, { 4, "SMTC " }, { 4, "SMTX " }, { 3, "SMT " }, { 3, "SMU " }, { 2, "SM " }, { 4, "SNAK " }, { 3, "SNA " }, { 4, "SNBC " }, { 4, "SNCR " }, { 4, "SNDA " }, { 4, "SNDK " }, { 3, "SNE " }, { 5, "SNFCA " }, { 3, "SNF " }, { 4, "SNHY " }, { 3, "SNH " }, { 3, "SNI " }, { 3, "SNK " }, { 4, "SNMX " }, { 3, "SNN " }, { 4, "SNPS " }, { 3, "SNP " }, { 4, "SNSS " }, { 5, "SNSTA " }, { 4, "SNTA " }, { 4, "SNTS " }, { 3, "SNT " }, { 3, "SNV " }, { 3, "SNX " }, { 3, "SNY " }, { 3, "SOA " }, { 4, "SOCB " }, { 4, "SODA " }, { 4, "SOFO " }, { 3, "SOG " }, { 4, "SOHU " }, { 4, "SOIL " }, { 4, "SOLR " }, { 3, "SOL " }, { 4, "SOMH " }, { 4, "SOMX " }, { 4, "SONA " }, { 4, "SONC " }, { 4, "SONE " }, { 4, "SONO " }, { 4, "SONS " }, { 3, "SON " }, { 3, "SOQ " }, { 4, "SORL " }, { 3, "SOR " }, { 3, "SOS " }, { 4, "SOXL " }, { 4, "SOXS " }, { 4, "SOXX " }, { 2, "SO " }, { 4, "SPAN " }, { 4, "SPAR " }, { 3, "SPA " }, { 4, "SPBC " }, { 3, "SPB " }, { 5, "SPCHA " }, { 5, "SPCHB " }, { 4, "SPEX " }, { 3, "SPE " }, { 3, "SPF " }, { 4, "SPGH " }, { 3, "SPG " }, { 4, "SPHB " }, { 3, "SPH " }, { 4, "SPIL " }, { 4, "SPIR " }, { 4, "SPLS " }, { 4, "SPLV " }, { 4, "SPMD " }, { 4, "SPNC " }, { 4, "SPNS " }, { 3, "SPN " }, { 4, "SPPI " }, { 5, "SPPRO " }, { 5, "SPPRP " }, { 4, "SPPR " }, { 3, "SPP " }, { 4, "SPRD " }, { 4, "SPRO " }, { 4, "SPRT " }, { 3, "SPR " }, { 4, "SPSC " }, { 4, "SPTN " }, { 3, "SPU " }, { 5, "SPWRA " }, { 5, "SPWRB " }, { 3, "SPW " }, { 4, "SPXU " }, { 4, "SPYG " }, { 4, "SPYV " }, { 3, "SPY " }, { 3, "SQI " }, { 3, "SQM " }, { 4, "SQNM " }, { 4, "SQNS " }, { 4, "SQQQ " }, { 4, "SRCE " }, { 4, "SRCL " }, { 4, "SRDX " }, { 4, "SREV " }, { 3, "SRE " }, { 3, "SRI " }, { 4, "SRLS " }, { 4, "SRSL " }, { 3, "SRS " }, { 4, "SRTY " }, { 3, "SRT " }, { 3, "SRV " }, { 3, "SRX " }, { 3, "SRZ " }, { 2, "SR " }, { 4, "SSBI " }, { 3, "SSD " }, { 3, "SSE " }, { 4, "SSFN " }, { 3, "SSG " }, { 3, "SSI " }, { 3, "SSL " }, { 4, "SSNC " }, { 3, "SSN " }, { 3, "SSO " }, { 3, "SSP " }, { 4, "SSRI " }, { 4, "SSRX " }, { 3, "SSS " }, { 3, "SSW " }, { 4, "SSYS " }, { 3, "SSY " }, { 4, "STAA " }, { 4, "STAG " }, { 4, "STAN " }, { 4, "STBA " }, { 4, "STBC " }, { 4, "STBZ " }, { 3, "STC " }, { 3, "STD " }, { 4, "STEC " }, { 4, "STEI " }, { 4, "STEL " }, { 4, "STEM " }, { 3, "STE " }, { 4, "STFC " }, { 4, "STIP " }, { 3, "STI " }, { 3, "STJ " }, { 4, "STKL " }, { 3, "STK " }, { 4, "STLD " }, { 4, "STLY " }, { 3, "STL " }, { 4, "STMP " }, { 3, "STM " }, { 4, "STND " }, { 4, "STNG " }, { 4, "STNR " }, { 3, "STN " }, { 4, "STON " }, { 3, "STO " }, { 4, "STPP " }, { 4, "STPZ " }, { 3, "STP " }, { 4, "STRA " }, { 4, "STRC " }, { 4, "STRI " }, { 4, "STRL " }, { 4, "STRM " }, { 4, "STRN " }, { 4, "STRS " }, { 4, "STRT " }, { 3, "STR " }, { 4, "STSA " }, { 3, "STS " }, { 3, "STT " }, { 3, "STV " }, { 4, "STWD " }, { 4, "STXS " }, { 3, "STX " }, { 3, "STZ " }, { 2, "ST " }, { 4, "SUBK " }, { 3, "SUB " }, { 3, "SUG " }, { 3, "SUI " }, { 4, "SUMR " }, { 4, "SUNH " }, { 4, "SUNS " }, { 3, "SUN " }, { 4, "SUPG " }, { 4, "SUPX " }, { 3, "SUP " }, { 4, "SURG " }, { 4, "SURW " }, { 4, "SUSQ " }, { 4, "SUSS " }, { 4, "SUTR " }, { 2, "SU " }, { 3, "SVA " }, { 4, "SVBI " }, { 4, "SVBL " }, { 3, "SVM " }, { 4, "SVNT " }, { 3, "SVN " }, { 3, "SVT " }, { 3, "SVU " }, { 4, "SVVC " }, { 4, "SVVS " }, { 3, "SVW " }, { 3, "SWC " }, { 4, "SWFT " }, { 4, "SWHC " }, { 3, "SWH " }, { 4, "SWIR " }, { 3, "SWI " }, { 4, "SWKS " }, { 3, "SWK " }, { 3, "SWM " }, { 3, "SWN " }, { 4, "SWSH " }, { 3, "SWS " }, { 4, "SWTX " }, { 3, "SWU " }, { 3, "SWX " }, { 3, "SWY " }, { 3, "SWZ " }, { 4, "SXCI " }, { 3, "SXI " }, { 3, "SXL " }, { 3, "SXT " }, { 3, "SYA " }, { 5, "SYBTP " }, { 4, "SYBT " }, { 4, "SYKE " }, { 3, "SYK " }, { 4, "SYMC " }, { 4, "SYMM " }, { 4, "SYMS " }, { 4, "SYMX " }, { 4, "SYNA " }, { 4, "SYNL " }, { 4, "SYNM " }, { 4, "SYNO " }, { 4, "SYNT " }, { 4, "SYPR " }, { 4, "SYSW " }, { 3, "SYT " }, { 4, "SYUT " }, { 3, "SYX " }, { 3, "SYY " }, { 3, "SZE " }, { 3, "SZK " }, { 3, "SZO " }, { 3, "SZR " }, { 3, "SZX " }, { 4, "SZYM " }, { 1, "S " }, { 4, "TACT " }, { 3, "TAC " }, { 4, "TAIT " }, { 3, "TAI " }, { 3, "TAL " }, { 3, "TAM " }, { 3, "TAN " }, { 4, "TAOM " }, { 3, "TAO " }, { 3, "TAP " }, { 4, "TASR " }, { 4, "TAST " }, { 4, "TATT " }, { 3, "TAT " }, { 4, "TAXI " }, { 5, "TAYCP " }, { 4, "TAYC " }, { 4, "TAYD " }, { 2, "TA " }, { 4, "TBAC " }, { 4, "TBAR " }, { 4, "TBBK " }, { 4, "TBET " }, { 3, "TBF " }, { 3, "TBH " }, { 3, "TBI " }, { 3, "TBL " }, { 4, "TBNK " }, { 4, "TBOW " }, { 4, "TBSI " }, { 3, "TBT " }, { 4, "TBUS " }, { 3, "TBV " }, { 3, "TBX " }, { 3, "TBZ " }, { 4, "TCAP " }, { 5, "TCBIW " }, { 4, "TCBI " }, { 4, "TCBK " }, { 3, "TCB " }, { 4, "TCCO " }, { 4, "TCHC " }, { 3, "TCI " }, { 3, "TCK " }, { 4, "TCLP " }, { 3, "TCL " }, { 3, "TCO " }, { 4, "TCRD " }, { 3, "TCX " }, { 2, "TC " }, { 3, "TDC " }, { 3, "TDD " }, { 3, "TDE " }, { 3, "TDF " }, { 3, "TDG " }, { 3, "TDH " }, { 3, "TDI " }, { 3, "TDJ " }, { 3, "TDN " }, { 3, "TDS " }, { 3, "TDV " }, { 3, "TDW " }, { 3, "TDX " }, { 3, "TDY " }, { 2, "TD " }, { 4, "TEAR " }, { 4, "TECD " }, { 4, "TECH " }, { 5, "TECUA " }, { 5, "TECUB " }, { 3, "TEF " }, { 3, "TEG " }, { 3, "TEI " }, { 4, "TELK " }, { 3, "TEL " }, { 4, "TENZ " }, { 3, "TEN " }, { 3, "TEO " }, { 3, "TER " }, { 4, "TESO " }, { 4, "TESS " }, { 3, "TEU " }, { 4, "TEVA " }, { 3, "TEX " }, { 2, "TE " }, { 4, "TFCO " }, { 3, "TFC " }, { 3, "TFI " }, { 3, "TFM " }, { 5, "TFONY " }, { 4, "TFSL " }, { 3, "TFX " }, { 2, "TF " }, { 5, "TGALD " }, { 3, "TGA " }, { 3, "TGB " }, { 3, "TGC " }, { 4, "TGEM " }, { 3, "TGE " }, { 3, "TGH " }, { 3, "TGI " }, { 3, "TGP " }, { 3, "TGR " }, { 3, "TGS " }, { 3, "TGT " }, { 3, "TGX " }, { 2, "TG " }, { 3, "THC " }, { 3, "THD " }, { 4, "THER " }, { 4, "THFF " }, { 3, "THG " }, { 3, "THI " }, { 4, "THLD " }, { 3, "THM " }, { 4, "THOR " }, { 3, "THO " }, { 4, "THQI " }, { 4, "THRD " }, { 4, "THRX " }, { 3, "THR " }, { 3, "THS " }, { 4, "THTI " }, { 4, "TIBB " }, { 4, "TIBX " }, { 4, "TICC " }, { 4, "TIER " }, { 3, "TIE " }, { 3, "TIF " }, { 4, "TIGR " }, { 4, "TIII " }, { 3, "TIK " }, { 4, "TINY " }, { 3, "TIN " }, { 4, "TIPZ " }, { 3, "TIP " }, { 4, "TISA " }, { 4, "TISI " }, { 3, "TIS " }, { 4, "TITN " }, { 4, "TIVO " }, { 3, "TIV " }, { 2, "TI " }, { 3, "TJX " }, { 3, "TKC " }, { 3, "TKF " }, { 4, "TKLC " }, { 4, "TKMR " }, { 3, "TKR " }, { 2, "TK " }, { 4, "TLAB " }, { 3, "TLB " }, { 4, "TLEO " }, { 3, "TLF " }, { 3, "TLH " }, { 3, "TLI " }, { 3, "TLK " }, { 4, "TLLP " }, { 3, "TLL " }, { 3, "TLM " }, { 3, "TLO " }, { 3, "TLP " }, { 3, "TLR " }, { 3, "TLT " }, { 4, "TLVT " }, { 3, "TMF " }, { 3, "TMH " }, { 3, "TMK " }, { 3, "TMM " }, { 4, "TMNG " }, { 3, "TMO " }, { 3, "TMP " }, { 3, "TMS " }, { 3, "TMV " }, { 3, "TMW " }, { 3, "TMX " }, { 2, "TM " }, { 4, "TNAV " }, { 3, "TNA " }, { 3, "TNB " }, { 4, "TNCC " }, { 3, "TNC " }, { 4, "TNDM " }, { 3, "TNE " }, { 4, "TNGN " }, { 3, "TNH " }, { 3, "TNK " }, { 3, "TNP " }, { 3, "TNS " }, { 4, "TOBC " }, { 4, "TOFC " }, { 3, "TOF " }, { 3, "TOK " }, { 3, "TOL " }, { 3, "TOO " }, { 5, "TOPSD " }, { 4, "TORM " }, { 4, "TOTS " }, { 3, "TOT " }, { 4, "TOWN " }, { 4, "TOWR " }, { 4, "TPCG " }, { 3, "TPC " }, { 4, "TPGI " }, { 3, "TPI " }, { 4, "TPLM " }, { 3, "TPL " }, { 3, "TPS " }, { 3, "TPX " }, { 3, "TPZ " }, { 4, "TQNT " }, { 4, "TQQQ " }, { 4, "TRAK " }, { 4, "TRBR " }, { 4, "TRCR " }, { 3, "TRC " }, { 4, "TREE " }, { 4, "TREX " }, { 3, "TRF " }, { 4, "TRGL " }, { 4, "TRGP " }, { 4, "TRGT " }, { 3, "TRH " }, { 4, "TRIB " }, { 4, "TRID " }, { 4, "TRIT " }, { 3, "TRI " }, { 3, "TRK " }, { 4, "TRLG " }, { 4, "TRMB " }, { 4, "TRMD " }, { 4, "TRMK " }, { 4, "TRMS " }, { 4, "TRND " }, { 4, "TRNM " }, { 4, "TRNO " }, { 4, "TRNS " }, { 4, "TRNX " }, { 3, "TRN " }, { 4, "TROW " }, { 3, "TRP " }, { 3, "TRR " }, { 4, "TRST " }, { 4, "TRSY " }, { 3, "TRS " }, { 3, "TRT " }, { 3, "TRU " }, { 3, "TRV " }, { 3, "TRW " }, { 3, "TRX " }, { 2, "TR " }, { 4, "TSBK " }, { 4, "TSCO " }, { 5, "TSEMG " }, { 4, "TSEM " }, { 3, "TSH " }, { 3, "TSI " }, { 4, "TSLA " }, { 3, "TSL " }, { 3, "TSM " }, { 3, "TSN " }, { 4, "TSON " }, { 3, "TSO " }, { 4, "TSPT " }, { 4, "TSRA " }, { 4, "TSRI " }, { 4, "TSRX " }, { 3, "TSS " }, { 4, "TSTC " }, { 4, "TSTF " }, { 3, "TST " }, { 3, "TSU " }, { 4, "TSXV " }, { 4, "TSYS " }, { 2, "TS " }, { 3, "TTC " }, { 4, "TTEC " }, { 4, "TTEK " }, { 3, "TTF " }, { 4, "TTGT " }, { 4, "TTHI " }, { 3, "TTH " }, { 3, "TTI " }, { 4, "TTMI " }, { 3, "TTM " }, { 3, "TTO " }, { 4, "TTTM " }, { 3, "TTT " }, { 4, "TTWO " }, { 3, "TUC " }, { 4, "TUES " }, { 3, "TUP " }, { 3, "TUR " }, { 3, "TUZ " }, { 2, "TU " }, { 3, "TVC " }, { 3, "TVE " }, { 4, "TVIX " }, { 4, "TVIZ " }, { 3, "TVL " }, { 2, "TV " }, { 3, "TWC " }, { 4, "TWER " }, { 4, "TWGP " }, { 4, "TWIN " }, { 3, "TWI " }, { 4, "TWMC " }, { 3, "TWM " }, { 3, "TWN " }, { 4, "TWON " }, { 3, "TWO " }, { 3, "TWQ " }, { 4, "TWTC " }, { 3, "TWX " }, { 2, "TW " }, { 4, "TXCC " }, { 3, "TXI " }, { 3, "TXN " }, { 4, "TXRH " }, { 3, "TXT " }, { 2, "TX " }, { 4, "TYBS " }, { 3, "TYC " }, { 3, "TYD " }, { 3, "TYG " }, { 3, "TYH " }, { 3, "TYL " }, { 4, "TYNS " }, { 3, "TYN " }, { 3, "TYO " }, { 4, "TYPE " }, { 3, "TYP " }, { 3, "TYW " }, { 3, "TYY " }, { 2, "TY " }, { 3, "TZA " }, { 3, "TZD " }, { 3, "TZE " }, { 3, "TZF " }, { 3, "TZG " }, { 3, "TZI " }, { 3, "TZK " }, { 3, "TZL " }, { 4, "TZOO " }, { 3, "TZO " }, { 3, "TZV " }, { 4, "TZYM " }, { 1, "T " }, { 4, "UACL " }, { 3, "UAG " }, { 3, "UAL " }, { 3, "UAM " }, { 3, "UAN " }, { 2, "UA " }, { 3, "UBA " }, { 4, "UBCP " }, { 3, "UBC " }, { 4, "UBFO " }, { 3, "UBG " }, { 3, "UBM " }, { 4, "UBNK " }, { 3, "UBN " }, { 4, "UBOH " }, { 5, "UBPSU " }, { 3, "UBP " }, { 3, "UBR " }, { 4, "UBSH " }, { 4, "UBSI " }, { 3, "UBS " }, { 3, "UBT " }, { 4, "UCBA " }, { 5, "UCBID " }, { 3, "UCC " }, { 3, "UCD " }, { 4, "UCFC " }, { 3, "UCI " }, { 3, "UCO " }, { 4, "UCTT " }, { 4, "UDNT " }, { 3, "UDN " }, { 4, "UDOW " }, { 4, "UDRL " }, { 3, "UDR " }, { 3, "UEC " }, { 4, "UEIC " }, { 4, "UEPS " }, { 4, "UFCS " }, { 3, "UFI " }, { 4, "UFPI " }, { 4, "UFPT " }, { 3, "UFS " }, { 3, "UGA " }, { 4, "UGEM " }, { 3, "UGE " }, { 3, "UGI " }, { 3, "UGL " }, { 3, "UGP " }, { 2, "UG " }, { 4, "UHAL " }, { 3, "UHN " }, { 3, "UHS " }, { 3, "UHT " }, { 3, "UIL " }, { 3, "UIS " }, { 3, "UJB " }, { 3, "UKF " }, { 3, "UKK " }, { 3, "UKW " }, { 4, "ULBI " }, { 3, "ULE " }, { 4, "ULGX " }, { 4, "ULTA " }, { 4, "ULTI " }, { 4, "ULTR " }, { 3, "ULU " }, { 2, "UL " }, { 4, "UMBF " }, { 3, "UMC " }, { 4, "UMDD " }, { 3, "UMH " }, { 4, "UMPQ " }, { 3, "UMX " }, { 4, "UNAM " }, { 3, "UNB " }, { 4, "UNFI " }, { 4, "UNFY " }, { 3, "UNF " }, { 3, "UNG " }, { 3, "UNH " }, { 4, "UNIS " }, { 3, "UNL " }, { 3, "UNM " }, { 3, "UNP " }, { 3, "UNS " }, { 4, "UNTD " }, { 4, "UNTK " }, { 4, "UNTY " }, { 3, "UNT " }, { 4, "UNXL " }, { 2, "UN " }, { 3, "UPG " }, { 3, "UPI " }, { 3, "UPL " }, { 4, "UPRO " }, { 3, "UPS " }, { 3, "UPV " }, { 3, "UPW " }, { 3, "UQM " }, { 3, "URA " }, { 4, "URBN " }, { 3, "URE " }, { 3, "URG " }, { 3, "URI " }, { 4, "URRE " }, { 3, "URR " }, { 3, "URS " }, { 4, "URTY " }, { 3, "URZ " }, { 4, "USAK " }, { 4, "USAP " }, { 5, "USATP " }, { 5, "USATW " }, { 5, "USATZ " }, { 4, "USAT " }, { 3, "USA " }, { 4, "USBI " }, { 3, "USB " }, { 4, "USCI " }, { 4, "USCR " }, { 3, "USD " }, { 4, "USEG " }, { 3, "USG " }, { 4, "USHS " }, { 4, "USLM " }, { 3, "USL " }, { 4, "USMO " }, { 3, "USM " }, { 4, "USNA " }, { 3, "USO " }, { 4, "USPH " }, { 4, "USTR " }, { 3, "UST " }, { 3, "USU " }, { 3, "USV " }, { 3, "UTA " }, { 4, "UTEK " }, { 3, "UTF " }, { 3, "UTG " }, { 4, "UTHR " }, { 3, "UTH " }, { 4, "UTIW " }, { 3, "UTI " }, { 3, "UTL " }, { 4, "UTMD " }, { 3, "UTR " }, { 4, "UTSI " }, { 3, "UTX " }, { 4, "UUPT " }, { 3, "UUP " }, { 3, "UUU " }, { 3, "UVE " }, { 3, "UVG " }, { 4, "UVSP " }, { 3, "UVT " }, { 3, "UVU " }, { 3, "UVV " }, { 3, "UWC " }, { 3, "UWM " }, { 3, "UWN " }, { 3, "UXG " }, { 3, "UXI " }, { 3, "UXJ " }, { 3, "UYG " }, { 3, "UYM " }, { 3, "UZA " }, { 4, "VALE " }, { 4, "VALU " }, { 4, "VALV " }, { 3, "VAL " }, { 3, "VAR " }, { 4, "VASC " }, { 3, "VAW " }, { 4, "VBFC " }, { 3, "VBF " }, { 3, "VBK " }, { 3, "VBR " }, { 2, "VB " }, { 4, "VCBI " }, { 3, "VCF " }, { 4, "VCIT " }, { 3, "VCI " }, { 4, "VCLK " }, { 4, "VCLT " }, { 3, "VCO " }, { 3, "VCR " }, { 4, "VCSH " }, { 3, "VCV " }, { 2, "VC " }, { 3, "VDC " }, { 3, "VDE " }, { 4, "VDSI " }, { 3, "VEA " }, { 4, "VECO " }, { 4, "VELT " }, { 3, "VEU " }, { 2, "VE " }, { 3, "VFC " }, { 3, "VFH " }, { 3, "VFL " }, { 4, "VGEM " }, { 4, "VGIT " }, { 3, "VGK " }, { 4, "VGLT " }, { 3, "VGM " }, { 3, "VGR " }, { 4, "VGSH " }, { 3, "VGT " }, { 3, "VGZ " }, { 2, "VG " }, { 3, "VHC " }, { 3, "VHI " }, { 3, "VHS " }, { 3, "VHT " }, { 4, "VIAS " }, { 3, "VIA " }, { 4, "VICL " }, { 4, "VICR " }, { 4, "VIDE " }, { 4, "VIFL " }, { 3, "VIG " }, { 4, "VIIX " }, { 4, "VIIZ " }, { 3, "VII " }, { 4, "VIMC " }, { 3, "VIM " }, { 4, "VIOG " }, { 4, "VIOO " }, { 4, "VIOV " }, { 3, "VIP " }, { 4, "VIRC " }, { 4, "VISN " }, { 4, "VIST " }, { 3, "VIS " }, { 4, "VITC " }, { 3, "VIT " }, { 4, "VIVO " }, { 3, "VIV " }, { 4, "VIXM " }, { 4, "VIXY " }, { 3, "VKI " }, { 3, "VKL " }, { 3, "VKQ " }, { 5, "VLCCF " }, { 5, "VLGEA " }, { 4, "VLNC " }, { 3, "VLO " }, { 4, "VLTR " }, { 3, "VLT " }, { 5, "VLYWW " }, { 3, "VLY " }, { 4, "VMBS " }, { 3, "VMC " }, { 4, "VMED " }, { 3, "VMI " }, { 3, "VMM " }, { 3, "VMO " }, { 3, "VMV " }, { 3, "VMW " }, { 4, "VNDA " }, { 4, "VNET " }, { 3, "VNM " }, { 4, "VNOD " }, { 3, "VNO " }, { 4, "VNQI " }, { 3, "VNQ " }, { 3, "VNR " }, { 3, "VNV " }, { 4, "VOCS " }, { 3, "VOC " }, { 3, "VOD " }, { 3, "VOE " }, { 3, "VOG " }, { 4, "VOLC " }, { 4, "VONE " }, { 4, "VONG " }, { 4, "VONV " }, { 4, "VOOG " }, { 4, "VOOV " }, { 3, "VOO " }, { 3, "VOQ " }, { 3, "VOT " }, { 4, "VOXX " }, { 3, "VOX " }, { 2, "VO " }, { 4, "VPFG " }, { 3, "VPF " }, { 3, "VPG " }, { 4, "VPHM " }, { 3, "VPL " }, { 4, "VPRT " }, { 3, "VPU " }, { 3, "VPV " }, { 3, "VQT " }, { 2, "VQ " }, { 3, "VRA " }, { 3, "VRD " }, { 4, "VRGY " }, { 4, "VRML " }, { 4, "VRNG " }, { 4, "VRNM " }, { 4, "VRNT " }, { 4, "VROM " }, { 4, "VRSK " }, { 4, "VRSN " }, { 3, "VRS " }, { 4, "VRTA " }, { 4, "VRTB " }, { 4, "VRTS " }, { 4, "VRTU " }, { 4, "VRTX " }, { 4, "VRUS " }, { 3, "VRX " }, { 2, "VR " }, { 4, "VSAT " }, { 4, "VSBN " }, { 4, "VSCI " }, { 4, "VSCP " }, { 4, "VSEA " }, { 4, "VSEC " }, { 3, "VSH " }, { 3, "VSI " }, { 4, "VSNT " }, { 3, "VSR " }, { 3, "VSS " }, { 3, "VTA " }, { 3, "VTG " }, { 4, "VTHR " }, { 3, "VTI " }, { 3, "VTJ " }, { 4, "VTNC " }, { 3, "VTN " }, { 4, "VTRO " }, { 3, "VTR " }, { 4, "VTSS " }, { 4, "VTUS " }, { 3, "VTV " }, { 4, "VTWG " }, { 4, "VTWO " }, { 4, "VTWV " }, { 2, "VT " }, { 3, "VUG " }, { 3, "VVC " }, { 3, "VVI " }, { 3, "VVR " }, { 4, "VVTV " }, { 4, "VVUS " }, { 2, "VV " }, { 3, "VWO " }, { 3, "VXF " }, { 4, "VXUS " }, { 3, "VXX " }, { 3, "VXZ " }, { 4, "VYFC " }, { 3, "VYM " }, { 3, "VZZ " }, { 2, "VZ " }, { 1, "V " }, { 4, "WABC " }, { 3, "WAB " }, { 5, "WACLY " }, { 3, "WAC " }, { 3, "WAG " }, { 3, "WAL " }, { 4, "WASH " }, { 4, "WATG " }, { 3, "WAT " }, { 4, "WAVX " }, { 4, "WAYN " }, { 4, "WBCO " }, { 3, "WBC " }, { 4, "WBKC " }, { 3, "WBK " }, { 4, "WBMD " }, { 5, "WBNKW " }, { 4, "WBNK " }, { 4, "WBSN " }, { 5, "WBSTP " }, { 3, "WBS " }, { 4, "WCAA " }, { 4, "WCAT " }, { 4, "WCBO " }, { 3, "WCC " }, { 3, "WCG " }, { 3, "WCN " }, { 3, "WCO " }, { 4, "WCRX " }, { 3, "WDC " }, { 4, "WDFC " }, { 3, "WDR " }, { 4, "WDTI " }, { 2, "WD " }, { 3, "WEA " }, { 4, "WEBM " }, { 3, "WEC " }, { 4, "WEET " }, { 3, "WEN " }, { 4, "WERN " }, { 4, "WEST " }, { 3, "WES " }, { 3, "WEX " }, { 4, "WEYS " }, { 3, "WFC " }, { 3, "WFD " }, { 3, "WFM " }, { 3, "WFR " }, { 5, "WFSLW " }, { 4, "WFSL " }, { 3, "WFT " }, { 4, "WFVK " }, { 2, "WF " }, { 3, "WGA " }, { 3, "WGL " }, { 3, "WGO " }, { 2, "WG " }, { 3, "WHG " }, { 4, "WHRT " }, { 3, "WHR " }, { 3, "WHX " }, { 2, "WH " }, { 3, "WIA " }, { 4, "WIBC " }, { 4, "WIFI " }, { 4, "WILC " }, { 4, "WILN " }, { 4, "WINA " }, { 4, "WINN " }, { 3, "WIN " }, { 3, "WIP " }, { 4, "WIRE " }, { 4, "WITE " }, { 3, "WIT " }, { 3, "WIW " }, { 4, "WLBC " }, { 5, "WLBPZ " }, { 3, "WLB " }, { 4, "WLDN " }, { 5, "WLFCP " }, { 4, "WLFC " }, { 3, "WLK " }, { 3, "WLL " }, { 3, "WLP " }, { 3, "WLT " }, { 4, "WMAR " }, { 3, "WMB " }, { 4, "WMCO " }, { 4, "WMCR " }, { 4, "WMGI " }, { 3, "WMG " }, { 3, "WMH " }, { 3, "WMK " }, { 3, "WMS " }, { 3, "WMT " }, { 3, "WMW " }, { 2, "WM " }, { 3, "WNC " }, { 3, "WNI " }, { 3, "WNR " }, { 3, "WNS " }, { 4, "WOLF " }, { 4, "WOOD " }, { 4, "WOOF " }, { 3, "WOR " }, { 4, "WPCS " }, { 3, "WPC " }, { 3, "WPI " }, { 3, "WPK " }, { 3, "WPO " }, { 5, "WPPGY " }, { 3, "WPP " }, { 4, "WPRT " }, { 3, "WPS " }, { 3, "WPZ " }, { 3, "WRB " }, { 3, "WRC " }, { 3, "WRD " }, { 4, "WREI " }, { 4, "WRES " }, { 3, "WRE " }, { 3, "WRI " }, { 4, "WRLD " }, { 4, "WRLS " }, { 3, "WRN " }, { 3, "WRS " }, { 2, "WR " }, { 4, "WSBC " }, { 4, "WSBF " }, { 3, "WSB " }, { 4, "WSCI " }, { 4, "WSFS " }, { 3, "WSH " }, { 3, "WSM " }, { 3, "WSO " }, { 3, "WSR " }, { 4, "WSTE " }, { 4, "WSTG " }, { 4, "WSTL " }, { 3, "WST " }, { 4, "WTBA " }, { 5, "WTFCW " }, { 4, "WTFC " }, { 3, "WTI " }, { 3, "WTM " }, { 3, "WTR " }, { 5, "WTSLA " }, { 3, "WTS " }, { 3, "WTT " }, { 3, "WTW " }, { 4, "WUHN " }, { 2, "WU " }, { 4, "WVFC " }, { 4, "WVVI " }, { 4, "WWAY " }, { 3, "WWD " }, { 3, "WWE " }, { 4, "WWIN " }, { 4, "WWON " }, { 4, "WWVY " }, { 4, "WWWW " }, { 3, "WWW " }, { 4, "WXSP " }, { 3, "WXS " }, { 2, "WX " }, { 4, "WYNN " }, { 3, "WYN " }, { 3, "WYY " }, { 2, "WY " }, { 3, "WZE " }, { 3, "XAA " }, { 4, "XATA " }, { 3, "XBI " }, { 4, "XBKS " }, { 3, "XCJ " }, { 3, "XCO " }, { 3, "XEC " }, { 3, "XEL " }, { 3, "XES " }, { 3, "XFD " }, { 3, "XFH " }, { 3, "XFN " }, { 3, "XFP " }, { 3, "XFR " }, { 3, "XGC " }, { 2, "XG " }, { 3, "XHB " }, { 3, "XHE " }, { 4, "XIDE " }, { 4, "XING " }, { 3, "XIN " }, { 3, "XIV " }, { 3, "XKE " }, { 3, "XKK " }, { 3, "XKN " }, { 3, "XKO " }, { 3, "XLB " }, { 3, "XLE " }, { 3, "XLF " }, { 3, "XLG " }, { 3, "XLI " }, { 3, "XLK " }, { 4, "XLNX " }, { 3, "XLP " }, { 3, "XLU " }, { 3, "XLV " }, { 3, "XLY " }, { 2, "XL " }, { 3, "XME " }, { 4, "XNPT " }, { 3, "XNY " }, { 4, "XOIL " }, { 4, "XOMA " }, { 3, "XOM " }, { 3, "XOP " }, { 4, "XOXO " }, { 3, "XPH " }, { 3, "XPL " }, { 3, "XPO " }, { 3, "XPP " }, { 4, "XRAY " }, { 3, "XRA " }, { 4, "XRIT " }, { 3, "XRM " }, { 3, "XRO " }, { 3, "XRS " }, { 4, "XRTX " }, { 3, "XRT " }, { 3, "XRU " }, { 3, "XRX " }, { 3, "XSD " }, { 4, "XTEX " }, { 3, "XTL " }, { 3, "XTN " }, { 4, "XTXI " }, { 3, "XUE " }, { 3, "XVG " }, { 4, "XVIX " }, { 4, "XWES " }, { 4, "XXIA " }, { 3, "XXV " }, { 1, "X " }, { 4, "YANG " }, { 3, "YAO " }, { 4, "YAVY " }, { 3, "YCL " }, { 3, "YCS " }, { 4, "YDNT " }, { 3, "YGE " }, { 4, "YHOO " }, { 4, "YINN " }, { 3, "YMI " }, { 4, "YNDX " }, { 4, "YOKU " }, { 4, "YONG " }, { 4, "YORW " }, { 3, "YPF " }, { 4, "YRCW " }, { 3, "YSI " }, { 4, "YTEC " }, { 4, "YUII " }, { 3, "YUM " }, { 3, "YXI " }, { 3, "YZC " }, { 1, "Y " }, { 4, "ZAGG " }, { 4, "ZANE " }, { 2, "ZA " }, { 3, "ZBB " }, { 4, "ZBRA " }, { 3, "ZEP " }, { 4, "ZEUS " }, { 2, "ZF " }, { 4, "ZGNX " }, { 4, "ZHNE " }, { 4, "ZIGO " }, { 4, "ZINC " }, { 5, "ZIONW " }, { 4, "ZION " }, { 4, "ZIOP " }, { 4, "ZIPR " }, { 3, "ZIP " }, { 3, "ZIV " }, { 4, "ZIXI " }, { 5, "ZJZZT " }, { 4, "ZLCS " }, { 3, "ZLC " }, { 3, "ZMH " }, { 3, "ZNH " }, { 5, "ZNWAW " }, { 5, "ZNWAZ " }, { 2, "ZN " }, { 4, "ZOLL " }, { 4, "ZOLT " }, { 4, "ZOOG " }, { 4, "ZOOM " }, { 3, "ZQK " }, { 4, "ZRAN " }, { 4, "ZROZ " }, { 3, "ZSL " }, { 4, "ZSTN " }, { 3, "ZTR " }, { 4, "ZUMZ " }, { 5, "ZVZZT " }, { 5, "ZWZZT " }, { 3, "ZXX " }, { 5, "ZXZZT " }, { 2, "ZX " }, { 3, "ZYY " }, { 3, "ZZA " }, { 3, "ZZB " }, { 3, "ZZC " }, { 3, "ZZD " }, { 3, "ZZE " }, { 3, "ZZF " }, { 3, "ZZG " }, { 3, "ZZH " }, { 3, "ZZI " }, { 4, "ZZJJ " }, { 3, "ZZJ " }, { 2, "ZZ " }, }; inline t3_symbol_t* get_stock_symbol_table() { return (t3_symbol_t*)g_stock_symbol_table; } inline int get_stock_symbol_count() { return 7281; } inline bool is_test_stock(int id) { switch(id) { case 1003: return true; case 1014: return true; case 3192: return true; case 3270: return true; case 7244: return true; case 7263: return true; case 7264: return true; case 7265: return true; case 7266: return true; case 7268: return true; case 7269: return true; case 7270: return true; case 7272: return true; case 7273: return true; case 7274: return true; case 7275: return true; case 7276: return true; case 7277: return true; case 7278: return true; case 7279: return true; } return false; } } # 12 "src/bp/symbol_filter.h" 2 # 1 "src/core/stocks_hash.h" 1 # 41 "src/core/stocks_hash.h" namespace tt { struct symbol_entry; __inline static unsigned int get_id_for_stock (register const char *str, register unsigned int len) { static unsigned int asso_values[] = { 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 806, 29390, 1, 3351, 16258, 13568, 12938, 23780, 126, 23380, 13095, 5636, 4181, 1236, 5524, 7686, 901, 656, 111, 51, 35359, 28980, 35049, 3296, 18605, 6196, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 646, 6996, 6, 16133, 7178, 3036, 79, 24092, 6414, 23497, 37344, 29152, 1336, 16255, 30852, 76, 1021, 20585, 1, 11, 26, 4786, 2986, 10804, 39, 16359, 271, 36, 29255, 6471, 1894, 1301, 6284, 19670, 3776, 821, 46, 16, 201, 8006, 1691, 3376, 10898, 25190, 2284, 9194, 15508, 4621, 2076, 4419, 15763, 14558, 1241, 491, 306, 1226, 34039, 32330, 31175, 23420, 27567, 6803, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873, 110873 }; register int hval = len; switch (hval) { default: hval += asso_values[(unsigned char)str[2]+58]; case 2: hval += asso_values[(unsigned char)str[1]+76]; case 1: hval += asso_values[(unsigned char)str[0]+40]; break; } return hval + asso_values[(unsigned char)str[len - 1]]; } __inline struct symbol_entry * lookup_stock (register const char *str, register unsigned int len) { enum { TOTAL_KEYWORDS = 7280, MIN_WORD_LENGTH = 1, MAX_WORD_LENGTH = 5, MIN_HASH_VALUE = 8, MAX_HASH_VALUE = 110872 }; static struct symbol_entry wordlist[] = { {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"C", 1, 1585}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SBAC", 4, 5726}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TBAC", 4, 6272}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"T", 1, 6600}, {""}, {""}, {""}, {""}, {"SATC", 4, 5721}, {""}, {""}, {""}, {"UBC", 3, 6609}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CAC", 3, 935}, {"CACC", 4, 932}, {""}, {""}, {""}, {"TAC", 3, 6254}, {""}, {""}, {""}, {""}, {"CBT", 3, 1012}, {""}, {""}, {""}, {""}, {"TBT", 3, 6283}, {""}, {""}, {""}, {""}, {""}, {"CASC", 4, 964}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UBT", 3, 6622}, {"S", 1, 6252}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CAT", 3, 974}, {"CBST", 4, 1010}, {""}, {"GBC", 3, 2611}, {""}, {"TAT", 3, 6266}, {"TATT", 4, 6265}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TACT", 4, 6253}, {""}, {""}, {"GABC", 4, 2590}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PAC", 3, 4914}, {"CAST", 4, 968}, {""}, {""}, {""}, {""}, {"TAST", 4, 6264}, {""}, {""}, {""}, {"PBT", 3, 4949}, {"SAAS", 4, 5698}, {""}, {""}, {""}, {""}, {"CAAS", 4, 928}, {""}, {""}, {""}, {""}, {"PBCT", 4, 4933}, {""}, {""}, {""}, {"SBS", 3, 5746}, {"SATS", 4, 5722}, {""}, {""}, {""}, {"CBS", 3, 1011}, {""}, {""}, {""}, {"SBGI", 4, 5731}, {""}, {""}, {""}, {""}, {""}, {""}, {"SBSI", 4, 5745}, {""}, {"GAT", 3, 2605}, {""}, {""}, {""}, {""}, {""}, {""}, {"UBS", 3, 6621}, {"TBSI", 4, 6282}, {""}, {""}, {""}, {""}, {"CACI", 4, 934}, {""}, {""}, {""}, {"CAS", 3, 970}, {"CASS", 4, 967}, {""}, {"TC", 2, 6302}, {""}, {""}, {"UBSI", 4, 6620}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCC", 3, 5754}, {""}, {""}, {""}, {""}, {"CCC", 3, 1022}, {"PAAS", 4, 4906}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GBCI", 4, 2610}, {"PBS", 3, 4947}, {"SCSC", 4, 5793}, {""}, {""}, {""}, {"UCC", 3, 6625}, {"CCSC", 4, 1041}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCBT", 4, 5752}, {""}, {""}, {""}, {"SCT", 3, 5796}, {""}, {""}, {""}, {""}, {"CCT", 3, 1043}, {""}, {""}, {"PC", 2, 4980}, {""}, {""}, {""}, {""}, {"GAS", 3, 2604}, {"GASS", 4, 2601}, {""}, {""}, {""}, {""}, {""}, {""}, {"PCBC", 4, 4954}, {""}, {""}, {"GCBC", 4, 2624}, {""}, {"UCTT", 4, 6630}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PCC", 3, 4958}, {"PCCC", 4, 4957}, {""}, {"GCC", 3, 2625}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CSBC", 4, 1431}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TSTC", 4, 6521}, {""}, {""}, {""}, {"CSC", 3, 1435}, {"TBUS", 4, 6284}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TCBI", 4, 6290}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCS", 3, 5795}, {"SCSS", 4, 5794}, {""}, {""}, {""}, {"CCS", 3, 1042}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TAIT", 4, 6255}, {""}, {""}, {""}, {"TST", 3, 6523}, {"USAT", 4, 6716}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"YCS", 3, 7206}, {"GSBC", 4, 2845}, {"UST", 3, 6734}, {"PCBS", 4, 4956}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSCC", 4, 5261}, {""}, {"GSC", 3, 2847}, {""}, {"SBI", 3, 5736}, {""}, {""}, {""}, {""}, {"CBI", 3, 990}, {"PCTI", 4, 4974}, {""}, {"CS", 2, 1464}, {""}, {"TBI", 3, 6278}, {""}, {""}, {"TS", 2, 6527}, {""}, {""}, {""}, {""}, {""}, {""}, {"PCS", 3, 4973}, {""}, {""}, {""}, {"GSAT", 4, 2844}, {""}, {""}, {""}, {""}, {""}, {"SAI", 3, 5707}, {"SSBI", 4, 6109}, {""}, {""}, {""}, {"PST", 3, 5293}, {""}, {""}, {"GST", 3, 2862}, {""}, {"TAI", 3, 6256}, {""}, {""}, {""}, {""}, {""}, {"PSCT", 4, 5268}, {""}, {""}, {"CSGS", 4, 1441}, {"SSS", 3, 6122}, {""}, {""}, {""}, {""}, {"CSS", 3, 1457}, {"USBI", 4, 6718}, {""}, {""}, {""}, {"TSS", 3, 6520}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"USCI", 4, 6720}, {""}, {""}, {""}, {"PBI", 3, 4941}, {""}, {""}, {""}, {""}, {""}, {"GS", 2, 2866}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRBC", 4, 1381}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PAI", 3, 4919}, {""}, {""}, {"GAI", 3, 2596}, {""}, {"CRC", 3, 1384}, {"PSTI", 4, 5290}, {""}, {""}, {""}, {"TRC", 3, 6468}, {""}, {""}, {""}, {""}, {""}, {"PSCI", 4, 5266}, {""}, {""}, {""}, {"PSS", 3, 5288}, {""}, {""}, {"GSS", 3, 2861}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSSI", 4, 5287}, {""}, {""}, {""}, {"SRT", 3, 6104}, {""}, {""}, {""}, {""}, {"CRT", 3, 1417}, {""}, {""}, {""}, {""}, {"TRT", 3, 6498}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TRGT", 4, 6474}, {""}, {""}, {""}, {"GRC", 3, 2818}, {""}, {"SCI", 3, 5778}, {"TRST", 4, 6495}, {""}, {""}, {""}, {"CCI", 3, 1030}, {""}, {""}, {""}, {""}, {"TCI", 3, 6295}, {""}, {""}, {""}, {""}, {""}, {"PRSC", 4, 5246}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UCI", 3, 6628}, {"CRAI", 4, 1378}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRBI", 4, 1382}, {""}, {"GRT", 3, 2836}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SRS", 3, 6102}, {""}, {""}, {""}, {""}, {"CRS", 3, 1415}, {""}, {""}, {""}, {""}, {"TRS", 3, 6497}, {""}, {""}, {""}, {""}, {""}, {"PRST", 4, 5248}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"URS", 3, 6708}, {"ABBC", 4, 21}, {""}, {"GCI", 3, 2630}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TBAR", 4, 6273}, {""}, {""}, {""}, {"ABC", 3, 28}, {""}, {""}, {""}, {""}, {""}, {"PRTS", 4, 5250}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SSI", 3, 6114}, {""}, {""}, {""}, {"GSIT", 4, 2852}, {""}, {"CSII", 4, 1443}, {""}, {""}, {""}, {"TSI", 3, 6509}, {"ABAT", 4, 19}, {""}, {""}, {"PRGS", 4, 5231}, {"AAC", 3, 4}, {"AACC", 4, 1}, {""}, {""}, {""}, {"PRS", 3, 5249}, {""}, {""}, {""}, {""}, {"ABT", 3, 40}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"YSI", 3, 7218}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SASR", 4, 5720}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AAT", 3, 13}, {"TASR", 4, 6263}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRIC", 4, 1396}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSI", 3, 5276}, {""}, {""}, {"GSI", 3, 2853}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PATR", 4, 4930}, {""}, {""}, {""}, {""}, {"ABCS", 4, 26}, {""}, {""}, {""}, {""}, {"PACR", 4, 4912}, {""}, {""}, {""}, {""}, {"CRUS", 4, 1419}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SBA", 3, 5727}, {"TRIT", 4, 6478}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AATI", 4, 12}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UBA", 3, 6607}, {""}, {""}, {"SA", 2, 5725}, {""}, {"SAA", 3, 5699}, {""}, {""}, {"CA", 2, 981}, {""}, {""}, {""}, {""}, {"TA", 2, 6271}, {""}, {""}, {"SABA", 4, 5700}, {""}, {""}, {""}, {""}, {"SBSA", 4, 5744}, {""}, {""}, {""}, {"ACC", 3, 50}, {""}, {""}, {"UA", 2, 6606}, {""}, {""}, {"CRIS", 4, 1397}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SRI", 3, 6099}, {""}, {""}, {""}, {""}, {"CRI", 3, 1398}, {""}, {""}, {""}, {""}, {"TRI", 3, 6479}, {"ACAT", 4, 48}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"URI", 3, 6705}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CART", 4, 959}, {""}, {""}, {""}, {"PAA", 3, 4907}, {"GA", 2, 2607}, {""}, {""}, {""}, {""}, {"PCAR", 4, 4952}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRIS", 4, 5234}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACAS", 4, 47}, {""}, {""}, {""}, {"PRI", 3, 5235}, {"ASBC", 4, 410}, {""}, {"GRI", 3, 2825}, {""}, {""}, {"ASTC", 4, 430}, {"GAGA", 4, 2593}, {""}, {""}, {""}, {"ACTS", 4, 74}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CSTR", 4, 1458}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"USTR", 4, 6733}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CCA", 3, 1017}, {"USCR", 4, 6721}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UCBA", 4, 6623}, {""}, {""}, {""}, {""}, {"PACQ", 4, 4911}, {""}, {""}, {""}, {""}, {"PSTR", 4, 5292}, {""}, {""}, {""}, {"ABI", 3, 34}, {""}, {""}, {""}, {""}, {"QBC", 3, 5402}, {"CCUR", 4, 1044}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CCRT", 4, 1040}, {""}, {""}, {""}, {"PCA", 3, 4953}, {""}, {""}, {"GCA", 3, 2623}, {""}, {""}, {"ASBI", 4, 411}, {""}, {""}, {""}, {""}, {"ASTI", 4, 433}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CSA", 3, 1430}, {""}, {""}, {""}, {""}, {""}, {"SAIA", 4, 5706}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"USA", 3, 6717}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SR", 2, 6108}, {""}, {""}, {""}, {""}, {"CR", 2, 1429}, {""}, {""}, {"ARTC", 4, 399}, {""}, {"TR", 2, 6503}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARC", 3, 375}, {"ARCC", 4, 370}, {""}, {""}, {""}, {""}, {"TRBR", 4, 6466}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TRCR", 4, 6467}, {""}, {""}, {""}, {"PSA", 3, 5258}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GAIA", 4, 2594}, {"ART", 3, 403}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GR", 2, 2843}, {""}, {""}, {"ARGT", 4, 380}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STBC", 4, 6130}, {""}, {""}, {""}, {"ACI", 3, 60}, {"CTBC", 4, 1466}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STC", 3, 6132}, {"SSRI", 4, 6120}, {""}, {""}, {""}, {"CTC", 3, 1472}, {"CBAN", 4, 983}, {""}, {""}, {""}, {"TTC", 3, 6528}, {"TSRI", 4, 6518}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ST", 2, 6176}, {""}, {""}, {""}, {""}, {"CT", 2, 1492}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARCI", 4, 371}, {""}, {""}, {""}, {"STT", 3, 6170}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TTT", 3, 6540}, {""}, {""}, {""}, {""}, {""}, {"CTCT", 4, 1471}, {""}, {""}, {""}, {""}, {"CRBA", 4, 1380}, {""}, {""}, {""}, {""}, {"CRRC", 4, 1413}, {""}, {""}, {""}, {"URA", 3, 6701}, {""}, {""}, {""}, {"TTGT", 4, 6532}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CTAS", 4, 1465}, {""}, {""}, {""}, {"ASI", 3, 421}, {""}, {""}, {"PT", 2, 5317}, {""}, {""}, {"GT", 2, 2880}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CTBI", 4, 1467}, {""}, {""}, {""}, {"PRA", 3, 5221}, {"PRAA", 4, 5219}, {""}, {"GRA", 3, 2816}, {""}, {"MBC", 3, 4012}, {""}, {""}, {""}, {""}, {"STS", 3, 6169}, {""}, {""}, {""}, {""}, {"CTS", 3, 1489}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MAC", 3, 3983}, {"CRBQ", 4, 1383}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MBT", 3, 4023}, {""}, {""}, {""}, {""}, {""}, {"UTSI", 4, 6748}, {""}, {""}, {""}, {""}, {"MASC", 4, 3996}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MAT", 3, 4004}, {"A", 1, 544}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GTS", 3, 2876}, {""}, {"QAI", 3, 5400}, {""}, {""}, {""}, {"PTGI", 4, 5301}, {""}, {""}, {""}, {""}, {""}, {""}, {"PTSI", 4, 5313}, {""}, {""}, {"GTSI", 4, 2875}, {""}, {""}, {""}, {""}, {""}, {""}, {"CSIQ", 4, 1444}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SBR", 3, 5743}, {""}, {""}, {"AA", 2, 18}, {""}, {"CBR", 3, 1008}, {""}, {""}, {""}, {""}, {""}, {"CTIC", 4, 1480}, {""}, {""}, {""}, {""}, {"MATS", 4, 4002}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UBR", 3, 6618}, {""}, {""}, {""}, {""}, {"SAR", 3, 5719}, {""}, {"SBIBN", 5, 5733}, {""}, {""}, {"CAR", 3, 962}, {"CBIN", 4, 989}, {""}, {""}, {"MAGS", 4, 3984}, {"ARI", 3, 384}, {"ARII", 4, 383}, {""}, {""}, {""}, {"MAS", 3, 3998}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MCBC", 4, 4027}, {""}, {""}, {""}, {""}, {"MASI", 4, 3997}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MCC", 3, 4030}, {""}, {""}, {""}, {""}, {"PBR", 3, 4946}, {""}, {""}, {"GBR", 3, 2619}, {""}, {""}, {""}, {""}, {""}, {"MCGC", 4, 4033}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PAR", 3, 4927}, {""}, {""}, {"GAR", 3, 2599}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SSNC", 4, 6116}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STI", 3, 6141}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GAIN", 4, 2595}, {"TTI", 3, 6535}, {""}, {""}, {""}, {""}, {"SQI", 3, 6089}, {""}, {""}, {""}, {""}, {""}, {"SBRA", 4, 5742}, {""}, {""}, {""}, {"UTI", 3, 6744}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MSC", 3, 4295}, {"MSCC", 4, 4293}, {""}, {""}, {""}, {""}, {"MCBI", 4, 4029}, {""}, {""}, {""}, {"SCR", 3, 5792}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MCS", 3, 4048}, {"SEAC", 4, 5814}, {""}, {""}, {""}, {"PTI", 3, 5305}, {""}, {""}, {"GTI", 3, 2872}, {""}, {""}, {"ACUR", 4, 76}, {""}, {""}, {""}, {""}, {"SCIN", 4, 5777}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CEC", 3, 1065}, {"QSII", 4, 5430}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UEC", 3, 6636}, {""}, {""}, {""}, {""}, {"MBI", 3, 4016}, {"CSUN", 4, 1459}, {""}, {"MS", 2, 4320}, {""}, {""}, {""}, {""}, {""}, {""}, {"ASA", 3, 409}, {""}, {""}, {""}, {""}, {"CET", 3, 1086}, {"URBN", 4, 6702}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ASCA", 4, 412}, {"ASCMA", 5, 413}, {""}, {""}, {"CSR", 3, 1456}, {""}, {""}, {""}, {""}, {""}, {"MSCI", 4, 4294}, {""}, {"GEC", 3, 2646}, {""}, {"MSS", 3, 4315}, {""}, {""}, {""}, {""}, {""}, {"PRAN", 4, 5220}, {""}, {""}, {"GRAN", 4, 2815}, {""}, {"ASUR", 4, 435}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSUN", 4, 5294}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GET", 3, 2665}, {""}, {""}, {""}, {""}, {""}, {"PRGN", 4, 5229}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRNT", 4, 1408}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSR", 3, 5286}, {"TESS", 4, 6333}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"QABA", 4, 5397}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MRT", 3, 4286}, {"PETS", 4, 5016}, {""}, {""}, {""}, {"ATC", 3, 441}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TRNS", 4, 6489}, {""}, {""}, {""}, {""}, {"ATSC", 4, 463}, {""}, {"AT", 2, 471}, {""}, {""}, {""}, {""}, {"GES", 3, 2664}, {""}, {""}, {""}, {""}, {""}, {""}, {"MCI", 3, 4037}, {""}, {""}, {""}, {""}, {"ATT", 3, 465}, {"PESI", 4, 5013}, {""}, {""}, {""}, {""}, {"TSRA", 4, 6517}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARBA", 4, 368}, {""}, {""}, {""}, {""}, {""}, {"ARTNA", 5, 400}, {""}, {""}, {""}, {"SEIC", 4, 5821}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRR", 3, 1414}, {""}, {""}, {""}, {""}, {"TRR", 3, 6494}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UEIC", 4, 6637}, {""}, {""}, {""}, {"URR", 3, 6707}, {""}, {""}, {""}, {"CAMT", 4, 955}, {""}, {"ATAI", 4, 438}, {""}, {""}, {""}, {""}, {"CSWC", 4, 1462}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ASIA", 4, 420}, {""}, {""}, {""}, {""}, {"STAA", 4, 6126}, {""}, {""}, {""}, {"MSI", 3, 4304}, {""}, {""}, {""}, {""}, {""}, {"STBA", 4, 6129}, {""}, {"GRR", 3, 2835}, {""}, {""}, {"STRC", 4, 6160}, {""}, {""}, {""}, {""}, {"MATR", 4, 4001}, {""}, {""}, {""}, {"UTA", 3, 6737}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARRS", 4, 395}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STSA", 4, 6168}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SMBC", 4, 5970}, {""}, {""}, {""}, {""}, {"SMTC", 4, 5993}, {""}, {""}, {""}, {"TEI", 3, 6325}, {"STRT", 4, 6166}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CMC", 3, 1239}, {""}, {""}, {""}, {"GTAA", 4, 2867}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SMSC", 4, 5990}, {""}, {""}, {""}, {"UMC", 3, 6670}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ABR", 3, 38}, {""}, {""}, {""}, {""}, {"SMT", 3, 5995}, {""}, {""}, {""}, {""}, {"CMT", 3, 1260}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MBA", 3, 4010}, {"STRS", 4, 6165}, {""}, {""}, {""}, {"PEI", 3, 5002}, {"PMBC", 4, 5148}, {""}, {""}, {""}, {"AAR", 3, 11}, {"PMTC", 4, 5161}, {""}, {""}, {"GMTC", 4, 2771}, {""}, {"STRI", 4, 6161}, {""}, {""}, {""}, {"PMC", 3, 5150}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MA", 2, 4009}, {""}, {"MAA", 3, 3981}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARIA", 4, 382}, {""}, {"PQ", 2, 5218}, {""}, {"PMT", 3, 5163}, {""}, {""}, {"GMT", 3, 2772}, {""}, {""}, {""}, {""}, {""}, {"ASGN", 4, 417}, {""}, {"SMCI", 4, 5974}, {""}, {""}, {""}, {"SMS", 3, 5992}, {""}, {""}, {""}, {""}, {"CMS", 3, 1258}, {""}, {""}, {""}, {""}, {"TMS", 3, 6425}, {""}, {""}, {""}, {""}, {""}, {"SMSI", 4, 5991}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CCRN", 4, 1039}, {""}, {""}, {""}, {"ATI", 3, 447}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PMCS", 4, 5149}, {""}, {""}, {""}, {""}, {"PMTI", 4, 5162}, {""}, {""}, {""}, {""}, {"CRWS", 4, 1425}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRWT", 4, 5253}, {""}, {""}, {""}, {""}, {"MSTR", 4, 4316}, {"MARPS", 5, 3994}, {""}, {""}, {""}, {""}, {""}, {""}, {"TICC", 4, 6378}, {""}, {""}, {""}, {""}, {"PSMT", 4, 5281}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MCA", 3, 4026}, {"MSSR", 4, 4314}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CIT", 3, 1191}, {""}, {""}, {"TEAR", 4, 6318}, {""}, {""}, {""}, {"AEC", 3, 111}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PIC", 3, 5078}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SMIT", 4, 5981}, {""}, {""}, {""}, {"AET", 3, 131}, {""}, {""}, {""}, {""}, {""}, {"SI", 2, 5922}, {""}, {""}, {"ARGN", 4, 379}, {""}, {"CI", 2, 1195}, {""}, {""}, {""}, {""}, {"TI", 2, 6395}, {""}, {""}, {""}, {""}, {"PMIC", 4, 5154}, {""}, {""}, {""}, {"ASR", 3, 429}, {"GIT", 3, 2709}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"USNA", 4, 6730}, {""}, {""}, {"CRMT", 4, 1406}, {""}, {""}, {""}, {"CIS", 3, 1189}, {""}, {"MSA", 3, 4290}, {""}, {"SIGI", 4, 5903}, {"TIS", 3, 6391}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STAN", 4, 6128}, {""}, {"UIS", 3, 6656}, {"TISI", 4, 6390}, {""}, {"MCRS", 4, 4046}, {""}, {""}, {""}, {"SMI", 3, 5982}, {""}, {""}, {""}, {""}, {"CMI", 3, 1247}, {"AETI", 4, 130}, {""}, {"MR", 2, 4289}, {""}, {""}, {"MCRI", 4, 4043}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AES", 3, 129}, {""}, {""}, {""}, {""}, {"SEA", 3, 5815}, {""}, {""}, {""}, {""}, {"CEA", 3, 1061}, {""}, {""}, {""}, {"TRMS", 4, 6485}, {""}, {""}, {""}, {"YMI", 3, 7211}, {""}, {""}, {""}, {""}, {"PIS", 3, 5090}, {""}, {""}, {"GIS", 3, 2708}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TECUA", 5, 6321}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PMI", 3, 5155}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CIIC", 4, 1181}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARUN", 4, 404}, {""}, {"GEA", 3, 2645}, {""}, {"UBN", 3, 6614}, {""}, {""}, {""}, {""}, {"SAN", 3, 5715}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TAN", 3, 6259}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MQC", 3, 4274}, {"TQNT", 4, 6463}, {""}, {""}, {""}, {"UAN", 3, 6605}, {"MTSC", 4, 4336}, {""}, {"MT", 2, 4347}, {"PEGA", 4, 4999}, {"ARR", 3, 397}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MTT", 3, 4341}, {"CERS", 4, 1084}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MQT", 3, 4275}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SQNS", 4, 6092}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACWI", 4, 78}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATA", 3, 440}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CII", 3, 1182}, {""}, {""}, {""}, {""}, {""}, {"TIII", 4, 6383}, {""}, {"ATRC", 4, 457}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STR", 3, 6167}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MTS", 3, 4339}, {"AEIS", 4, 119}, {""}, {""}, {""}, {""}, {"AMAC", 4, 255}, {""}, {""}, {""}, {"UTR", 3, 6747}, {""}, {""}, {""}, {""}, {""}, {"MANT", 4, 3991}, {""}, {""}, {""}, {""}, {"AMTC", 4, 294}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMCC", 4, 260}, {""}, {""}, {"SCMR", 4, 5786}, {""}, {""}, {""}, {"PII", 3, 5081}, {""}, {""}, {"GII", 3, 2703}, {"GIII", 4, 2702}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMSC", 4, 288}, {""}, {""}, {""}, {""}, {"AMAT", 4, 258}, {""}, {""}, {""}, {"PTR", 3, 5312}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMT", 3, 296}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PCN", 3, 4968}, {""}, {""}, {""}, {""}, {""}, {"ATRI", 4, 458}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MBR", 3, 4021}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GMCR", 4, 2758}, {""}, {""}, {""}, {""}, {""}, {"SSN", 3, 6117}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TSN", 3, 6513}, {"STRA", 4, 6159}, {""}, {""}, {""}, {"MAR", 3, 3995}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMS", 3, 292}, {""}, {""}, {""}, {""}, {"SMA", 3, 5969}, {""}, {""}, {""}, {""}, {"CMA", 3, 1235}, {"MAIN", 4, 3987}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CMCSA", 5, 1237}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SMRT", 4, 5989}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PMA", 3, 5147}, {""}, {""}, {"GMA", 3, 2757}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ASMI", 4, 422}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TIGR", 4, 6382}, {""}, {""}, {""}, {"AMIC", 4, 269}, {""}, {"AIT", 3, 202}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CSMA", 4, 1449}, {"MCR", 3, 4047}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WBC", 3, 6972}, {""}, {""}, {""}, {"AEGR", 4, 115}, {""}, {"CTWS", 4, 1490}, {""}, {""}, {""}, {"TRN", 3, 6491}, {""}, {""}, {""}, {""}, {""}, {"WABC", 4, 6960}, {""}, {""}, {""}, {""}, {"CENT", 4, 1077}, {""}, {""}, {""}, {""}, {"AI", 2, 206}, {""}, {""}, {""}, {"WAC", 3, 6963}, {"ASNA", 4, 424}, {""}, {""}, {""}, {""}, {"TBET", 4, 6275}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GENC", 4, 2653}, {""}, {""}, {""}, {""}, {""}, {"FBC", 3, 2265}, {"MRTN", 4, 4285}, {""}, {""}, {""}, {""}, {""}, {""}, {"AIS", 3, 201}, {""}, {""}, {""}, {""}, {""}, {""}, {"MET", 3, 4095}, {""}, {""}, {"CIA", 3, 1173}, {""}, {"WAT", 3, 6968}, {""}, {""}, {""}, {""}, {"PRN", 3, 5241}, {""}, {""}, {"GRN", 3, 2830}, {""}, {"FAC", 3, 2251}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FBT", 3, 2277}, {""}, {""}, {""}, {"GENT", 4, 2655}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SIGA", 4, 5902}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MEAS", 4, 4077}, {""}, {""}, {""}, {"AEA", 3, 109}, {""}, {""}, {""}, {"TISA", 4, 6389}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WBS", 3, 6980}, {"PAET", 4, 4915}, {""}, {""}, {""}, {""}, {""}, {""}, {"PIA", 3, 5075}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TER", 3, 6331}, {"FAST", 4, 2259}, {""}, {""}, {""}, {"MES", 3, 4093}, {"STNR", 4, 6152}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GIGA", 4, 2700}, {"FBSS", 4, 2276}, {""}, {""}, {""}, {"WCC", 3, 6984}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FBSI", 4, 2275}, {""}, {""}, {""}, {"AAN", 3, 7}, {""}, {""}, {""}, {"SIRI", 4, 5916}, {""}, {""}, {""}, {"FC", 2, 2307}, {""}, {"FAS", 3, 2260}, {"WCAT", 4, 6982}, {""}, {""}, {""}, {""}, {"ARNA", 4, 391}, {""}, {"GER", 3, 2663}, {""}, {""}, {"FCBC", 4, 2282}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TTMI", 4, 6536}, {""}, {"PTNR", 4, 5307}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STRN", 4, 6164}, {""}, {""}, {""}, {""}, {"CTRN", 4, 1486}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATNI", 4, 453}, {""}, {""}, {""}, {"FCT", 3, 2301}, {"WSBC", 4, 7087}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCEI", 4, 5756}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SBBX", 4, 5728}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATR", 3, 462}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WST", 3, 7099}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FSC", 3, 2504}, {"PSEC", 4, 5271}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACN", 3, 66}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GMAN", 4, 2756}, {"FCS", 3, 2299}, {""}, {""}, {""}, {"ACMR", 4, 63}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FST", 3, 2520}, {""}, {""}, {""}, {""}, {"TFC", 3, 6339}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MEI", 3, 4083}, {"CRWN", 4, 1424}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MMC", 3, 4209}, {""}, {""}, {""}, {""}, {""}, {"WSCI", 4, 7090}, {""}, {""}, {""}, {"CFT", 3, 1105}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GASX", 4, 2602}, {""}, {""}, {""}, {""}, {""}, {""}, {"SFST", 4, 5842}, {""}, {""}, {""}, {"MMT", 3, 4218}, {"FSBI", 4, 2501}, {""}, {""}, {""}, {""}, {"ARWR", 4, 405}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FSCI", 4, 2503}, {""}, {""}, {"GRWN", 4, 2840}, {"FSS", 3, 2518}, {""}, {""}, {""}, {""}, {"WRC", 3, 7076}, {""}, {""}, {""}, {"FSGI", 4, 2508}, {""}, {""}, {""}, {""}, {""}, {""}, {"SBUX", 4, 5747}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UFCS", 4, 6639}, {""}, {""}, {""}, {""}, {"AMRC", 4, 283}, {""}, {""}, {"TITN", 4, 6392}, {""}, {""}, {""}, {""}, {""}, {"FRC", 3, 2480}, {""}, {""}, {""}, {""}, {"UFS", 3, 6643}, {"TAXI", 4, 6267}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MMS", 3, 4217}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMSWA", 5, 291}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MMSI", 4, 4216}, {""}, {""}, {""}, {""}, {"PFBI", 4, 5021}, {"UCBID", 5, 6624}, {""}, {""}, {"FRT", 3, 2496}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFS", 3, 5039}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PMR", 3, 5160}, {""}, {""}, {"GMR", 3, 2769}, {""}, {"WRS", 3, 7085}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MIC", 3, 4155}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMRS", 4, 286}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GRES", 4, 2819}, {""}, {"AMRI", 4, 284}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FRS", 3, 2495}, {""}, {""}, {""}, {"MITT", 4, 4168}, {""}, {"CSCD", 4, 1433}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"METR", 4, 4094}, {"GRMN", 4, 2827}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MMUS", 4, 4219}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AIA", 3, 189}, {""}, {"FSI", 3, 2512}, {"FSII", 4, 2510}, {""}, {""}, {""}, {""}, {"MI", 2, 4171}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CERN", 4, 1082}, {""}, {""}, {""}, {""}, {"PSCD", 4, 5262}, {""}, {""}, {"MITI", 4, 4166}, {"STN", 3, 6153}, {""}, {""}, {"CIR", 3, 1187}, {""}, {""}, {"CTNN", 4, 1482}, {""}, {""}, {""}, {"SFI", 3, 5833}, {"CCIX", 4, 1029}, {""}, {""}, {""}, {"CFI", 3, 1097}, {""}, {""}, {""}, {""}, {"TFI", 3, 6340}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UFI", 3, 6640}, {""}, {"SENEA", 5, 5824}, {""}, {"AIRT", 4, 199}, {""}, {""}, {"CENTA", 5, 1076}, {""}, {""}, {"MMI", 3, 4211}, {"CRTX", 4, 1416}, {""}, {""}, {""}, {"AER", 3, 128}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GERN", 4, 2662}, {""}, {""}, {""}, {""}, {""}, {"MEA", 3, 4078}, {""}, {""}, {"PIR", 3, 5089}, {""}, {"PTN", 3, 5308}, {""}, {""}, {"GTN", 3, 2874}, {""}, {""}, {"MTSN", 4, 4338}, {""}, {""}, {""}, {"PFI", 3, 5031}, {"MERC", 4, 4090}, {""}, {"GFI", 3, 2673}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WRI", 3, 7081}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACET", 4, 51}, {""}, {""}, {""}, {"FAA", 3, 2247}, {""}, {""}, {""}, {"ATMI", 4, 451}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRGX", 4, 5232}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MAN", 3, 3992}, {""}, {""}, {""}, {""}, {"FRI", 3, 2486}, {""}, {""}, {""}, {""}, {""}, {"ATRN", 4, 460}, {""}, {""}, {""}, {""}, {"MRNA", 4, 4283}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ABAX", 4, 20}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMCN", 4, 262}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WCAA", 4, 6981}, {""}, {""}, {"AMGN", 4, 267}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSID", 4, 5275}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FSTR", 4, 2519}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MTR", 3, 4335}, {"ABCD", 4, 24}, {""}, {""}, {""}, {"FCA", 3, 2281}, {""}, {""}, {""}, {""}, {"AFC", 3, 140}, {"CRUD", 4, 1418}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ASEI", 4, 415}, {""}, {""}, {""}, {""}, {"PRXI", 4, 5254}, {""}, {""}, {""}, {"MCN", 3, 4039}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AFT", 3, 153}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TRID", 4, 6477}, {""}, {""}, {""}, {""}, {""}, {""}, {"WR", 2, 7086}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CBRX", 4, 1007}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FSA", 3, 2500}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MSN", 3, 4309}, {""}, {""}, {"FR", 2, 2499}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GRID", 4, 2823}, {""}, {"AFSI", 4, 152}, {""}, {""}, {""}, {"AMR", 3, 287}, {"ACAD", 4, 46}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STEC", 4, 6134}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TTEC", 4, 6529}, {""}, {""}, {""}, {""}, {"SFSA", 4, 5840}, {""}, {""}, {""}, {""}, {""}, {"CIMT", 4, 1184}, {""}, {""}, {"TEN", 3, 6329}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CATM", 4, 971}, {""}, {""}, {"YTEC", 4, 7219}, {""}, {""}, {""}, {""}, {""}, {"PFA", 3, 5019}, {"PMNA", 4, 5158}, {""}, {"GFA", 3, 2669}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WTT", 3, 7108}, {"CASM", 4, 966}, {""}, {""}, {""}, {""}, {"WBSN", 4, 6978}, {""}, {""}, {""}, {"FTC", 3, 2524}, {""}, {""}, {""}, {""}, {""}, {"PARD", 4, 4925}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PENN", 4, 5006}, {""}, {"GEN", 3, 2656}, {""}, {""}, {""}, {""}, {"FT", 2, 2538}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FTT", 3, 2535}, {""}, {""}, {""}, {""}, {"FRA", 3, 2476}, {""}, {""}, {""}, {""}, {""}, {"STEI", 4, 6135}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FBNC", 4, 2270}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WTS", 3, 7107}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MENT", 4, 4087}, {""}, {""}, {""}, {""}, {"TCRD", 4, 6300}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SINA", 4, 5914}, {""}, {"PCRX", 4, 4972}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AIR", 3, 200}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SSRX", 4, 6121}, {""}, {""}, {"CCGM", 4, 1025}, {""}, {""}, {""}, {""}, {"SNBC", 4, 6000}, {""}, {"TSRX", 4, 6519}, {""}, {""}, {"CNBC", 4, 1266}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARTX", 4, 402}, {""}, {"CNC", 3, 1268}, {""}, {""}, {""}, {""}, {"TNC", 3, 6434}, {"TNCC", 4, 6433}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNT", 3, 6019}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MERR", 4, 4091}, {""}, {""}, {"PNBC", 4, 5166}, {""}, {""}, {""}, {"UNT", 3, 6690}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PNC", 3, 5169}, {""}, {""}, {"GNC", 3, 2777}, {""}, {""}, {""}, {"FBR", 3, 2274}, {""}, {""}, {""}, {""}, {""}, {"ARSD", 4, 398}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNTS", 4, 6018}, {""}, {""}, {"GNAT", 4, 2775}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GNT", 3, 2786}, {""}, {""}, {"CTGX", 4, 1477}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNSS", 4, 6015}, {""}, {""}, {""}, {"CNS", 3, 1285}, {""}, {""}, {""}, {""}, {"TNS", 3, 6441}, {""}, {""}, {"PSCM", 4, 5267}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UNS", 3, 6686}, {""}, {""}, {""}, {""}, {""}, {""}, {"WTI", 3, 7103}, {""}, {""}, {""}, {""}, {"SMN", 3, 5986}, {""}, {""}, {""}, {""}, {"CMN", 3, 1252}, {"MTRN", 4, 4333}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SLTC", 4, 5958}, {""}, {""}, {""}, {""}, {"PTSX", 4, 5314}, {""}, {""}, {""}, {""}, {""}, {""}, {"PNS", 3, 5184}, {""}, {"CLC", 3, 1207}, {""}, {""}, {""}, {""}, {"FTI", 3, 2528}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SBND", 4, 5739}, {""}, {""}, {""}, {""}, {"CBND", 4, 998}, {""}, {""}, {""}, {""}, {"SFNC", 4, 5838}, {""}, {""}, {""}, {""}, {"SLBT", 4, 5947}, {""}, {""}, {""}, {"SLT", 3, 5960}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TLT", 3, 6416}, {""}, {""}, {""}, {""}, {"WEC", 3, 6996}, {"CLCT", 4, 1206}, {""}, {""}, {""}, {""}, {"PLBC", 4, 5121}, {""}, {""}, {"GLBC", 4, 2731}, {""}, {"STXS", 4, 6173}, {""}, {""}, {""}, {""}, {"CTXS", 4, 1491}, {""}, {""}, {""}, {""}, {"PLCC", 4, 5122}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MFC", 3, 4099}, {""}, {""}, {""}, {""}, {""}, {"ASEA", 4, 414}, {""}, {""}, {"CNIT", 4, 1273}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLT", 3, 5138}, {""}, {""}, {"GLT", 3, 2751}, {""}, {"WSR", 3, 7095}, {""}, {""}, {""}, {""}, {""}, {"WEST", 4, 7000}, {""}, {""}, {""}, {"MFT", 3, 4113}, {"AMRN", 4, 285}, {""}, {""}, {""}, {"CLS", 3, 1227}, {"ULBI", 4, 6661}, {""}, {""}, {""}, {""}, {"ULTI", 4, 6665}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PEET", 4, 4998}, {""}, {""}, {"GTXI", 4, 2878}, {""}, {""}, {""}, {""}, {""}, {""}, {"SFUN", 4, 5843}, {""}, {"SNI", 3, 6009}, {""}, {"FSR", 3, 2517}, {""}, {""}, {"CNI", 3, 1274}, {"GLBS", 4, 2733}, {""}, {""}, {"AIMC", 4, 192}, {""}, {"UNIS", 4, 6682}, {""}, {""}, {""}, {"TIN", 3, 6386}, {""}, {"WES", 3, 7001}, {""}, {""}, {""}, {""}, {""}, {"CADC", 4, 936}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FSIN", 4, 2511}, {""}, {""}, {""}, {"PLS", 3, 5136}, {""}, {""}, {""}, {""}, {"CFR", 3, 1103}, {"ATEC", 4, 443}, {"YINN", 4, 7210}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PTIX", 4, 5304}, {""}, {""}, {""}, {"AEN", 3, 122}, {""}, {""}, {""}, {""}, {""}, {"VASC", 4, 6773}, {""}, {""}, {"GBDC", 4, 2612}, {""}, {""}, {""}, {""}, {""}, {"MMR", 3, 4215}, {""}, {""}, {"PNI", 3, 5174}, {""}, {""}, {"GNI", 3, 2779}, {""}, {"PIN", 3, 5085}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PCQ", 3, 4971}, {""}, {""}, {""}, {""}, {""}, {"PFIN", 4, 5030}, {""}, {""}, {""}, {""}, {"ACRX", 4, 72}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MINT", 4, 4163}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VC", 2, 6790}, {""}, {"CSQ", 3, 1455}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FEIC", 4, 2325}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLUS", 4, 5140}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SLI", 3, 5954}, {"PRIM", 4, 5233}, {""}, {""}, {""}, {"CLI", 3, 1216}, {""}, {""}, {""}, {""}, {"TLI", 3, 6408}, {"WTBA", 4, 7100}, {""}, {""}, {"MEMS", 4, 4086}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MINI", 4, 4162}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FBMS", 4, 2268}, {"PSQ", 3, 5285}, {""}, {""}, {""}, {""}, {""}, {""}, {"WTSLA", 5, 7106}, {""}, {"ANAC", 4, 301}, {"FTA", 3, 2523}, {""}, {""}, {""}, {"FBMI", 4, 2267}, {""}, {""}, {""}, {""}, {""}, {""}, {"TECD", 4, 6319}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CNTR", 4, 1287}, {"MTN", 3, 4329}, {"TRNX", 4, 6490}, {""}, {""}, {"SNCR", 4, 6001}, {""}, {""}, {""}, {""}, {""}, {"MFI", 3, 4102}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ANAT", 4, 303}, {""}, {""}, {""}, {""}, {""}, {""}, {"VCBI", 4, 6780}, {""}, {""}, {""}, {"WMT", 3, 7054}, {""}, {""}, {""}, {""}, {""}, {"PETD", 4, 5014}, {""}, {""}, {""}, {"FMC", 3, 2424}, {""}, {""}, {""}, {""}, {""}, {"VSAT", 4, 6916}, {""}, {""}, {""}, {""}, {"ASTM", 4, 434}, {""}, {""}, {""}, {""}, {"TRND", 4, 6486}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PNTR", 4, 5185}, {""}, {"ATAX", 4, 439}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GMET", 4, 2760}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CBMX", 4, 996}, {""}, {""}, {""}, {""}, {"ANCI", 4, 305}, {"WMS", 3, 7053}, {""}, {""}, {""}, {"ANSS", 4, 321}, {""}, {""}, {""}, {"SNA", 3, 5999}, {"WMGI", 4, 7049}, {""}, {""}, {""}, {"CNA", 3, 1265}, {""}, {""}, {"QTEC", 4, 5431}, {""}, {"TNA", 3, 6431}, {""}, {""}, {""}, {""}, {""}, {"SNTA", 4, 6017}, {"CNBKA", 5, 1267}, {"VSCI", 4, 6918}, {""}, {""}, {""}, {"VSS", 3, 6926}, {"FMBI", 4, 2422}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMN", 3, 276}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FMS", 3, 2432}, {""}, {""}, {""}, {""}, {"SNSTA", 5, 6016}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WIBC", 4, 7023}, {""}, {"CRDC", 4, 1385}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALC", 3, 219}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VCIT", 4, 6782}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ULTR", 4, 6666}, {"GNRC", 4, 2783}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GNCMA", 5, 2776}, {""}, {"ALT", 3, 246}, {""}, {""}, {"WIT", 3, 7033}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FCNCA", 5, 2295}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALGT", 4, 224}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GLTR", 4, 2750}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VCI", 3, 6783}, {""}, {""}, {""}, {""}, {""}, {"SMTX", 4, 5994}, {"PEIXD", 5, 5001}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VRTS", 4, 6910}, {""}, {""}, {""}, {""}, {"ALTI", 4, 244}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SLA", 3, 5946}, {""}, {""}, {""}, {""}, {"VRS", 3, 6907}, {"TTTM", 4, 6539}, {""}, {""}, {""}, {""}, {"CTCM", 4, 1470}, {""}, {""}, {""}, {""}, {"SLRC", 4, 5957}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AIN", 3, 195}, {""}, {""}, {"ULTA", 4, 6664}, {""}, {""}, {""}, {""}, {""}, {""}, {"FIS", 3, 2387}, {""}, {""}, {""}, {""}, {""}, {""}, {"WEA", 3, 6994}, {""}, {""}, {""}, {""}, {"VSI", 3, 6923}, {""}, {""}, {""}, {"FISI", 4, 2384}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GLA", 3, 2730}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"M", 1, 4418}, {""}, {""}, {""}, {"MFA", 3, 4097}, {""}, {""}, {""}, {""}, {""}, {"PTEN", 4, 5299}, {""}, {""}, {""}, {""}, {"SANM", 4, 5711}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"QNST", 4, 5421}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MEN", 3, 4088}, {"MFSA", 4, 4111}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FBN", 3, 2272}, {"VRUS", 4, 6913}, {""}, {""}, {"CATO", 4, 972}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TIBX", 4, 6377}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FTNT", 4, 2531}, {""}, {""}, {""}, {"FAN", 3, 2256}, {""}, {""}, {""}, {""}, {""}, {""}, {"CIGX", 4, 1179}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MFRI", 4, 4110}, {""}, {""}, {""}, {""}, {"ATEA", 4, 442}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UN", 2, 6692}, {""}, {""}, {"QLGC", 4, 5416}, {""}, {""}, {""}, {""}, {""}, {"WTR", 3, 7105}, {"QQXT", 4, 5426}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CABL", 4, 929}, {""}, {""}, {""}, {""}, {""}, {"TNGN", 4, 6437}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FII", 3, 2379}, {""}, {""}, {"WMAR", 4, 7045}, {""}, {""}, {""}, {"WCN", 3, 6986}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UACL", 4, 6601}, {""}, {""}, {""}, {"FTR", 3, 2534}, {""}, {""}, {""}, {"CRMD", 4, 1404}, {""}, {"WMCR", 4, 7048}, {""}, {""}, {"TRMD", 4, 6483}, {""}, {""}, {""}, {""}, {"SCCO", 4, 5753}, {""}, {""}, {""}, {""}, {"GTIM", 4, 2869}, {""}, {""}, {""}, {""}, {"TCCO", 4, 6293}, {""}, {""}, {""}, {""}, {""}, {""}, {"FMAR", 4, 2421}, {""}, {""}, {""}, {"FCN", 3, 2296}, {""}, {""}, {""}, {"PNSN", 4, 5183}, {""}, {""}, {""}, {""}, {""}, {""}, {"QLTI", 4, 5418}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GASL", 4, 2600}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GRMHD", 5, 2826}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACWX", 4, 79}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PNNT", 4, 5177}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CSCO", 4, 1434}, {""}, {""}, {""}, {""}, {"TSCO", 4, 6505}, {""}, {"CCCL", 4, 1021}, {""}, {""}, {""}, {""}, {"MTTX", 4, 4340}, {""}, {""}, {""}, {""}, {"STND", 4, 6150}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PBIO", 4, 4939}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SLGN", 4, 5951}, {""}, {""}, {""}, {"CNR", 3, 1283}, {""}, {""}, {""}, {""}, {""}, {"ABMD", 4, 36}, {"CTQ", 3, 1485}, {"CLSN", 4, 1226}, {""}, {""}, {""}, {"SFN", 3, 5839}, {""}, {""}, {""}, {""}, {"CFN", 3, 1101}, {"SQQQ", 4, 6093}, {""}, {""}, {""}, {""}, {"CQQQ", 4, 1377}, {""}, {""}, {""}, {""}, {"TQQQ", 4, 6464}, {""}, {"VR", 2, 6915}, {""}, {""}, {""}, {""}, {""}, {"TIER", 4, 6379}, {""}, {"ALTR", 4, 245}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PETM", 4, 5015}, {""}, {""}, {""}, {""}, {""}, {""}, {"PNR", 3, 5182}, {""}, {""}, {"GNR", 3, 2784}, {""}, {""}, {""}, {""}, {"CLNT", 4, 1221}, {""}, {""}, {""}, {""}, {"TRNM", 4, 6487}, {""}, {""}, {""}, {"PFN", 3, 5036}, {""}, {""}, {"GFN", 3, 2676}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MBND", 4, 4019}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WRN", 3, 7084}, {"MFNC", 4, 4108}, {""}, {""}, {""}, {""}, {"CTDC", 4, 1473}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSTL", 4, 5291}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VT", 2, 6942}, {""}, {"FRN", 3, 2491}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WIA", 3, 7022}, {""}, {""}, {""}, {""}, {""}, {""}, {"VRA", 3, 6897}, {""}, {""}, {""}, {""}, {""}, {"AMTD", 4, 295}, {""}, {"SBM", 3, 5738}, {""}, {"VQT", 3, 6895}, {""}, {""}, {"CBM", 3, 997}, {""}, {""}, {"VRTA", 4, 6908}, {""}, {""}, {""}, {"CLR", 3, 1225}, {""}, {""}, {""}, {""}, {"TLR", 3, 6415}, {"SCIL", 4, 5776}, {""}, {""}, {""}, {""}, {""}, {""}, {"UBM", 3, 6612}, {""}, {""}, {""}, {""}, {"SAM", 3, 5710}, {"PNRA", 4, 5180}, {""}, {""}, {""}, {"CAM", 3, 956}, {""}, {""}, {""}, {"PRGO", 4, 5230}, {"TAM", 3, 6258}, {""}, {""}, {"AADR", 4, 5}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UAM", 3, 6604}, {""}, {""}, {""}, {""}, {"MNI", 3, 4228}, {""}, {""}, {"SRCL", 4, 6095}, {""}, {"MIN", 3, 4164}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PBM", 3, 4943}, {""}, {""}, {"VTSS", 4, 6936}, {""}, {""}, {""}, {""}, {"SRSL", 4, 6101}, {""}, {""}, {"TRGL", 4, 6472}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GMXR", 4, 2773}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PAM", 3, 4922}, {""}, {""}, {"GAM", 3, 2598}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ABCO", 4, 25}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STRM", 4, 6163}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SM", 2, 5997}, {""}, {""}, {""}, {""}, {"CM", 2, 1262}, {""}, {""}, {""}, {""}, {"TM", 2, 6429}, {""}, {""}, {"STWD", 4, 6172}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VBR", 3, 6778}, {""}, {""}, {"CCM", 3, 1035}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CENX", 4, 1078}, {""}, {""}, {""}, {""}, {"AN", 2, 327}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VAR", 3, 6772}, {""}, {""}, {""}, {""}, {""}, {"ABTL", 4, 39}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VTUS", 4, 6937}, {""}, {""}, {""}, {""}, {""}, {""}, {"PM", 2, 5165}, {""}, {""}, {"GM", 2, 2774}, {""}, {""}, {""}, {""}, {"VSBN", 4, 6917}, {"ANGN", 4, 312}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PCM", 3, 4967}, {""}, {"MLI", 3, 4192}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PENX", 4, 5007}, {""}, {""}, {"GASZ", 4, 2603}, {""}, {"CLWT", 4, 1230}, {""}, {""}, {""}, {""}, {"FMCN", 4, 2423}, {""}, {""}, {""}, {""}, {"MEAD", 4, 4076}, {""}, {""}, {""}, {""}, {""}, {""}, {"CSM", 3, 1451}, {""}, {"WFC", 3, 7004}, {""}, {""}, {"TSM", 3, 6512}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"USM", 3, 6729}, {""}, {"VTI", 3, 6930}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FFBC", 4, 2339}, {""}, {""}, {""}, {"WFT", 3, 7010}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FFC", 3, 2343}, {""}, {""}, {""}, {""}, {""}, {"VSNT", 4, 6924}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ABIO", 4, 33}, {""}, {"GSM", 3, 2858}, {""}, {""}, {""}, {"VCR", 3, 6787}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CBRL", 4, 1006}, {""}, {""}, {""}, {""}, {"CEDC", 4, 1066}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UTMD", 4, 6746}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALAN", 4, 216}, {"SIGM", 4, 5904}, {""}, {""}, {""}, {"ACCL", 4, 49}, {""}, {""}, {"CIEN", 4, 1176}, {""}, {"MEXS", 4, 4096}, {""}, {""}, {""}, {""}, {"CRDN", 4, 1387}, {""}, {""}, {"ACGL", 4, 55}, {""}, {""}, {""}, {"IAT", 3, 3177}, {""}, {""}, {""}, {"USATZ", 5, 6715}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ANR", 3, 320}, {"ALGN", 4, 223}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VRSN", 4, 6906}, {""}, {"MNA", 3, 4224}, {""}, {"AQQ", 3, 366}, {""}, {""}, {""}, {""}, {"VSR", 3, 6925}, {"ALNC", 4, 234}, {""}, {"CRM", 3, 1407}, {"CLMT", 4, 1218}, {""}, {"WRES", 4, 7079}, {""}, {""}, {"MNTA", 4, 4236}, {""}, {"PARL", 4, 4926}, {""}, {""}, {""}, {"GIGM", 4, 2701}, {""}, {""}, {""}, {""}, {""}, {"WREI", 4, 7078}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FISN", 4, 2385}, {""}, {""}, {""}, {""}, {""}, {""}, {"FTWR", 4, 2536}, {""}, {""}, {"IACI", 4, 3169}, {""}, {""}, {""}, {""}, {"CCOI", 4, 1037}, {""}, {"CBLI", 4, 993}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VRNT", 4, 6903}, {""}, {""}, {"CLMS", 4, 1217}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRM", 3, 5240}, {"ICCC", 4, 3196}, {""}, {"GRM", 3, 2828}, {""}, {""}, {""}, {""}, {"CALI", 4, 948}, {""}, {""}, {""}, {""}, {"PLNR", 4, 5132}, {""}, {""}, {""}, {""}, {"QADA", 4, 5398}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MTRX", 4, 4334}, {""}, {""}, {""}, {""}, {"FFIC", 4, 2350}, {""}, {""}, {"ARCO", 4, 373}, {"SBX", 3, 5750}, {""}, {""}, {""}, {"GBLI", 4, 2616}, {"CBX", 3, 1014}, {""}, {""}, {""}, {""}, {"TBX", 3, 6286}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SQNM", 4, 6091}, {""}, {""}, {""}, {""}, {""}, {"ARDNA", 5, 376}, {""}, {"ISBC", 4, 3422}, {""}, {"WERN", 4, 6999}, {""}, {"ABM", 3, 37}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALR", 3, 240}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFBX", 4, 5022}, {""}, {""}, {""}, {"MLA", 3, 4189}, {""}, {""}, {"GBX", 3, 2620}, {"ISSC", 4, 3440}, {""}, {""}, {""}, {"ICS", 3, 3210}, {"QCCO", 4, 5403}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TREX", 4, 6470}, {""}, {"IST", 3, 3444}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARCL", 4, 372}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FFI", 3, 2353}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFBCD", 5, 5020}, {""}, {""}, {"VTA", 3, 6927}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IBI", 3, 3185}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRED", 4, 1388}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IAI", 3, 3174}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"YZC", 3, 7223}, {""}, {""}, {""}, {""}, {"SCX", 3, 5799}, {"ATRM", 4, 459}, {""}, {"ISS", 3, 3442}, {""}, {"CCX", 3, 1048}, {""}, {""}, {""}, {""}, {"TCX", 3, 6301}, {""}, {""}, {""}, {""}, {"VMC", 3, 6854}, {""}, {""}, {""}, {"ISSI", 4, 3441}, {""}, {"CSLS", 4, 1447}, {""}, {""}, {""}, {""}, {""}, {""}, {"AM", 2, 300}, {""}, {""}, {""}, {"PZC", 3, 5387}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACM", 3, 64}, {""}, {""}, {""}, {""}, {"VQ", 2, 6896}, {""}, {""}, {""}, {""}, {"IRC", 3, 3403}, {""}, {""}, {""}, {""}, {""}, {""}, {"QQQ", 3, 5425}, {""}, {""}, {""}, {"ICUI", 4, 3211}, {""}, {""}, {"PZT", 3, 5393}, {""}, {""}, {"PCX", 3, 4975}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNN", 3, 6012}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IRBT", 4, 3402}, {""}, {""}, {""}, {""}, {""}, {""}, {"CLWR", 4, 1229}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CSX", 3, 1463}, {"VMBS", 4, 6853}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ICI", 3, 3203}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MATL", 4, 4000}, {""}, {"PIQ", 3, 5088}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GSX", 3, 2864}, {""}, {""}, {"PANL", 4, 4923}, {""}, {"IRS", 3, 3417}, {""}, {""}, {""}, {""}, {""}, {""}, {"BAC", 3, 550}, {"CARZ", 4, 961}, {""}, {""}, {""}, {""}, {"SRLS", 4, 6100}, {""}, {""}, {""}, {"BBT", 3, 586}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VITC", 4, 6836}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ISIS", 4, 3430}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ISI", 3, 3431}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VIT", 3, 6837}, {""}, {""}, {""}, {""}, {""}, {"SCOR", 4, 5789}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRLS", 4, 5238}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SRX", 3, 6106}, {"BABS", 4, 546}, {"ASTIZ", 5, 432}, {""}, {"VIST", 4, 6834}, {""}, {""}, {""}, {""}, {""}, {"TRX", 3, 6502}, {""}, {""}, {""}, {"BBGI", 4, 575}, {""}, {""}, {""}, {""}, {"VIAS", 4, 6816}, {""}, {"BBSI", 4, 585}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BC", 2, 611}, {""}, {"BAS", 3, 567}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TZI", 3, 6593}, {"EBTC", 4, 1888}, {""}, {"WEN", 3, 6998}, {"BASI", 4, 566}, {""}, {""}, {""}, {"FFA", 3, 2337}, {""}, {""}, {""}, {""}, {""}, {"MBWM", 4, 4025}, {""}, {"VIS", 3, 6835}, {""}, {""}, {""}, {""}, {"MNR", 3, 4235}, {""}, {""}, {""}, {""}, {"IBA", 3, 3179}, {""}, {"PRX", 3, 5256}, {""}, {""}, {"GRX", 3, 2841}, {""}, {""}, {""}, {""}, {""}, {"CECO", 4, 1064}, {"MFN", 3, 4109}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VMI", 3, 6856}, {"FBCM", 4, 2264}, {""}, {""}, {"IBCA", 4, 3181}, {"FEN", 3, 2330}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TESO", 4, 6332}, {""}, {""}, {"PZI", 3, 5391}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VEA", 3, 6794}, {""}, {""}, {""}, {"IRIS", 4, 3412}, {""}, {"MAIL", 4, 3986}, {"EAT", 3, 1878}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STM", 3, 6149}, {"PEBO", 4, 4995}, {""}, {"WCRX", 4, 6988}, {""}, {""}, {""}, {""}, {""}, {""}, {"TTM", 3, 6537}, {""}, {""}, {"VTNC", 4, 6932}, {""}, {"SQM", 3, 6090}, {""}, {""}, {"BSTC", 4, 862}, {""}, {""}, {""}, {""}, {"ALRN", 4, 239}, {""}, {""}, {"TRNO", 4, 6488}, {"BSC", 3, 845}, {"BSCC", 4, 839}, {""}, {""}, {"IART", 4, 3176}, {"ABX", 3, 44}, {""}, {""}, {""}, {""}, {""}, {"BSJC", 4, 852}, {""}, {"UQM", 3, 6700}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EBS", 3, 1887}, {""}, {""}, {"BCS", 3, 608}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BCSI", 4, 607}, {""}, {""}, {""}, {""}, {""}, {""}, {"PTM", 3, 5306}, {"WINA", 4, 7027}, {"EC", 2, 1905}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AREX", 4, 377}, {""}, {"ICA", 3, 3194}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACLS", 4, 62}, {""}, {"WNC", 3, 7057}, {""}, {"MLR", 3, 4205}, {"STBZ", 4, 6131}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ECT", 3, 1903}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CNET", 4, 1270}, {""}, {""}, {""}, {"VII", 3, 6825}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AZC", 3, 538}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TSEM", 4, 6507}, {""}, {""}, {""}, {"VTR", 3, 6935}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESC", 3, 2118}, {""}, {""}, {"BRC", 3, 817}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GNET", 4, 2778}, {""}, {""}, {""}, {""}, {""}, {""}, {"ISTA", 4, 3443}, {""}, {"ECGI", 4, 1893}, {"SANWZ", 5, 5713}, {""}, {""}, {""}, {"PSEM", 4, 5272}, {""}, {""}, {"ISCA", 4, 3423}, {"BRT", 3, 833}, {""}, {""}, {""}, {""}, {""}, {"IR", 2, 3421}, {""}, {"WNS", 3, 7060}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"QRM", 3, 5428}, {""}, {""}, {""}, {""}, {""}, {""}, {"ES", 2, 2139}, {"TSLA", 4, 6510}, {""}, {""}, {""}, {""}, {""}, {""}, {"ANN", 3, 318}, {""}, {""}, {""}, {""}, {"AIQ", 3, 197}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CZA", 3, 1580}, {""}, {""}, {""}, {"WLBC", 4, 7035}, {"TZA", 3, 6588}, {"SCMFO", 5, 5783}, {""}, {"ASX", 3, 436}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CMCO", 4, 1236}, {""}, {""}, {"UZA", 3, 6767}, {""}, {""}, {""}, {""}, {"ESS", 3, 2135}, {""}, {""}, {"BRS", 3, 832}, {""}, {""}, {""}, {""}, {"FMN", 3, 2430}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GSLA", 4, 2856}, {""}, {""}, {""}, {"ITC", 3, 3448}, {""}, {""}, {""}, {""}, {""}, {""}, {"WLT", 3, 7044}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IQC", 3, 3397}, {""}, {"FLC", 3, 2399}, {"STRL", 4, 6162}, {"PZA", 3, 5385}, {""}, {""}, {""}, {"IT", 2, 3465}, {""}, {""}, {""}, {""}, {""}, {"ERC", 3, 2099}, {""}, {""}, {"BSI", 3, 851}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ITT", 3, 3462}, {""}, {""}, {"FLAT", 4, 2398}, {""}, {""}, {""}, {""}, {"WEET", 4, 6997}, {""}, {"MSM", 3, 4308}, {""}, {""}, {""}, {""}, {"IQT", 3, 3401}, {"SCON", 4, 5788}, {"FLT", 3, 2415}, {"SMBL", 4, 5971}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CMTL", 4, 1259}, {"ERT", 3, 2110}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"USMO", 4, 6728}, {""}, {"VICR", 4, 6819}, {""}, {"UBCP", 4, 6608}, {""}, {"ESIC", 4, 2123}, {""}, {""}, {"P", 1, 5396}, {""}, {""}, {""}, {""}, {"AMWD", 4, 297}, {""}, {"SEM", 3, 5823}, {""}, {""}, {""}, {""}, {"CEM", 3, 1075}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACOR", 4, 68}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ERTS", 4, 2109}, {""}, {""}, {""}, {""}, {"WNI", 3, 7058}, {""}, {"ALN", 3, 236}, {""}, {""}, {"WIN", 3, 7029}, {"WINN", 4, 7028}, {"ARX", 3, 407}, {""}, {"GNTX", 4, 2785}, {""}, {"UNTD", 4, 6687}, {"FLS", 3, 2413}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TSON", 4, 6514}, {"WFR", 3, 7007}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BA", 2, 569}, {""}, {"BAA", 3, 545}, {""}, {""}, {"FNI", 3, 2444}, {""}, {""}, {"BCAR", 4, 592}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BRIS", 4, 824}, {""}, {""}, {""}, {""}, {""}, {""}, {"VIA", 3, 6817}, {""}, {""}, {""}, {"ESI", 3, 2125}, {""}, {"MCRO", 4, 4045}, {""}, {""}, {""}, {""}, {"GTLS", 4, 2873}, {"FFR", 3, 2360}, {""}, {"ICGN", 4, 3201}, {""}, {"VIRC", 4, 6832}, {""}, {""}, {""}, {""}, {""}, {"STX", 3, 6174}, {"TCAP", 4, 6288}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCLN", 4, 5781}, {"PICO", 4, 5077}, {""}, {"ITIC", 4, 3452}, {"FCQ", 3, 2298}, {""}, {""}, {""}, {""}, {""}, {"FFIN", 4, 2351}, {""}, {""}, {"SIAL", 4, 5895}, {"UTX", 3, 6749}, {"MSEX", 4, 4298}, {""}, {""}, {""}, {""}, {"FLIC", 4, 2403}, {""}, {""}, {"AIRM", 4, 198}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ERIC", 4, 2102}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CLGX", 4, 1214}, {""}, {""}, {""}, {""}, {"GCAP", 4, 2622}, {""}, {"BSBR", 4, 837}, {""}, {""}, {""}, {"PTX", 3, 5315}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ERUS", 4, 2111}, {"ULGX", 4, 6663}, {""}, {"PCLN", 4, 4965}, {""}, {""}, {""}, {""}, {"BARI", 4, 563}, {""}, {""}, {""}, {""}, {"MCRL", 4, 4044}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BCA", 3, 593}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"USAP", 4, 6712}, {"USATP", 5, 6713}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SEED", 4, 5817}, {"EAA", 3, 1870}, {""}, {""}, {""}, {""}, {""}, {"ITI", 3, 3454}, {"CSGP", 4, 1440}, {""}, {""}, {""}, {""}, {""}, {"TDC", 3, 6303}, {""}, {""}, {""}, {""}, {""}, {"PBIP", 4, 4940}, {""}, {"IQI", 3, 3398}, {"GLAD", 4, 2729}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ERII", 4, 2104}, {""}, {""}, {"SDBT", 4, 5802}, {""}, {""}, {""}, {"SDT", 3, 5811}, {""}, {""}, {""}, {""}, {""}, {"VSEC", 4, 6921}, {""}, {""}, {""}, {""}, {"FARM", 4, 2257}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PDC", 3, 4982}, {""}, {""}, {"CZNC", 4, 1582}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLXT", 4, 5144}, {""}, {""}, {""}, {""}, {""}, {""}, {"IEC", 3, 3229}, {"ISNS", 4, 3435}, {""}, {"CADX", 4, 937}, {""}, {""}, {""}, {""}, {""}, {""}, {"BR", 2, 836}, {""}, {""}, {""}, {""}, {""}, {""}, {"PDT", 3, 4993}, {"CDCS", 4, 1050}, {""}, {""}, {"IESC", 4, 3234}, {""}, {"CDTI", 4, 1057}, {""}, {"CMM", 3, 1251}, {"FNSR", 4, 2447}, {"CBD", 3, 985}, {""}, {""}, {"TMM", 3, 6421}, {"QCOR", 4, 5406}, {"SDS", 3, 5810}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TDS", 3, 6312}, {""}, {""}, {""}, {""}, {""}, {"ESGR", 4, 2122}, {"GEOI", 4, 2657}, {""}, {""}, {""}, {"PLXS", 4, 5143}, {"ECA", 3, 1890}, {""}, {""}, {"VFC", 3, 6799}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ISR", 3, 3439}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AFAM", 4, 136}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AAON", 4, 8}, {""}, {""}, {""}, {""}, {"ATRO", 4, 461}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PMM", 3, 5157}, {"TRGP", 4, 6473}, {"PBD", 3, 4934}, {"GMM", 3, 2767}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PDS", 3, 4992}, {""}, {""}, {""}, {""}, {""}, {"MTSL", 4, 4337}, {""}, {""}, {"WBMD", 4, 6975}, {"BTC", 3, 866}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMBO", 4, 259}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BT", 2, 879}, {"MIND", 4, 4161}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRCP", 4, 5223}, {"SZR", 3, 6249}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESA", 3, 2114}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRSP", 4, 5247}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESCA", 4, 2117}, {""}, {""}, {""}, {""}, {"QTM", 3, 5432}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FLTR", 4, 2414}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESSA", 4, 2133}, {""}, {"SCD", 3, 5755}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VISN", 4, 6833}, {""}, {""}, {""}, {""}, {""}, {""}, {"SIM", 3, 5913}, {""}, {""}, {""}, {"UCD", 3, 6626}, {"CIM", 3, 1185}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TEX", 3, 6336}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IRR", 3, 3416}, {""}, {""}, {""}, {""}, {""}, {"ANCX", 4, 306}, {""}, {"BRAQ", 4, 813}, {""}, {""}, {"GSVC", 4, 2863}, {""}, {"STEM", 4, 6137}, {""}, {""}, {"PNQI", 4, 5179}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACXM", 4, 81}, {""}, {""}, {""}, {"CDI", 3, 1053}, {"CDII", 4, 1052}, {""}, {"AEM", 3, 121}, {""}, {"TDI", 3, 6309}, {"SMED", 4, 5976}, {""}, {""}, {"ANAD", 4, 302}, {""}, {"CMED", 4, 1241}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PIM", 3, 5084}, {""}, {""}, {"GIM", 3, 2707}, {""}, {""}, {""}, {"GEX", 3, 2667}, {""}, {"SSD", 3, 6110}, {""}, {""}, {"ITA", 3, 3446}, {""}, {"CSD", 3, 1436}, {""}, {""}, {""}, {"TTWO", 4, 6541}, {""}, {"ATLS", 4, 450}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"USD", 3, 6722}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PDII", 4, 4985}, {""}, {"GDI", 3, 2636}, {"ASML", 4, 423}, {""}, {""}, {"EQT", 3, 2096}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MLN", 3, 4196}, {""}, {""}, {""}, {""}, {"MRX", 3, 4288}, {""}, {""}, {"IEI", 3, 3231}, {"CITZ", 4, 1190}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IMC", 3, 3308}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATX", 3, 470}, {""}, {""}, {""}, {""}, {"VTN", 3, 6933}, {"BTUI", 4, 875}, {""}, {""}, {"WBCO", 4, 6971}, {""}, {""}, {""}, {"IMT", 3, 3320}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SRDX", 4, 6096}, {"EQS", 3, 2095}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FLIR", 4, 2404}, {""}, {""}, {"ITRI", 4, 3459}, {""}, {"VRTX", 4, 6912}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CNAM", 4, 1264}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BTI", 3, 871}, {""}, {""}, {""}, {""}, {""}, {"PRVT", 4, 5252}, {""}, {"CZWI", 4, 1583}, {"UNAM", 4, 6675}, {""}, {""}, {"SIRO", 4, 5917}, {""}, {""}, {"BQI", 3, 809}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IMS", 3, 3319}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CMLS", 4, 1250}, {""}, {""}, {""}, {""}, {""}, {"EBR", 3, 1885}, {""}, {""}, {"BCR", 3, 605}, {""}, {""}, {""}, {""}, {"ADC", 3, 85}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FN", 2, 2450}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AFQ", 3, 151}, {""}, {""}, {""}, {"FNBN", 4, 2437}, {"PRD", 3, 5224}, {"ADAT", 4, 83}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BEC", 3, 634}, {""}, {""}, {""}, {""}, {""}, {"ABVT", 4, 42}, {""}, {""}, {"WCBO", 4, 6983}, {""}, {"IIC", 3, 3280}, {""}, {""}, {""}, {""}, {""}, {"FNGN", 4, 2442}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BEAT", 4, 630}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STON", 4, 6154}, {""}, {""}, {""}, {""}, {""}, {""}, {"FMER", 4, 2426}, {""}, {""}, {"SILC", 4, 5908}, {"TMX", 3, 6428}, {""}, {""}, {""}, {""}, {""}, {"IIT", 3, 3290}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UMX", 3, 6674}, {""}, {""}, {""}, {""}, {""}, {"BSRR", 4, 861}, {""}, {""}, {""}, {""}, {"BEST", 4, 641}, {""}, {""}, {"FCCO", 4, 2283}, {""}, {""}, {""}, {"ECNS", 4, 1897}, {""}, {""}, {"AERL", 4, 127}, {""}, {"AMM", 3, 274}, {""}, {"ABD", 3, 29}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADS", 3, 102}, {""}, {""}, {""}, {""}, {"SDA", 3, 5801}, {""}, {""}, {""}, {""}, {""}, {"SLTM", 4, 5959}, {""}, {""}, {""}, {"PMX", 3, 5164}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MTEX", 4, 4323}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CNQR", 4, 1281}, {""}, {""}, {"IIJI", 4, 3286}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WEBM", 4, 6995}, {""}, {""}, {""}, {""}, {"FCAL", 4, 2279}, {""}, {""}, {""}, {""}, {""}, {""}, {"WNR", 3, 7059}, {""}, {""}, {"VSEA", 4, 6920}, {"GILT", 4, 2705}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLTM", 4, 5137}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLCM", 4, 5124}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"QCLN", 4, 5404}, {""}, {""}, {""}, {""}, {""}, {"EET", 3, 1938}, {""}, {"TFCO", 4, 6338}, {"FTQ", 3, 2533}, {""}, {""}, {""}, {""}, {""}, {"WSTL", 4, 7098}, {"MZA", 3, 4414}, {""}, {""}, {"FFN", 3, 2359}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SIX", 3, 5921}, {""}, {""}, {""}, {"ESR", 3, 2132}, {"CIX", 3, 1193}, {""}, {""}, {"ADUS", 4, 104}, {"VIMC", 4, 6826}, {"IBN", 3, 3190}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BANR", 4, 561}, {""}, {""}, {""}, {""}, {"AIM", 3, 193}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EES", 3, 1937}, {""}, {""}, {"BTA", 3, 865}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADI", 3, 90}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMOT", 4, 277}, {""}, {"AMED", 4, 265}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MNTX", 4, 4238}, {""}, {"TFSL", 4, 6343}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FRCCO", 5, 2479}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BMTC", 4, 755}, {""}, {""}, {""}, {""}, {"III", 3, 3285}, {""}, {""}, {""}, {"BMC", 3, 746}, {"BARN", 4, 565}, {""}, {"CNQ", 3, 1282}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SINO", 4, 5915}, {""}, {""}, {""}, {""}, {""}, {"ITR", 3, 3461}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FBM", 3, 2269}, {""}, {""}, {""}, {""}, {""}, {""}, {"FLR", 3, 2412}, {""}, {""}, {""}, {""}, {""}, {"EBMT", 4, 1883}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ICN", 3, 3207}, {""}, {""}, {""}, {""}, {"FAM", 3, 2255}, {""}, {""}, {""}, {""}, {""}, {"MSON", 4, 4310}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"QMM", 3, 5420}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FEIM", 4, 2326}, {""}, {""}, {""}, {""}, {"STIP", 4, 6140}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TENZ", 4, 6328}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BMTI", 4, 756}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BMS", 3, 754}, {""}, {""}, {""}, {""}, {"MTX", 3, 4344}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WM", 2, 7056}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SJT", 3, 5930}, {"GTIP", 4, 2870}, {""}, {""}, {"EEI", 3, 1932}, {"CJT", 3, 1198}, {""}, {""}, {""}, {""}, {""}, {"MITL", 4, 4167}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EMC", 3, 2013}, {""}, {""}, {""}, {""}, {""}, {""}, {"ANEN", 4, 310}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PJC", 3, 5096}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EMT", 3, 2036}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"QQQX", 4, 5424}, {""}, {"PJT", 3, 5102}, {""}, {""}, {"GJT", 3, 2723}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLND", 4, 5131}, {""}, {""}, {""}, {""}, {""}, {""}, {"CJS", 3, 1197}, {""}, {""}, {""}, {""}, {""}, {""}, {"STD", 3, 6133}, {""}, {""}, {"WSM", 3, 7093}, {""}, {"MDC", 3, 4055}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GLQ", 3, 2748}, {""}, {""}, {"ESMC", 4, 2129}, {""}, {""}, {""}, {""}, {"UDNT", 4, 6631}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMX", 3, 298}, {""}, {""}, {""}, {"YDNT", 4, 7207}, {""}, {""}, {""}, {""}, {"ATML", 4, 452}, {""}, {""}, {""}, {"EMCI", 4, 2012}, {"BITS", 4, 699}, {"MDT", 3, 4068}, {"MBVT", 4, 4024}, {""}, {""}, {""}, {""}, {""}, {"PZN", 3, 5392}, {""}, {""}, {""}, {""}, {""}, {""}, {"IMRS", 4, 3318}, {""}, {"CDNS", 4, 1055}, {""}, {"PJS", 3, 5101}, {"FARO", 4, 2258}, {""}, {"GJS", 3, 2722}, {""}, {""}, {""}, {""}, {""}, {""}, {"BIS", 3, 697}, {""}, {"PTD", 3, 5297}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALXA", 4, 251}, {""}, {""}, {""}, {""}, {"MDAS", 4, 4051}, {""}, {""}, {""}, {""}, {"FLWS", 4, 2416}, {"ASRVP", 5, 427}, {"TFM", 3, 6341}, {""}, {""}, {"CLDT", 4, 1208}, {""}, {""}, {""}, {"BMI", 3, 748}, {""}, {""}, {""}, {""}, {"VLT", 3, 6850}, {"ABVA", 4, 41}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MMM", 3, 4213}, {"GLDC", 4, 2736}, {"CDR", 3, 1056}, {""}, {""}, {""}, {""}, {""}, {"MDCI", 4, 4053}, {""}, {""}, {""}, {"MDS", 3, 4066}, {""}, {""}, {""}, {"MTOR", 4, 4330}, {""}, {""}, {""}, {""}, {""}, {"UDR", 3, 6635}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FBIZ", 4, 2266}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFM", 3, 5035}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MRLN", 4, 4282}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BBN", 3, 582}, {""}, {""}, {""}, {""}, {""}, {"FALC", 4, 2254}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRXL", 4, 5255}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SJI", 3, 5926}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FRM", 3, 2489}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNMX", 4, 6011}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EIS", 3, 1981}, {""}, {""}, {""}, {""}, {""}, {"MELI", 4, 4085}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CAMP", 4, 954}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALUM", 4, 247}, {"EMI", 3, 2021}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PJI", 3, 5097}, {""}, {""}, {"GJI", 3, 2714}, {"CNMD", 4, 1277}, {""}, {""}, {"MCD", 3, 4031}, {""}, {"EEA", 3, 1927}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MIM", 3, 4160}, {""}, {""}, {"ITRN", 4, 3460}, {""}, {""}, {""}, {""}, {""}, {"SIMO", 4, 5912}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BQR", 3, 810}, {""}, {""}, {""}, {""}, {""}, {"ALIM", 4, 226}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CTRP", 4, 1487}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FAX", 3, 2262}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IMGN", 4, 3310}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MSD", 3, 4297}, {""}, {""}, {""}, {"SCMP", 4, 5785}, {""}, {""}, {""}, {""}, {"CCMP", 4, 1034}, {""}, {"PFED", 4, 5025}, {""}, {""}, {"GFED", 4, 2670}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CALX", 4, 953}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SED", 3, 5816}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STEL", 4, 6136}, {""}, {""}, {""}, {""}, {"CTEL", 4, 1474}, {""}, {"IFT", 3, 3249}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FRED", 4, 2482}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CALD", 4, 947}, {""}, {""}, {""}, {"BMA", 3, 745}, {"ALXN", 4, 252}, {"ETR", 3, 2152}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BMRC", 4, 751}, {"EQR", 3, 2094}, {""}, {""}, {""}, {""}, {""}, {""}, {"IFAS", 4, 3238}, {""}, {"ADTN", 4, 103}, {""}, {"GED", 3, 2648}, {""}, {"FCX", 3, 2304}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EQIN", 4, 2091}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IRET", 4, 3409}, {""}, {""}, {""}, {""}, {"CSOD", 4, 1452}, {""}, {"BECN", 4, 633}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ANDS", 4, 308}, {""}, {""}, {""}, {""}, {"ICAD", 4, 3193}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFLT", 4, 5033}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AZN", 3, 540}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATVI", 4, 467}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNDA", 4, 6002}, {""}, {""}, {""}, {""}, {"CNDA", 4, 1269}, {""}, {""}, {""}, {""}, {""}, {"BRN", 3, 829}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CFX", 3, 1107}, {""}, {""}, {""}, {""}, {"TFX", 3, 6344}, {"WRLS", 4, 7083}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PJA", 3, 5094}, {"CROX", 4, 1410}, {""}, {"VLTR", 4, 6849}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CNGL", 4, 1271}, {""}, {"BITA", 4, 698}, {""}, {""}, {""}, {"EMSA", 4, 2035}, {"CNSL", 4, 1284}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFX", 3, 5040}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BIRT", 4, 696}, {""}, {""}, {""}, {""}, {"PNCL", 4, 5168}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MDCA", 4, 4052}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IQN", 3, 3400}, {""}, {"FLN", 3, 2408}, {""}, {""}, {""}, {""}, {"FRX", 3, 2497}, {""}, {""}, {""}, {""}, {""}, {"CERP", 4, 1083}, {"IIIN", 4, 3284}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SMDD", 4, 5975}, {""}, {""}, {""}, {"CMD", 3, 1240}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UMDD", 4, 6671}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VLGEA", 5, 6846}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CL", 2, 1234}, {""}, {""}, {""}, {""}, {""}, {""}, {"EIA", 3, 1973}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADRA", 4, 97}, {""}, {"UL", 2, 6668}, {""}, {""}, {""}, {""}, {"WTM", 3, 7104}, {""}, {"PMD", 3, 5151}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MELA", 4, 4084}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CFNL", 4, 1100}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PL", 2, 5146}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSET", 4, 848}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GLBL", 4, 2732}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GLGL", 4, 2741}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GFNCL", 5, 2674}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMAP", 4, 257}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SID", 3, 5897}, {""}, {""}, {""}, {"AMTCP", 5, 293}, {""}, {""}, {""}, {"AMLN", 4, 272}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BBXT", 4, 589}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FSLR", 4, 2513}, {""}, {""}, {"IRIX", 4, 3413}, {"AED", 3, 112}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EMAN", 4, 2009}, {""}, {""}, {""}, {""}, {"PID", 3, 5079}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EBTX", 4, 1889}, {""}, {""}, {"CEVA", 4, 1088}, {""}, {""}, {""}, {""}, {"TEVA", 4, 6335}, {""}, {""}, {""}, {""}, {"UNM", 3, 6684}, {""}, {""}, {"TAOM", 4, 6260}, {""}, {""}, {""}, {""}, {""}, {"BFS", 3, 650}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EATX", 4, 1877}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BMR", 3, 753}, {"ARQL", 4, 394}, {""}, {""}, {""}, {"TDN", 3, 6311}, {"MLNX", 4, 4195}, {""}, {"MJC", 3, 4172}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UDN", 3, 6632}, {"PNM", 3, 5176}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EFC", 3, 1942}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EFSC", 4, 1949}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WMCO", 4, 7047}, {""}, {""}, {""}, {""}, {"MDGN", 4, 4058}, {"PDN", 3, 4989}, {""}, {"EFT", 3, 1950}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ANGO", 4, 313}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VIIX", 4, 6823}, {""}, {""}, {""}, {""}, {""}, {"IFSIA", 5, 3247}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SFLA", 4, 5835}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SJR", 3, 5929}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSCD", 4, 840}, {""}, {"VNR", 3, 6868}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSJD", 4, 853}, {""}, {""}, {""}, {""}, {""}, {""}, {"SLM", 3, 5955}, {""}, {"MTD", 3, 4322}, {"SALM", 4, 5708}, {""}, {"CLM", 3, 1219}, {""}, {""}, {"CALM", 4, 950}, {""}, {"TLM", 3, 6412}, {""}, {""}, {"VLNC", 4, 6847}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EMR", 3, 2034}, {""}, {""}, {""}, {""}, {"WBSTP", 5, 6979}, {""}, {""}, {""}, {""}, {""}, {""}, {"PCOM", 4, 4969}, {""}, {""}, {"GCOM", 4, 2631}, {"PJR", 3, 5100}, {""}, {""}, {"GJR", 3, 2721}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BTN", 3, 873}, {"VRNM", 4, 6902}, {""}, {"EBIX", 4, 1881}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ITMN", 4, 3457}, {"PLM", 3, 5130}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MFM", 3, 4107}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FEM", 3, 2328}, {""}, {""}, {""}, {""}, {"EFUT", 4, 1951}, {"STMP", 4, 6148}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALCO", 4, 218}, {"MDR", 3, 4064}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESSX", 4, 2134}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INTC", 4, 3352}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMD", 3, 264}, {""}, {""}, {""}, {""}, {""}, {"BRCD", 4, 815}, {""}, {""}, {""}, {""}, {""}, {"FICO", 4, 2377}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INT", 3, 3358}, {"INTT", 4, 3355}, {"AL", 2, 254}, {"SAFT", 4, 5703}, {""}, {""}, {""}, {""}, {"GLBZ", 4, 2734}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FCAP", 4, 2280}, {"SGC", 3, 5849}, {"MJI", 3, 4174}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TGC", 3, 6349}, {""}, {""}, {""}, {""}, {"ETN", 3, 2148}, {""}, {""}, {""}, {""}, {""}, {""}, {"SIVR", 4, 5920}, {""}, {""}, {""}, {"EFII", 4, 1944}, {""}, {"GFNCZ", 5, 2675}, {""}, {""}, {"TAYC", 4, 6269}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CLRO", 4, 1224}, {""}, {""}, {"TGT", 3, 6357}, {""}, {""}, {""}, {""}, {""}, {""}, {"CAFI", 4, 940}, {""}, {"USLM", 4, 6726}, {""}, {""}, {""}, {""}, {"INS", 3, 3351}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PGC", 3, 5041}, {""}, {""}, {"GGC", 3, 2683}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WDC", 3, 6989}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IMN", 3, 3315}, {""}, {""}, {""}, {""}, {""}, {"UCFC", 4, 6627}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IMMR", 4, 3313}, {""}, {""}, {"GGT", 3, 2692}, {""}, {""}, {""}, {""}, {""}, {"STLD", 4, 6145}, {""}, {""}, {""}, {""}, {""}, {"SGS", 3, 5863}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FEED", 4, 2322}, {"TGS", 3, 6356}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IBND", 4, 3189}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNX", 3, 6021}, {""}, {""}, {""}, {""}, {"CNX", 3, 1292}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FDT", 3, 2318}, {"BRID", 4, 822}, {""}, {""}, {""}, {""}, {""}, {""}, {"PGTI", 4, 5053}, {"MCOX", 4, 4040}, {""}, {"MBLX", 4, 4017}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BMRN", 4, 752}, {""}, {""}, {""}, {"GGS", 3, 2691}, {"WDTI", 4, 6992}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FLXS", 4, 2417}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MED", 3, 4081}, {""}, {""}, {"PNX", 3, 5188}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PCYC", 4, 4976}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FMM", 3, 2429}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FDS", 3, 2317}, {"EMMT", 4, 2029}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XBI", 3, 7132}, {""}, {"FAD", 3, 2252}, {""}, {""}, {""}, {""}, {"BEN", 3, 639}, {""}, {""}, {""}, {"CSFS", 4, 1439}, {""}, {""}, {""}, {""}, {""}, {""}, {"IIN", 3, 3289}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CIDM", 4, 1175}, {""}, {"EMMS", 4, 2028}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESEA", 4, 2120}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SLX", 3, 5965}, {""}, {"SGI", 3, 5853}, {""}, {""}, {"CLX", 3, 1232}, {""}, {"CGI", 3, 1112}, {""}, {""}, {""}, {""}, {"TGI", 3, 6353}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACOM", 4, 67}, {""}, {"BCRX", 4, 604}, {""}, {"SSYS", 4, 6124}, {""}, {""}, {""}, {"UGI", 3, 6647}, {""}, {""}, {""}, {""}, {""}, {"TSYS", 4, 6526}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALM", 3, 233}, {""}, {""}, {""}, {""}, {""}, {""}, {"WEX", 3, 7002}, {""}, {""}, {""}, {""}, {""}, {"FDUS", 4, 2319}, {""}, {"SD", 2, 5813}, {""}, {""}, {""}, {"EFA", 3, 1941}, {"XRT", 3, 7187}, {""}, {""}, {""}, {""}, {"TD", 2, 6317}, {""}, {"PLX", 3, 5145}, {""}, {"PGI", 3, 5046}, {""}, {""}, {"FCD", 3, 2285}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FEX", 3, 2334}, {""}, {""}, {""}, {""}, {""}, {""}, {"EEN", 3, 1934}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRFT", 4, 5226}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GD", 2, 2644}, {""}, {""}, {""}, {"FDI", 3, 2310}, {""}, {""}, {"QID", 3, 5412}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XRS", 3, 7185}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FSD", 3, 2505}, {""}, {""}, {""}, {""}, {""}, {""}, {"GRFS", 4, 2820}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CDXS", 4, 1058}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VCLT", 4, 6785}, {""}, {""}, {""}, {"SFD", 3, 5830}, {""}, {""}, {""}, {""}, {"CFD", 3, 1093}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALEX", 4, 221}, {""}, {""}, {""}, {""}, {""}, {""}, {"SGAR", 4, 5846}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AGC", 3, 157}, {"BNS", 3, 767}, {""}, {""}, {"SDIX", 4, 5805}, {""}, {""}, {"ABFS", 4, 30}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFD", 3, 5024}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESRX", 4, 2131}, {"ALOT", 4, 238}, {""}, {""}, {"GIVN", 4, 2710}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WRD", 3, 7077}, {""}, {""}, {""}, {"XRIT", 4, 7182}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BLC", 3, 726}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACFC", 4, 53}, {""}, {""}, {""}, {"XAA", 3, 7130}, {""}, {""}, {""}, {""}, {""}, {""}, {"FRD", 3, 2481}, {"BBND", 4, 580}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XATA", 4, 7131}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BLT", 3, 740}, {""}, {""}, {""}, {"QCOM", 4, 5405}, {""}, {""}, {""}, {""}, {""}, {""}, {"BRCM", 4, 816}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SGA", 3, 5847}, {""}, {""}, {""}, {""}, {"CGA", 3, 1109}, {""}, {"SMOD", 4, 5987}, {""}, {""}, {"TGA", 3, 6347}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UGA", 3, 6644}, {""}, {""}, {""}, {"BSQR", 4, 859}, {""}, {"ANX", 3, 326}, {""}, {""}, {""}, {""}, {""}, {"WILC", 4, 7025}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADES", 4, 87}, {""}, {""}, {""}, {"ENS", 3, 2054}, {""}, {""}, {""}, {"MIDD", 4, 4156}, {""}, {"BLTI", 4, 739}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FMX", 3, 2435}, {""}, {""}, {""}, {"IMAX", 4, 3307}, {""}, {"ALLT", 4, 231}, {"EMN", 3, 2031}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GJN", 3, 2718}, {"IFMI", 4, 3242}, {""}, {""}, {""}, {""}, {""}, {"BIN", 3, 689}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELC", 3, 1989}, {""}, {""}, {""}, {"CBO", 3, 1003}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MFLR", 4, 4104}, {""}, {""}, {""}, {""}, {""}, {""}, {"EBND", 4, 1884}, {""}, {"BFR", 3, 648}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FCEL", 4, 2286}, {""}, {""}, {""}, {""}, {"TAO", 3, 6261}, {"ELT", 3, 2005}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BFIN", 4, 644}, {""}, {""}, {"ASFI", 4, 416}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"YAO", 3, 7203}, {""}, {"FFNM", 4, 2357}, {""}, {""}, {"IFNA", 4, 3243}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PAO", 3, 4924}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALX", 3, 253}, {""}, {""}, {"AGII", 4, 163}, {""}, {""}, {""}, {""}, {""}, {"IRWD", 4, 3419}, {"VRX", 3, 6914}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELS", 3, 2003}, {""}, {""}, {""}, {""}, {""}, {"ASYS", 4, 437}, {"FFCO", 4, 2342}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSQ", 3, 860}, {""}, {""}, {"IBCPO", 5, 3182}, {""}, {""}, {""}, {""}, {"EQIX", 4, 2092}, {""}, {""}, {"MFLA", 4, 4103}, {""}, {"FIX", 3, 2392}, {""}, {"ENI", 3, 2047}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCO", 3, 5790}, {""}, {""}, {""}, {""}, {"CCO", 3, 1038}, {""}, {""}, {""}, {""}, {"TCO", 3, 6299}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VECO", 4, 6795}, {""}, {""}, {"EFR", 3, 1948}, {"MLM", 3, 4193}, {"STFC", 4, 6139}, {""}, {"UCO", 3, 6629}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WFSL", 4, 7009}, {""}, {""}, {""}, {""}, {"FCVA", 4, 2302}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IN", 2, 3367}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GCO", 3, 2632}, {""}, {""}, {""}, {""}, {""}, {""}, {"BCDS", 4, 595}, {""}, {""}, {""}, {""}, {""}, {"MNRO", 4, 4234}, {"XRA", 3, 7181}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SSO", 3, 6118}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TSO", 3, 6515}, {""}, {""}, {""}, {"CBL", 3, 994}, {""}, {""}, {""}, {""}, {"TBL", 3, 6279}, {""}, {""}, {""}, {""}, {""}, {"USO", 3, 6731}, {""}, {""}, {"MTOX", 4, 4331}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SAL", 3, 5709}, {""}, {""}, {""}, {""}, {""}, {"CALL", 4, 949}, {""}, {""}, {""}, {"TAL", 3, 6257}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UAL", 3, 6603}, {""}, {""}, {""}, {"QSFT", 4, 5429}, {""}, {""}, {"GILD", 4, 2704}, {""}, {""}, {""}, {"PSO", 3, 5283}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GBL", 3, 2617}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BNA", 3, 758}, {""}, {""}, {""}, {"IBIO", 4, 3184}, {""}, {""}, {"PAL", 3, 4921}, {"PALL", 4, 4920}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CAVM", 4, 975}, {""}, {""}, {"VNET", 4, 6862}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SGNT", 4, 5859}, {""}, {""}, {""}, {""}, {""}, {"FINL", 4, 2381}, {""}, {""}, {"MGC", 3, 4120}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ENTR", 4, 2056}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MBFI", 4, 4013}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FNDT", 4, 2439}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MGT", 3, 4133}, {""}, {""}, {""}, {""}, {"GSOL", 4, 2859}, {""}, {""}, {"SCL", 3, 5782}, {"INR", 3, 3346}, {""}, {""}, {""}, {"CCL", 3, 1033}, {""}, {""}, {""}, {""}, {"TCL", 3, 6298}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IFN", 3, 3244}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ININ", 4, 3338}, {""}, {""}, {""}, {""}, {""}, {"YCL", 3, 7205}, {"SSFN", 4, 6112}, {""}, {""}, {"AGA", 3, 155}, {""}, {""}, {""}, {""}, {""}, {""}, {"VTRO", 4, 6934}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRO", 3, 5244}, {""}, {""}, {"GRO", 3, 2832}, {""}, {""}, {"CGR", 3, 1116}, {""}, {""}, {"PCL", 3, 4966}, {""}, {"TGR", 3, 6355}, {""}, {""}, {""}, {""}, {""}, {"MAYS", 4, 4007}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ENA", 3, 2040}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SSL", 3, 6115}, {""}, {""}, {""}, {""}, {"CSL", 3, 1448}, {""}, {""}, {""}, {""}, {"TSL", 3, 6511}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WFM", 3, 7006}, {""}, {"USL", 3, 6727}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PGR", 3, 5052}, {""}, {""}, {"GGR", 3, 2690}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WDR", 3, 6991}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSL", 3, 5280}, {""}, {""}, {"GSL", 3, 2857}, {""}, {""}, {""}, {""}, {""}, {"MSFT", 4, 4300}, {""}, {""}, {""}, {""}, {""}, {""}, {"IBM", 3, 3188}, {"GNVC", 4, 2787}, {"MGIC", 4, 4124}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XEC", 3, 7136}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRFN", 4, 1393}, {""}, {""}, {"YNDX", 4, 7212}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CJJD", 4, 1196}, {""}, {"EMGX", 4, 2018}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRL", 3, 1400}, {""}, {"ELA", 3, 1987}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELRC", 4, 2000}, {""}, {""}, {""}, {""}, {""}, {"ISIL", 4, 3429}, {""}, {""}, {"MGI", 3, 4125}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XES", 3, 7138}, {""}, {""}, {"ACO", 3, 69}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IM", 2, 3321}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BNCN", 4, 760}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TLVT", 4, 6417}, {""}, {"MD", 2, 4075}, {""}, {""}, {"FFEX", 4, 2346}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CLDX", 4, 1209}, {"FREEZ", 5, 2483}, {""}, {""}, {""}, {""}, {"IBOC", 4, 3191}, {""}, {"BAGL", 4, 552}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VICL", 4, 6818}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CLD", 3, 1210}, {""}, {""}, {""}, {"ANTP", 4, 323}, {"ABL", 3, 35}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GLDX", 4, 2738}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ISM", 3, 3434}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VSCP", 4, 6919}, {""}, {""}, {"VRML", 4, 6900}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VDC", 3, 6791}, {""}, {""}, {""}, {""}, {""}, {"ADRD", 4, 98}, {""}, {""}, {""}, {"GMETP", 5, 2759}, {""}, {""}, {""}, {""}, {"PLD", 3, 5125}, {""}, {""}, {"GLD", 3, 2739}, {"GLDD", 4, 2737}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AGNC", 4, 166}, {""}, {"MFD", 3, 4100}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACFN", 4, 54}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EAGL", 4, 1874}, {""}, {""}, {""}, {""}, {"SGMS", 4, 5858}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VMM", 3, 6857}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARO", 3, 393}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VDSI", 4, 6793}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WILN", 4, 7026}, {""}, {"IRM", 3, 3415}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CBG", 3, 988}, {"VELT", 4, 6796}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"G", 1, 2909}, {""}, {""}, {""}, {"UBG", 3, 6611}, {""}, {""}, {""}, {""}, {"FITBP", 5, 2388}, {"SAGG", 4, 5704}, {""}, {""}, {""}, {"CAG", 3, 942}, {""}, {""}, {""}, {""}, {""}, {"STO", 3, 6155}, {""}, {"FJA", 3, 2394}, {""}, {""}, {"CTO", 3, 1483}, {"MGA", 3, 4119}, {""}, {""}, {""}, {"TTO", 3, 6538}, {""}, {""}, {""}, {"UAG", 3, 6602}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MGRC", 4, 4132}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MJN", 3, 4175}, {""}, {""}, {""}, {""}, {"GBG", 3, 2615}, {""}, {"ENR", 3, 2052}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PAG", 3, 4918}, {"PAGG", 4, 4917}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VNQI", 4, 6866}, {""}, {"PTO", 3, 5309}, {""}, {""}, {""}, {""}, {""}, {""}, {"BAM", 3, 558}, {"BAMM", 4, 557}, {"CBAK", 4, 982}, {""}, {""}, {""}, {""}, {""}, {"BLIN", 4, 732}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TBBK", 4, 6274}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TLEO", 4, 6405}, {""}, {"VIM", 3, 6827}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CCBG", 4, 1018}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ISRL", 4, 3438}, {"SCG", 3, 5757}, {""}, {""}, {""}, {""}, {"CCG", 3, 1026}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VMED", 4, 6855}, {""}, {"AND", 3, 309}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SIFI", 4, 5899}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VTWO", 4, 6940}, {""}, {""}, {""}, {""}, {""}, {"PATK", 4, 4929}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARL", 3, 389}, {""}, {""}, {""}, {""}, {"FMD", 3, 2425}, {"BABZ", 4, 548}, {"FNIO", 4, 2443}, {""}, {""}, {"PCG", 3, 4962}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BCM", 3, 599}, {""}, {""}, {""}, {"ELR", 3, 2001}, {""}, {""}, {""}, {"ESIO", 4, 2124}, {""}, {""}, {""}, {"SSG", 3, 6113}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FL", 2, 2420}, {""}, {"GIFI", 4, 2699}, {""}, {""}, {""}, {""}, {""}, {"WRLD", 4, 7082}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"USG", 3, 6724}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TCBK", 4, 6291}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STL", 3, 6147}, {""}, {""}, {""}, {""}, {"CTL", 3, 1481}, {""}, {""}, {""}, {""}, {""}, {"MCO", 3, 4041}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UTL", 3, 6745}, {""}, {""}, {"GSG", 3, 2849}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INN", 3, 3340}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PCBK", 4, 4955}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BRIL", 4, 823}, {""}, {""}, {"TNDM", 4, 6435}, {""}, {""}, {""}, {""}, {""}, {"ALD", 3, 220}, {""}, {""}, {"ETRM", 4, 2151}, {""}, {""}, {""}, {""}, {""}, {""}, {"VRD", 3, 6898}, {""}, {""}, {""}, {""}, {"CSBK", 4, 1432}, {""}, {""}, {""}, {""}, {"TSBK", 4, 6504}, {""}, {""}, {""}, {""}, {"USAK", 4, 6711}, {""}, {""}, {""}, {""}, {"EM", 2, 2039}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MSO", 3, 4311}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UNXL", 4, 6691}, {"MBL", 3, 4018}, {"MDRX", 4, 4063}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SZX", 3, 6250}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MALL", 4, 3989}, {""}, {""}, {""}, {"URG", 3, 6704}, {""}, {""}, {""}, {""}, {""}, {"BARL", 4, 564}, {""}, {""}, {""}, {""}, {"CEO", 3, 1079}, {""}, {""}, {""}, {""}, {"TEO", 3, 6330}, {"PGN", 3, 5050}, {""}, {""}, {"GGN", 3, 2688}, {""}, {""}, {"GSJK", 4, 2854}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VIIZ", 4, 6824}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EEQ", 3, 1936}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BALT", 4, 555}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PEO", 3, 5009}, {""}, {""}, {"GEO", 3, 2659}, {"FDN", 3, 2314}, {""}, {""}, {""}, {"CAVO", 4, 976}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GSIG", 4, 2851}, {""}, {""}, {""}, {"TRAK", 4, 6465}, {"SGMA", 4, 5856}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SBCF", 4, 5730}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WLDN", 4, 7038}, {""}, {""}, {"PDCO", 4, 4981}, {""}, {"MRO", 3, 4284}, {""}, {""}, {""}, {"ABG", 3, 31}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATO", 3, 455}, {""}, {""}, {""}, {"BBX", 3, 590}, {"BRAZ", 4, 814}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BAX", 3, 568}, {"ITM", 3, 3458}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IQM", 3, 3399}, {""}, {"FLM", 3, 2407}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ICLR", 4, 3206}, {""}, {""}, {""}, {""}, {""}, {"MSL", 3, 4307}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"QLD", 3, 5415}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACTG", 4, 73}, {""}, {"CEL", 3, 1074}, {"CELL", 4, 1073}, {""}, {""}, {""}, {"TEL", 3, 6327}, {""}, {""}, {""}, {""}, {""}, {""}, {"WLBPZ", 5, 7036}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACG", 3, 56}, {""}, {"BZC", 3, 919}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCVL", 4, 5798}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATLO", 4, 449}, {"BCX", 3, 610}, {""}, {""}, {""}, {""}, {"PEL", 3, 5005}, {""}, {""}, {"GEL", 3, 2652}, {""}, {""}, {""}, {""}, {"VNQ", 3, 6867}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CMO", 3, 1253}, {""}, {""}, {""}, {""}, {"TMO", 3, 6423}, {""}, {""}, {""}, {""}, {""}, {""}, {"TSTF", 4, 6522}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FNLC", 4, 2446}, {"ASG", 3, 418}, {"ALVR", 4, 249}, {"EMQ", 3, 2033}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FLEX", 4, 2401}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EROC", 4, 2107}, {""}, {""}, {""}, {""}, {"PMO", 3, 5159}, {"FGC", 3, 2363}, {""}, {"GMO", 3, 2768}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSX", 3, 864}, {""}, {""}, {"PSCF", 4, 5264}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FLOT", 4, 2409}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESLT", 4, 2127}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IFSM", 4, 3248}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCIF", 4, 5775}, {"FCFC", 4, 2287}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AGN", 3, 167}, {""}, {""}, {""}, {"BRLI", 4, 828}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"X", 1, 7201}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARG", 3, 381}, {""}, {"MSDXP", 5, 4296}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FNX", 3, 2448}, {""}, {""}, {""}, {""}, {""}, {""}, {"QBAK", 4, 5401}, {""}, {"ICON", 4, 3209}, {""}, {""}, {""}, {"CRVL", 4, 1421}, {""}, {""}, {"IBCP", 4, 3183}, {""}, {"AEO", 3, 123}, {"INTX", 4, 3357}, {""}, {""}, {""}, {""}, {""}, {""}, {"FCFS", 4, 2288}, {"BLN", 3, 738}, {""}, {""}, {"PDM", 3, 4988}, {""}, {""}, {"BRXX", 4, 834}, {""}, {""}, {"ITLT", 4, 3455}, {""}, {""}, {"ILMN", 4, 3305}, {"STAG", 4, 6127}, {"PIO", 3, 5086}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CFFC", 4, 1094}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WSFS", 4, 7091}, {""}, {"CALP", 4, 952}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UTG", 3, 6740}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PML", 3, 5156}, {""}, {""}, {"GML", 3, 2765}, {"TGALD", 5, 6346}, {"MNRKP", 5, 4232}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BTM", 3, 872}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TAYD", 4, 6270}, {""}, {""}, {""}, {""}, {""}, {"CFFI", 4, 1095}, {""}, {""}, {""}, {"PAYX", 4, 4931}, {""}, {""}, {""}, {""}, {""}, {"ICLN", 4, 3205}, {""}, {"YANG", 4, 7202}, {""}, {""}, {""}, {"MBG", 3, 4015}, {""}, {"FGI", 3, 2368}, {""}, {""}, {""}, {"WAVX", 4, 6969}, {"ELN", 3, 1996}, {""}, {""}, {""}, {""}, {"ERX", 3, 2112}, {"WD", 2, 6993}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FSYS", 4, 2522}, {""}, {""}, {""}, {""}, {""}, {""}, {"MAG", 3, 3985}, {""}, {""}, {"MMYT", 4, 4222}, {""}, {""}, {"PDEX", 4, 4983}, {"CELGZ", 5, 1071}, {""}, {""}, {""}, {"TCLP", 4, 6297}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MNEL", 4, 4226}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SIL", 3, 5910}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GRIF", 4, 2824}, {""}, {""}, {""}, {""}, {""}, {""}, {"UIL", 3, 6655}, {""}, {"CBNK", 4, 1000}, {""}, {"GDOT", 4, 2638}, {""}, {""}, {"TBNK", 4, 6280}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UBNK", 4, 6613}, {""}, {""}, {""}, {""}, {"AEL", 3, 120}, {""}, {""}, {""}, {"IDCC", 4, 3213}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SDRL", 4, 5809}, {""}, {""}, {"CROP", 4, 1409}, {""}, {"GIL", 3, 2706}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ETM", 3, 2147}, {"MFLX", 4, 4105}, {""}, {""}, {""}, {"GCVRZ", 5, 2633}, {""}, {""}, {"IDT", 3, 3223}, {""}, {""}, {"UDRL", 4, 6634}, {""}, {"GBNK", 4, 2618}, {""}, {""}, {""}, {""}, {""}, {""}, {"WFD", 3, 7005}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FFD", 3, 2345}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IDTI", 4, 3222}, {""}, {""}, {""}, {"XTN", 3, 7193}, {""}, {""}, {""}, {""}, {"SPBC", 4, 6051}, {""}, {""}, {""}, {""}, {"CPBC", 4, 1340}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MDMD", 4, 4060}, {""}, {""}, {"CPC", 3, 1343}, {""}, {""}, {""}, {""}, {"TPC", 3, 6455}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPSC", 4, 6079}, {"XRTX", 4, 7186}, {""}, {""}, {""}, {"ESLR", 4, 2126}, {""}, {""}, {""}, {""}, {""}, {""}, {"MSG", 3, 4302}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VIXM", 4, 6840}, {""}, {""}, {"CPT", 3, 1368}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PPC", 3, 5203}, {"CPST", 4, 1366}, {""}, {"GPC", 3, 2801}, {""}, {""}, {""}, {""}, {"MTL", 3, 4328}, {""}, {""}, {""}, {""}, {"CEG", 3, 1070}, {""}, {""}, {""}, {""}, {"TEG", 3, 6324}, {"PDLI", 4, 4987}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TDX", 3, 6315}, {""}, {"WGA", 3, 7013}, {"CPTS", 4, 1367}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PPT", 3, 5214}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BCON", 4, 601}, {""}, {""}, {""}, {"CPSS", 4, 1365}, {""}, {""}, {""}, {"TPS", 3, 6460}, {"ADM", 3, 94}, {""}, {""}, {"CPGI", 4, 1346}, {""}, {""}, {""}, {""}, {"TPGI", 4, 6456}, {""}, {"CPSI", 4, 1363}, {""}, {""}, {""}, {"UPS", 3, 6697}, {""}, {""}, {"PEG", 3, 5000}, {""}, {""}, {"GEG", 3, 2650}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GDX", 3, 2643}, {""}, {""}, {""}, {""}, {"BEM", 3, 638}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MGN", 3, 4130}, {"PPBI", 4, 5202}, {"IIM", 3, 3288}, {""}, {""}, {""}, {"IEX", 3, 3236}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EZA", 3, 2239}, {""}, {""}, {"PPS", 3, 5213}, {""}, {""}, {"GPS", 3, 2813}, {""}, {""}, {""}, {"VNDA", 4, 6861}, {""}, {""}, {""}, {""}, {""}, {"CEBK", 4, 1062}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IDI", 3, 3217}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATSG", 4, 464}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PEBK", 4, 4994}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IMOS", 4, 3316}, {""}, {""}, {""}, {""}, {""}, {""}, {"MDCO", 4, 4054}, {"BTX", 3, 877}, {"BCBP", 4, 594}, {""}, {""}, {""}, {""}, {"ECON", 4, 1899}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GPIC", 4, 2802}, {""}, {""}, {"MDSO", 4, 4065}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MBTF", 4, 4022}, {""}, {""}, {""}, {""}, {""}, {""}, {"EEM", 3, 1933}, {""}, {""}, {""}, {""}, {""}, {""}, {"TZD", 3, 6589}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GRRF", 4, 2834}, {"CPI", 3, 1351}, {""}, {""}, {"GNOM", 4, 2782}, {""}, {"TPI", 3, 6457}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UPI", 3, 6694}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WCO", 3, 6987}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PZD", 3, 5388}, {""}, {"WTFC", 4, 7102}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BDC", 3, 614}, {""}, {""}, {""}, {"SAFM", 4, 5702}, {"GPI", 3, 2803}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SMCG", 4, 5973}, {""}, {""}, {"FCO", 3, 2297}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SMG", 3, 5979}, {""}, {""}, {""}, {""}, {"CMG", 3, 1246}, {""}, {"INSM", 4, 3347}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BDT", 3, 627}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WSO", 3, 7094}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MBRG", 4, 4020}, {""}, {""}, {""}, {""}, {"MCBF", 4, 4028}, {""}, {""}, {""}, {""}, {"SGEN", 4, 5850}, {""}, {""}, {""}, {""}, {"CGEN", 4, 1111}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELGX", 4, 1991}, {""}, {""}, {""}, {"WAL", 3, 6965}, {"BDCS", 4, 613}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BBD", 3, 572}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WAYN", 4, 6970}, {""}, {""}, {"BLUD", 4, 741}, {""}, {""}, {""}, {""}, {"BDSI", 4, 626}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EDAC", 4, 1906}, {"FLML", 4, 2406}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CMCSK", 5, 1238}, {""}, {"APAC", 4, 340}, {""}, {""}, {""}, {"EDC", 3, 1908}, {""}, {""}, {""}, {""}, {""}, {"SPAR", 4, 6049}, {""}, {""}, {""}, {""}, {"MSBF", 4, 4291}, {""}, {""}, {""}, {""}, {"IDA", 3, 3212}, {""}, {""}, {""}, {"APC", 3, 344}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ENER", 4, 2044}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EDT", 3, 1921}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFO", 3, 5037}, {""}, {"SIG", 3, 5905}, {""}, {""}, {""}, {""}, {"CIG", 3, 1180}, {""}, {""}, {"SJM", 3, 5928}, {"APT", 3, 361}, {""}, {"IDSA", 4, 3220}, {""}, {"CISG", 4, 1188}, {""}, {""}, {""}, {""}, {"VNM", 3, 6863}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARLP", 4, 388}, {""}, {""}, {""}, {""}, {""}, {"GEVO", 4, 2666}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AEG", 3, 116}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADX", 3, 106}, {""}, {""}, {""}, {""}, {"EMM", 3, 2030}, {""}, {""}, {"APTS", 4, 360}, {""}, {""}, {"FRO", 3, 2492}, {""}, {""}, {""}, {""}, {""}, {"EDS", 3, 1920}, {""}, {""}, {"FCL", 3, 2294}, {""}, {""}, {""}, {"GJM", 3, 2717}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EAD", 3, 1871}, {""}, {""}, {""}, {""}, {"SPA", 3, 6050}, {""}, {""}, {""}, {""}, {"CPA", 3, 1339}, {""}, {""}, {""}, {""}, {"UNFI", 4, 6677}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EDUC", 4, 1922}, {""}, {""}, {""}, {""}, {""}, {"SPCHA", 5, 6053}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SICK", 4, 5896}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MDM", 3, 4061}, {""}, {""}, {""}, {""}, {""}, {"CFFN", 4, 1096}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPRT", 4, 6077}, {"CLFC", 4, 1211}, {""}, {""}, {""}, {"CPRT", 4, 1361}, {""}, {"BSD", 3, 847}, {""}, {"PPA", 3, 5201}, {""}, {""}, {""}, {""}, {"INXN", 4, 3363}, {""}, {""}, {"FSL", 3, 2514}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GPRC", 4, 2809}, {""}, {""}, {""}, {""}, {""}, {"IFGL", 4, 3241}, {"STNG", 4, 6151}, {""}, {""}, {"MRVL", 4, 4287}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SFL", 3, 5837}, {""}, {""}, {"SPIR", 4, 6063}, {""}, {""}, {""}, {""}, {"TRMK", 4, 6484}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CGNX", 4, 1113}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XTXI", 4, 7194}, {""}, {""}, {""}, {"EIM", 3, 1977}, {""}, {"MTG", 3, 4325}, {""}, {""}, {""}, {""}, {""}, {""}, {"TKC", 3, 6397}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFL", 3, 5034}, {""}, {""}, {""}, {""}, {""}, {""}, {"BIOC", 4, 690}, {""}, {""}, {""}, {""}, {""}, {"PGNX", 4, 5049}, {""}, {""}, {""}, {"SKT", 3, 5941}, {""}, {""}, {""}, {""}, {"CGQ", 3, 1115}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ITIP", 4, 3453}, {""}, {""}, {"API", 3, 350}, {""}, {""}, {""}, {""}, {""}, {""}, {"VBFC", 4, 6775}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESD", 3, 2119}, {""}, {""}, {"BRD", 3, 818}, {"XIN", 3, 7150}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FRL", 3, 2487}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SKBI", 4, 5932}, {""}, {""}, {""}, {"PKT", 3, 5116}, {""}, {""}, {""}, {""}, {""}, {"XFR", 3, 7143}, {""}, {""}, {""}, {""}, {"AMAG", 4, 256}, {""}, {""}, {"SCMF", 4, 5784}, {"SKS", 3, 5940}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IJT", 3, 3297}, {"BIOS", 4, 693}, {""}, {""}, {""}, {""}, {""}, {"UMBF", 4, 6669}, {""}, {""}, {"SLXP", 4, 5964}, {""}, {"WEYS", 4, 7003}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMG", 3, 268}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMSG", 4, 290}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EMLC", 4, 2025}, {"MILL", 4, 4159}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PEOP", 4, 5008}, {""}, {""}, {""}, {""}, {"VROM", 4, 6904}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VGT", 3, 6809}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IJS", 3, 3296}, {""}, {"AGEN", 4, 160}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADLR", 4, 93}, {""}, {""}, {""}, {""}, {""}, {""}, {"TOBC", 4, 6442}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPAN", 4, 6048}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPTN", 4, 6080}, {""}, {""}, {""}, {""}, {"SIVBO", 5, 5918}, {""}, {""}, {""}, {""}, {"XLI", 3, 7160}, {""}, {""}, {"BBVA", 4, 587}, {"TIVO", 4, 6393}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COT", 3, 1330}, {""}, {""}, {""}, {""}, {"TOT", 3, 6451}, {"CMRG", 4, 1256}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPNC", 4, 6067}, {""}, {""}, {""}, {""}, {"COST", 4, 1329}, {""}, {""}, {""}, {""}, {""}, {"IRDM", 4, 3407}, {""}, {""}, {""}, {"TJX", 3, 6396}, {""}, {""}, {"EDGR", 4, 1912}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MPAC", 4, 4260}, {""}, {""}, {""}, {""}, {"TOTS", 4, 6450}, {""}, {""}, {""}, {"POT", 3, 5196}, {"AIG", 3, 191}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FMFC", 4, 2427}, {""}, {"EIRL", 4, 1980}, {"SOS", 3, 6043}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COSI", 4, 1328}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BELFA", 5, 636}, {""}, {""}, {""}, {""}, {""}, {"SPNS", 4, 6068}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PKI", 3, 5109}, {""}, {""}, {""}, {""}, {""}, {"WATG", 4, 6967}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MEG", 3, 4082}, {""}, {""}, {"VGIT", 4, 6803}, {""}, {"WAG", 3, 6964}, {""}, {"APA", 3, 342}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BANFP", 5, 559}, {"SNFCA", 5, 6005}, {""}, {""}, {""}, {"SPR", 3, 6078}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IDRA", 4, 3219}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"APSA", 4, 359}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MNDO", 4, 4225}, {""}, {""}, {""}, {"FTO", 3, 2532}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INMD", 4, 3339}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AERG", 4, 126}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PPR", 3, 5212}, {""}, {""}, {"GPR", 3, 2812}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AFL", 3, 148}, {""}, {""}, {""}, {""}, {"EIX", 3, 1983}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"QGEN", 4, 5411}, {""}, {"SDD", 3, 5803}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"APRI", 4, 358}, {""}, {"TDD", 3, 6304}, {""}, {""}, {"PERF", 4, 5011}, {""}, {""}, {""}, {""}, {""}, {""}, {"WCG", 3, 6985}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DBC", 3, 1601}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FABK", 4, 2248}, {"CRVP", 4, 1422}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WIFI", 4, 7024}, {""}, {""}, {""}, {""}, {"DAC", 3, 1586}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FCG", 3, 2290}, {""}, {""}, {""}, {""}, {""}, {""}, {"AGQ", 3, 171}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CNO", 3, 1278}, {""}, {""}, {""}, {""}, {""}, {""}, {"CMLP", 4, 1249}, {""}, {""}, {"TSEMG", 5, 6506}, {""}, {""}, {""}, {"WSTG", 4, 7097}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"USEG", 4, 6723}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSDM", 4, 846}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NBBC", 4, 4443}, {""}, {""}, {""}, {""}, {""}, {"GKSR", 4, 2728}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DBS", 3, 1611}, {""}, {""}, {""}, {""}, {"AKS", 3, 215}, {""}, {"GMLP", 4, 2764}, {""}, {""}, {""}, {"AMCF", 4, 261}, {""}, {"FSG", 3, 2509}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TMNG", 4, 6422}, {"NAC", 3, 4420}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMSF", 4, 289}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SFG", 3, 5832}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CFSG", 4, 1104}, {"NAT", 3, 4437}, {""}, {""}, {"UBFO", 4, 6610}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DCT", 3, 1626}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MGAM", 4, 4118}, {""}, {""}, {""}, {""}, {"CREG", 4, 1390}, {""}, {""}, {""}, {""}, {""}, {"NBS", 3, 4454}, {"PFG", 3, 5028}, {""}, {""}, {"QPSA", 4, 5422}, {""}, {""}, {""}, {""}, {"COBR", 4, 1296}, {""}, {"NABI", 4, 4419}, {"TLO", 3, 6413}, {""}, {""}, {""}, {"NATI", 4, 4434}, {""}, {""}, {""}, {""}, {"FSBK", 4, 2502}, {""}, {""}, {"NAGS", 4, 4423}, {"PBHC", 4, 4936}, {""}, {""}, {"NC", 2, 4476}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NCBC", 4, 4461}, {""}, {""}, {""}, {""}, {"NASI", 4, 4432}, {""}, {""}, {""}, {""}, {"BDR", 3, 625}, {""}, {""}, {""}, {""}, {""}, {""}, {"INTL", 4, 3354}, {""}, {""}, {"CFBK", 4, 1092}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DST", 3, 1806}, {""}, {"GLO", 3, 2745}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NCT", 3, 4472}, {""}, {"SEMG", 4, 5822}, {""}, {""}, {""}, {""}, {""}, {""}, {"CNL", 3, 1276}, {""}, {""}, {"FEO", 3, 2331}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UNL", 3, 6683}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCHC", 4, 5760}, {""}, {""}, {"AOS", 3, 339}, {""}, {""}, {""}, {""}, {"SOA", 3, 6023}, {""}, {"TCHC", 4, 6294}, {""}, {""}, {""}, {""}, {""}, {"NSTC", 4, 4661}, {""}, {""}, {"DSTI", 4, 1804}, {""}, {""}, {""}, {""}, {""}, {"NSC", 3, 4650}, {""}, {""}, {""}, {"DSCI", 4, 1798}, {"BBOX", 4, 583}, {""}, {""}, {""}, {"MIG", 3, 4158}, {""}, {""}, {""}, {""}, {"F", 1, 2589}, {""}, {""}, {""}, {""}, {""}, {""}, {"NSSC", 4, 4660}, {""}, {""}, {""}, {"NCS", 3, 4470}, {""}, {"GGAL", 4, 2681}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FLDM", 4, 2400}, {""}, {""}, {"NST", 3, 4662}, {"EFM", 3, 1945}, {""}, {""}, {""}, {""}, {"FRBK", 4, 2477}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CORT", 4, 1326}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DRC", 3, 1781}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EDR", 3, 1917}, {""}, {""}, {""}, {"GFIG", 4, 2672}, {""}, {"PSCE", 4, 5263}, {""}, {""}, {"IL", 2, 3306}, {"NS", 2, 4665}, {""}, {"SCHS", 4, 5771}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NAI", 3, 4425}, {"NAII", 4, 4424}, {"PCYO", 4, 4978}, {"MPA", 3, 4261}, {"MPAA", 4, 4259}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BFED", 4, 643}, {""}, {""}, {""}, {""}, {""}, {""}, {"XFN", 3, 7141}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DCI", 3, 1620}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TLL", 3, 6411}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CSFL", 4, 1438}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FEFN", 4, 2323}, {""}, {"ADVS", 4, 105}, {""}, {""}, {"NRC", 3, 4639}, {""}, {""}, {""}, {"SRCE", 4, 6094}, {""}, {"NCIT", 4, 4463}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VCO", 3, 6786}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"USHS", 4, 6725}, {"PLL", 3, 5129}, {""}, {"AOI", 3, 331}, {"GLL", 3, 2743}, {""}, {""}, {""}, {""}, {""}, {"NRT", 3, 4647}, {""}, {""}, {""}, {"DBBR", 4, 1598}, {""}, {"MFL", 3, 4106}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IIVI", 4, 3291}, {"PCEF", 4, 4959}, {""}, {""}, {"IID", 3, 3281}, {"DSI", 3, 1801}, {""}, {""}, {""}, {""}, {""}, {""}, {"ENMD", 4, 2049}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NCI", 3, 4464}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MKC", 3, 4176}, {"WSBF", 4, 7088}, {"ANO", 3, 319}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMLP", 4, 273}, {""}, {""}, {""}, {"NSIT", 4, 4654}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"APWC", 4, 363}, {""}, {"NRCI", 4, 4638}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CPWR", 4, 1371}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FMO", 3, 2431}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VAL", 3, 6771}, {"GKNT", 4, 2727}, {""}, {""}, {""}, {"SF", 2, 5845}, {""}, {""}, {""}, {""}, {"CF", 2, 1108}, {""}, {""}, {""}, {""}, {"TF", 2, 6345}, {""}, {"DBA", 3, 1597}, {"IDN", 3, 3218}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EFOI", 4, 1946}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NATR", 4, 4436}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BNSO", 4, 766}, {""}, {""}, {""}, {""}, {""}, {"SFSF", 4, 5841}, {""}, {""}, {""}, {"TKR", 3, 6401}, {""}, {""}, {"AFG", 3, 146}, {""}, {"MKS", 3, 4182}, {""}, {""}, {""}, {""}, {""}, {""}, {"BDMS", 4, 623}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MKSI", 4, 4181}, {""}, {""}, {""}, {"DRI", 3, 1785}, {"GF", 2, 2680}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELMD", 4, 1993}, {""}, {""}, {""}, {"PGM", 3, 5048}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPWRA", 5, 6082}, {""}, {"BLDR", 4, 728}, {""}, {""}, {""}, {""}, {""}, {""}, {"SONC", 4, 6035}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BNCL", 4, 759}, {""}, {"EDMC", 4, 1915}, {""}, {""}, {""}, {""}, {"IJR", 3, 3295}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AGCO", 4, 156}, {"SPN", 3, 6069}, {""}, {""}, {""}, {""}, {"CPN", 3, 1358}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FDM", 3, 2313}, {"SIMG", 4, 5911}, {"INOC", 4, 3341}, {""}, {""}, {""}, {""}, {""}, {""}, {"MOC", 3, 4241}, {""}, {"FIO", 3, 2382}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BJRI", 4, 702}, {""}, {""}, {"DCA", 3, 1617}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CINF", 4, 1186}, {"VGR", 3, 6807}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GPN", 3, 2807}, {""}, {""}, {"SONS", 4, 6038}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SGOC", 4, 5860}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZA", 2, 7227}, {""}, {""}, {""}, {""}, {""}, {"AOA", 3, 328}, {""}, {"SCHR", 4, 5770}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EFX", 3, 1954}, {"ASTE", 4, 431}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MOBI", 4, 4239}, {""}, {""}, {""}, {"SOR", 3, 6042}, {""}, {""}, {""}, {""}, {"COR", 3, 1327}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MOS", 3, 4253}, {""}, {""}, {""}, {""}, {""}, {""}, {"NCA", 3, 4460}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COIN", 4, 1309}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IFON", 4, 3245}, {""}, {""}, {""}, {""}, {"POR", 3, 5195}, {""}, {""}, {"TTEK", 4, 6530}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UTEK", 4, 6738}, {""}, {""}, {""}, {""}, {"IGC", 3, 3252}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCHA", 4, 5758}, {""}, {"XRM", 3, 7183}, {"MPR", 3, 4269}, {""}, {""}, {"ALL", 3, 232}, {""}, {""}, {""}, {""}, {"IGT", 3, 3267}, {""}, {""}, {""}, {""}, {"PTEK", 4, 5298}, {""}, {""}, {""}, {""}, {""}, {""}, {"EMD", 3, 2014}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WBNK", 4, 6977}, {""}, {"NR", 2, 4649}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GJD", 3, 2712}, {""}, {"DBCN", 4, 1600}, {""}, {""}, {""}, {""}, {"BID", 3, 682}, {""}, {""}, {""}, {""}, {"UNG", 3, 6680}, {""}, {""}, {""}, {"DTT", 3, 1822}, {"FIL", 3, 2380}, {""}, {""}, {""}, {""}, {""}, {""}, {"EL", 2, 2008}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FBNK", 4, 2271}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGS", 3, 3265}, {""}, {""}, {"PNG", 3, 5172}, {""}, {""}, {""}, {""}, {""}, {""}, {"MDD", 3, 4056}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"N", 1, 4765}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INXX", 4, 3364}, {""}, {"NTC", 3, 4668}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNAK", 4, 5998}, {""}, {""}, {""}, {""}, {""}, {"NQC", 3, 4628}, {""}, {""}, {""}, {""}, {""}, {"NTSC", 4, 4679}, {""}, {""}, {"DTSI", 4, 1821}, {""}, {""}, {""}, {""}, {""}, {""}, {"BDN", 3, 624}, {"SMMF", 4, 5984}, {""}, {""}, {""}, {""}, {""}, {"ICFI", 4, 3198}, {""}, {"NTT", 3, 4681}, {""}, {""}, {""}, {"APWR", 4, 364}, {""}, {""}, {""}, {""}, {"UNTK", 4, 6688}, {""}, {"NTCT", 4, 4667}, {""}, {"CTFO", 4, 1476}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRFZ", 4, 5227}, {""}, {"MMLP", 4, 4212}, {"WPC", 3, 7066}, {"COWS", 4, 1335}, {""}, {""}, {""}, {"CGX", 3, 1119}, {""}, {""}, {"IRETP", 5, 3408}, {""}, {"TGX", 3, 6358}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AF", 2, 154}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"URRE", 4, 6706}, {""}, {"SLG", 3, 5952}, {""}, {""}, {"PNBK", 4, 5167}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CZFC", 4, 1581}, {""}, {""}, {""}, {"AGM", 3, 165}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AKR", 3, 214}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PGX", 3, 5054}, {""}, {""}, {""}, {"QDEL", 4, 5408}, {""}, {""}, {"NQS", 3, 4634}, {""}, {""}, {"DAR", 3, 1594}, {"POWI", 4, 5197}, {""}, {""}, {""}, {"FPT", 3, 2474}, {""}, {"BCOM", 4, 600}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DTUS", 4, 1824}, {""}, {"PLG", 3, 5127}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WPCS", 4, 7065}, {""}, {""}, {"BBEP", 4, 573}, {""}, {""}, {""}, {"MFG", 3, 4101}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WPS", 3, 7073}, {""}, {""}, {"FEG", 3, 2324}, {""}, {""}, {""}, {""}, {"IGI", 3, 3257}, {""}, {""}, {""}, {""}, {"FDX", 3, 2321}, {""}, {""}, {""}, {""}, {""}, {""}, {"EDN", 3, 1916}, {""}, {"TTHI", 4, 6533}, {""}, {""}, {""}, {""}, {""}, {""}, {"ISYS", 4, 3445}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NBR", 3, 4453}, {""}, {""}, {""}, {""}, {""}, {"NTIC", 4, 4673}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CCNE", 4, 1036}, {""}, {""}, {"ID", 2, 3228}, {""}, {"MOTR", 4, 4254}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VZ", 2, 6958}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCHN", 4, 5767}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DARA", 4, 1593}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CORN", 4, 1324}, {""}, {""}, {""}, {""}, {"PTIE", 4, 5303}, {""}, {""}, {""}, {""}, {"PLUG", 4, 5139}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FPIC", 4, 2470}, {""}, {""}, {""}, {""}, {"SONA", 4, 6034}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ENOC", 4, 2050}, {""}, {""}, {"AOR", 3, 337}, {""}, {""}, {"IRDMZ", 5, 3406}, {"AGRO", 4, 173}, {""}, {""}, {"NQI", 3, 4629}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZSTN", 4, 7260}, {""}, {""}, {"BGC", 3, 654}, {"DEST", 4, 1654}, {""}, {"FRNK", 4, 2490}, {""}, {""}, {""}, {""}, {"NARA", 4, 4430}, {""}, {""}, {""}, {"NCR", 3, 4469}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WPI", 3, 7067}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SE", 2, 5829}, {""}, {""}, {""}, {""}, {"CE", 2, 1091}, {""}, {"CNVO", 4, 1290}, {""}, {""}, {"TE", 2, 6337}, {""}, {"BGT", 3, 660}, {""}, {""}, {"NETC", 4, 4493}, {""}, {""}, {"XRX", 3, 7189}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DES", 3, 1655}, {"CECE", 4, 1063}, {""}, {""}, {""}, {""}, {""}, {"IDIX", 4, 3216}, {""}, {""}, {""}, {""}, {"AFOP", 4, 149}, {""}, {"CNAF", 4, 1263}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZBRA", 4, 7229}, {""}, {""}, {""}, {""}, {""}, {""}, {"CNTF", 4, 1286}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MCHI", 4, 4034}, {""}, {""}, {""}, {"GE", 2, 2668}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NSR", 3, 4659}, {"WMG", 3, 7050}, {""}, {""}, {""}, {""}, {""}, {""}, {"SKN", 3, 5938}, {""}, {""}, {""}, {""}, {"BGS", 3, 659}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NEBS", 4, 4482}, {"TKMR", 4, 6400}, {""}, {""}, {""}, {""}, {""}, {""}, {"TGEM", 4, 6350}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BNX", 3, 769}, {"ZRAN", 4, 7257}, {""}, {""}, {""}, {"UGEM", 4, 6645}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DRR", 3, 1792}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGA", 3, 3251}, {""}, {"PKN", 3, 5112}, {"TOWR", 4, 6453}, {"AFFX", 4, 143}, {""}, {"MRGE", 4, 4279}, {""}, {""}, {""}, {""}, {""}, {""}, {"CPIX", 4, 1350}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EGT", 3, 1968}, {""}, {"GGEM", 4, 2684}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSFT", 4, 850}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NTGR", 4, 4671}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"POWR", 4, 5199}, {""}, {"EGAS", 4, 1957}, {""}, {""}, {""}, {""}, {""}, {"ELOS", 4, 1998}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AGX", 3, 175}, {""}, {""}, {""}, {""}, {"DEI", 3, 1644}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DMC", 3, 1734}, {""}, {"IBO", 3, 3192}, {""}, {""}, {""}, {"MPWR", 4, 4271}, {""}, {"ALG", 3, 225}, {""}, {""}, {""}, {"CTHR", 4, 1478}, {""}, {""}, {""}, {""}, {""}, {""}, {"PNRG", 4, 5181}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UTHR", 4, 6741}, {"ENX", 3, 2059}, {""}, {""}, {""}, {""}, {"DQ", 2, 1777}, {""}, {""}, {""}, {"GAME", 4, 2597}, {"MF", 2, 4117}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BLX", 3, 744}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FIG", 3, 2378}, {""}, {""}, {""}, {"SON", 3, 6039}, {""}, {""}, {""}, {""}, {""}, {"CONN", 4, 1318}, {""}, {"MGM", 3, 4129}, {""}, {""}, {""}, {"XTEX", 4, 7191}, {""}, {""}, {""}, {"APEI", 4, 346}, {"SGMO", 4, 5857}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MFSF", 4, 4112}, {""}, {"ECYT", 4, 1904}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NEI", 3, 4486}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZEUS", 4, 7231}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NQ", 2, 4636}, {"ELLI", 4, 1992}, {"NMT", 3, 4581}, {""}, {""}, {"FPA", 3, 2468}, {""}, {"BRFS", 4, 820}, {""}, {""}, {""}, {""}, {""}, {"ALSK", 4, 241}, {""}, {"CMFO", 4, 1244}, {""}, {"WLFC", 4, 7040}, {"NTRS", 4, 4678}, {""}, {""}, {"WPRT", 4, 7072}, {""}, {"VRSK", 4, 6905}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FIBK", 4, 2376}, {""}, {"NTRI", 4, 4677}, {""}, {""}, {"ANIK", 4, 315}, {""}, {""}, {"DITC", 4, 1710}, {""}, {""}, {""}, {""}, {""}, {""}, {"DRWI", 4, 1795}, {"ACHN", 4, 57}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELX", 3, 2006}, {""}, {"EGI", 3, 1961}, {""}, {""}, {"BZQ", 3, 924}, {"NCMI", 4, 4466}, {""}, {""}, {""}, {""}, {"DEAR", 4, 1638}, {""}, {"DIT", 3, 1711}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESYS", 4, 2138}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CKEC", 4, 1199}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FFL", 3, 2356}, {""}, {"INAP", 4, 3322}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ED", 2, 1926}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INSP", 4, 3348}, {""}, {""}, {""}, {""}, {""}, {""}, {"FDML", 4, 2312}, {"DIS", 3, 1709}, {""}, {"MOR", 3, 4251}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MDVN", 4, 4070}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AE", 2, 135}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SZO", 3, 6248}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TZO", 3, 6597}, {"TZOO", 4, 6596}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"Y", 1, 7224}, {"TAYCP", 5, 6268}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRME", 4, 1405}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NI", 2, 4547}, {""}, {""}, {""}, {""}, {""}, {"VMO", 3, 6858}, {""}, {""}, {""}, {"CATY", 4, 973}, {"CNYD", 4, 1293}, {""}, {""}, {""}, {""}, {""}, {""}, {"CPRX", 4, 1362}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AKN", 3, 211}, {""}, {""}, {""}, {""}, {""}, {"COWN", 4, 1334}, {""}, {""}, {""}, {""}, {"TOWN", 4, 6452}, {""}, {"CASY", 4, 969}, {""}, {""}, {""}, {""}, {""}, {"MNTG", 4, 4237}, {""}, {"AGEM", 4, 159}, {""}, {""}, {""}, {"DAN", 3, 1592}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NMI", 3, 4575}, {""}, {""}, {""}, {"SPRD", 4, 6075}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NEA", 3, 4481}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SIHI", 4, 5906}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CLFD", 4, 1212}, {""}, {""}, {""}, {""}, {""}, {"IGR", 3, 3264}, {"TLLP", 4, 6410}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NBN", 3, 4451}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FOC", 3, 2451}, {"ISL", 3, 3433}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EMMSP", 5, 2027}, {""}, {"NAN", 3, 4429}, {""}, {""}, {"VNOD", 4, 6864}, {""}, {""}, {""}, {"AAME", 4, 6}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VIOO", 4, 6829}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BIOD", 4, 691}, {""}, {""}, {""}, {""}, {"TZL", 3, 6595}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MPET", 4, 4265}, {""}, {"MLG", 3, 4190}, {""}, {"NII", 3, 4541}, {""}, {""}, {""}, {"GLNG", 4, 2744}, {""}, {""}, {""}, {""}, {""}, {"AON", 3, 336}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FOS", 3, 2466}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FENG", 4, 2329}, {""}, {""}, {"IND", 3, 3330}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VTG", 3, 6928}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PDFS", 4, 4984}, {""}, {""}, {""}, {""}, {""}, {""}, {"BCO", 3, 602}, {""}, {""}, {"AFFM", 4, 142}, {"QLIK", 4, 5417}, {""}, {""}, {"IRL", 3, 3414}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DMRC", 4, 1741}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BZMD", 4, 922}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZTR", 3, 7261}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRYP", 4, 1426}, {""}, {""}, {""}, {""}, {"QGEM", 4, 5410}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRAY", 4, 1379}, {""}, {""}, {""}, {""}, {""}, {""}, {"PGD", 3, 5042}, {""}, {""}, {"SRTY", 4, 6103}, {""}, {""}, {""}, {""}, {"BBL", 3, 579}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NMA", 3, 4571}, {"URTY", 4, 6709}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BAL", 3, 556}, {""}, {""}, {""}, {""}, {"TRSY", 4, 6496}, {""}, {""}, {"MORN", 4, 4250}, {""}, {""}, {""}, {"DRN", 3, 1788}, {"CMRE", 4, 1255}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DENT", 4, 1650}, {""}, {"FDD", 3, 2308}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ETFC", 4, 2142}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DIA", 3, 1698}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AIXG", 4, 204}, {""}, {"XSD", 3, 7190}, {""}, {""}, {""}, {""}, {"SOXS", 4, 6045}, {""}, {""}, {""}, {""}, {"AZO", 3, 541}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CBE", 3, 987}, {""}, {""}, {""}, {""}, {"DISCA", 5, 1705}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DIRT", 4, 1704}, {""}, {""}, {""}, {""}, {"BRO", 3, 830}, {"CAE", 3, 938}, {""}, {""}, {""}, {"ECOL", 4, 1898}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELON", 4, 1997}, {""}, {""}, {""}, {"EGBN", 4, 1958}, {"ADEP", 4, 86}, {""}, {""}, {""}, {""}, {"GENE", 4, 2654}, {""}, {""}, {""}, {""}, {""}, {"PBE", 3, 4935}, {""}, {""}, {"GBE", 3, 2613}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AEHR", 4, 117}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FACE", 4, 2250}, {""}, {""}, {""}, {"BGR", 3, 658}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MKN", 3, 4180}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FFG", 3, 2348}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SGRP", 4, 5862}, {""}, {"BSL", 3, 856}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IAG", 3, 3172}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DMAN", 4, 1733}, {""}, {""}, {""}, {"CCE", 3, 1023}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FLO", 3, 2411}, {""}, {""}, {"ATHN", 4, 445}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ERO", 3, 2108}, {""}, {""}, {""}, {""}, {"D", 1, 1869}, {""}, {""}, {""}, {"ECL", 3, 1896}, {""}, {"GNMK", 4, 2781}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VRNG", 4, 6901}, {""}, {""}, {""}, {"PCE", 3, 4960}, {""}, {"FIVZ", 4, 2390}, {"GCE", 3, 2626}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PPDI", 4, 5204}, {"BNVI", 4, 768}, {"NSEC", 4, 4651}, {""}, {"SSE", 3, 6111}, {"BND", 3, 761}, {""}, {""}, {""}, {"CSE", 3, 1437}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WSTE", 4, 7096}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DFT", 3, 1667}, {""}, {""}, {""}, {""}, {""}, {"SCOK", 4, 5787}, {""}, {"SBLK", 4, 5737}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESL", 3, 2128}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSE", 3, 5273}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MON", 3, 4248}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NFC", 3, 4505}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DFS", 3, 1666}, {""}, {""}, {""}, {""}, {""}, {"MNRK", 4, 4233}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AGD", 3, 158}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NEWT", 4, 4501}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ISG", 3, 3425}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WLL", 3, 7042}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FCHI", 4, 2291}, {""}, {"EEFT", 4, 1930}, {""}, {""}, {""}, {""}, {"ENVI", 4, 2057}, {""}, {""}, {""}, {"END", 3, 2043}, {""}, {"SRE", 3, 6098}, {""}, {""}, {""}, {""}, {""}, {"CREE", 4, 1389}, {""}, {"ARAY", 4, 367}, {""}, {""}, {"TREE", 4, 6469}, {""}, {"NEWS", 4, 4500}, {"BEXP", 4, 642}, {""}, {""}, {""}, {"BLD", 3, 729}, {""}, {""}, {""}, {""}, {""}, {""}, {"URE", 3, 6703}, {""}, {""}, {"FLL", 3, 2405}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EIDO", 4, 1974}, {""}, {"DSGX", 4, 1800}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TZG", 3, 6592}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPMD", 4, 6066}, {""}, {""}, {"NMR", 3, 4580}, {""}, {""}, {"PRE", 3, 5225}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CAPS", 4, 957}, {""}, {""}, {""}, {""}, {"NBIX", 4, 4448}, {""}, {""}, {"CCXE", 4, 1047}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGN", 3, 3261}, {""}, {""}, {""}, {""}, {""}, {""}, {"PZG", 3, 5390}, {""}, {"SCHX", 4, 5774}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BZM", 3, 923}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PDO", 3, 4990}, {""}, {""}, {"GDO", 3, 2639}, {""}, {""}, {"DTN", 3, 1819}, {""}, {""}, {""}, {""}, {""}, {"DCIX", 4, 1619}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TRLG", 4, 6481}, {"IEO", 3, 3232}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SBNY", 4, 5741}, {""}, {""}, {""}, {""}, {"WF", 2, 7012}, {"ISIG", 4, 3428}, {""}, {""}, {""}, {""}, {""}, {"ELD", 3, 1990}, {""}, {""}, {""}, {""}, {""}, {"MGLN", 4, 4128}, {""}, {""}, {""}, {"ZINC", 4, 7236}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NINI", 4, 4545}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DRAD", 4, 1778}, {""}, {"FF", 2, 2361}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BBG", 3, 576}, {""}, {""}, {""}, {""}, {"BZ", 2, 926}, {""}, {""}, {""}, {""}, {"PBNY", 4, 4944}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NTN", 3, 4676}, {""}, {""}, {""}, {""}, {"XLNX", 4, 7162}, {""}, {""}, {""}, {""}, {""}, {""}, {"BTO", 3, 874}, {""}, {""}, {"NQN", 3, 4632}, {""}, {""}, {""}, {""}, {""}, {"TSPT", 4, 6516}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VIG", 3, 6822}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EZM", 3, 2242}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACE", 3, 52}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CSPI", 4, 1453}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MKTX", 4, 4185}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GDL", 3, 2637}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EAG", 3, 1875}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ETO", 3, 2149}, {""}, {""}, {""}, {""}, {"VPRT", 4, 6892}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WOR", 3, 7064}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSOF", 4, 5282}, {""}, {""}, {""}, {""}, {""}, {""}, {"GRPC", 4, 2833}, {""}, {""}, {""}, {""}, {"CPSL", 4, 1364}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BIDZ", 4, 681}, {""}, {""}, {""}, {"BSCG", 4, 843}, {""}, {"VFL", 3, 6801}, {""}, {""}, {"AKRX", 4, 213}, {""}, {""}, {""}, {"FOR", 3, 2464}, {"FORR", 4, 2462}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IMO", 3, 3317}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AFCE", 4, 139}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AKAM", 4, 209}, {""}, {""}, {""}, {""}, {""}, {""}, {"FTEK", 4, 2525}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MLNK", 4, 4194}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DENN", 4, 1649}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARE", 3, 378}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CPWM", 4, 1370}, {""}, {""}, {""}, {"SOQ", 3, 6040}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MRCY", 4, 4277}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPIL", 4, 6062}, {""}, {"INOD", 4, 3342}, {""}, {"STE", 3, 6138}, {""}, {""}, {""}, {""}, {"CTE", 3, 1475}, {""}, {""}, {""}, {"ISRG", 4, 3437}, {""}, {""}, {"NEN", 3, 4488}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EQL", 3, 2093}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GTE", 3, 2868}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EMVX", 4, 2037}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARRY", 4, 396}, {""}, {""}, {""}, {"FFFD", 4, 2347}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VOC", 3, 6871}, {""}, {""}, {"NTES", 4, 4669}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESBK", 4, 2116}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VIVO", 4, 6838}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EGN", 3, 1963}, {""}, {""}, {"VOT", 3, 6883}, {"ITG", 3, 3451}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RBC", 3, 5455}, {""}, {""}, {""}, {""}, {""}, {"FLG", 3, 2402}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VTWG", 4, 6939}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BDCL", 4, 612}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CODI", 4, 1300}, {""}, {""}, {""}, {""}, {"VOCS", 4, 6870}, {""}, {""}, {""}, {"VKI", 3, 6842}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NNC", 3, 4588}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GPM", 3, 2806}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PTRY", 4, 5311}, {""}, {""}, {""}, {""}, {"ASPS", 4, 425}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DRRX", 4, 1791}, {"SCHM", 4, 5766}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"QRE", 3, 5427}, {"FONR", 4, 2459}, {"RBS", 3, 5460}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BBRG", 4, 584}, {""}, {""}, {""}, {""}, {"TORM", 4, 6449}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RC", 2, 5472}, {""}, {"RAS", 3, 5447}, {""}, {""}, {""}, {""}, {""}, {""}, {"DLGC", 4, 1724}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DRAM", 4, 1779}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPEX", 4, 6055}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NEWN", 4, 4498}, {""}, {""}, {"DLBS", 4, 1722}, {""}, {""}, {"BMO", 3, 750}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSCF", 4, 842}, {""}, {"NANX", 4, 4428}, {""}, {""}, {""}, {"NLC", 3, 4562}, {""}, {"SPRO", 4, 6076}, {""}, {"BSJF", 4, 855}, {""}, {""}, {""}, {"DLS", 3, 1729}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UPRO", 4, 6696}, {""}, {""}, {""}, {""}, {""}, {"SEE", 3, 5818}, {""}, {""}, {""}, {""}, {"CEE", 3, 1068}, {""}, {"RCS", 3, 5471}, {""}, {""}, {""}, {""}, {""}, {"DNI", 3, 1747}, {""}, {""}, {""}, {""}, {"DIN", 3, 1702}, {"SOMX", 4, 6033}, {""}, {""}, {"RST", 3, 5631}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NLST", 4, 4566}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLCE", 4, 5123}, {"GPRO", 4, 2811}, {"FE", 2, 2336}, {""}, {"DFR", 3, 1665}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TDG", 3, 6307}, {""}, {""}, {""}, {""}, {""}, {"IPCC", 4, 3377}, {"RS", 2, 5639}, {""}, {""}, {""}, {""}, {""}, {"ZLC", 3, 7246}, {""}, {""}, {""}, {""}, {""}, {"VNO", 3, 6865}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RAI", 3, 5442}, {"NLCI", 4, 4561}, {""}, {""}, {""}, {"NLS", 3, 4567}, {"RSTI", 4, 5630}, {""}, {""}, {""}, {""}, {"IPT", 3, 3392}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BRAF", 4, 812}, {""}, {""}, {"XL", 2, 7167}, {""}, {"EMO", 3, 2032}, {""}, {"ESBF", 4, 2115}, {""}, {""}, {""}, {""}, {""}, {""}, {"NNI", 3, 4590}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GJO", 3, 2719}, {""}, {""}, {""}, {"IPAS", 4, 3375}, {""}, {""}, {"BIO", 3, 694}, {""}, {""}, {""}, {"IDX", 3, 3227}, {"IDXX", 4, 3226}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FGEM", 4, 2365}, {"RRC", 3, 5619}, {""}, {""}, {""}, {"CELG", 4, 1072}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATE", 3, 444}, {""}, {"ZLCS", 4, 7245}, {""}, {""}, {""}, {""}, {""}, {""}, {"IPCI", 4, 3378}, {""}, {""}, {""}, {"IPS", 3, 3391}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPLS", 4, 6064}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PPLT", 4, 5209}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RRST", 4, 5623}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RCI", 3, 5465}, {"RCII", 4, 5464}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MCHX", 4, 4036}, {"PERY", 4, 5012}, {""}, {""}, {""}, {""}, {"NRIM", 4, 4643}, {""}, {""}, {""}, {""}, {"RRTS", 4, 5624}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VLO", 3, 6848}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CPX", 3, 1372}, {""}, {""}, {"R", 1, 5697}, {""}, {"TPX", 3, 6461}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CONM", 4, 1317}, {""}, {""}, {""}, {"INDL", 4, 3327}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TELK", 4, 6326}, {"EIO", 3, 1978}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SO", 2, 6047}, {""}, {""}, {""}, {""}, {"CO", 2, 1338}, {""}, {""}, {"EMFN", 4, 2016}, {""}, {""}, {""}, {""}, {""}, {"DRQ", 3, 1790}, {"SJL", 3, 5927}, {""}, {""}, {""}, {""}, {""}, {""}, {"GPX", 3, 2814}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COCO", 4, 1298}, {""}, {""}, {""}, {""}, {""}, {"CME", 3, 1242}, {""}, {""}, {""}, {""}, {""}, {""}, {"COGO", 4, 1302}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NNBR", 4, 4586}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SODA", 4, 6025}, {""}, {""}, {""}, {"EML", 3, 2026}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IPI", 3, 3387}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PJL", 3, 5098}, {""}, {""}, {""}, {"ETG", 3, 2144}, {""}, {""}, {""}, {""}, {""}, {"BIL", 3, 688}, {""}, {""}, {"CPNO", 4, 1357}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GME", 3, 2761}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RBA", 3, 5452}, {"BBNK", 4, 581}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DLTR", 4, 1730}, {""}, {""}, {""}, {""}, {""}, {""}, {"NEXS", 4, 4502}, {"RBCAA", 5, 5453}, {"RA", 2, 5451}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DIET", 4, 1699}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DEER", 4, 1640}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NNA", 3, 4585}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UEPS", 4, 6638}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATHX", 4, 446}, {""}, {""}, {""}, {""}, {""}, {"CIE", 3, 1177}, {""}, {""}, {""}, {""}, {"TIE", 3, 6380}, {""}, {""}, {"ALTE", 4, 242}, {""}, {""}, {"WITE", 4, 7032}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DLA", 3, 1720}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GPOR", 4, 2808}, {""}, {""}, {"AEE", 3, 113}, {""}, {""}, {"SKM", 3, 5937}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IFO", 3, 3246}, {""}, {""}, {""}, {""}, {""}, {"PIE", 3, 5080}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CBEY", 4, 986}, {""}, {""}, {""}, {""}, {""}, {""}, {"BPT", 3, 805}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IPAR", 4, 3374}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GKM", 3, 2726}, {""}, {""}, {"WACLY", 5, 6962}, {""}, {""}, {""}, {""}, {""}, {""}, {"SOIL", 4, 6029}, {""}, {"BDX", 3, 629}, {""}, {""}, {""}, {""}, {""}, {"FRME", 4, 2488}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BPS", 3, 804}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XGC", 3, 7144}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VGM", 3, 6806}, {""}, {""}, {""}, {""}, {"INFI", 4, 3332}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATNY", 4, 454}, {"GLRE", 4, 2749}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADSK", 4, 101}, {""}, {""}, {""}, {"WDFC", 4, 6990}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MTE", 3, 4324}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPCT", 4, 2075}, {""}, {"INDZ", 4, 3329}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DLIA", 4, 1725}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CPLA", 4, 1354}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FLYX", 4, 2418}, {""}, {""}, {""}, {""}, {""}, {""}, {"FCTY", 4, 2300}, {""}, {"RT", 2, 5653}, {""}, {""}, {"RBCN", 4, 5454}, {""}, {""}, {""}, {""}, {"FCCY", 4, 2284}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SZYM", 4, 6251}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPS", 3, 2087}, {"TZYM", 4, 6599}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BANF", 4, 560}, {""}, {"POM", 3, 5192}, {""}, {""}, {"GOM", 3, 2794}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BPI", 3, 796}, {""}, {""}, {"NATL", 4, 4435}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AME", 3, 266}, {""}, {"RTS", 3, 5652}, {""}, {""}, {""}, {""}, {""}, {""}, {"DAIO", 4, 1588}, {""}, {"COBZ", 4, 1297}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DSCO", 4, 1799}, {""}, {"TKLC", 4, 6399}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZN", 2, 7251}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DNR", 3, 1752}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FGD", 3, 2364}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCHO", 4, 5768}, {""}, {""}, {""}, {"CRESY", 5, 1392}, {""}, {"AOSL", 4, 338}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPI", 3, 2080}, {"AEPI", 4, 124}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZIXI", 4, 7243}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NLSN", 4, 4565}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DRCO", 4, 1780}, {""}, {""}, {""}, {""}, {"BFO", 3, 647}, {"SKX", 3, 5942}, {""}, {""}, {""}, {""}, {"CKX", 3, 1203}, {"CLNE", 4, 1220}, {"GORO", 4, 2799}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCHL", 4, 5765}, {""}, {""}, {""}, {"TINY", 4, 6385}, {""}, {"IOC", 3, 3368}, {""}, {""}, {"VGLT", 4, 6805}, {"RTI", 3, 5643}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SORL", 4, 6041}, {"RQI", 3, 5618}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DLR", 3, 1728}, {""}, {""}, {""}, {""}, {""}, {""}, {"COINZ", 5, 1308}, {""}, {""}, {""}, {""}, {""}, {"IOT", 3, 3372}, {""}, {""}, {""}, {""}, {"CP", 2, 1374}, {""}, {""}, {""}, {""}, {""}, {""}, {"PKX", 3, 5118}, {"BIG", 3, 685}, {""}, {""}, {"ADGF", 4, 89}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNDK", 4, 6003}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XFD", 3, 7139}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RSUN", 4, 5632}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WIRE", 4, 7031}, {""}, {""}, {"NLR", 3, 4564}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EFO", 3, 1947}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DM", 2, 1742}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FIRE", 4, 2383}, {""}, {"BICK", 4, 679}, {""}, {"RETS", 4, 5503}, {""}, {""}, {""}, {""}, {"DCM", 3, 1621}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RES", 3, 5501}, {""}, {""}, {""}, {"SOXX", 4, 6046}, {""}, {"EIG", 3, 1975}, {""}, {""}, {""}, {""}, {"INFA", 4, 3331}, {""}, {""}, {""}, {""}, {"NMRX", 4, 4579}, {"SKOR", 4, 5939}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AOM", 3, 334}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NM", 2, 4584}, {""}, {""}, {"DSM", 3, 1802}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BKCC", 4, 706}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BKSC", 4, 720}, {"RRR", 3, 5622}, {"AGYS", 4, 176}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CBOE", 4, 1001}, {"MPX", 3, 4273}, {""}, {""}, {""}, {""}, {"BKT", 3, 722}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FSE", 3, 2506}, {""}, {""}, {""}, {"SONO", 4, 6037}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BERK", 4, 640}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NFEC", 4, 4506}, {""}, {"SFE", 3, 5831}, {"MO", 2, 4258}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NSM", 3, 4656}, {""}, {""}, {""}, {""}, {"INO", 3, 3343}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MOCO", 4, 4240}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"REIS", 4, 5492}, {""}, {"BKS", 3, 721}, {""}, {""}, {"RTSA", 4, 5651}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UMPQ", 4, 6673}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFE", 3, 5026}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CGO", 3, 1114}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WRE", 3, 7080}, {""}, {""}, {""}, {""}, {""}, {""}, {"RMT", 3, 5567}, {""}, {""}, {""}, {"RCMT", 4, 5469}, {""}, {"VE", 2, 6798}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PPD", 3, 5205}, {"FREE", 4, 2484}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RMBS", 4, 5561}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RMTI", 4, 5565}, {""}, {""}, {"BOSC", 4, 788}, {""}, {""}, {""}, {""}, {""}, {"XCO", 3, 7135}, {""}, {""}, {""}, {"AJG", 3, 208}, {""}, {""}, {"SGOL", 4, 5861}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EMCF", 4, 2011}, {"FDO", 3, 2315}, {""}, {"VGEM", 4, 6802}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DMND", 4, 1739}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EDAP", 4, 1907}, {""}, {"INFN", 4, 3333}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AP", 2, 365}, {""}, {""}, {"SOLR", 4, 6030}, {""}, {""}, {""}, {"RIC", 3, 5534}, {""}, {""}, {""}, {""}, {"BKI", 3, 712}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPIQ", 4, 2079}, {""}, {""}, {""}, {"ICGE", 4, 3200}, {""}, {""}, {"BOS", 3, 789}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RIT", 3, 5543}, {"RITT", 4, 5542}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EOC", 3, 2064}, {""}, {""}, {""}, {"FORD", 4, 2460}, {"MLHR", 4, 4191}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PNFP", 4, 5170}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VLCCF", 5, 6845}, {""}, {""}, {"SGL", 3, 5855}, {""}, {"EOT", 3, 2071}, {""}, {""}, {""}, {""}, {""}, {"SAPX", 4, 5717}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VTHR", 4, 6929}, {""}, {""}, {"UGL", 3, 6648}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CNTY", 4, 1288}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UNTY", 4, 6689}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DNN", 3, 1749}, {""}, {""}, {""}, {""}, {"EMIF", 4, 2019}, {"EMITF", 5, 2020}, {""}, {"COWL", 4, 1333}, {"EOS", 3, 2070}, {""}, {""}, {""}, {""}, {"XRO", 3, 7184}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DSX", 3, 1811}, {"QKLS", 4, 5414}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UFPT", 4, 6642}, {"NZT", 3, 4762}, {""}, {"NANO", 4, 4427}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RBN", 3, 5458}, {"BDD", 3, 615}, {"BGMD", 4, 657}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FDL", 3, 2311}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IKAN", 4, 3298}, {""}, {""}, {""}, {""}, {""}, {""}, {"POWL", 4, 5198}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZZC", 3, 7271}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DTUL", 4, 1823}, {""}, {"UFPI", 4, 6641}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NNN", 3, 4592}, {""}, {"EPR", 3, 2086}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BNO", 3, 765}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FRPT", 4, 2493}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AFE", 3, 141}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FCLF", 4, 2293}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RTR", 3, 5650}, {""}, {""}, {"DLN", 3, 1727}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DBEM", 4, 1604}, {""}, {""}, {""}, {"EDD", 3, 1909}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RMTR", 4, 5566}, {""}, {""}, {""}, {"EOI", 3, 2067}, {""}, {""}, {"APD", 3, 345}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AGO", 3, 169}, {""}, {""}, {""}, {""}, {"IF", 2, 3250}, {""}, {""}, {""}, {""}, {""}, {""}, {"MAXY", 4, 4006}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGM", 3, 3260}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IKR", 3, 3303}, {""}, {""}, {"MIPS", 4, 4165}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"E", 1, 2246}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TXCC", 4, 6568}, {""}, {""}, {""}, {""}, {""}, {"AGOL", 4, 168}, {""}, {""}, {"CAJ", 3, 944}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SXT", 3, 6225}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TXT", 3, 6572}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FTE", 3, 2526}, {""}, {"PBJ", 3, 4942}, {"IPN", 3, 3389}, {""}, {"VIFL", 4, 6821}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GXC", 3, 2900}, {""}, {""}, {""}, {""}, {"EFG", 3, 1943}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RECN", 4, 5485}, {""}, {""}, {""}, {""}, {"PXSC", 4, 5367}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"REGN", 4, 5490}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZZI", 3, 7277}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NQM", 3, 4631}, {""}, {""}, {"SXCI", 4, 6222}, {""}, {""}, {""}, {""}, {""}, {"JBT", 3, 3535}, {""}, {""}, {"CXS", 3, 1554}, {""}, {""}, {""}, {"BSCE", 4, 841}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSJE", 4, 854}, {""}, {"NETL", 4, 4494}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCJ", 3, 5779}, {""}, {""}, {""}, {""}, {"CCJ", 3, 1031}, {""}, {""}, {""}, {""}, {""}, {"RENT", 4, 5499}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MSHL", 4, 4303}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ECBE", 4, 1891}, {""}, {"AGL", 3, 164}, {""}, {""}, {"ECTE", 4, 1901}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNE", 3, 6004}, {""}, {""}, {""}, {""}, {""}, {""}, {"JBSS", 4, 3534}, {""}, {""}, {"TNE", 3, 6436}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ENL", 3, 2048}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PKD", 3, 5105}, {""}, {"IGOI", 4, 3262}, {"BLL", 3, 736}, {""}, {""}, {""}, {"CSJ", 3, 1445}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESTE", 4, 2136}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DSWL", 4, 1808}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INTG", 4, 3353}, {"MGYR", 4, 4136}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSJ", 3, 5277}, {""}, {""}, {""}, {"FORM", 4, 2461}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ING", 3, 3336}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SXI", 3, 6223}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TXI", 3, 6569}, {"FTLK", 4, 2530}, {"JSC", 3, 3624}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UXI", 3, 6763}, {""}, {""}, {"TG", 2, 6359}, {""}, {""}, {"CBSH", 4, 1009}, {""}, {""}, {""}, {""}, {""}, {"JCS", 3, 3542}, {"YXI", 3, 7222}, {""}, {""}, {"CACH", 4, 933}, {""}, {"UG", 2, 6650}, {""}, {""}, {""}, {""}, {"SLE", 3, 5949}, {""}, {""}, {"UBSH", 4, 6619}, {"JST", 3, 3629}, {""}, {"DBJP", 4, 1606}, {""}, {""}, {""}, {"SGG", 3, 5852}, {""}, {""}, {"CASH", 4, 965}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PBTH", 4, 4948}, {""}, {"ULE", 3, 6662}, {""}, {"PXI", 3, 5354}, {""}, {""}, {""}, {""}, {""}, {"DEM", 3, 1648}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JBI", 3, 3526}, {"PG", 2, 5055}, {""}, {""}, {"GG", 2, 2693}, {""}, {""}, {""}, {""}, {"PATH", 4, 4928}, {""}, {""}, {"VRGY", 4, 6899}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GGG", 3, 2687}, {"GGGG", 4, 2686}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZZA", 3, 7269}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PODD", 4, 5190}, {""}, {""}, {""}, {"BKR", 3, 719}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JRCC", 4, 3619}, {""}, {""}, {""}, {""}, {"NEM", 3, 4487}, {""}, {""}, {""}, {""}, {"JRJC", 4, 3620}, {""}, {""}, {""}, {""}, {"MPD", 3, 4263}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NTLS", 4, 4674}, {""}, {""}, {""}, {""}, {""}, {"ENDP", 4, 2042}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BLDP", 4, 727}, {""}, {""}, {""}, {""}, {"JCI", 3, 3538}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BONT", 4, 784}, {""}, {"PCYG", 4, 4977}, {""}, {""}, {""}, {""}, {""}, {""}, {"EF", 2, 1956}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HBC", 3, 2930}, {""}, {"XTL", 3, 7192}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JRS", 3, 3623}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NTX", 3, 4683}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSBH", 4, 5259}, {""}, {""}, {""}, {""}, {"AXAS", 4, 513}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSCH", 4, 5265}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ERIE", 4, 2103}, {""}, {""}, {"SNPS", 4, 6013}, {""}, {""}, {""}, {"DDT", 3, 1636}, {"ZIGO", 4, 7235}, {""}, {"AXTI", 4, 531}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXS", 3, 529}, {""}, {"EOSPN", 5, 2069}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CXA", 3, 1547}, {""}, {""}, {"HAST", 4, 2921}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EONC", 4, 2068}, {""}, {""}, {""}, {"SCHP", 4, 5769}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CCIH", 4, 1028}, {""}, {""}, {""}, {""}, {"QLTY", 4, 5419}, {""}, {"FPX", 3, 2475}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CORP", 4, 1325}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DBD", 3, 1602}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HAS", 3, 2922}, {"DDS", 3, 1635}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SAVE", 4, 5724}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXUT", 4, 532}, {"HCC", 3, 2943}, {""}, {"FO", 2, 2467}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RTN", 3, 5649}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RFI", 3, 5515}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLPC", 4, 5134}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MOLXA", 5, 4245}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXIT", 4, 520}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TBF", 3, 6276}, {""}, {""}, {""}, {""}, {""}, {""}, {"NMM", 3, 4576}, {""}, {"NBD", 3, 4445}, {""}, {""}, {""}, {"DDIC", 4, 1631}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CAF", 3, 941}, {"HSC", 3, 3098}, {""}, {""}, {""}, {""}, {""}, {""}, {"COVR", 4, 1331}, {""}, {""}, {""}, {""}, {""}, {"NAD", 3, 4421}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HCCI", 4, 2942}, {""}, {""}, {""}, {"HCS", 3, 2953}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HST", 3, 3108}, {""}, {"GBF", 3, 2614}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGEM", 4, 3254}, {"AG", 2, 178}, {"FOSL", 4, 2465}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALOG", 4, 237}, {""}, {"DIM", 3, 1701}, {""}, {"PAF", 3, 4916}, {""}, {"DEX", 3, 1658}, {"GAF", 3, 2592}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HBI", 3, 2933}, {""}, {""}, {"HS", 2, 3111}, {""}, {""}, {"ALE", 3, 222}, {""}, {""}, {""}, {""}, {""}, {"MPEL", 4, 4264}, {""}, {""}, {""}, {"AGG", 3, 162}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CLNY", 4, 1222}, {"NZR", 3, 4761}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AOD", 3, 330}, {"DMED", 4, 1736}, {""}, {""}, {""}, {""}, {"ENTG", 4, 2055}, {"ARJ", 3, 385}, {"VCLK", 4, 6784}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BGX", 3, 662}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ENG", 3, 2045}, {""}, {""}, {""}, {""}, {"CCF", 3, 1024}, {""}, {""}, {"ENSG", 4, 2053}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XEL", 3, 7137}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HRC", 3, 3089}, {""}, {""}, {""}, {"NIM", 3, 4543}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STJ", 3, 6142}, {""}, {""}, {""}, {""}, {""}, {"PCF", 3, 4961}, {"HRT", 3, 3093}, {""}, {"GCF", 3, 2628}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MSPD", 4, 4312}, {""}, {""}, {""}, {""}, {""}, {""}, {"HSIC", 4, 3100}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HCII", 4, 2948}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CBNJ", 4, 999}, {""}, {""}, {"FOIL", 4, 2455}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HRS", 3, 3092}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EGX", 3, 1969}, {""}, {""}, {""}, {""}, {""}, {"PSF", 3, 5274}, {""}, {""}, {"GSF", 3, 2848}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JQC", 3, 3618}, {""}, {"FFDF", 4, 2344}, {"RFA", 3, 5512}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SOXL", 4, 6044}, {""}, {""}, {""}, {""}, {""}, {"MXC", 3, 4388}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HSII", 4, 3101}, {""}, {""}, {"RTEC", 4, 5640}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"REN", 3, 5500}, {"RENN", 4, 5498}, {""}, {""}, {"BORN", 4, 787}, {""}, {""}, {""}, {""}, {""}, {"MXT", 3, 4396}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BPAX", 4, 792}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BONA", 4, 781}, {""}, {"CRF", 3, 1394}, {""}, {""}, {""}, {""}, {"TRF", 3, 6471}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELTK", 4, 2004}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADBE", 4, 84}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HBTA", 4, 2939}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRF", 3, 5228}, {""}, {""}, {"GRF", 3, 2821}, {"HA", 2, 2927}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADGE", 4, 88}, {""}, {""}, {""}, {""}, {""}, {""}, {"BEBE", 4, 632}, {""}, {""}, {""}, {""}, {""}, {""}, {"NAVR", 4, 4440}, {""}, {""}, {""}, {""}, {""}, {""}, {"VKQ", 3, 6844}, {""}, {"PXR", 3, 5366}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JBR", 3, 3533}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MNE", 3, 4227}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPAX", 4, 2072}, {""}, {""}, {""}, {""}, {"CTCH", 4, 1469}, {""}, {"BKN", 3, 717}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MSJ", 3, 4305}, {"CTSH", 4, 1488}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HCA", 3, 2940}, {""}, {"RNST", 4, 5577}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EE", 2, 1940}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MXI", 3, 4393}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NDAQ", 4, 4477}, {""}, {""}, {""}, {""}, {"NTAP", 4, 4666}, {""}, {"MG", 2, 4137}, {""}, {""}, {"ALNY", 4, 235}, {""}, {""}, {""}, {""}, {"MATH", 4, 3999}, {"IPCM", 4, 3379}, {""}, {""}, {"PEJ", 3, 5003}, {""}, {""}, {"GEJ", 3, 2651}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HSA", 3, 3097}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NTSP", 4, 4680}, {"JEC", 3, 3547}, {""}, {"CBPO", 4, 1004}, {""}, {""}, {""}, {""}, {"TPLM", 4, 6458}, {"CHC", 3, 1124}, {""}, {""}, {"VOQ", 3, 6882}, {""}, {"THC", 3, 6360}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MOD", 3, 4242}, {""}, {"HR", 2, 3096}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHBT", 4, 5869}, {""}, {""}, {""}, {""}, {"CHBT", 4, 1121}, {""}, {""}, {""}, {"CHT", 3, 1165}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NEWL", 4, 4497}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UHT", 3, 6654}, {"RAND", 4, 5445}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PHC", 3, 5058}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AGRG", 4, 172}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHBI", 4, 5868}, {""}, {""}, {""}, {"PHT", 3, 5071}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"THTI", 4, 6375}, {""}, {"HBAN", 4, 2928}, {"CHGS", 4, 1132}, {"SHS", 3, 5888}, {"CHCI", 4, 1122}, {""}, {""}, {""}, {"CHS", 3, 1162}, {""}, {""}, {""}, {""}, {"THS", 3, 6374}, {"HTGC", 4, 3117}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HT", 2, 3129}, {"CHSI", 4, 1160}, {""}, {""}, {""}, {"UHS", 3, 6653}, {""}, {""}, {""}, {""}, {""}, {"RTIX", 4, 5642}, {""}, {""}, {""}, {""}, {""}, {"MSFG", 4, 4299}, {""}, {""}, {""}, {""}, {""}, {""}, {"PXMC", 4, 5360}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HBNC", 4, 2935}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGD", 3, 3253}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HTS", 3, 3125}, {""}, {""}, {"GOOD", 4, 2797}, {""}, {"DJCI", 4, 1712}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HQS", 3, 3086}, {""}, {""}, {""}, {""}, {""}, {"DTD", 3, 1812}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TECH", 4, 6320}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RADS", 4, 5438}, {"JTA", 3, 3630}, {""}, {""}, {""}, {""}, {""}, {""}, {"COLX", 4, 1313}, {""}, {""}, {""}, {""}, {""}, {"AXR", 3, 527}, {"NDSN", 4, 4479}, {""}, {""}, {""}, {""}, {""}, {""}, {"HANS", 4, 2916}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MXA", 3, 4387}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MCHP", 4, 4035}, {""}, {""}, {""}, {""}, {"SHI", 3, 5875}, {""}, {""}, {""}, {""}, {"CHI", 3, 1142}, {"CHII", 4, 1137}, {""}, {""}, {""}, {"THI", 3, 6365}, {""}, {""}, {""}, {""}, {"RLI", 3, 5555}, {""}, {""}, {""}, {"BGCP", 4, 653}, {""}, {"TTF", 3, 6531}, {""}, {""}, {""}, {""}, {""}, {"HAR", 3, 2920}, {"DDR", 3, 1634}, {""}, {""}, {""}, {"INWK", 4, 3362}, {""}, {""}, {""}, {"UTF", 3, 6739}, {""}, {""}, {""}, {""}, {"BBBY", 4, 571}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JMT", 3, 3595}, {""}, {""}, {""}, {""}, {""}, {"HAIN", 4, 2912}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BABY", 4, 547}, {""}, {""}, {""}, {"PHI", 3, 5065}, {"PHII", 4, 5064}, {"GOLD", 4, 2791}, {"GHI", 3, 2695}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PTF", 3, 5300}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WGO", 3, 7015}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SIJ", 3, 5907}, {""}, {""}, {"IAE", 3, 3170}, {""}, {"NFM", 3, 4510}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MBF", 3, 4014}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADRE", 4, 99}, {""}, {""}, {""}, {""}, {""}, {""}, {"MLPS", 4, 4201}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MLPI", 4, 4198}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PIJ", 3, 5082}, {""}, {""}, {"REXI", 4, 5507}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EBAY", 4, 1879}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SMFG", 4, 5977}, {""}, {""}, {""}, {"QCRH", 4, 5407}, {""}, {"HSNI", 4, 3104}, {""}, {""}, {""}, {""}, {"HRBN", 4, 3087}, {""}, {""}, {""}, {""}, {"HEAT", 4, 2961}, {""}, {"ICOG", 4, 3208}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BLNG", 4, 737}, {""}, {"ICE", 3, 3197}, {""}, {""}, {""}, {"AHC", 3, 181}, {""}, {""}, {""}, {""}, {""}, {"CHTR", 4, 1164}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PMFG", 4, 5152}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AHT", 3, 186}, {""}, {""}, {""}, {""}, {""}, {"MCF", 3, 4032}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HES", 3, 2972}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EIHI", 4, 1976}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TXN", 3, 6570}, {""}, {""}, {""}, {"GERJ", 4, 2661}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RFMI", 4, 5517}, {""}, {""}, {""}, {""}, {""}, {""}, {"AHCI", 4, 180}, {""}, {"WGL", 3, 7014}, {""}, {"AHS", 3, 185}, {""}, {""}, {""}, {""}, {""}, {"AAPL", 4, 9}, {""}, {"ECTY", 4, 1902}, {""}, {"CHA", 3, 1120}, {""}, {""}, {""}, {""}, {""}, {""}, {"APFC", 4, 347}, {""}, {"AXMT", 4, 524}, {""}, {"MSF", 3, 4301}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PXN", 3, 5363}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SZE", 3, 6246}, {"CAZA", 4, 980}, {"JBN", 3, 3531}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TZE", 3, 6590}, {""}, {""}, {""}, {""}, {""}, {"SEF", 3, 5819}, {""}, {""}, {""}, {""}, {"CEF", 3, 1069}, {""}, {""}, {"VO", 2, 6886}, {"PHA", 3, 5056}, {"TEF", 3, 6323}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NED", 3, 4484}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WLFCP", 5, 7039}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ANDE", 4, 307}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PZE", 3, 5389}, {""}, {""}, {""}, {""}, {""}, {"CHRS", 4, 1157}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMJ", 3, 270}, {""}, {""}, {""}, {"GEF", 3, 2649}, {""}, {""}, {""}, {""}, {""}, {""}, {"IRE", 3, 3410}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZION", 4, 7238}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HEI", 3, 2965}, {""}, {"ICLK", 4, 3204}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HMC", 3, 3033}, {"ELNK", 4, 1995}, {""}, {""}, {"MRF", 3, 4278}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HSWI", 4, 3109}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RADA", 4, 5437}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHINA", 5, 1139}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VIOG", 4, 6828}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NFX", 3, 4514}, {"STLY", 4, 6146}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JSN", 3, 3628}, {""}, {""}, {""}, {""}, {""}, {"DMD", 3, 1735}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHIQ", 4, 1140}, {""}, {""}, {"CPO", 3, 1359}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DL", 2, 1732}, {""}, {"JMBA", 4, 3592}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DLBL", 4, 1721}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COLM", 4, 1312}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BCE", 3, 596}, {"PPO", 3, 5211}, {"HIT", 3, 3010}, {"HITT", 4, 3009}, {""}, {""}, {""}, {""}, {"SMF", 3, 5978}, {""}, {""}, {""}, {""}, {"CMF", 3, 1245}, {""}, {""}, {""}, {""}, {"TMF", 3, 6418}, {""}, {""}, {""}, {""}, {"MANH", 4, 3990}, {""}, {""}, {""}, {"NMD", 3, 4573}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RNR", 3, 5576}, {""}, {"FXC", 3, 2567}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HI", 2, 3013}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NL", 2, 4569}, {"RNIN", 4, 5570}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IKNX", 4, 3302}, {""}, {""}, {""}, {"PMF", 3, 5153}, {"JRN", 3, 3621}, {""}, {"GMF", 3, 2762}, {""}, {""}, {""}, {""}, {""}, {"HIS", 3, 3007}, {""}, {""}, {""}, {""}, {""}, {"RAIL", 4, 5441}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSE", 3, 849}, {""}, {""}, {""}, {""}, {""}, {""}, {"MHC", 3, 4138}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WXS", 3, 7123}, {""}, {""}, {""}, {"MHGC", 4, 4142}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DNDN", 4, 1746}, {""}, {""}, {""}, {""}, {"TOFC", 4, 6443}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXN", 3, 525}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXS", 3, 2581}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELMG", 4, 1994}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SIF", 3, 5901}, {""}, {""}, {"GEOY", 4, 2658}, {""}, {"CIF", 3, 1178}, {""}, {""}, {""}, {""}, {"TIF", 3, 6381}, {""}, {""}, {""}, {"CPL", 3, 1356}, {""}, {""}, {""}, {""}, {"TPL", 3, 6459}, {""}, {"THR", 3, 6373}, {""}, {""}, {""}, {""}, {"MHS", 3, 4152}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UPL", 3, 6695}, {""}, {""}, {""}, {""}, {""}, {"YAVY", 4, 7204}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RAM", 3, 5444}, {""}, {""}, {"AEF", 3, 114}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CX", 2, 1557}, {""}, {""}, {""}, {"DEXO", 4, 1657}, {"TX", 2, 6573}, {""}, {"ESE", 3, 2121}, {""}, {""}, {"BRE", 3, 819}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PPL", 3, 5210}, {""}, {"PHR", 3, 5070}, {"GPL", 3, 2805}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HII", 3, 3002}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PX", 2, 5370}, {""}, {""}, {""}, {"HTR", 3, 3124}, {""}, {""}, {"NDN", 3, 4478}, {""}, {"DCOM", 4, 1623}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARMH", 4, 390}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WG", 2, 7016}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HCN", 3, 2950}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXI", 3, 2574}, {""}, {""}, {""}, {""}, {""}, {"WASH", 4, 6966}, {""}, {""}, {""}, {""}, {"MLPN", 4, 4200}, {""}, {""}, {"MOLX", 4, 4246}, {""}, {"BCPC", 4, 603}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ITE", 3, 3449}, {""}, {"JFBC", 4, 3551}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JFC", 3, 3553}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MHI", 3, 4144}, {""}, {""}, {"NJR", 3, 4548}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JFT", 3, 3556}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HMA", 3, 3032}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EAPS", 4, 1876}, {""}, {""}, {""}, {""}, {"JFBI", 4, 3552}, {"APO", 3, 355}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VOLC", 4, 6875}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FSFG", 4, 2507}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"STPZ", 4, 6157}, {""}, {""}, {""}, {"DGT", 3, 1682}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NAFC", 4, 4422}, {""}, {"BDL", 3, 622}, {""}, {""}, {""}, {""}, {""}, {"CAFE", 4, 939}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"APOL", 4, 354}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGLD", 4, 3259}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHMT", 4, 1150}, {""}, {"DGAS", 4, 1670}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHNR", 4, 1152}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GRVY", 4, 2838}, {""}, {""}, {""}, {""}, {""}, {"DGS", 3, 1681}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RALS", 4, 5443}, {""}, {""}, {""}, {""}, {""}, {"NGT", 3, 4526}, {"VOX", 3, 6885}, {"VOXX", 4, 6884}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CDE", 3, 1051}, {""}, {""}, {""}, {""}, {"TDE", 3, 6305}, {""}, {"FXA", 3, 2563}, {"RLRN", 4, 5559}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MXN", 3, 4395}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RAX", 3, 5450}, {""}, {""}, {""}, {""}, {""}, {""}, {"NGS", 3, 4525}, {"APL", 3, 352}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NEWP", 4, 4499}, {""}, {""}, {""}, {"XING", 4, 7149}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DGIT", 4, 1675}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NSFC", 4, 4652}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CBP", 3, 1005}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PKO", 3, 5115}, {""}, {""}, {""}, {""}, {"IDG", 3, 3215}, {"UBP", 3, 6617}, {""}, {""}, {""}, {""}, {"SAP", 3, 5718}, {""}, {""}, {""}, {""}, {"CAP", 3, 958}, {""}, {""}, {""}, {""}, {"TAP", 3, 6262}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DLX", 3, 1731}, {""}, {"DGI", 3, 1676}, {"DGII", 4, 1674}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PBP", 3, 4945}, {"AAXJ", 4, 17}, {""}, {""}, {""}, {""}, {"FAF", 3, 2253}, {""}, {""}, {"FELE", 4, 2327}, {""}, {""}, {""}, {""}, {""}, {""}, {"WFVK", 4, 7011}, {""}, {"BTE", 3, 867}, {"REMX", 4, 5496}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HFBC", 4, 2976}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DD", 2, 1637}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PKOL", 4, 5114}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MLVF", 4, 4207}, {""}, {"TPCG", 4, 6454}, {""}, {"SPG", 3, 6059}, {""}, {""}, {""}, {""}, {"RNN", 3, 5572}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UPG", 3, 6693}, {"VALE", 4, 6768}, {"RSX", 3, 5636}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NSYS", 4, 4664}, {""}, {""}, {""}, {""}, {""}, {"COO", 3, 1320}, {""}, {""}, {""}, {""}, {"TOO", 3, 6447}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FDEF", 4, 2309}, {""}, {""}, {""}, {"CYCC", 4, 1564}, {""}, {""}, {""}, {"TYC", 3, 6575}, {""}, {""}, {""}, {"FCF", 3, 2289}, {""}, {"PPG", 3, 5206}, {""}, {""}, {""}, {""}, {"SKL", 3, 5936}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SYBT", 4, 6228}, {""}, {"PCP", 3, 4970}, {"DRYS", 4, 1797}, {"SYT", 3, 6242}, {""}, {""}, {""}, {"AEZS", 4, 134}, {"CYT", 3, 1578}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ETE", 3, 2141}, {""}, {""}, {""}, {"GOODO", 5, 2795}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SSP", 3, 6119}, {""}, {""}, {"HTWR", 4, 3126}, {""}, {"CSP", 3, 1454}, {""}, {"PYC", 3, 5373}, {"CPBK", 4, 1341}, {""}, {"GYC", 3, 2906}, {""}, {""}, {"HMIN", 4, 3037}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXID", 4, 519}, {"COOL", 4, 1319}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IO", 2, 3373}, {"TYBS", 4, 6574}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PYT", 3, 5381}, {"CYBI", 4, 1560}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHN", 3, 5882}, {""}, {"CYS", 3, 1573}, {""}, {""}, {"CHN", 3, 1153}, {""}, {""}, {""}, {""}, {"PSP", 3, 5284}, {""}, {""}, {"GSP", 3, 2860}, {"SHMR", 4, 5880}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UHN", 3, 6652}, {""}, {""}, {""}, {""}, {""}, {""}, {"POOL", 4, 5193}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MMF", 3, 4210}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PYS", 3, 5380}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPM", 3, 2082}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SYUT", 4, 6243}, {""}, {""}, {"PFF", 3, 5027}, {""}, {""}, {"GFF", 3, 2671}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRP", 3, 1411}, {""}, {"HTN", 3, 3123}, {""}, {""}, {"TRP", 3, 6493}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SOL", 3, 6031}, {""}, {""}, {""}, {""}, {"COL", 3, 1314}, {""}, {""}, {""}, {""}, {"TOL", 3, 6446}, {"DLLR", 4, 1726}, {""}, {""}, {""}, {"RTM", 3, 5648}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FRF", 3, 2485}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RETL", 4, 5502}, {""}, {"BEE", 3, 635}, {""}, {"FXR", 3, 2580}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"POL", 3, 5191}, {""}, {""}, {"GOL", 3, 2793}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DBO", 3, 1609}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BDG", 3, 619}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MIF", 3, 4157}, {""}, {""}, {""}, {""}, {"IKM", 3, 3301}, {""}, {""}, {""}, {""}, {""}, {"MHR", 3, 4151}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPOC", 4, 2083}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMPL", 4, 280}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RNET", 4, 5568}, {""}, {""}, {""}, {""}, {""}, {"AAP", 3, 10}, {""}, {""}, {"MX", 2, 4398}, {""}, {"DIOD", 4, 1703}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JNS", 3, 3600}, {""}, {""}, {""}, {""}, {""}, {"NBO", 3, 4452}, {""}, {""}, {""}, {""}, {""}, {"IOIL", 4, 3369}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELSE", 4, 2002}, {""}, {""}, {""}, {"IILG", 4, 3287}, {""}, {"DGICA", 5, 1672}, {""}, {""}, {"EEE", 3, 1929}, {""}, {"VIDE", 4, 6820}, {"GLJ", 3, 2742}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DCO", 3, 1624}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TIPZ", 4, 6387}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PXQ", 3, 5365}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACP", 3, 71}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CXDC", 4, 1548}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CYTR", 4, 1575}, {""}, {""}, {""}, {""}, {""}, {""}, {"FHC", 3, 2371}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NCO", 3, 4467}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JLS", 3, 3591}, {""}, {""}, {"TFONY", 5, 6342}, {""}, {"AYT", 3, 537}, {""}, {""}, {""}, {""}, {""}, {"DAL", 3, 1590}, {""}, {""}, {"AXEN", 4, 515}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RCON", 4, 5470}, {"ASP", 3, 426}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BME", 3, 747}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JFR", 3, 3555}, {"REM", 3, 5497}, {""}, {""}, {""}, {""}, {"AZPN", 4, 542}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DTYS", 4, 1827}, {""}, {""}, {""}, {""}, {""}, {"SYA", 3, 6226}, {""}, {""}, {"NBL", 3, 4450}, {""}, {""}, {""}, {""}, {""}, {""}, {"WOOD", 4, 7062}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AFF", 3, 145}, {""}, {""}, {""}, {""}, {""}, {"FPFC", 4, 2469}, {""}, {"XLG", 3, 7159}, {""}, {""}, {""}, {""}, {""}, {"FFHL", 4, 2349}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CLBH", 4, 1204}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADPI", 4, 95}, {"PYA", 3, 5371}, {""}, {""}, {"GYA", 3, 2904}, {"SFLY", 4, 5836}, {""}, {""}, {""}, {""}, {"SLYG", 4, 5966}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EME", 3, 2015}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GLCH", 4, 2735}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AOL", 3, 333}, {""}, {""}, {"VXUS", 4, 6952}, {""}, {""}, {""}, {""}, {"BIE", 3, 683}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RIGL", 4, 5536}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NRO", 3, 4645}, {""}, {""}, {""}, {""}, {""}, {""}, {"PKG", 3, 5107}, {""}, {"NCL", 3, 4465}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HNT", 3, 3052}, {""}, {""}, {""}, {"BNHNA", 5, 762}, {"STP", 3, 6158}, {"STPP", 4, 6156}, {""}, {""}, {""}, {"CTP", 3, 1484}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HSTM", 4, 3107}, {""}, {""}, {""}, {""}, {""}, {""}, {"CQP", 3, 1376}, {""}, {""}, {""}, {""}, {""}, {""}, {"AYI", 3, 534}, {""}, {""}, {"TK", 2, 6402}, {"REED", 4, 5487}, {""}, {""}, {""}, {"RDC", 3, 5475}, {""}, {""}, {"VG", 2, 6811}, {"FOLD", 4, 2456}, {"FHI", 3, 2372}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FTF", 3, 2527}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IP", 2, 3396}, {"PTP", 3, 5310}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZNWAZ", 5, 7250}, {"NSL", 3, 4655}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALJ", 3, 227}, {""}, {""}, {"VOD", 3, 6872}, {""}, {""}, {""}, {""}, {"PKBK", 4, 5103}, {""}, {""}, {"CHUX", 4, 1166}, {""}, {""}, {""}, {"IPGP", 4, 3383}, {""}, {""}, {""}, {""}, {""}, {""}, {"HMN", 3, 3040}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CIZN", 4, 1194}, {""}, {""}, {""}, {""}, {"CPLP", 4, 1355}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DRL", 3, 1787}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MAPP", 4, 3993}, {""}, {"SOG", 3, 6027}, {""}, {""}, {""}, {""}, {"COG", 3, 1303}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHIX", 4, 1141}, {""}, {""}, {""}, {"RAD", 3, 5439}, {""}, {""}, {""}, {"ZSL", 3, 7259}, {""}, {""}, {"APAGF", 5, 341}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNF", 3, 6006}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CYAN", 4, 1558}, {""}, {""}, {"VCSH", 4, 6788}, {"SHIPD", 5, 5873}, {""}, {"UNF", 3, 6679}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BOM", 3, 780}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"THER", 4, 6362}, {""}, {""}, {""}, {""}, {"XKN", 3, 7154}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ANTH", 4, 322}, {""}, {""}, {""}, {""}, {"PNF", 3, 5171}, {""}, {""}, {"HLS", 3, 3028}, {"MPG", 3, 4267}, {""}, {""}, {""}, {""}, {"COBK", 4, 1295}, {""}, {""}, {""}, {""}, {"HEES", 4, 2964}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MCP", 3, 4042}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MOO", 3, 4249}, {"HNI", 3, 3047}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SYNT", 4, 6239}, {""}, {"RCD", 3, 5462}, {""}, {"JLA", 3, 3589}, {""}, {""}, {""}, {""}, {"MYC", 3, 4399}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RIMM", 4, 5540}, {""}, {""}, {"REX", 3, 5509}, {"REXX", 4, 5508}, {""}, {"MKL", 3, 4179}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXDI", 4, 514}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RDI", 3, 5479}, {""}, {""}, {"TYNS", 4, 6580}, {""}, {"FXN", 3, 2577}, {"SLF", 3, 5950}, {""}, {""}, {""}, {"MSP", 3, 4313}, {"CLF", 3, 1213}, {""}, {""}, {""}, {""}, {"TLF", 3, 6406}, {""}, {""}, {""}, {""}, {""}, {""}, {"BNHN", 4, 763}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WZE", 3, 7129}, {""}, {""}, {"HLIT", 4, 3027}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SEP", 3, 5826}, {"WHRT", 4, 7018}, {""}, {""}, {"VIXY", 4, 6841}, {"CEP", 3, 1081}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MHN", 3, 4148}, {"ALTH", 4, 243}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GLF", 3, 2740}, {""}, {""}, {""}, {"BPOPN", 5, 800}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RTLA", 4, 5645}, {""}, {""}, {""}, {""}, {""}, {"BOOT", 4, 786}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"THQI", 4, 6370}, {""}, {""}, {""}, {""}, {"IPD", 3, 3380}, {""}, {""}, {""}, {""}, {"JASO", 4, 3521}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PEP", 3, 5010}, {""}, {""}, {"GEP", 3, 2660}, {""}, {""}, {""}, {""}, {""}, {""}, {"BIOF", 4, 692}, {""}, {""}, {""}, {"NMFC", 4, 4574}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMZN", 4, 299}, {""}, {""}, {""}, {""}, {""}, {""}, {"DAG", 3, 1587}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DTO", 3, 1820}, {""}, {""}, {""}, {""}, {""}, {""}, {"VBF", 3, 6776}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MOL", 3, 4247}, {"RFMD", 4, 5516}, {""}, {"MXIM", 4, 4392}, {""}, {"LABC", 4, 3791}, {""}, {"RRD", 3, 5620}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FCZA", 4, 2306}, {""}, {""}, {""}, {""}, {"BP", 2, 807}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NBG", 3, 4446}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ECHO", 4, 1894}, {""}, {""}, {""}, {""}, {"XOMA", 4, 7172}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BOLT", 4, 779}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JCDA", 4, 3536}, {""}, {""}, {""}, {""}, {"LBAI", 4, 3807}, {""}, {""}, {""}, {"MYI", 3, 4404}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"THRX", 4, 6372}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZROZ", 4, 7258}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WPO", 3, 7069}, {""}, {""}, {"LAS", 3, 3801}, {""}, {"ZZ", 2, 7280}, {""}, {"VCF", 3, 6781}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"THRD", 4, 6371}, {""}, {""}, {""}, {""}, {""}, {"LCC", 3, 3820}, {""}, {""}, {"ZAGG", 4, 7225}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JSDA", 4, 3625}, {""}, {"RDA", 3, 5473}, {"NFLX", 4, 4509}, {""}, {""}, {"FPO", 3, 2471}, {""}, {""}, {""}, {"SB", 2, 5751}, {""}, {""}, {""}, {""}, {"CB", 2, 1016}, {""}, {""}, {"SHEN", 4, 5870}, {""}, {""}, {""}, {"SBB", 3, 5729}, {""}, {""}, {"EP", 2, 2090}, {""}, {"CBB", 3, 984}, {""}, {""}, {""}, {""}, {"VTJ", 3, 6931}, {""}, {""}, {"BOX", 3, 791}, {""}, {"SMP", 3, 5988}, {""}, {""}, {""}, {"ANF", 3, 311}, {"CMP", 3, 1254}, {""}, {""}, {""}, {""}, {"TMP", 3, 6424}, {""}, {"BKOR", 4, 718}, {""}, {""}, {"SAB", 3, 5701}, {""}, {"ISLE", 4, 3432}, {""}, {""}, {"CAB", 3, 930}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SYMC", 4, 6231}, {"INCY", 4, 3325}, {""}, {""}, {""}, {"CACB", 4, 931}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GB", 2, 2621}, {"LSC", 3, 3935}, {"LSCC", 4, 3934}, {"GBAB", 4, 2608}, {""}, {"CASB", 4, 963}, {""}, {""}, {""}, {""}, {""}, {""}, {"GBB", 3, 2609}, {""}, {""}, {""}, {"SCHG", 4, 5763}, {"CXM", 3, 1551}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCKT", 4, 5780}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GAB", 3, 2591}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PACB", 4, 4908}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SYMS", 4, 6233}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BONO", 4, 783}, {""}, {""}, {"NTL", 3, 4675}, {""}, {""}, {""}, {""}, {""}, {"CYMI", 4, 1569}, {"PBY", 3, 4951}, {"LSBI", 4, 3932}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LCUT", 4, 3824}, {""}, {""}, {""}, {""}, {""}, {""}, {"TCB", 3, 6292}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PAY", 3, 4932}, {""}, {""}, {""}, {""}, {""}, {""}, {"DEO", 3, 1651}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHIM", 4, 1138}, {""}, {"TIP", 3, 6388}, {""}, {"WHR", 3, 7019}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SYNA", 4, 6235}, {""}, {""}, {"SBIB", 4, 5735}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AYR", 3, 536}, {""}, {""}, {"AEP", 3, 125}, {"CSKI", 4, 1446}, {""}, {""}, {""}, {""}, {""}, {""}, {"WX", 2, 7124}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PIP", 3, 5087}, {""}, {""}, {""}, {""}, {""}, {""}, {"NRG", 3, 4642}, {""}, {""}, {""}, {""}, {""}, {""}, {"NZX", 3, 4764}, {""}, {""}, {"USB", 3, 6719}, {""}, {""}, {""}, {""}, {""}, {"AXJL", 4, 521}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXSL", 4, 528}, {"LCI", 3, 3821}, {""}, {""}, {""}, {"PBIB", 4, 4938}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PCY", 3, 4979}, {""}, {""}, {"PSB", 3, 5260}, {""}, {""}, {"GSB", 3, 2846}, {""}, {""}, {"PSTB", 4, 5289}, {""}, {""}, {""}, {""}, {"HNSN", 4, 3051}, {""}, {""}, {""}, {""}, {"MKTG", 4, 4184}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SSY", 3, 6125}, {""}, {""}, {""}, {"GOODP", 5, 2796}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACTV", 4, 75}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CARV", 4, 960}, {"LSI", 3, 3937}, {"NBTF", 4, 4456}, {""}, {""}, {""}, {""}, {"IXC", 3, 3496}, {""}, {""}, {""}, {"JEQ", 3, 3550}, {""}, {""}, {""}, {"RFIL", 4, 5514}, {""}, {""}, {""}, {"EPD", 3, 2076}, {"RAVN", 4, 5449}, {""}, {""}, {""}, {"JSM", 3, 3627}, {""}, {""}, {""}, {""}, {""}, {"EGO", 3, 1965}, {"PSY", 3, 5296}, {""}, {""}, {"GSY", 3, 2865}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XRAY", 4, 7180}, {""}, {"HBIO", 4, 2932}, {""}, {""}, {""}, {""}, {""}, {"IOSP", 4, 3371}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MTP", 3, 4332}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DEL", 3, 1647}, {"DELL", 4, 1646}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RDNT", 4, 5481}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HFWA", 4, 2980}, {""}, {"PRB", 3, 5222}, {"PXLC", 4, 5356}, {""}, {"GRB", 3, 2817}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IPXL", 4, 3395}, {""}, {""}, {"HNR", 3, 3050}, {""}, {""}, {"LBTA", 4, 3812}, {"LBTYA", 5, 3813}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRY", 3, 1427}, {""}, {""}, {"VHC", 3, 6812}, {""}, {""}, {""}, {""}, {""}, {"CONG", 4, 1316}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DMO", 3, 1740}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"YONG", 4, 7214}, {"VHT", 3, 6815}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AB", 2, 45}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ABB", 3, 22}, {""}, {""}, {""}, {""}, {"QEP", 3, 5409}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMP", 3, 281}, {"ABCB", 4, 23}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UBOH", 4, 6615}, {""}, {""}, {"CYN", 3, 1571}, {""}, {""}, {""}, {""}, {"TYN", 3, 6581}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCHF", 4, 5762}, {"LSTR", 4, 3939}, {""}, {"VHS", 3, 6814}, {""}, {""}, {""}, {""}, {""}, {"NMO", 3, 4577}, {""}, {""}, {"ANLY", 4, 316}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TGE", 3, 6351}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LCAPA", 5, 3817}, {""}, {"TRIB", 4, 6476}, {""}, {""}, {""}, {"UGE", 3, 6646}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RJI", 3, 5548}, {""}, {""}, {"MYGN", 4, 4403}, {"PYN", 3, 5379}, {"YGE", 3, 7208}, {""}, {"HBM", 3, 2934}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHRM", 4, 1156}, {""}, {""}, {""}, {""}, {"FFBH", 4, 2340}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BKLN", 4, 715}, {""}, {"DDM", 3, 1632}, {"JAX", 3, 3523}, {""}, {""}, {""}, {"FFCH", 4, 2341}, {""}, {"GGE", 3, 2685}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PROJ", 4, 5242}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IG", 2, 3271}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LSTZA", 5, 3940}, {""}, {""}, {""}, {"AIP", 3, 196}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DBLEP", 5, 1607}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JZC", 3, 3640}, {""}, {""}, {""}, {""}, {""}, {""}, {"PEDH", 4, 4997}, {""}, {"DTG", 3, 1815}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NIO", 3, 4546}, {""}, {""}, {"ACY", 3, 82}, {""}, {"FKO", 3, 2397}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HMTM", 4, 3043}, {"JZT", 3, 3646}, {""}, {""}, {""}, {""}, {""}, {"VHI", 3, 6813}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LTC", 3, 3943}, {""}, {""}, {"FBP", 3, 2273}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DANG", 4, 1591}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BXC", 3, 906}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JZS", 3, 3645}, {"NTG", 3, 4672}, {""}, {"HEQ", 3, 2970}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HSM", 3, 3103}, {""}, {""}, {""}, {""}, {""}, {"PRKR", 4, 5236}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INHX", 4, 3337}, {""}, {""}, {""}, {""}, {""}, {""}, {"NGSX", 4, 4524}, {""}, {""}, {""}, {""}, {"LANC", 4, 3798}, {""}, {""}, {"HBOS", 4, 2937}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PHMD", 4, 5067}, {""}, {"CBKN", 4, 991}, {""}, {"QXM", 3, 5436}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LTS", 3, 3951}, {""}, {""}, {"ARB", 3, 369}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GTIV", 4, 2871}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BXS", 3, 911}, {"DCNG", 4, 1622}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RJA", 3, 5545}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HARL", 4, 2919}, {""}, {""}, {""}, {""}, {"EXAC", 4, 2212}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BXUC", 4, 913}, {""}, {""}, {""}, {""}, {""}, {"EXC", 3, 2217}, {""}, {""}, {""}, {""}, {"FYC", 3, 2585}, {""}, {""}, {"CTB", 3, 1468}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARY", 3, 408}, {"BKD", 3, 707}, {""}, {""}, {""}, {""}, {""}, {""}, {"CQB", 3, 1375}, {""}, {""}, {"FKL", 3, 2396}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXCM", 4, 2566}, {"EXT", 3, 2237}, {""}, {""}, {""}, {""}, {"FYT", 3, 2586}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXEN", 4, 2569}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CETV", 4, 1085}, {""}, {""}, {""}, {"FSP", 3, 2515}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRRB", 4, 1412}, {""}, {"EXAS", 4, 2215}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CFP", 3, 1102}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHCO", 4, 1123}, {""}, {""}, {"AYN", 3, 535}, {""}, {""}, {"MBB", 3, 4011}, {"ASRV", 4, 428}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FHN", 3, 2373}, {""}, {""}, {""}, {""}, {"MMP", 3, 4214}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MAB", 3, 3982}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RMD", 3, 5563}, {""}, {""}, {"DEG", 3, 1643}, {""}, {""}, {""}, {"PTY", 3, 5316}, {""}, {""}, {"GTY", 3, 2879}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PQY", 3, 5216}, {""}, {"HMNYD", 5, 3039}, {""}, {""}, {""}, {"NPBC", 4, 4610}, {""}, {""}, {""}, {""}, {"BG", 2, 665}, {"IAF", 3, 3171}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NPC", 3, 4611}, {"RL", 2, 5560}, {""}, {""}, {""}, {""}, {""}, {""}, {"DPS", 3, 1772}, {""}, {""}, {""}, {""}, {""}, {"UHAL", 4, 6651}, {""}, {""}, {""}, {""}, {""}, {""}, {"BLE", 3, 730}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HTCO", 4, 3115}, {""}, {"BGG", 3, 656}, {""}, {""}, {""}, {""}, {""}, {""}, {"DJCO", 4, 1713}, {""}, {"NPT", 3, 4623}, {"CYBX", 4, 1561}, {""}, {"FRP", 3, 2494}, {"LEGC", 4, 3838}, {"MAY", 3, 4008}, {"CYTX", 4, 1577}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CTIB", 4, 1479}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FOL", 3, 2457}, {""}, {""}, {""}, {""}, {"OABC", 4, 4766}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CPHC", 4, 1347}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RDWR", 4, 5483}, {""}, {""}, {""}, {""}, {""}, {""}, {"DECK", 4, 1639}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OBAS", 4, 4769}, {""}, {""}, {""}, {""}, {""}, {"ICF", 3, 3199}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXI", 3, 2224}, {""}, {""}, {""}, {""}, {""}, {"LAWS", 4, 3804}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OBCI", 4, 4770}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MCY", 3, 4049}, {""}, {""}, {"MSB", 3, 4292}, {""}, {""}, {"LTBR", 4, 3942}, {""}, {""}, {"ARKR", 4, 386}, {"CPHI", 4, 1349}, {""}, {""}, {"OC", 2, 4780}, {""}, {"OAS", 3, 4767}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EOD", 3, 2065}, {""}, {"OCC", 3, 4772}, {""}, {""}, {""}, {""}, {"ERJ", 3, 2105}, {""}, {""}, {""}, {""}, {""}, {""}, {"ISF", 3, 3424}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSCH", 4, 844}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TECUB", 5, 6322}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RDN", 3, 5482}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MSY", 3, 4318}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSPM", 4, 857}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PEB", 3, 4996}, {""}, {""}, {"OSBC", 4, 4873}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TZF", 3, 6591}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CWBC", 4, 1534}, {""}, {""}, {""}, {"FNFG", 4, 2440}, {""}, {""}, {""}, {""}, {"SWC", 3, 6205}, {"TWTC", 4, 6565}, {""}, {""}, {""}, {""}, {""}, {"NPI", 3, 4615}, {""}, {"CRZO", 4, 1428}, {"TWC", 3, 6554}, {""}, {""}, {""}, {""}, {""}, {"CHDN", 4, 1125}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UWC", 3, 6759}, {""}, {""}, {""}, {""}, {""}, {"SLVY", 4, 5961}, {""}, {""}, {""}, {""}, {""}, {"LEI", 3, 3840}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CWT", 3, 1544}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXAR", 4, 2214}, {""}, {""}, {""}, {""}, {""}, {"GRNB", 4, 2829}, {"JEM", 3, 3549}, {"MLPL", 4, 4199}, {""}, {"SHM", 3, 5881}, {""}, {""}, {""}, {"PEY", 3, 5017}, {"EXTR", 4, 2236}, {""}, {""}, {""}, {""}, {"THM", 3, 6367}, {"IRF", 3, 3411}, {"PWC", 3, 5338}, {"CWST", 4, 1542}, {""}, {"LMAT", 4, 3880}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LMT", 3, 3886}, {""}, {""}, {""}, {"ZZD", 3, 7272}, {"BDGE", 4, 618}, {""}, {""}, {""}, {"CWBS", 4, 1535}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SWS", 3, 6216}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PHM", 3, 5068}, {""}, {""}, {"GHM", 3, 2697}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ORBC", 4, 4857}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DPTR", 4, 1773}, {""}, {""}, {""}, {""}, {""}, {""}, {"ORCC", 4, 4861}, {""}, {""}, {""}, {""}, {""}, {""}, {"AFP", 3, 150}, {""}, {""}, {""}, {""}, {""}, {"BBF", 3, 574}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HTM", 3, 3122}, {"DIG", 3, 1700}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ORBT", 4, 4859}, {""}, {"CBZ", 3, 1015}, {""}, {""}, {""}, {""}, {"TBZ", 3, 6287}, {"BAF", 3, 551}, {""}, {""}, {""}, {""}, {""}, {""}, {"ORCT", 4, 4864}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TDJ", 3, 6310}, {""}, {""}, {""}, {""}, {""}, {"NFO", 3, 4511}, {"MYN", 3, 4408}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VPL", 3, 6891}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SMB", 3, 5972}, {"MGEE", 4, 4121}, {""}, {""}, {"CHOC", 4, 1154}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RLOC", 4, 5557}, {""}, {"SERV", 4, 5827}, {""}, {""}, {""}, {"PDJ", 3, 4986}, {""}, {"ORS", 3, 4871}, {""}, {""}, {"LIT", 3, 3868}, {""}, {""}, {""}, {""}, {""}, {""}, {"RGC", 3, 5522}, {"GAZ", 3, 2606}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CMSB", 4, 1257}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RIVR", 4, 5544}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACNB", 4, 65}, {""}, {"OSIS", 4, 4877}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DISCK", 5, 1707}, {""}, {"GMTB", 4, 2770}, {""}, {""}, {""}, {"EBF", 3, 1880}, {"HIMX", 4, 3005}, {""}, {"BCF", 3, 597}, {""}, {""}, {"BOVA", 4, 790}, {"SWI", 3, 6210}, {""}, {""}, {""}, {""}, {"CWI", 3, 1541}, {"RTLX", 4, 5646}, {""}, {""}, {""}, {"TWI", 3, 6558}, {""}, {""}, {""}, {""}, {"SCZ", 3, 5800}, {""}, {""}, {""}, {""}, {"CCZ", 3, 1049}, {"MEDH", 4, 4079}, {""}, {""}, {"CSMB", 4, 1450}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JDAS", 4, 3544}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LMI", 3, 3882}, {""}, {""}, {""}, {""}, {""}, {"IHC", 3, 3272}, {""}, {"PXD", 3, 5350}, {""}, {""}, {""}, {""}, {""}, {""}, {"RGS", 3, 5529}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LEA", 3, 3832}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NICK", 4, 4537}, {""}, {""}, {""}, {""}, {"ORIT", 4, 4866}, {""}, {""}, {""}, {""}, {"IHT", 3, 3279}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CIB", 3, 1174}, {""}, {""}, {""}, {"SIFY", 4, 5900}, {""}, {"TIBB", 4, 6376}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DKT", 3, 1718}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GPRE", 4, 2810}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMCXV", 5, 263}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AEB", 3, 110}, {""}, {"ORI", 3, 4867}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LAMR", 4, 3797}, {""}, {"ECF", 3, 1892}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLFE", 4, 5126}, {"IHS", 3, 3278}, {""}, {""}, {"GIB", 3, 2698}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNP", 3, 6014}, {"PICB", 4, 5076}, {""}, {""}, {""}, {"CNP", 3, 1280}, {"CRMB", 4, 1403}, {""}, {""}, {""}, {"TNP", 3, 6440}, {"TRMB", 4, 6482}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DKS", 3, 1717}, {""}, {""}, {"UNP", 3, 6685}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ETJ", 3, 2146}, {"HBCP", 4, 2929}, {""}, {""}, {""}, {""}, {""}, {"FNF", 3, 2441}, {""}, {""}, {""}, {""}, {""}, {"LII", 3, 3860}, {""}, {""}, {""}, {""}, {""}, {""}, {"AEY", 3, 133}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AWC", 3, 504}, {""}, {""}, {""}, {""}, {""}, {"CWTR", 4, 1543}, {"ZGNX", 4, 7233}, {""}, {""}, {""}, {"BRF", 3, 821}, {""}, {""}, {""}, {"PIY", 3, 5092}, {""}, {""}, {"GIY", 3, 2711}, {""}, {""}, {"CHXX", 4, 1169}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SRZ", 3, 6107}, {""}, {"RGI", 3, 5525}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RSYS", 4, 5637}, {""}, {"URZ", 3, 6710}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NEOP", 4, 4490}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PHX", 3, 5072}, {""}, {"JSD", 3, 3626}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GRZ", 3, 2842}, {""}, {""}, {""}, {""}, {""}, {""}, {"MTB", 3, 4321}, {""}, {"BTFG", 4, 868}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SLP", 3, 5956}, {""}, {""}, {""}, {""}, {"CLP", 3, 1223}, {""}, {""}, {""}, {""}, {"TLP", 3, 6414}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IHI", 3, 3277}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ITF", 3, 3450}, {""}, {""}, {""}, {"OSUR", 4, 4882}, {""}, {""}, {""}, {""}, {"BPOPM", 5, 799}, {""}, {""}, {""}, {""}, {"HAUP", 4, 2923}, {""}, {""}, {""}, {""}, {"MGPI", 4, 4131}, {""}, {""}, {""}, {""}, {"VDE", 3, 6792}, {""}, {""}, {""}, {""}, {"ERF", 3, 2100}, {""}, {""}, {""}, {"NOC", 3, 4599}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLP", 3, 5135}, {""}, {""}, {"GLP", 3, 2747}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MTY", 3, 4345}, {"NPTN", 4, 4622}, {""}, {"ADJ", 3, 91}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXR", 3, 2235}, {""}, {""}, {""}, {""}, {"MQY", 3, 4276}, {""}, {""}, {"FEP", 3, 2332}, {"MXWL", 4, 4397}, {""}, {"OSIR", 4, 4876}, {""}, {""}, {""}, {""}, {""}, {""}, {"SOFO", 4, 6026}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SWIR", 4, 6209}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XME", 3, 7168}, {""}, {""}, {""}, {""}, {"HERO", 4, 2971}, {""}, {""}, {"SHOR", 4, 5884}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"THOR", 4, 6368}, {""}, {""}, {"OTT", 3, 4888}, {""}, {""}, {""}, {""}, {"ORA", 3, 4856}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LRN", 3, 3930}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PZZI", 4, 5395}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AWI", 3, 507}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HCIIP", 5, 2946}, {""}, {""}, {""}, {""}, {""}, {""}, {"WBKC", 4, 6973}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NTWK", 4, 4682}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DDD", 3, 1627}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RGA", 3, 5520}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LMIA", 4, 3881}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RJN", 3, 5549}, {""}, {""}, {""}, {""}, {"VPG", 3, 6889}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AIB", 3, 190}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VOO", 3, 6881}, {""}, {""}, {"DNO", 3, 1750}, {""}, {""}, {"CVC", 3, 1510}, {""}, {""}, {""}, {"DMLP", 4, 1738}, {"TVC", 3, 6548}, {""}, {""}, {"IXN", 3, 3499}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RDEA", 4, 5476}, {"SENEB", 5, 5825}, {""}, {""}, {""}, {"TDF", 3, 6306}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SVT", 3, 6200}, {""}, {""}, {"VKL", 3, 6843}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UVT", 3, 6756}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WAB", 3, 6961}, {""}, {""}, {"NKTR", 4, 4559}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DATE", 4, 1595}, {""}, {""}, {"GDF", 3, 2635}, {""}, {"SREV", 4, 6097}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SVBI", 4, 6195}, {""}, {""}, {""}, {""}, {""}, {"XOIL", 4, 7171}, {"GVT", 3, 2892}, {"IEF", 3, 3230}, {""}, {"CVTI", 4, 1527}, {""}, {""}, {"NNO", 3, 4593}, {"FAB", 3, 2249}, {""}, {""}, {"DFG", 3, 1662}, {""}, {"BMJ", 3, 749}, {""}, {""}, {""}, {""}, {"CVS", 3, 1526}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVGI", 4, 1514}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MZF", 3, 4415}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OCR", 3, 4778}, {"FXM", 3, 2576}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LFC", 3, 3843}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NKA", 3, 4551}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BHI", 3, 670}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BTF", 3, 869}, {"LFT", 3, 3845}, {""}, {""}, {""}, {""}, {""}, {"MHM", 3, 4147}, {""}, {""}, {""}, {""}, {""}, {""}, {"NFG", 3, 4507}, {""}, {"SHMO", 4, 5879}, {""}, {""}, {"STZ", 3, 6175}, {"ZIOP", 4, 7239}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WIP", 3, 7030}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMKR", 4, 271}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XOM", 3, 7173}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DNL", 3, 1748}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EMJ", 3, 2022}, {""}, {""}, {""}, {"TSXV", 4, 6525}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GJJ", 3, 2715}, {""}, {""}, {""}, {"WSB", 3, 7089}, {"TWIN", 4, 6557}, {""}, {""}, {""}, {""}, {"RSO", 3, 5628}, {""}, {""}, {""}, {"PQZ", 3, 5217}, {"DBEF", 4, 1603}, {""}, {""}, {""}, {"RBL", 3, 5456}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ITLY", 4, 3456}, {"JJC", 3, 3568}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PWR", 3, 5345}, {""}, {""}, {"GWR", 3, 2897}, {""}, {"CVI", 3, 1518}, {""}, {""}, {"LBIX", 4, 3809}, {""}, {"NFBK", 4, 4504}, {"LINC", 4, 3862}, {"FCY", 3, 2305}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OTTR", 4, 4887}, {""}, {""}, {""}, {""}, {""}, {""}, {"JJT", 3, 3576}, {"SYMX", 4, 6234}, {""}, {""}, {""}, {""}, {""}, {"EHI", 3, 1971}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ETF", 3, 2143}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COHR", 4, 1304}, {"RGNC", 4, 5527}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RDCM", 4, 5474}, {""}, {""}, {""}, {"PVI", 3, 5329}, {""}, {""}, {"GVI", 3, 2890}, {""}, {""}, {""}, {""}, {""}, {"RSOL", 4, 5627}, {""}, {"RDEN", 4, 5477}, {""}, {""}, {"RJET", 4, 5546}, {""}, {""}, {"SCHE", 4, 5761}, {""}, {""}, {""}, {""}, {"NOA", 3, 4597}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LFUS", 4, 3846}, {""}, {""}, {""}, {""}, {""}, {""}, {"JJS", 3, 3575}, {"CORE", 4, 1323}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JTD", 3, 3631}, {""}, {"IMF", 3, 3309}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFCB", 4, 5023}, {""}, {""}, {""}, {""}, {""}, {""}, {"PZZA", 4, 5394}, {""}, {"WRB", 3, 7075}, {""}, {"SFY", 3, 5844}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RCL", 3, 5468}, {""}, {""}, {""}, {""}, {""}, {"CHTP", 4, 1163}, {""}, {""}, {""}, {""}, {"CHLN", 4, 1147}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MMY", 3, 4223}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MCZ", 3, 4050}, {""}, {""}, {""}, {""}, {"FRB", 3, 2478}, {"CHSP", 4, 1161}, {"CHSCP", 5, 1159}, {""}, {""}, {""}, {"AMRB", 4, 282}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OMC", 3, 4820}, {""}, {""}, {"GFY", 3, 2678}, {""}, {"RGR", 3, 5528}, {""}, {""}, {""}, {""}, {""}, {"LRCX", 4, 3929}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LRAD", 4, 3928}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MYRX", 4, 4411}, {""}, {""}, {""}, {""}, {""}, {""}, {"MSZ", 3, 4319}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AVT", 3, 499}, {""}, {""}, {""}, {""}, {"HIX", 3, 3012}, {""}, {""}, {"SYNM", 4, 6237}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IIF", 3, 3282}, {""}, {"IDSY", 4, 3221}, {""}, {""}, {""}, {"DF", 2, 1669}, {""}, {""}, {""}, {""}, {""}, {"TWMC", 4, 6559}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WYN", 3, 7126}, {"WYNN", 4, 7125}, {"MEOH", 4, 4089}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MNP", 3, 4231}, {""}, {""}, {""}, {""}, {"HFBL", 4, 2977}, {""}, {""}, {""}, {""}, {""}, {""}, {"MIY", 3, 4170}, {""}, {""}, {""}, {""}, {""}, {"IX", 2, 3502}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SVA", 3, 6194}, {"MDTH", 4, 4067}, {""}, {""}, {""}, {"CVA", 3, 1504}, {"FSRV", 4, 2516}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PEZ", 3, 5018}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OIC", 3, 4799}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BKEP", 4, 708}, {"FGE", 3, 2366}, {"MDYG", 4, 4072}, {""}, {""}, {""}, {""}, {""}, {""}, {"LMNR", 4, 3884}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVRT", 4, 1524}, {""}, {""}, {"AINV", 4, 194}, {"PVA", 3, 5325}, {""}, {""}, {"GVA", 3, 2889}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BOOM", 4, 785}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NKR", 3, 4557}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PVSA", 4, 5331}, {""}, {"OI", 2, 4807}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHDX", 4, 1126}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OIS", 3, 4806}, {""}, {""}, {""}, {""}, {"AWR", 3, 511}, {""}, {""}, {""}, {"ZF", 2, 7232}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MLP", 3, 4204}, {""}, {""}, {""}, {""}, {"MWA", 3, 4376}, {""}, {""}, {""}, {""}, {""}, {"SONE", 4, 6036}, {"OMI", 3, 4825}, {""}, {""}, {""}, {"CDZI", 4, 1060}, {""}, {""}, {""}, {"CHD", 3, 1127}, {""}, {""}, {""}, {""}, {"THD", 3, 6361}, {""}, {""}, {""}, {""}, {"RLD", 3, 5553}, {""}, {""}, {""}, {""}, {""}, {""}, {"NPN", 3, 4618}, {""}, {"GHDX", 4, 2694}, {"HJT", 3, 3021}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BPO", 3, 802}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AVII", 4, 492}, {""}, {""}, {""}, {""}, {""}, {"LEN", 3, 3841}, {"HDSN", 4, 2957}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LATM", 4, 3802}, {""}, {""}, {""}, {""}, {""}, {""}, {"PHD", 3, 5059}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TNAV", 4, 6430}, {""}, {"AMNB", 4, 275}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AFB", 3, 137}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AFFY", 4, 144}, {""}, {""}, {""}, {""}, {""}, {""}, {"AFCB", 4, 138}, {"GMMB", 4, 2766}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HTD", 3, 3116}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NOR", 3, 4606}, {""}, {""}, {"JJA", 3, 3567}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VOG", 3, 6874}, {""}, {""}, {""}, {""}, {""}, {""}, {"OII", 3, 4802}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LINTA", 5, 3864}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OTR", 3, 4886}, {""}, {""}, {""}, {""}, {""}, {""}, {"AHGP", 4, 182}, {""}, {""}, {""}, {""}, {"SJF", 3, 5924}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGTE", 4, 3266}, {""}, {""}, {"OCN", 3, 4777}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LNC", 3, 3892}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EMF", 3, 2017}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LNT", 3, 3898}, {""}, {""}, {""}, {""}, {""}, {"SYMM", 4, 6232}, {""}, {""}, {""}, {""}, {"AVTR", 4, 498}, {""}, {""}, {"BIF", 3, 684}, {""}, {""}, {""}, {""}, {"EPOL", 4, 2084}, {""}, {"DNBK", 4, 1744}, {""}, {"BPL", 3, 798}, {""}, {""}, {"IDE", 3, 3214}, {""}, {""}, {""}, {"UYM", 3, 6766}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SVNT", 4, 6198}, {""}, {""}, {""}, {""}, {""}, {"BOFI", 4, 776}, {""}, {""}, {"MVC", 3, 4367}, {""}, {"OSN", 3, 4880}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DGX", 3, 1684}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BX", 2, 914}, {""}, {"SWN", 3, 6214}, {"MDF", 3, 4057}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TWN", 3, 6561}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MVT", 3, 4374}, {""}, {""}, {"NGLS", 4, 4520}, {"REFR", 4, 5489}, {"UWN", 3, 6761}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PIZ", 3, 5093}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LTXC", 4, 3952}, {""}, {""}, {""}, {""}, {""}, {""}, {"RCG", 3, 5463}, {"V", 1, 6959}, {"FTY", 3, 2537}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FHCO", 4, 2370}, {""}, {""}, {""}, {""}, {""}, {"AVA", 3, 484}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LLTC", 4, 3877}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPE", 3, 6056}, {""}, {""}, {""}, {""}, {"CPE", 3, 1344}, {"AVCA", 4, 486}, {""}, {""}, {""}, {"CVR", 3, 1525}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LBND", 4, 3811}, {""}, {""}, {""}, {"NGX", 3, 4527}, {""}, {""}, {""}, {""}, {""}, {"TNB", 3, 6432}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPL", 3, 2081}, {""}, {""}, {"UNB", 3, 6676}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UNFY", 4, 6678}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RSG", 3, 5625}, {""}, {""}, {""}, {""}, {""}, {""}, {"LAQ", 3, 3799}, {""}, {""}, {""}, {""}, {"ORN", 3, 4869}, {""}, {""}, {"PVR", 3, 5330}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DTYL", 4, 1826}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RTL", 3, 5647}, {""}, {""}, {""}, {""}, {"SNY", 3, 6022}, {""}, {""}, {""}, {""}, {"CNY", 3, 1294}, {""}, {""}, {""}, {""}, {""}, {"LIWA", 4, 3870}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OIA", 3, 4797}, {""}, {""}, {""}, {""}, {"MTZ", 3, 4346}, {"IPG", 3, 3384}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXBD", 4, 2216}, {""}, {""}, {""}, {"ZANE", 4, 7226}, {""}, {""}, {""}, {"AONE", 4, 335}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IOO", 3, 3370}, {""}, {""}, {"MWR", 3, 4383}, {""}, {""}, {""}, {"GYRO", 4, 2907}, {""}, {""}, {""}, {""}, {""}, {"PNY", 3, 5189}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IYC", 3, 3503}, {""}, {""}, {""}, {""}, {""}, {"SLAB", 4, 5945}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SLB", 3, 5948}, {"TLAB", 4, 6403}, {""}, {""}, {""}, {"CLB", 3, 1205}, {"IKL", 3, 3300}, {""}, {""}, {""}, {"TLB", 3, 6404}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IYT", 3, 3512}, {"MVIS", 4, 4371}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MVI", 3, 4372}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CFNB", 4, 1099}, {""}, {"ISP", 3, 3436}, {"TUC", 3, 6542}, {""}, {""}, {""}, {"DE", 2, 1659}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLAB", 4, 5120}, {""}, {""}, {""}, {"HJA", 3, 3014}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXXI", 4, 2238}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CUT", 3, 1501}, {"MFB", 3, 4098}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SLY", 3, 5968}, {""}, {""}, {""}, {""}, {"CLY", 3, 1233}, {""}, {"DNBF", 4, 1743}, {"XIDE", 4, 7148}, {""}, {""}, {""}, {""}, {""}, {"WXSP", 4, 7122}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSDV", 4, 5270}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IFF", 3, 3240}, {""}, {"JCOM", 4, 3539}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GUT", 3, 2887}, {""}, {""}, {""}, {""}, {""}, {"VB", 2, 6779}, {""}, {""}, {""}, {""}, {""}, {""}, {"SUSS", 4, 6191}, {""}, {""}, {""}, {""}, {"NE", 2, 4503}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MFY", 3, 4116}, {""}, {""}, {""}, {"CLUB", 4, 1228}, {""}, {""}, {""}, {""}, {""}, {"INDY", 4, 3328}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SYX", 3, 6244}, {""}, {""}, {""}, {""}, {""}, {"BDE", 3, 616}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LNCR", 4, 3891}, {"OFC", 3, 4787}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CPHD", 4, 1348}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CWEI", 4, 1538}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AIZ", 3, 205}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FISV", 4, 2386}, {"HL", 2, 3031}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPPI", 4, 6070}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RELL", 4, 5494}, {""}, {""}, {""}, {""}, {""}, {"PGJ", 3, 5047}, {""}, {""}, {""}, {"SYNO", 4, 6238}, {""}, {""}, {""}, {"BAP", 3, 562}, {"CYNO", 4, 1570}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XCJ", 3, 7134}, {""}, {""}, {""}, {""}, {"VIP", 3, 6831}, {"APOG", 4, 353}, {"EDE", 3, 1910}, {""}, {""}, {""}, {""}, {"DON", 3, 1759}, {""}, {""}, {""}, {"SUI", 3, 6180}, {"FBZ", 3, 2278}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JGBT", 4, 3559}, {""}, {""}, {""}, {"JGT", 3, 3561}, {"WMB", 3, 7046}, {""}, {""}, {""}, {""}, {"FAZ", 3, 2263}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"YUII", 4, 7220}, {""}, {""}, {""}, {""}, {"ATPG", 4, 456}, {"ANCB", 4, 304}, {""}, {""}, {""}, {""}, {"EGHT", 4, 1960}, {""}, {"SWTX", 4, 6217}, {""}, {""}, {""}, {""}, {""}, {""}, {"LTRX", 4, 3950}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SYNL", 4, 6236}, {""}, {""}, {""}, {""}, {""}, {"PUI", 3, 5319}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXD", 3, 2568}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FMY", 3, 2436}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OFI", 3, 4791}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALKS", 4, 228}, {""}, {""}, {""}, {""}, {"XG", 2, 7145}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSP", 3, 858}, {""}, {""}, {""}, {"SIEB", 4, 5898}, {"MHD", 3, 4139}, {""}, {""}, {""}, {""}, {"ALB", 3, 217}, {"XLE", 3, 7157}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RIO", 3, 5541}, {""}, {""}, {""}, {""}, {""}, {""}, {"VRTB", 4, 6909}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AUTC", 4, 478}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SUTR", 4, 6192}, {""}, {""}, {""}, {""}, {"CUTR", 4, 1500}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FITB", 4, 2389}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LACO", 4, 3793}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HJR", 3, 3020}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHMP", 4, 1149}, {""}, {""}, {""}, {"EXAM", 4, 2213}, {""}, {""}, {""}, {""}, {"L", 1, 3980}, {""}, {""}, {"VONG", 4, 6877}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NICE", 4, 4536}, {""}, {""}, {""}, {"PKE", 3, 5106}, {"TWER", 4, 6555}, {""}, {"BNJ", 3, 764}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESP", 3, 2130}, {"GFZ", 3, 2679}, {"GDXJ", 4, 2642}, {"BRP", 3, 831}, {""}, {""}, {"LABL", 4, 3792}, {""}, {"WHX", 3, 7020}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CUBA", 4, 1493}, {""}, {""}, {""}, {""}, {"SVN", 3, 6199}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VXX", 3, 6953}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPPR", 4, 6073}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PWER", 4, 5339}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FRZ", 3, 2498}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GUA", 3, 2881}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AVNR", 4, 495}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HAFC", 4, 2911}, {"XNPT", 4, 7169}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BYI", 3, 917}, {""}, {""}, {"WLP", 3, 7043}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MYM", 3, 4407}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SUSQ", 4, 6190}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHLD", 4, 5876}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"THLD", 4, 6366}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BLJ", 3, 733}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MWN", 3, 4381}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HGT", 3, 2989}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GOOG", 4, 2798}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NCTY", 4, 4471}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INVE", 4, 3360}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MPE", 3, 4266}, {""}, {""}, {"HTLD", 4, 3120}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HGSI", 4, 2988}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PPHM", 4, 5207}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PACW", 4, 4913}, {"PACQW", 5, 4910}, {""}, {""}, {""}, {""}, {"BXDC", 4, 908}, {""}, {""}, {""}, {""}, {""}, {"RPT", 3, 5613}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JJN", 3, 3572}, {""}, {""}, {"LQDT", 4, 3926}, {""}, {""}, {"CXO", 3, 1552}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"QADB", 4, 5399}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"REG", 3, 5491}, {"HSFT", 4, 3099}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HGIC", 4, 2984}, {""}, {""}, {""}, {"SYBTP", 5, 6227}, {""}, {""}, {""}, {"SGF", 3, 5851}, {""}, {""}, {"TCBIW", 5, 6289}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CCCLW", 5, 1020}, {""}, {""}, {"CYCCP", 5, 1563}, {""}, {""}, {"NGD", 3, 4517}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XXIA", 4, 7199}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JBO", 3, 3532}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SBIBW", 5, 5734}, {""}, {""}, {""}, {""}, {""}, {""}, {"PGF", 3, 5044}, {""}, {""}, {"MLAB", 4, 4188}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SDP", 3, 5808}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MUAC", 4, 4350}, {""}, {""}, {""}, {""}, {""}, {"USATW", 5, 6714}, {"HLX", 3, 3029}, {""}, {"HGI", 3, 2985}, {""}, {""}, {""}, {"NRGY", 4, 4641}, {""}, {"DBE", 3, 1605}, {""}, {""}, {""}, {""}, {"AKE", 3, 210}, {""}, {""}, {""}, {"MUC", 3, 4356}, {""}, {""}, {""}, {""}, {"ILF", 3, 3304}, {"LM", 2, 3888}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PWRD", 4, 5344}, {""}, {""}, {""}, {"LCM", 3, 3822}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PDP", 3, 4991}, {""}, {""}, {"GDP", 3, 2640}, {""}, {""}, {""}, {""}, {""}, {""}, {"HD", 2, 2960}, {"BFLY", 4, 646}, {""}, {""}, {""}, {"SUNS", 4, 6183}, {""}, {""}, {""}, {""}, {"IYR", 3, 3511}, {""}, {""}, {"IEP", 3, 3233}, {""}, {""}, {""}, {"OMN", 3, 4826}, {""}, {"MKTAY", 5, 4183}, {"XOXO", 4, 7175}, {""}, {""}, {"RBNF", 4, 5457}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JCO", 3, 3540}, {""}, {""}, {"PACQU", 5, 4909}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CUR", 3, 1499}, {""}, {""}, {"BPOP", 4, 801}, {""}, {"TUR", 3, 6545}, {"SXL", 3, 6224}, {""}, {""}, {""}, {"MUS", 3, 4365}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RPI", 3, 5607}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DCE", 3, 1618}, {""}, {""}, {""}, {"CBU", 3, 1013}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CCCLU", 5, 1019}, {"GUR", 3, 2886}, {""}, {""}, {"BK", 2, 725}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"YRCW", 4, 7217}, {""}, {""}, {""}, {""}, {"BKBK", 4, 705}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JBL", 3, 3530}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MGJ", 3, 4126}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FFIV", 4, 2352}, {""}, {""}, {""}, {""}, {"WWIN", 4, 7117}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IBKC", 4, 3186}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RGEN", 4, 5524}, {""}, {""}, {""}, {"CYD", 3, 1566}, {""}, {""}, {""}, {""}, {"TYD", 3, 6576}, {""}, {""}, {""}, {"FFKT", 4, 2354}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ABCW", 4, 27}, {""}, {""}, {"LEDS", 4, 3836}, {""}, {"PSAU", 4, 5257}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MOSY", 4, 4252}, {""}, {""}, {""}, {""}, {""}, {"ANNB", 4, 317}, {""}, {""}, {"ETP", 3, 2150}, {""}, {"SCU", 3, 5797}, {"FVI", 3, 2554}, {""}, {""}, {""}, {"CCU", 3, 1045}, {"PSCU", 4, 5269}, {"AACOW", 5, 3}, {""}, {""}, {"MUI", 3, 4359}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EK", 2, 1986}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JRO", 3, 3622}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HJN", 3, 3018}, {""}, {""}, {"LMNX", 4, 3885}, {""}, {""}, {""}, {""}, {"IBB", 3, 3180}, {"PROV", 4, 5243}, {""}, {"PSLV", 4, 5279}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHLM", 4, 5877}, {""}, {"RIG", 3, 5537}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TWQ", 3, 6564}, {""}, {""}, {""}, {""}, {"DRE", 3, 1782}, {""}, {""}, {""}, {"CSU", 3, 1460}, {""}, {""}, {""}, {""}, {"TSU", 3, 6524}, {""}, {""}, {""}, {""}, {"GOLF", 4, 2792}, {""}, {""}, {""}, {"OESX", 4, 4786}, {""}, {""}, {""}, {""}, {""}, {"USU", 3, 6735}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PWND", 4, 5341}, {""}, {""}, {""}, {""}, {"TVIX", 4, 6550}, {""}, {""}, {""}, {""}, {""}, {""}, {"AGF", 3, 161}, {""}, {"EOG", 3, 2066}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AUBN", 4, 472}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HAO", 3, 2917}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SAPE", 4, 5716}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RICK", 4, 5533}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHFC", 4, 1130}, {""}, {""}, {""}, {""}, {""}, {"ADP", 3, 96}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ICB", 3, 3195}, {""}, {"ISHG", 4, 3426}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CRU", 3, 1420}, {""}, {""}, {""}, {""}, {"TRU", 3, 6499}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AACOU", 5, 2}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NINE", 4, 4544}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXFN", 4, 517}, {"LNN", 3, 3897}, {""}, {""}, {""}, {""}, {"FEZ", 3, 2335}, {""}, {""}, {""}, {""}, {""}, {"STKL", 4, 6143}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRU", 3, 5251}, {""}, {""}, {"GRU", 3, 2837}, {""}, {""}, {""}, {"HALO", 4, 2914}, {""}, {""}, {""}, {""}, {"ZZG", 3, 7275}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RKT", 3, 5552}, {""}, {"MAKO", 4, 3988}, {""}, {""}, {""}, {""}, {""}, {"ACIW", 4, 59}, {""}, {""}, {""}, {""}, {"AXL", 3, 523}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MUA", 3, 4354}, {"MUAA", 4, 4348}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARTW", 4, 401}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARCW", 4, 374}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EEP", 3, 1935}, {""}, {""}, {"MUSA", 4, 4364}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HAL", 3, 2915}, {"HALL", 4, 2913}, {""}, {""}, {""}, {""}, {""}, {"AAU", 3, 14}, {""}, {""}, {""}, {"RMCF", 4, 5562}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HAYN", 4, 2926}, {""}, {""}, {"PHYS", 4, 5073}, {""}, {""}, {""}, {"PZB", 3, 5386}, {""}, {""}, {""}, {""}, {""}, {"LEDR", 4, 3835}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DKQ", 3, 1716}, {"HSOL", 4, 3105}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IBKR", 4, 3187}, {""}, {""}, {""}, {""}, {""}, {""}, {"MHLD", 4, 4146}, {"NPBCO", 5, 4609}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FONE", 4, 2458}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SBNYW", 5, 5740}, {""}, {""}, {""}, {""}, {"O", 1, 4905}, {"ROC", 3, 5582}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"B", 1, 927}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LECO", 4, 3833}, {""}, {""}, {""}, {"SANW", 4, 5714}, {"SANWW", 5, 5712}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACU", 3, 77}, {"IRY", 3, 3420}, {""}, {""}, {""}, {""}, {""}, {"BBBB", 4, 570}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UXG", 3, 6762}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BAB", 3, 549}, {""}, {""}, {"ROST", 4, 5602}, {""}, {"MATW", 4, 4003}, {""}, {""}, {""}, {""}, {"LTM", 3, 3946}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HGR", 3, 2986}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GXG", 3, 2902}, {""}, {""}, {""}, {""}, {"PXSG", 4, 5368}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BBY", 3, 591}, {""}, {""}, {""}, {""}, {"JAG", 3, 3518}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGE", 3, 3255}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OMER", 4, 4821}, {""}, {"UTIW", 4, 6743}, {""}, {""}, {""}, {"SUN", 3, 6184}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SUMR", 4, 6181}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AVID", 4, 491}, {""}, {""}, {""}, {"DTE", 3, 1813}, {""}, {""}, {"MGF", 3, 4122}, {""}, {""}, {"LNET", 4, 3894}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROIC", 4, 5589}, {""}, {""}, {""}, {""}, {"PJP", 3, 5099}, {""}, {""}, {"GJP", 3, 2720}, {""}, {"EBSB", 4, 1886}, {""}, {""}, {"BCSB", 4, 606}, {""}, {"BIP", 3, 695}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JACK", 4, 3516}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXM", 3, 2229}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VTWV", 4, 6941}, {""}, {""}, {""}, {""}, {""}, {"HRL", 3, 3091}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MDP", 3, 4062}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FIZZ", 4, 2393}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSCB", 4, 838}, {""}, {""}, {""}, {""}, {""}, {"NTE", 3, 4670}, {""}, {""}, {""}, {""}, {""}, {""}, {"CWCO", 4, 1537}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROI", 3, 5590}, {""}, {""}, {""}, {""}, {""}, {"CHYR", 4, 1170}, {""}, {""}, {""}, {""}, {""}, {"SBW", 3, 5749}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DPM", 3, 1770}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CAW", 3, 977}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MUNI", 4, 4362}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RNO", 3, 5574}, {""}, {"CODE", 4, 1299}, {""}, {""}, {""}, {"EIP", 3, 1979}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PBW", 3, 4950}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MUR", 3, 4363}, {""}, {"BRKS", 4, 827}, {""}, {"FNB", 3, 2438}, {""}, {""}, {""}, {""}, {""}, {""}, {"MXL", 3, 4394}, {""}, {"GTU", 3, 2877}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NPM", 3, 4617}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DORM", 4, 1761}, {""}, {""}, {""}, {""}, {""}, {""}, {"RATE", 4, 5448}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DTLK", 4, 1818}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RFG", 3, 5513}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CCW", 3, 1046}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FNY", 3, 2449}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CBMXW", 5, 995}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BRY", 3, 835}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHO", 3, 5885}, {"SHOO", 4, 5883}, {""}, {""}, {"SBV", 3, 5748}, {""}, {""}, {"ORCL", 4, 4863}, {""}, {"WLB", 3, 7037}, {"THO", 3, 6369}, {""}, {""}, {""}, {"TBV", 3, 6285}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RGCO", 4, 5521}, {""}, {""}, {""}, {"YHOO", 4, 7209}, {""}, {"MYD", 3, 4400}, {"ITB", 3, 3447}, {""}, {""}, {""}, {""}, {""}, {"SSW", 3, 6123}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DEE", 3, 1641}, {""}, {""}, {""}, {""}, {""}, {"PHO", 3, 5069}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FUBC", 4, 2539}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DDG", 3, 1630}, {""}, {""}, {""}, {""}, {""}, {"PSW", 3, 5295}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VVC", 3, 6944}, {""}, {""}, {""}, {""}, {"TUES", 4, 6543}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FLY", 3, 2419}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NEOG", 4, 4489}, {"XPO", 3, 7178}, {""}, {"ERY", 3, 2113}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXLS", 4, 2227}, {""}, {""}, {""}, {""}, {""}, {"SHLO", 4, 5878}, {""}, {""}, {"NEE", 3, 4485}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROSA", 4, 5599}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ITUB", 4, 3463}, {"OSM", 3, 4879}, {""}, {""}, {""}, {"CHFN", 4, 1131}, {""}, {""}, {""}, {""}, {"TRW", 3, 6501}, {""}, {""}, {""}, {"NAVG", 4, 4439}, {""}, {""}, {""}, {""}, {"SWM", 3, 6213}, {""}, {""}, {""}, {""}, {""}, {"CEU", 3, 1087}, {""}, {"SDIV", 4, 5804}, {""}, {"TWM", 3, 6560}, {"TEU", 3, 6334}, {""}, {""}, {""}, {"GCV", 3, 2634}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FYX", 3, 2587}, {"UWM", 3, 6760}, {""}, {"HCSG", 4, 2952}, {""}, {""}, {""}, {""}, {""}, {"JCTCF", 5, 3543}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HIFS", 4, 2997}, {""}, {""}, {""}, {""}, {""}, {"CSV", 3, 1461}, {""}, {""}, {""}, {""}, {"CHL", 3, 1148}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"USV", 3, 6736}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LAD", 3, 3794}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GHL", 3, 2696}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EZJ", 3, 2241}, {""}, {"BRKR", 4, 826}, {"HCBK", 4, 2941}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DO", 2, 1766}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROIA", 4, 5586}, {""}, {""}, {"VVUS", 4, 6948}, {""}, {""}, {"ATU", 3, 466}, {"AAWW", 4, 16}, {""}, {""}, {""}, {""}, {""}, {""}, {"HQL", 3, 3085}, {""}, {"CRMBW", 5, 1402}, {"IPHS", 4, 3386}, {"SAVB", 4, 5723}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IPHI", 4, 3385}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XPL", 3, 7177}, {""}, {""}, {"FUI", 3, 2543}, {""}, {""}, {""}, {""}, {""}, {"SRV", 3, 6105}, {""}, {""}, {""}, {""}, {"CRV", 3, 1423}, {""}, {"NPX", 3, 4625}, {""}, {""}, {"TRV", 3, 6500}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SDY", 3, 5812}, {"PRMW", 4, 5239}, {""}, {"VVI", 3, 6945}, {""}, {"CDY", 3, 1059}, {""}, {""}, {""}, {""}, {"TDY", 3, 6316}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RF", 2, 5519}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GRV", 3, 2839}, {""}, {""}, {""}, {"HRG", 3, 3090}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KCC", 3, 3666}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACW", 3, 80}, {""}, {"OIIM", 4, 4801}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IWC", 3, 3481}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OREX", 4, 4865}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OCLS", 4, 4775}, {"SMU", 3, 5996}, {""}, {""}, {""}, {""}, {"CMU", 3, 1261}, {""}, {""}, {""}, {""}, {""}, {"ABV", 3, 43}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CNPF", 4, 1279}, {""}, {""}, {""}, {"NEPT", 4, 4491}, {"BEAV", 4, 631}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AAV", 3, 15}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RIMG", 4, 5539}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KST", 3, 3764}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BQY", 3, 811}, {"GUID", 4, 2882}, {""}, {""}, {""}, {""}, {"IWS", 3, 3490}, {""}, {""}, {""}, {""}, {""}, {"CRMBU", 5, 1401}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KS", 2, 3768}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NIE", 3, 4538}, {""}, {""}, {""}, {"KAI", 3, 3649}, {"EZCH", 4, 2240}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OFIX", 4, 4790}, {""}, {"EGPT", 4, 1966}, {""}, {""}, {""}, {""}, {""}, {""}, {"ETB", 3, 2140}, {""}, {"KSS", 3, 3763}, {""}, {"ONNN", 4, 4837}, {""}, {""}, {""}, {""}, {""}, {""}, {"AUMN", 4, 474}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SWX", 3, 6219}, {""}, {"CIU", 3, 1192}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TWX", 3, 6566}, {""}, {""}, {""}, {"KRC", 3, 3749}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ARW", 3, 406}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVCO", 4, 1508}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LTON", 4, 3947}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ETY", 3, 2155}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EQY", 3, 2098}, {"PWX", 3, 5347}, {""}, {""}, {"GWX", 3, 2899}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KCI", 3, 3669}, {"AHL", 3, 183}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DOM", 3, 1758}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SVBL", 4, 6196}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AMOV", 4, 278}, {""}, {""}, {""}, {""}, {"KRS", 3, 3756}, {""}, {""}, {""}, {"LLEN", 4, 3874}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OLN", 3, 4815}, {"LAVA", 4, 3803}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ENZN", 4, 2062}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FOE", 3, 2452}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JPC", 3, 3611}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NOM", 3, 4603}, {""}, {""}, {""}, {"EPHC", 4, 2077}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VONE", 4, 6876}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XKO", 3, 7155}, {""}, {"MTU", 3, 4342}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADY", 3, 107}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHG", 3, 5872}, {""}, {""}, {"BZF", 3, 920}, {""}, {"CHG", 3, 1133}, {""}, {""}, {""}, {""}, {"THG", 3, 6364}, {""}, {""}, {"OCLR", 4, 4774}, {""}, {""}, {"HIO", 3, 3006}, {""}, {""}, {""}, {""}, {"INP", 3, 3345}, {""}, {""}, {""}, {""}, {""}, {"CZZ", 3, 1584}, {""}, {""}, {"BWC", 3, 891}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JPS", 3, 3615}, {"STV", 3, 6171}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FORTY", 5, 2463}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PHG", 3, 5061}, {""}, {""}, {""}, {""}, {""}, {""}, {"NIHD", 4, 4540}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXO", 3, 2578}, {"TGP", 3, 6354}, {""}, {""}, {""}, {""}, {"EEB", 3, 1928}, {""}, {""}, {""}, {"HFFC", 4, 2979}, {""}, {""}, {""}, {""}, {""}, {"UGP", 3, 6649}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FGF", 3, 2367}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BWS", 3, 902}, {"PXMG", 4, 5361}, {"PGP", 3, 5051}, {""}, {""}, {"GGP", 3, 2689}, {"MHO", 3, 4149}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWAC", 4, 2181}, {""}, {""}, {"LNDC", 4, 3893}, {""}, {"OTEX", 4, 4883}, {"MNKD", 4, 4229}, {""}, {""}, {""}, {"EWBC", 4, 2183}, {""}, {"MAV", 3, 4005}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FUNC", 4, 2547}, {"SPGH", 4, 6058}, {"EWC", 3, 2184}, {""}, {"MSW", 3, 4317}, {""}, {"FWRD", 4, 2561}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPYG", 4, 6086}, {""}, {"FDP", 3, 2316}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SVM", 3, 6197}, {""}, {""}, {""}, {""}, {"CVM", 3, 1521}, {""}, {"QUAD", 4, 5434}, {""}, {""}, {""}, {""}, {"BDJ", 3, 621}, {""}, {"EWT", 3, 2203}, {""}, {""}, {""}, {""}, {"HTBK", 4, 3112}, {""}, {""}, {"VYM", 3, 6956}, {""}, {""}, {""}, {""}, {""}, {""}, {"NKX", 3, 4560}, {""}, {"CEW", 3, 1090}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KSA", 3, 3759}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HIL", 3, 3004}, {"HILL", 4, 3003}, {""}, {"NOIZ", 4, 4601}, {""}, {""}, {""}, {"KR", 2, 3758}, {""}, {""}, {"AWX", 3, 512}, {""}, {""}, {""}, {""}, {"NP", 2, 4627}, {""}, {""}, {""}, {""}, {""}, {""}, {"HBNK", 4, 2936}, {""}, {""}, {""}, {""}, {"EWS", 3, 2202}, {""}, {""}, {""}, {""}, {"LTD", 3, 3944}, {""}, {""}, {""}, {""}, {""}, {"RPXC", 4, 5615}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LQD", 3, 3927}, {"LEAP", 4, 3831}, {""}, {"RE", 2, 5511}, {"CRESW", 5, 1391}, {""}, {""}, {""}, {""}, {""}, {"AVGO", 4, 490}, {""}, {""}, {""}, {""}, {""}, {"NPSP", 4, 4621}, {""}, {"PFSW", 4, 5038}, {""}, {""}, {""}, {"FUR", 3, 2551}, {"IMKTA", 5, 3312}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXL", 3, 2575}, {""}, {""}, {"MLPG", 4, 4197}, {""}, {"DOX", 3, 1765}, {""}, {""}, {""}, {""}, {""}, {""}, {"BMY", 3, 757}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OMCL", 4, 4819}, {""}, {"VVR", 3, 6946}, {""}, {""}, {"SJB", 3, 5923}, {""}, {"KTCC", 4, 3769}, {""}, {""}, {""}, {"WOOF", 4, 7063}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATW", 3, 469}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KT", 2, 3776}, {"UJB", 3, 6657}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PHIIK", 5, 5063}, {"LDR", 3, 3828}, {""}, {""}, {""}, {""}, {""}, {""}, {"KRA", 3, 3748}, {""}, {""}, {"ZOLT", 4, 7253}, {""}, {""}, {""}, {""}, {""}, {"AMPE", 4, 279}, {""}, {""}, {""}, {"EMB", 3, 2010}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PJB", 3, 5095}, {""}, {""}, {""}, {""}, {""}, {""}, {"SEV", 3, 5828}, {""}, {""}, {"BIB", 3, 678}, {""}, {"CEV", 3, 1089}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TWON", 4, 6562}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HPT", 3, 3081}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MUAD", 4, 4351}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXD", 3, 2218}, {"COPX", 4, 1321}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IVAC", 4, 3466}, {""}, {""}, {"EWI", 3, 2190}, {""}, {""}, {"DFE", 3, 1660}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JJM", 3, 3571}, {""}, {""}, {""}, {""}, {"IVC", 3, 3468}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WOLF", 4, 7061}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TOPSD", 5, 6448}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HPS", 3, 3080}, {""}, {"TVIZ", 4, 6551}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TMW", 3, 6427}, {"DPD", 3, 1767}, {""}, {""}, {""}, {""}, {""}, {""}, {"AZZ", 3, 543}, {""}, {"KBR", 3, 3657}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MDY", 3, 4074}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OSBCP", 5, 4872}, {"ATV", 3, 468}, {"CVLT", 4, 1519}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KAR", 3, 3652}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DBLE", 4, 1608}, {""}, {""}, {""}, {""}, {""}, {"ODC", 3, 4781}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AGP", 3, 170}, {""}, {"FSU", 3, 2521}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VLY", 3, 6852}, {""}, {"TWGP", 4, 6556}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPF", 3, 6057}, {""}, {""}, {""}, {""}, {"CPF", 3, 1345}, {""}, {""}, {""}, {""}, {""}, {"BIIB", 4, 686}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NPD", 3, 4612}, {""}, {""}, {"ENP", 3, 2051}, {""}, {""}, {""}, {"LION", 4, 3866}, {""}, {""}, {""}, {"NGO", 3, 4522}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"YPF", 3, 7216}, {"ZIPR", 4, 7240}, {""}, {"MMU", 3, 4220}, {""}, {""}, {""}, {""}, {""}, {"BWA", 3, 890}, {""}, {""}, {"LEDD", 4, 3834}, {""}, {""}, {""}, {""}, {""}, {""}, {"QTWW", 4, 5433}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PKJ", 3, 5110}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVX", 3, 1531}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IJJ", 3, 3293}, {""}, {""}, {""}, {""}, {"BOBE", 4, 772}, {""}, {""}, {"HZD", 3, 3165}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HPI", 3, 3075}, {""}, {"ROMA", 4, 5595}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IWR", 3, 3489}, {""}, {""}, {""}, {""}, {""}, {""}, {"TMV", 3, 6426}, {""}, {""}, {""}, {""}, {"PVX", 3, 5335}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FWDI", 4, 2558}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DGL", 3, 1678}, {""}, {""}, {""}, {""}, {""}, {""}, {"HMG", 3, 3035}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELP", 3, 1999}, {""}, {""}, {""}, {"ONEQ", 4, 4833}, {"EWA", 3, 2182}, {""}, {"JKS", 3, 3588}, {""}, {""}, {""}, {"EMKR", 4, 2023}, {"CHOP", 4, 1155}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MERU", 4, 4092}, {""}, {""}, {"OMEX", 4, 4822}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXEL", 4, 2219}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FZB", 3, 2588}, {"AJB", 3, 207}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BWINA", 5, 894}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NGL", 3, 4521}, {"RPRX", 4, 5611}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TIV", 3, 6394}, {""}, {""}, {""}, {""}, {"EWRS", 4, 2201}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWRI", 4, 2199}, {"MTW", 3, 4343}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MPJ", 3, 4268}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AEV", 3, 132}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SMMU", 4, 5985}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PIV", 3, 5091}, {""}, {""}, {""}, {""}, {""}, {""}, {"HIG", 3, 2999}, {"WBNKW", 5, 6976}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AUQ", 3, 476}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BDF", 3, 617}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JOBS", 4, 3602}, {""}, {"SNHY", 4, 6007}, {"TYO", 3, 6582}, {""}, {""}, {""}, {""}, {""}, {""}, {"BVT", 3, 888}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JKI", 3, 3584}, {""}, {""}, {""}, {""}, {""}, {"LL", 2, 3879}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXG", 3, 2572}, {""}, {""}, {"CHNG", 4, 1151}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KSWS", 4, 3766}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NKBP", 4, 4552}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AUDC", 4, 473}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KMT", 3, 3723}, {"HITK", 4, 3008}, {""}, {""}, {"IEZ", 3, 3237}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ONSM", 4, 4839}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VGSH", 4, 6808}, {""}, {"JOUT", 4, 3608}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MZZ", 3, 4417}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVC", 3, 2163}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EDF", 3, 1911}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RGDX", 4, 5523}, {""}, {""}, {"BJ", 2, 704}, {""}, {""}, {""}, {""}, {""}, {"EVT", 3, 2176}, {"APF", 3, 348}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FJP", 3, 2395}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OMX", 3, 4828}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BTZ", 3, 878}, {""}, {""}, {""}, {"FUN", 3, 2549}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVBS", 4, 2162}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JDD", 3, 3545}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AVX", 3, 500}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SIVB", 4, 5919}, {""}, {""}, {"TYL", 3, 6579}, {""}, {"NBJ", 3, 4449}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NXC", 3, 4731}, {""}, {""}, {""}, {""}, {""}, {"PUDA", 4, 5318}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HLYS", 4, 3030}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IHD", 3, 3273}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PYL", 3, 5378}, {"EJ", 2, 1984}, {""}, {""}, {"HEOP", 4, 2968}, {"SPPRO", 5, 6071}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VOOG", 4, 6879}, {"NXST", 4, 4743}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RNWK", 4, 5578}, {""}, {"VOE", 3, 6873}, {""}, {""}, {""}, {"XLF", 3, 7158}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BFSB", 4, 649}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KMI", 3, 3719}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HAVNP", 5, 2924}, {""}, {""}, {""}, {"DSTJ", 4, 1805}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BFY", 3, 651}, {""}, {""}, {""}, {""}, {""}, {"SKF", 3, 5933}, {"HOC", 3, 3055}, {""}, {""}, {"VPHM", 4, 6890}, {""}, {""}, {""}, {""}, {""}, {"TKF", 3, 6398}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVI", 3, 2167}, {"UKF", 3, 6658}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AIV", 3, 203}, {""}, {""}, {""}, {""}, {""}, {"HOT", 3, 3069}, {"HOTT", 4, 3068}, {"JBHT", 4, 3525}, {""}, {""}, {""}, {""}, {""}, {""}, {"JGBO", 4, 3558}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DG", 2, 1686}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IVAN", 4, 3467}, {""}, {""}, {"CNU", 3, 1289}, {""}, {""}, {"ECPG", 4, 1900}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HOGS", 4, 3057}, {""}, {""}, {""}, {""}, {""}, {"HOS", 3, 3067}, {""}, {""}, {"INUV", 4, 3359}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DOD", 3, 1754}, {"FHO", 3, 2374}, {""}, {""}, {""}, {"ADZ", 3, 108}, {""}, {"DRJ", 3, 1786}, {""}, {""}, {"JGBL", 4, 3557}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PNU", 3, 5186}, {"IYM", 3, 3510}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FAV", 3, 2261}, {""}, {""}, {""}, {"NXI", 3, 4734}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UVSP", 4, 6755}, {"NG", 2, 4529}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NATH", 4, 4433}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PVTBP", 5, 5333}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CFW", 3, 1106}, {""}, {""}, {""}, {"IWN", 3, 3486}, {""}, {""}, {""}, {"NGG", 3, 4518}, {"DCTH", 4, 1625}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COF", 3, 1301}, {""}, {""}, {""}, {""}, {"TOF", 3, 6444}, {""}, {""}, {""}, {""}, {""}, {""}, {"YUM", 3, 7221}, {""}, {""}, {"SBH", 3, 5732}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TBH", 3, 6277}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LZEN", 4, 3978}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SAH", 3, 5705}, {"XBKS", 4, 7133}, {""}, {""}, {""}, {"CAH", 3, 943}, {""}, {""}, {""}, {"GFW", 3, 2677}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ULU", 3, 6667}, {""}, {""}, {""}, {""}, {""}, {""}, {"GOF", 3, 2789}, {""}, {"IPE", 3, 3381}, {""}, {""}, {""}, {""}, {"IVR", 3, 3476}, {""}, {"FCV", 3, 2303}, {""}, {"JLL", 3, 3590}, {""}, {""}, {""}, {""}, {""}, {"PBH", 3, 4937}, {""}, {""}, {"INB", 3, 3323}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INFY", 4, 3335}, {""}, {""}, {""}, {""}, {""}, {""}, {"INCB", 4, 3324}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GLU", 3, 2753}, {"GLUU", 4, 2752}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NAUH", 4, 4438}, {"VALV", 4, 6770}, {""}, {""}, {"FEU", 3, 2333}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"QQEW", 4, 5423}, {""}, {"SGB", 3, 5848}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TGB", 3, 6348}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BONE", 4, 782}, {""}, {""}, {""}, {"BHD", 3, 667}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INY", 3, 3365}, {""}, {""}, {"SVVC", 4, 6202}, {""}, {"AXTE", 4, 530}, {"SCHH", 4, 5764}, {"EPAY", 4, 2073}, {""}, {""}, {"CCH", 3, 1027}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MIW", 3, 4169}, {""}, {""}, {""}, {""}, {"RZG", 3, 5695}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GGB", 3, 2682}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KENT", 4, 3680}, {""}, {""}, {""}, {""}, {""}, {"CVVT", 4, 1529}, {""}, {""}, {""}, {"MMV", 3, 4221}, {""}, {""}, {""}, {"SGY", 3, 5865}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PCH", 3, 4963}, {""}, {""}, {"GCH", 3, 2629}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DAVE", 4, 1596}, {""}, {""}, {"LGI", 3, 3851}, {""}, {"SVVS", 4, 6203}, {""}, {"CSH", 3, 1442}, {""}, {""}, {""}, {""}, {"TSH", 3, 6508}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HBHC", 4, 2931}, {""}, {""}, {""}, {"CVD", 3, 1511}, {""}, {"GCFB", 4, 2627}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LD", 2, 3830}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KAMN", 4, 3651}, {""}, {""}, {"GSH", 3, 2850}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PVD", 3, 5326}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TYG", 3, 6577}, {"ROCM", 4, 5581}, {""}, {""}, {"DOVR", 4, 1762}, {""}, {""}, {""}, {""}, {""}, {""}, {"OFED", 4, 4788}, {""}, {""}, {""}, {"UYG", 3, 6765}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BVSN", 4, 887}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PYG", 3, 5374}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"REDF", 4, 5486}, {""}, {""}, {""}, {""}, {"CRH", 3, 1395}, {""}, {"BYM", 3, 918}, {""}, {"EMZ", 3, 2038}, {"TRH", 3, 6475}, {""}, {""}, {"CRDIU", 5, 1386}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VRTU", 4, 6911}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FMU", 3, 2433}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CYTK", 4, 1574}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PULS", 4, 5322}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BWN", 3, 897}, {"GRH", 3, 2822}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FWLT", 4, 2560}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVBN", 4, 2161}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KFT", 3, 3694}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ABH", 3, 32}, {""}, {""}, {""}, {""}, {"EGLE", 4, 1962}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALU", 3, 248}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MOFG", 4, 4243}, {""}, {"IXYS", 4, 3501}, {""}, {"PNNW", 4, 5178}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KFS", 3, 3693}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PWOD", 4, 5342}, {""}, {""}, {"EWN", 3, 2195}, {""}, {""}, {""}, {""}, {""}, {""}, {"KMR", 3, 3722}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NQJ", 3, 4630}, {""}, {""}, {""}, {""}, {""}, {"BNY", 3, 770}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WTW", 3, 7109}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVR", 3, 2175}, {"ACH", 3, 58}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ENB", 3, 2041}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MYL", 3, 4406}, {""}, {""}, {""}, {""}, {""}, {""}, {"LIOX", 4, 3867}, {""}, {""}, {"MNOV", 4, 4230}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DXR", 3, 1857}, {""}, {""}, {""}, {""}, {"HF", 2, 2981}, {""}, {""}, {"HMNF", 4, 3038}, {""}, {""}, {"KINS", 4, 3705}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RBPAA", 5, 5459}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ASH", 3, 419}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ENY", 3, 2060}, {""}, {""}, {""}, {""}, {""}, {""}, {"KTN", 3, 3773}, {""}, {""}, {""}, {""}, {""}, {"AVD", 3, 487}, {""}, {""}, {""}, {""}, {"NRF", 3, 4640}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALLB", 4, 230}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NXR", 3, 4742}, {"WHG", 3, 7017}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CNW", 3, 1291}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FURX", 4, 2550}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELB", 3, 1988}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BPHX", 4, 795}, {""}, {""}, {""}, {""}, {""}, {"MKF", 3, 4177}, {""}, {"RPM", 3, 5608}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PNW", 3, 5187}, {""}, {""}, {"GNW", 3, 2788}, {""}, {"DEJ", 3, 1645}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NILE", 4, 4542}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IVN", 3, 3471}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FGP", 3, 2369}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ELY", 3, 2007}, {""}, {""}, {""}, {"RGLD", 4, 5526}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LAYN", 4, 3805}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TBOW", 4, 6281}, {"SLW", 3, 5963}, {""}, {"MOVE", 4, 4256}, {""}, {""}, {"CLW", 3, 1231}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TTH", 3, 6534}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DHT", 3, 1695}, {"UTH", 3, 6742}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNV", 3, 6020}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLW", 3, 5142}, {""}, {"SOMH", 4, 6032}, {"GLW", 3, 2755}, {"PTH", 3, 5302}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MFW", 3, 4115}, {""}, {""}, {""}, {""}, {""}, {""}, {"WFSLW", 5, 7008}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NHC", 3, 4530}, {""}, {"FFBCW", 5, 2338}, {""}, {""}, {""}, {""}, {""}, {"DHS", 3, 1694}, {""}, {""}, {""}, {""}, {""}, {""}, {"AVEO", 4, 488}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DROOY", 5, 1789}, {""}, {"MLU", 3, 4206}, {""}, {""}, {"REE", 3, 5488}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XFP", 3, 7142}, {""}, {""}, {""}, {""}, {""}, {""}, {"KFRC", 4, 3692}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KTEC", 4, 3770}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VAW", 3, 6774}, {""}, {"CALPW", 5, 951}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NHS", 3, 4533}, {""}, {""}, {""}, {""}, {""}, {"SLV", 3, 5962}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHFL", 4, 5871}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CBOU", 4, 1002}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WWON", 4, 7118}, {"PLV", 3, 5141}, {"IGF", 3, 3256}, {""}, {"GLV", 3, 2754}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MFV", 3, 4114}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DHI", 3, 1691}, {""}, {""}, {""}, {""}, {""}, {"CHIE", 4, 1136}, {""}, {"FUND", 4, 2548}, {"HTHT", 4, 3118}, {""}, {"DTF", 3, 1814}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BKE", 3, 709}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BFZ", 3, 652}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WMW", 3, 7055}, {""}, {""}, {"ANW", 3, 325}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RPX", 3, 5616}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SEH", 3, 5820}, {""}, {""}, {""}, {""}, {"TROW", 4, 6492}, {""}, {""}, {""}, {""}, {""}, {"NHI", 3, 4531}, {"CEDU", 4, 1067}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OCFC", 4, 4773}, {""}, {""}, {""}, {"BVN", 3, 886}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GROW", 4, 2831}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPP", 3, 6074}, {"GEDU", 4, 2647}, {"SPPRP", 5, 6072}, {""}, {""}, {"CPP", 3, 1360}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EFZ", 3, 1955}, {""}, {""}, {""}, {"ONXX", 4, 4842}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MRH", 3, 4280}, {""}, {"KLAC", 4, 3712}, {""}, {""}, {""}, {""}, {"VCV", 3, 6789}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BOE", 3, 775}, {""}, {""}, {""}, {""}, {""}, {""}, {"WIW", 3, 7034}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IAU", 3, 3178}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SWFT", 4, 6206}, {""}, {""}, {""}, {""}, {"VEU", 3, 6797}, {""}, {""}, {"HE", 2, 2975}, {""}, {""}, {""}, {""}, {"EVN", 3, 2171}, {""}, {""}, {""}, {""}, {""}, {"ANV", 3, 324}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FIW", 3, 2391}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EUSA", 4, 2159}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FMV", 3, 2434}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HKN", 3, 3024}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LZ", 2, 3979}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HGEM", 4, 2982}, {""}, {""}, {""}, {"RPRXZ", 5, 5610}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LAG", 3, 3795}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DEF", 3, 1642}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NXN", 3, 4738}, {""}, {""}, {""}, {"SMH", 3, 5980}, {""}, {""}, {"INZ", 3, 3366}, {""}, {""}, {""}, {""}, {""}, {""}, {"TMH", 3, 6419}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KLIC", 4, 3714}, {""}, {""}, {"UMH", 3, 6672}, {""}, {""}, {"DISH", 4, 1708}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALV", 3, 250}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"POZN", 4, 5200}, {""}, {""}, {""}, {""}, {"HNRG", 4, 3049}, {""}, {""}, {""}, {""}, {""}, {"CMFB", 4, 1243}, {""}, {""}, {""}, {"LBTYK", 5, 3815}, {""}, {""}, {""}, {"SGZ", 3, 5866}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WWD", 3, 7115}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EAGLW", 5, 1873}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VIOV", 4, 6830}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KBWX", 4, 3660}, {"FWDD", 4, 2557}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CBK", 3, 992}, {""}, {""}, {""}, {""}, {""}, {""}, {"BRKL", 4, 825}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BUNT", 4, 883}, {""}, {""}, {""}, {"HON", 3, 3065}, {""}, {"BWEN", 4, 892}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CAK", 3, 946}, {"KBWD", 4, 3658}, {""}, {""}, {"ZZE", 3, 7273}, {"JZL", 3, 3644}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROM", 3, 5596}, {"ENZL", 4, 2061}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EGF", 3, 1959}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AROW", 4, 392}, {""}, {""}, {""}, {""}, {"AEH", 3, 118}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LTL", 3, 3945}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DPO", 3, 1771}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CCK", 3, 1032}, {""}, {""}, {"APP", 3, 357}, {""}, {"TCK", 3, 6296}, {""}, {""}, {"LSBK", 4, 3933}, {""}, {""}, {""}, {""}, {"LSTK", 4, 3938}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DMF", 3, 1737}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZOOM", 4, 7255}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NPO", 3, 4619}, {""}, {""}, {"EAGLU", 5, 1872}, {""}, {""}, {"PCK", 3, 4964}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OLEM", 4, 4814}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LEO", 3, 3842}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MYRG", 4, 4410}, {""}, {""}, {""}, {""}, {""}, {""}, {"CXE", 3, 1549}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BYD", 3, 915}, {"MTH", 3, 4326}, {""}, {"HZO", 3, 3167}, {""}, {"EXL", 3, 2228}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PSK", 3, 5278}, {""}, {""}, {"GSK", 3, 2855}, {""}, {""}, {""}, {""}, {"PXE", 3, 5351}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FFNW", 4, 2358}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XLP", 3, 7163}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DPL", 3, 1769}, {""}, {"DHR", 3, 1693}, {"BNZ", 3, 771}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IXG", 3, 3497}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RP", 2, 5617}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RPTP", 4, 5612}, {"CRK", 3, 1399}, {"DX", 2, 1859}, {""}, {""}, {""}, {"TRK", 3, 6480}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MEDW", 4, 4080}, {""}, {""}, {""}, {""}, {""}, {""}, {"CKP", 3, 1201}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PXLG", 4, 5357}, {""}, {""}, {""}, {""}, {"NIF", 3, 4539}, {""}, {""}, {""}, {""}, {""}, {"PRK", 3, 5237}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DFJ", 3, 1663}, {""}, {""}, {""}, {""}, {"AGZ", 3, 177}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JCE", 3, 3537}, {"MLV", 3, 4208}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NX", 2, 4747}, {""}, {""}, {""}, {""}, {"VZZ", 3, 6957}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ENZ", 3, 2063}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TWO", 3, 6563}, {""}, {"KITD", 4, 3709}, {""}, {"VTV", 3, 6938}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DEPO", 4, 1652}, {"ROX", 3, 5604}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWQ", 3, 2198}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NFJ", 3, 4508}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PWO", 3, 5343}, {""}, {""}, {"GWO", 3, 2896}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZX", 2, 7267}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VPFG", 4, 6887}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LARK", 4, 3800}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COP", 3, 1322}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KERX", 4, 3683}, {""}, {""}, {""}, {""}, {""}, {"VYFC", 4, 6955}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FOF", 3, 2453}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DSXJ", 4, 1810}, {"ACK", 3, 61}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PVFC", 4, 5327}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KNR", 3, 3732}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KFN", 3, 3691}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXE", 3, 516}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HPQ", 3, 3079}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FGB", 3, 2362}, {"DGSE", 4, 1680}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PGEB", 4, 5043}, {""}, {""}, {""}, {""}, {"EWRM", 4, 2200}, {""}, {""}, {""}, {""}, {"GWL", 3, 2895}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FCH", 3, 2292}, {""}, {""}, {""}, {""}, {""}, {"HAE", 3, 2910}, {"DDE", 3, 1628}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BXG", 3, 909}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ONVI", 4, 4841}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NBXH", 4, 4458}, {""}, {""}, {"WSH", 3, 7092}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WVVI", 4, 7113}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EZY", 3, 2245}, {""}, {""}, {"ARK", 3, 387}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FVD", 3, 2552}, {""}, {"DBP", 3, 1610}, {""}, {""}, {""}, {""}, {"AKP", 3, 212}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NKO", 3, 4556}, {""}, {""}, {""}, {"EXG", 3, 2222}, {""}, {"STK", 3, 6144}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFH", 3, 5029}, {""}, {""}, {""}, {""}, {""}, {""}, {"FULT", 4, 2545}, {""}, {""}, {""}, {"VMW", 3, 6860}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROLA", 4, 5592}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IWM", 3, 3485}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AUXL", 4, 480}, {""}, {""}, {""}, {""}, {""}, {"DOO", 3, 1760}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VPF", 3, 6888}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KSM", 3, 3761}, {""}, {""}, {""}, {""}, {"OZM", 3, 4903}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BBW", 3, 588}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DXCM", 4, 1853}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BTU", 3, 876}, {"USPH", 4, 6732}, {""}, {""}, {""}, {""}, {""}, {""}, {"NPG", 3, 4614}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TZV", 3, 6598}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NCP", 3, 4468}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LEG", 3, 3839}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LDX", 3, 3829}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CYBE", 4, 1559}, {""}, {""}, {""}, {""}, {"VMV", 3, 6859}, {"NYC", 3, 4749}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LPS", 3, 3923}, {""}, {""}, {"NKL", 3, 4555}, {""}, {""}, {"NXTM", 4, 4744}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DFF", 3, 1661}, {""}, {""}, {""}, {""}, {""}, {"MCK", 3, 4038}, {""}, {"NYT", 3, 4755}, {""}, {"IRV", 3, 3418}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NSP", 3, 4658}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CPKI", 4, 1352}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPB", 3, 6052}, {""}, {""}, {""}, {""}, {"CPB", 3, 1342}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPCHB", 5, 6054}, {""}, {"EQU", 3, 2097}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MSK", 3, 4306}, {""}, {"BHO", 3, 674}, {""}, {"OFLX", 4, 4792}, {""}, {""}, {""}, {"MXE", 3, 4389}, {""}, {""}, {"DOL", 3, 1757}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PRPH", 4, 5245}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KBX", 3, 3663}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VIV", 3, 6839}, {""}, {""}, {""}, {""}, {""}, {"SPY", 3, 6088}, {""}, {""}, {""}, {""}, {"CPY", 3, 1373}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NNJ", 3, 4591}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DYII", 4, 1861}, {""}, {""}, {""}, {"NRP", 3, 4646}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SILU", 4, 5909}, {"PEK", 3, 5004}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JPM", 3, 3613}, {""}, {""}, {""}, {""}, {"OSG", 3, 4874}, {""}, {"PPY", 3, 5215}, {""}, {""}, {""}, {""}, {""}, {"KCLI", 4, 3670}, {"CVO", 3, 1523}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MRK", 3, 4281}, {""}, {""}, {""}, {""}, {""}, {"BCV", 3, 609}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ATK", 3, 448}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZOLL", 4, 7252}, {""}, {""}, {"MLPY", 4, 4203}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RNE", 3, 5569}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVOL", 4, 1522}, {""}, {""}, {""}, {"IWX", 3, 3493}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OSTK", 4, 4881}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BSV", 3, 863}, {""}, {""}, {""}, {""}, {"BHL", 3, 673}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MWO", 3, 4382}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NXQ", 3, 4741}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ITW", 3, 3464}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RXI", 3, 5683}, {"RXII", 4, 5682}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SMK", 3, 5983}, {"EWM", 3, 2194}, {"RLOG", 4, 5558}, {""}, {""}, {"CMK", 3, 1248}, {""}, {""}, {""}, {"EDIV", 4, 1914}, {"TMK", 3, 6420}, {"OBAF", 4, 4768}, {""}, {"CHE", 3, 1129}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TVL", 3, 6552}, {""}, {"ORBK", 4, 4858}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ESV", 3, 2137}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROVI", 4, 5603}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SLYV", 4, 5967}, {""}, {""}, {""}, {"GMK", 3, 2763}, {""}, {""}, {""}, {""}, {""}, {"APKT", 4, 351}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BELFB", 5, 637}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNH", 3, 6008}, {""}, {""}, {""}, {""}, {"CNH", 3, 1272}, {""}, {""}, {""}, {""}, {"TNH", 3, 6438}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IHG", 3, 3276}, {""}, {""}, {"UNH", 3, 6681}, {""}, {""}, {""}, {"JADE", 4, 3517}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"APB", 3, 343}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PNH", 3, 5173}, {"LFL", 3, 3844}, {""}, {""}, {""}, {""}, {"CIK", 3, 1183}, {""}, {""}, {""}, {""}, {"TIK", 3, 6384}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LGND", 4, 3853}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XNY", 3, 7170}, {"JPX", 3, 3616}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DK", 2, 1719}, {""}, {""}, {""}, {""}, {"NKG", 3, 4554}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXLP", 4, 2226}, {"TDW", 3, 6314}, {""}, {""}, {""}, {"SLH", 3, 5953}, {""}, {""}, {""}, {""}, {"CLH", 3, 1215}, {""}, {""}, {""}, {""}, {"TLH", 3, 6407}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JO", 2, 3610}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HMSY", 4, 3042}, {""}, {""}, {""}, {""}, {""}, {"XLB", 3, 7156}, {""}, {""}, {""}, {""}, {""}, {""}, {"ADRU", 4, 100}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BWX", 3, 904}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NQP", 3, 4633}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DOG", 3, 1755}, {""}, {""}, {""}, {""}, {""}, {"MZW", 3, 4416}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WPP", 3, 7071}, {""}, {"MDU", 3, 4069}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MTK", 3, 4327}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XLY", 3, 7166}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FPP", 3, 2472}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KTOS", 4, 3774}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PKB", 3, 5104}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LPSN", 4, 3922}, {""}, {"NOG", 3, 4600}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TDV", 3, 6313}, {""}, {""}, {""}, {""}, {""}, {""}, {"INDB", 4, 3326}, {""}, {"SKY", 3, 5944}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWX", 3, 2207}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NNF", 3, 4589}, {""}, {""}, {""}, {""}, {""}, {""}, {"DYNT", 4, 1862}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LPNT", 4, 3919}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GDV", 3, 2641}, {""}, {""}, {""}, {""}, {""}, {"XWES", 4, 7198}, {""}, {""}, {""}, {"LOGI", 4, 3902}, {""}, {"AVL", 3, 494}, {""}, {""}, {""}, {"PKY", 3, 5119}, {""}, {""}, {""}, {"IEV", 3, 3235}, {""}, {""}, {"HJO", 3, 3019}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KEM", 3, 3679}, {""}, {""}, {""}, {""}, {""}, {"EMLB", 4, 2024}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ETW", 3, 2154}, {""}, {""}, {""}, {"CEPH", 4, 1080}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DEP", 3, 1653}, {"SOCB", 4, 6024}, {""}, {""}, {""}, {""}, {""}, {"LPR", 3, 3920}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WMH", 3, 7051}, {""}, {""}, {"ANH", 3, 314}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FUD", 3, 2540}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VSH", 3, 6922}, {""}, {"KCAP", 4, 3665}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OIL", 3, 4804}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OGXI", 4, 4795}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COY", 3, 1337}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MPB", 3, 4262}, {""}, {""}, {""}, {""}, {""}, {""}, {"NEP", 3, 4492}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVG", 3, 1516}, {""}, {""}, {"RODM", 4, 5583}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UVG", 3, 6754}, {""}, {""}, {""}, {""}, {"IKJ", 3, 3299}, {""}, {""}, {""}, {""}, {""}, {"IPF", 3, 3382}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WBK", 3, 6974}, {""}, {""}, {""}, {""}, {""}, {"HTLF", 4, 3121}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BYFC", 4, 916}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LMLP", 4, 3883}, {""}, {""}, {""}, {"ETV", 3, 2153}, {""}, {""}, {"HJL", 3, 3017}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZEP", 3, 7230}, {""}, {""}, {""}, {""}, {""}, {"HME", 3, 3034}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EGP", 3, 1967}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVBK", 4, 1506}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MVO", 3, 4373}, {""}, {""}, {""}, {"OPTT", 4, 4850}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DAKT", 4, 1589}, {""}, {"MWG", 3, 4378}, {""}, {""}, {""}, {""}, {""}, {""}, {"KMM", 3, 3720}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWEM", 4, 2187}, {""}, {""}, {""}, {""}, {""}, {"KAD", 3, 3648}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DB", 2, 1616}, {""}, {""}, {""}, {"SCHV", 4, 5772}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DBB", 3, 1599}, {""}, {""}, {""}, {""}, {""}, {"XKE", 3, 7152}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CAKE", 4, 945}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVM", 3, 2170}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AHPI", 4, 184}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPWRB", 5, 6083}, {""}, {""}, {""}, {""}, {""}, {""}, {"PKOH", 4, 5113}, {""}, {""}, {"DBY", 3, 1614}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JJG", 3, 3570}, {""}, {""}, {""}, {"NBB", 3, 4444}, {""}, {""}, {""}, {""}, {""}, {"NBTB", 4, 4455}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NMP", 3, 4578}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FUEL", 4, 2541}, {""}, {"FXE", 3, 2570}, {""}, {""}, {"KIM", 3, 3704}, {""}, {""}, {""}, {"KEX", 3, 3684}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IWD", 3, 3482}, {"SFK", 3, 5834}, {""}, {""}, {""}, {""}, {"CFK", 3, 1098}, {"ORRF", 4, 4870}, {""}, {""}, {""}, {""}, {"NASB", 4, 4431}, {""}, {""}, {""}, {""}, {""}, {"IMMU", 4, 3314}, {""}, {""}, {""}, {""}, {""}, {"NXM", 3, 4737}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NYMT", 4, 4752}, {""}, {"MHE", 3, 4140}, {""}, {""}, {""}, {"NBY", 3, 4459}, {""}, {"ZBB", 3, 7228}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PFK", 3, 5032}, {""}, {"OILZ", 4, 4803}, {""}, {""}, {""}, {""}, {""}, {"AOB", 3, 329}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RHT", 3, 5532}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CUO", 3, 1496}, {""}, {"EEV", 3, 1939}, {""}, {"NCB", 3, 4462}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DRIV", 4, 1784}, {""}, {""}, {""}, {"LLL", 3, 3875}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OMG", 3, 4824}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVBF", 4, 1505}, {""}, {""}, {""}, {"BKJ", 3, 713}, {""}, {""}, {"OCNF", 4, 4776}, {""}, {""}, {""}, {""}, {""}, {"INSW", 4, 3350}, {""}, {""}, {"RHS", 3, 5531}, {""}, {""}, {"SJW", 3, 5931}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KNXA", 4, 3734}, {""}, {""}, {""}, {""}, {""}, {"SCHB", 4, 5759}, {""}, {""}, {"TPZ", 3, 6462}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BVX", 3, 889}, {"ZIP", 3, 7241}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLOW", 4, 5133}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ONFC", 4, 4835}, {""}, {""}, {""}, {""}, {"MDW", 3, 4071}, {"OPTR", 4, 4849}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KMX", 3, 3724}, {""}, {""}, {"LF", 2, 3847}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EFU", 3, 1952}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WVFC", 4, 7112}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NRB", 3, 4637}, {""}, {""}, {""}, {"BODY", 4, 774}, {""}, {"LOAN", 4, 3899}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RHI", 3, 5530}, {""}, {""}, {""}, {""}, {"CY", 2, 1579}, {""}, {""}, {"EVX", 3, 2178}, {""}, {"TY", 2, 6587}, {""}, {""}, {""}, {""}, {""}, {"LOJN", 4, 3904}, {""}, {""}, {"VNV", 3, 6869}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INTU", 4, 3356}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GUL", 3, 2884}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DYN", 3, 1863}, {""}, {"INSU", 4, 3349}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GY", 2, 2908}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GJV", 3, 2724}, {""}, {""}, {""}, {"HJG", 3, 3015}, {""}, {""}, {"BIV", 3, 700}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JJSF", 4, 3574}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KELYA", 5, 3677}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DHRM", 4, 1692}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HP", 2, 3083}, {""}, {""}, {"HDNG", 4, 2956}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HPCCP", 5, 3073}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AFK", 3, 147}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LOR", 3, 3911}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EIV", 3, 1982}, {""}, {""}, {"ZXX", 3, 7265}, {""}, {"HOLI", 4, 3060}, {""}, {""}, {""}, {""}, {""}, {"SGU", 3, 5864}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWD", 3, 2185}, {""}, {""}, {"AUO", 3, 475}, {""}, {"HMPR", 4, 3041}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OKS", 3, 4811}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LNG", 3, 3895}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BOCH", 4, 773}, {""}, {""}, {"KIOR", 4, 3706}, {"EDZ", 3, 1925}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZZJ", 3, 7279}, {"ZZJJ", 4, 7278}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IAH", 3, 3173}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FTK", 3, 2529}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MVG", 3, 4369}, {"COMV", 4, 1315}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VALU", 4, 6769}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KNDI", 4, 3725}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XVIX", 4, 7197}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KBWP", 4, 3659}, {""}, {""}, {""}, {"IRDMW", 5, 3405}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ICH", 3, 3202}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OPNT", 4, 4847}, {""}, {""}, {""}, {""}, {""}, {""}, {"SNK", 3, 6010}, {""}, {""}, {""}, {""}, {"CNK", 3, 1275}, {""}, {""}, {""}, {""}, {"TNK", 3, 6439}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CYE", 3, 1567}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NGPC", 4, 4523}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PNK", 3, 5175}, {""}, {""}, {"GNK", 3, 2780}, {""}, {""}, {""}, {""}, {""}, {""}, {"XRU", 3, 7188}, {""}, {""}, {""}, {"ISH", 3, 3427}, {""}, {""}, {"UXJ", 3, 6764}, {""}, {""}, {"DFP", 3, 1664}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BKF", 3, 710}, {""}, {""}, {""}, {""}, {"IVD", 3, 3469}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PXJ", 3, 5355}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXFO", 4, 2221}, {""}, {"JBJ", 3, 3527}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IYG", 3, 3506}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BKYF", 4, 724}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TLK", 3, 6409}, {""}, {""}, {""}, {""}, {"NFP", 3, 4512}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DYAX", 4, 1860}, {""}, {""}, {"FPTB", 4, 2473}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SUG", 3, 6179}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PLK", 3, 5128}, {""}, {""}, {""}, {""}, {"IRDMU", 5, 3404}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VGZ", 3, 6810}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AGU", 3, 174}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JKD", 3, 3578}, {""}, {""}, {""}, {""}, {"SUBK", 4, 6177}, {""}, {""}, {""}, {"BBH", 3, 577}, {"VBK", 3, 6777}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KED", 3, 3674}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BAH", 3, 553}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OFG", 3, 4789}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LGEM", 4, 3849}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DHIL", 4, 1690}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RIF", 3, 5535}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OLO", 3, 4816}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EUM", 3, 2157}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JXI", 3, 3636}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BCH", 3, 598}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NECB", 4, 4483}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JGG", 3, 3560}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BGY", 3, 663}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WMK", 3, 7052}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NZF", 3, 4759}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LON", 3, 3906}, {""}, {""}, {""}, {""}, {""}, {"LTRE", 4, 3949}, {""}, {""}, {""}, {"FMK", 3, 2428}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FVL", 3, 2555}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MY", 2, 4413}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ECH", 3, 1895}, {"OSHC", 4, 4875}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OINK", 4, 4805}, {"ZZF", 3, 7274}, {"DBZ", 3, 1615}, {""}, {"SWHC", 4, 6207}, {""}, {""}, {"EFV", 3, 1953}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NWBI", 4, 4719}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BJZ", 3, 703}, {""}, {""}, {"EGY", 3, 1970}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NWS", 3, 4729}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ALK", 3, 229}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CGW", 3, 1118}, {""}, {""}, {""}, {"RSXJ", 4, 5635}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NAZ", 3, 4442}, {""}, {""}, {"DXD", 3, 1854}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NMB", 3, 4572}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KID", 3, 3702}, {""}, {""}, {""}, {"VWO", 3, 6950}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MGU", 3, 4134}, {""}, {""}, {""}, {""}, {""}, {"SURG", 4, 6188}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ERH", 3, 2101}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INV", 3, 3361}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NWI", 3, 4722}, {""}, {""}, {""}, {""}, {""}, {""}, {"NMY", 3, 4582}, {""}, {""}, {""}, {"KNM", 3, 3729}, {""}, {""}, {""}, {"NCZ", 3, 4475}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DISCB", 5, 1706}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PXF", 3, 5352}, {""}, {"H", 1, 3168}, {"GXF", 3, 2901}, {""}, {""}, {"PIKE", 4, 5083}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KDN", 3, 3673}, {""}, {""}, {"CGV", 3, 1117}, {""}, {""}, {""}, {""}, {"SYPR", 4, 6240}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DNP", 3, 1751}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NIB", 3, 4535}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HGG", 3, 2983}, {""}, {""}, {""}, {""}, {""}, {"BUNL", 4, 882}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RAP", 3, 5446}, {""}, {""}, {""}, {""}, {""}, {""}, {"BWLD", 4, 896}, {"DHX", 3, 1696}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FDV", 3, 2320}, {""}, {"NNP", 3, 4594}, {""}, {""}, {"TXRH", 4, 6571}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DWA", 3, 1846}, {""}, {""}, {""}, {""}, {"RPG", 3, 5606}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IFEU", 4, 3239}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MYE", 3, 4401}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TDH", 3, 6308}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RYT", 3, 5692}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MKZ", 3, 4187}, {""}, {"NLP", 3, 4563}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JNPR", 4, 3599}, {""}, {""}, {""}, {"RSP", 3, 5629}, {"ONG", 3, 4836}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HIHO", 4, 3000}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KGC", 3, 3697}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NWSA", 4, 4728}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VFH", 3, 6800}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BLW", 3, 743}, {""}, {""}, {""}, {"BTH", 3, 870}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BQH", 3, 808}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HDGE", 4, 2955}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KGJI", 4, 3698}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RNJ", 3, 5571}, {""}, {""}, {""}, {""}, {""}, {""}, {"QUIK", 4, 5435}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KNX", 3, 3735}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JOEZ", 4, 3604}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROL", 3, 5594}, {"ROLL", 4, 5593}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DDF", 3, 1629}, {""}, {"HELE", 4, 2967}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ETH", 3, 2145}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OLBK", 4, 4812}, {""}, {""}, {"ENV", 3, 2058}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DWSN", 4, 1849}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BLV", 3, 742}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVC", 3, 4702}, {""}, {""}, {""}, {""}, {""}, {"CYDE", 4, 1565}, {""}, {""}, {"CXPO", 4, 1553}, {"RLJ", 3, 5556}, {""}, {""}, {""}, {""}, {""}, {""}, {"IMH", 3, 3311}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HCF", 3, 2944}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGZ", 3, 3270}, {""}, {""}, {""}, {"LSE", 3, 3936}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVS", 3, 4715}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CWHN", 4, 1539}, {""}, {""}, {"LCRY", 4, 3823}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IAK", 3, 3175}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NJ", 2, 4550}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IIH", 3, 3283}, {"OPXT", 4, 4854}, {""}, {""}, {""}, {""}, {""}, {"JHS", 3, 3565}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NTZ", 3, 4684}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AWRE", 4, 510}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BPP", 3, 803}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OGEM", 4, 4793}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WPZ", 3, 7074}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MUAF", 4, 4353}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SH", 2, 5894}, {""}, {""}, {""}, {""}, {"CH", 2, 1172}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FLOW", 4, 2410}, {""}, {""}, {""}, {""}, {"LINE", 4, 3863}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EROCW", 5, 2106}, {""}, {""}, {""}, {"EEH", 3, 1931}, {""}, {""}, {""}, {""}, {"NYMX", 4, 4753}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PH", 2, 5074}, {""}, {""}, {"DSPG", 4, 1803}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NFSB", 4, 4513}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JHI", 3, 3563}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPP", 3, 2085}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LOCM", 4, 3900}, {""}, {"HTCH", 4, 3114}, {""}, {""}, {"MXF", 3, 4390}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LOGM", 4, 3903}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SZK", 3, 6247}, {""}, {""}, {"WY", 2, 7128}, {""}, {""}, {""}, {""}, {""}, {""}, {"TZK", 3, 6594}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BUD", 3, 881}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FUL", 3, 2546}, {"FULL", 4, 2544}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MGV", 3, 4135}, {"MDYV", 4, 4073}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CGEIU", 5, 1110}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCPB", 4, 5791}, {""}, {"LDL", 3, 3827}, {""}, {""}, {""}, {""}, {"DVA", 3, 1837}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BGZ", 3, 664}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HHC", 3, 2990}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROG", 3, 5584}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROSG", 4, 5601}, {"SJH", 3, 5925}, {""}, {""}, {""}, {""}, {""}, {""}, {"SDOW", 4, 5807}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BZU", 3, 925}, {""}, {""}, {"BBK", 3, 578}, {""}, {""}, {""}, {"UDOW", 4, 6633}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DYSL", 4, 1864}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BAK", 3, 554}, {""}, {""}, {""}, {""}, {"IWO", 3, 3487}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GJH", 3, 2713}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BIDU", 4, 680}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HHS", 3, 2993}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROCK", 4, 5580}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MDH", 3, 4059}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EZU", 3, 2244}, {""}, {""}, {"EBK", 3, 1882}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JEF", 3, 3548}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"THFF", 4, 6363}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LIME", 4, 3861}, {""}, {""}, {""}, {"OPXA", 4, 4853}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AH", 2, 188}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HOLX", 4, 3062}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OPEN", 4, 4843}, {""}, {""}, {""}, {""}, {"PHF", 3, 5060}, {""}, {""}, {""}, {""}, {"KRO", 3, 3755}, {"KROO", 4, 3754}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IWL", 3, 3484}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROIAK", 5, 5585}, {"NMZ", 3, 4583}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AZK", 3, 539}, {""}, {""}, {""}, {""}, {""}, {"FNK", 3, 2445}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXE", 3, 2220}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LNCE", 4, 3890}, {""}, {""}, {""}, {""}, {"NVGN", 4, 4706}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KND", 3, 3727}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DVR", 3, 1843}, {""}, {""}, {""}, {""}, {"JMF", 3, 3593}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DNB", 3, 1745}, {""}, {""}, {""}, {"WLK", 3, 7041}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NWN", 3, 4726}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IDU", 3, 3224}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPLV", 4, 6065}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DNY", 3, 1753}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVR", 3, 4713}, {""}, {""}, {""}, {""}, {"WTFCW", 5, 7101}, {""}, {""}, {""}, {""}, {""}, {""}, {"XIV", 3, 7151}, {"NNB", 3, 4587}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LEE", 3, 3837}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KLD", 3, 3713}, {""}, {"RBY", 3, 5461}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPU", 3, 6081}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DLB", 3, 1723}, {""}, {""}, {""}, {""}, {""}, {"EWO", 3, 2196}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NNY", 3, 4595}, {""}, {""}, {""}, {"EVEP", 4, 2164}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DUC", 3, 1830}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DUST", 4, 1835}, {""}, {""}, {"EDGW", 4, 1913}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EDSWW", 5, 1919}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NUC", 3, 4687}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SDK", 3, 5806}, {""}, {""}, {""}, {""}, {"CDK", 3, 1054}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IPB", 3, 3376}, {""}, {""}, {""}, {""}, {""}, {"NLY", 3, 4568}, {""}, {""}, {"LPX", 3, 3925}, {""}, {""}, {"NUGT", 4, 4689}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RSY", 3, 5638}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AWAY", 4, 503}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"K", 1, 3790}, {"LO", 2, 3914}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NUS", 3, 4695}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWL", 3, 2193}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NYX", 3, 4757}, {"PWE", 3, 5340}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RRGB", 4, 5621}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KCG", 3, 3668}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IVO", 3, 3475}, {"IVOO", 4, 3473}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HPOL", 4, 3077}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EDSUU", 5, 1918}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVMI", 4, 4710}, {""}, {""}, {""}, {"CKSW", 4, 1202}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MJH", 3, 4173}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RYN", 3, 5691}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HOFT", 4, 3056}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EDU", 3, 1923}, {""}, {""}, {""}, {"HIF", 3, 2998}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"APU", 3, 362}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KGN", 3, 3699}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZJZZT", 5, 7244}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KRG", 3, 3751}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXF", 3, 2571}, {""}, {""}, {"VONV", 4, 6878}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IHE", 3, 3274}, {""}, {""}, {""}, {"PXP", 3, 5364}, {""}, {""}, {"GXP", 3, 2903}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DFZ", 3, 1668}, {""}, {""}, {"MHF", 3, 4141}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXPR", 4, 2233}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NUTR", 4, 4696}, {"CVCY", 4, 1509}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DUA", 3, 1828}, {""}, {""}, {""}, {""}, {""}, {"XLU", 3, 7164}, {""}, {""}, {"LPLA", 4, 3917}, {""}, {"AUSE", 4, 477}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DVN", 3, 1841}, {""}, {"ADK", 3, 92}, {""}, {""}, {""}, {""}, {"NKE", 3, 4553}, {""}, {""}, {"HRZN", 4, 3094}, {""}, {""}, {""}, {""}, {""}, {""}, {"NFZ", 3, 4515}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DUSA", 4, 1834}, {""}, {""}, {""}, {""}, {""}, {""}, {"JPG", 3, 3612}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TGH", 3, 6352}, {""}, {""}, {""}, {""}, {""}, {"JCP", 3, 3541}, {""}, {""}, {""}, {""}, {"PYJ", 3, 5376}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COINW", 5, 1307}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JKL", 3, 3587}, {"PGH", 3, 5045}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVN", 3, 4711}, {""}, {""}, {"CURE", 4, 1498}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPB", 3, 2074}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KEYN", 4, 3685}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PURE", 4, 5323}, {""}, {""}, {"GURE", 4, 2885}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPW", 3, 6084}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVO", 3, 2173}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UPW", 3, 6699}, {""}, {""}, {""}, {""}, {""}, {"EWG", 3, 2188}, {""}, {"JNJ", 3, 3597}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZOOG", 4, 7254}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LORL", 4, 3910}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DGF", 3, 1671}, {""}, {""}, {"IDV", 3, 3225}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXP", 3, 526}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVOL", 4, 2172}, {"BHE", 3, 668}, {""}, {""}, {"BVL", 3, 885}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HBP", 3, 2938}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HAP", 3, 2918}, {"DDP", 3, 1633}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NUAN", 4, 4685}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CPV", 3, 1369}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UPV", 3, 6698}, {""}, {"OZRK", 4, 4904}, {"NVEC", 4, 4704}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVE", 3, 1512}, {""}, {""}, {""}, {""}, {"TVE", 3, 6549}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UVE", 3, 6753}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SCHW", 4, 5773}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GJK", 3, 2716}, {""}, {""}, {""}, {""}, {""}, {""}, {"BIK", 3, 687}, {"COLB", 4, 1311}, {""}, {""}, {""}, {"MUAE", 4, 4352}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HCP", 3, 2951}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"YORW", 4, 7215}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYC", 3, 3149}, {""}, {"DXYN", 4, 1858}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DBU", 3, 1612}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYT", 3, 3162}, {""}, {""}, {""}, {""}, {""}, {""}, {"LKQX", 4, 3873}, {""}, {""}, {"ENH", 3, 2046}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HSP", 3, 3106}, {"MWE", 3, 4377}, {"BLH", 3, 731}, {""}, {""}, {""}, {""}, {"DVAX", 4, 1836}, {""}, {""}, {""}, {""}, {""}, {""}, {"POPE", 4, 5194}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RWC", 3, 5669}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VUG", 3, 6943}, {"SHVY", 4, 5889}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYGS", 4, 3152}, {""}, {""}, {""}, {""}, {""}, {"HYS", 3, 3161}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ONEF", 4, 4832}, {"RWT", 3, 5677}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NOOF", 4, 4604}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVAX", 4, 4701}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JJE", 3, 3569}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WH", 2, 7021}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HOLL", 4, 3061}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JKG", 3, 3581}, {""}, {"NVSLD", 5, 4714}, {""}, {""}, {""}, {"BDV", 3, 628}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DSU", 3, 1807}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KEG", 3, 3676}, {""}, {""}, {""}, {"NCU", 3, 4473}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYI", 3, 3155}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JTP", 3, 3632}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DGLY", 4, 1677}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NSU", 3, 4663}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RXD", 3, 5681}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LGL", 3, 3852}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EDV", 3, 1924}, {""}, {"OME", 3, 4823}, {""}, {""}, {""}, {""}, {""}, {""}, {"DHFT", 4, 1687}, {""}, {""}, {""}, {""}, {"DRU", 3, 1793}, {""}, {"KNDL", 4, 3726}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UKW", 3, 6660}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NRU", 3, 4648}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MYJ", 3, 4405}, {""}, {""}, {""}, {""}, {"PKW", 3, 5117}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RNP", 3, 5575}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MGH", 3, 4123}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HEVY", 4, 2973}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XLV", 3, 7165}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVG", 3, 2166}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COW", 3, 1336}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PXSV", 4, 5369}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHP", 3, 5887}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZZB", 3, 7270}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RMKR", 4, 5564}, {""}, {""}, {""}, {"IGOV", 4, 3263}, {"VXF", 3, 6951}, {""}, {""}, {""}, {""}, {""}, {"LBJ", 3, 3810}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MPW", 3, 4272}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NXG", 3, 4733}, {"ROSE", 4, 5600}, {""}, {""}, {""}, {""}, {""}, {"MOU", 3, 4255}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DJP", 3, 1714}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HK", 2, 3025}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XPP", 3, 7179}, {""}, {""}, {""}, {"BFK", 3, 645}, {""}, {""}, {"OMPI", 4, 4827}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COV", 3, 1332}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WWAY", 4, 7114}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GOV", 3, 2800}, {""}, {""}, {"NUN", 3, 4692}, {"HOG", 3, 3058}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGU", 3, 3268}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MPV", 3, 4270}, {""}, {""}, {"ROYL", 4, 5605}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JMP", 3, 3594}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BPZ", 3, 806}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RVT", 3, 5668}, {""}, {""}, {""}, {""}, {"LG", 2, 3854}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NBW", 3, 4457}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EUO", 3, 2158}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NQU", 3, 4635}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HLF", 3, 3026}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DBV", 3, 1613}, {""}, {""}, {""}, {"HEP", 3, 2969}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DSW", 3, 1809}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IYE", 3, 3504}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RWR", 3, 5676}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SGK", 3, 5854}, {"IXJ", 3, 3498}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EUFN", 4, 2156}, {""}, {""}, {""}, {""}, {""}, {"KOS", 3, 3746}, {"KOSS", 4, 3745}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MYF", 3, 4402}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NAV", 3, 4441}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPXU", 4, 6085}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EGOV", 4, 1964}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DRW", 3, 1796}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DWM", 3, 1848}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WWE", 3, 7116}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NCV", 3, 4474}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BGU", 3, 661}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"APPY", 4, 356}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NEU", 3, 4495}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LBF", 3, 3808}, {""}, {""}, {""}, {""}, {"KIRK", 4, 3708}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KNO", 3, 3731}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HXM", 3, 3147}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HCKT", 4, 2949}, {"JYN", 3, 3639}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DRV", 3, 1794}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXPD", 4, 2230}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"REZ", 3, 5510}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KNOL", 4, 3730}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NMARU", 5, 4570}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JZJ", 3, 3642}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UUPT", 4, 6750}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXP", 3, 2579}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MKV", 3, 4186}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KNL", 3, 3728}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MHP", 3, 4150}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ONTY", 4, 4840}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HSY", 3, 3110}, {""}, {"ONCY", 4, 4831}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XOP", 3, 7174}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BZH", 3, 921}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HEDJ", 4, 2963}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BLK", 3, 735}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DWX", 3, 1850}, {""}, {""}, {""}, {"HRB", 3, 3088}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NWLI", 4, 4724}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MOV", 3, 4257}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OKSBP", 5, 4809}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RJF", 3, 5547}, {""}, {""}, {""}, {""}, {""}, {""}, {"GULF", 4, 2883}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVDA", 4, 4703}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RVSN", 4, 5667}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JFP", 3, 3554}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVTL", 4, 4716}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FFKY", 4, 2355}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INPH", 4, 3344}, {""}, {""}, {"KF", 2, 3696}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGV", 3, 3269}, {""}, {"DHG", 3, 1689}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XFH", 3, 7140}, {""}, {""}, {"DZZ", 3, 1868}, {""}, {""}, {""}, {""}, {""}, {""}, {"KKR", 3, 3711}, {""}, {""}, {""}, {""}, {""}, {"OXBT", 4, 4895}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DTV", 3, 1825}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPHE", 4, 2078}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PXMV", 4, 5362}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DGP", 3, 1679}, {""}, {""}, {""}, {""}, {"RVR", 3, 5665}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SPYV", 4, 6087}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HSKA", 4, 3102}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RNY", 3, 5579}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ONE", 3, 4834}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DVM", 3, 1840}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DEW", 3, 1656}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MGK", 3, 4127}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FVE", 3, 2553}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MUE", 3, 4357}, {""}, {"WUHN", 4, 7110}, {""}, {""}, {""}, {""}, {"DOLE", 4, 1756}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PHB", 3, 5057}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHY", 3, 5892}, {""}, {""}, {""}, {"SPH", 3, 6061}, {"CHY", 3, 1171}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HTB", 3, 3113}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PPH", 3, 5208}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RUSS", 4, 5660}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CXZ", 3, 1556}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HTY", 3, 3127}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHIB", 4, 1135}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VPU", 3, 6893}, {""}, {""}, {""}, {"EWEF", 4, 2186}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JAZZ", 4, 3524}, {""}, {"NEV", 3, 4496}, {""}, {"TYP", 3, 6584}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SWSH", 4, 6215}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"QIHU", 4, 5413}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UBPSU", 5, 6616}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BDH", 3, 620}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ORCH", 4, 4862}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVLS", 4, 4709}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HEB", 3, 2962}, {"NPF", 3, 4613}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KONA", 4, 3739}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AHB", 3, 179}, {"XHE", 3, 7147}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVX", 3, 4717}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HWCC", 4, 3141}, {""}, {""}, {""}, {"ODFL", 4, 4782}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AHY", 3, 187}, {""}, {""}, {""}, {"APH", 3, 349}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VLYWW", 5, 6851}, {""}, {""}, {"JHX", 3, 3566}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RUSHA", 5, 5657}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OXGN", 4, 4897}, {"HOVNP", 5, 3070}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ACPW", 4, 70}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NKSH", 4, 4558}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GWF", 3, 2894}, {""}, {""}, {"ZIV", 3, 7242}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NDZ", 3, 4480}, {"SKH", 3, 5934}, {""}, {""}, {""}, {""}, {"CKH", 3, 1200}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HMY", 3, 3044}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LIVE", 4, 3869}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PKH", 3, 5108}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IJH", 3, 3292}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HIBB", 4, 2996}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXPO", 4, 2232}, {""}, {""}, {""}, {""}, {""}, {""}, {"NOAH", 4, 4596}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NOBH", 4, 4598}, {""}, {""}, {""}, {"VOOV", 4, 6880}, {""}, {""}, {"LPL", 3, 3918}, {""}, {""}, {""}, {"WPPGY", 5, 7070}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXB", 3, 2564}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HNP", 3, 3048}, {""}, {""}, {""}, {""}, {""}, {"FXCB", 4, 2565}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COH", 3, 1306}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MWJ", 3, 4380}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NUCL", 4, 4686}, {""}, {"FXY", 3, 2583}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HRZ", 3, 3095}, {""}, {""}, {""}, {""}, {""}, {""}, {"IHF", 3, 3275}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MHY", 3, 4154}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XVG", 3, 7196}, {"RXL", 3, 5684}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BPFH", 4, 794}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EHTH", 4, 1972}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AWF", 3, 505}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROOF", 4, 5597}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LTPZ", 4, 3948}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MYP", 3, 4409}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RVBD", 4, 5662}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JAXB", 4, 3522}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FUE", 3, 2542}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VPV", 3, 6894}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NUM", 3, 4691}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IPSU", 4, 3390}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NBH", 3, 4447}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ORLY", 4, 4868}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OHI", 3, 4796}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RSU", 3, 5633}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HVT", 3, 3138}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IPU", 3, 3393}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NGB", 3, 4516}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHZ", 3, 5893}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DVD", 3, 1838}, {""}, {""}, {""}, {"KBE", 3, 3655}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JVA", 3, 3633}, {""}, {""}, {""}, {""}, {""}, {"NURO", 4, 4694}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXHE", 4, 518}, {""}, {""}, {""}, {""}, {""}, {"LXRX", 4, 3971}, {""}, {""}, {""}, {"DGICB", 5, 1673}, {""}, {""}, {""}, {""}, {""}, {"NSH", 3, 4653}, {"LKFN", 4, 3872}, {"HJJ", 3, 3016}, {""}, {"HTZ", 3, 3128}, {""}, {""}, {""}, {"CVF", 3, 1513}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DRH", 3, 1783}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KCE", 3, 3667}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LYTS", 4, 3975}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HFB", 3, 2978}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CPK", 3, 1353}, {"OEF", 3, 4784}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CYB", 3, 1562}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MKH", 3, 4178}, {""}, {""}, {""}, {"GPK", 3, 2804}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"INFU", 4, 3334}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SUPX", 4, 6186}, {"HHGP", 4, 2991}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PYB", 3, 5372}, {""}, {""}, {"GYB", 3, 2905}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SYY", 3, 6245}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KRE", 3, 3750}, {""}, {"TYY", 3, 6586}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PYY", 3, 5383}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHEV", 4, 1128}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IXP", 3, 3500}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JWN", 3, 3635}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MOH", 3, 4244}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPU", 3, 2088}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BUSE", 4, 884}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AVF", 3, 489}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IYJ", 3, 3508}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVLY", 4, 1520}, {""}, {""}, {""}, {""}, {""}, {"JNY", 3, 3601}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DTH", 3, 1816}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZNWAW", 5, 7249}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KEYP", 4, 3686}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RSW", 3, 5634}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KBWY", 4, 3661}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BGFV", 4, 655}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IPW", 3, 3394}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RELV", 4, 5495}, {"FHY", 3, 2375}, {""}, {""}, {""}, {""}, {"HYM", 3, 3160}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KRNY", 4, 3753}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BXP", 3, 910}, {""}, {""}, {"XLK", 3, 7161}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RWM", 3, 5674}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXZ", 3, 2584}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SKK", 3, 5935}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UKK", 3, 6659}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CUPM", 4, 1497}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HNB", 3, 3045}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PKK", 3, 5111}, {""}, {""}, {"GKK", 3, 2725}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXP", 3, 2234}, {""}, {""}, {""}, {"IJK", 3, 3294}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IVOG", 4, 3472}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IVE", 3, 3470}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HOME", 4, 3064}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VGK", 3, 6804}, {""}, {""}, {""}, {"MVF", 3, 4368}, {""}, {""}, {""}, {""}, {""}, {"DVOX", 4, 1842}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BKU", 3, 723}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RDY", 3, 5484}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TOK", 3, 6445}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NPP", 3, 4620}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GOK", 3, 2790}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JKE", 3, 3579}, {""}, {""}, {""}, {"RDIB", 4, 5478}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LCAV", 4, 3819}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IYF", 3, 3505}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MYY", 3, 4412}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DGZ", 3, 1685}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RWX", 3, 5680}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AUTH", 4, 479}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZUMZ", 4, 7262}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LIFE", 4, 3859}, {""}, {""}, {""}, {""}, {"JOE", 3, 3605}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NGZ", 3, 4528}, {"BJK", 3, 701}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZMH", 3, 7247}, {""}, {"LBTYB", 5, 3814}, {""}, {""}, {""}, {""}, {""}, {""}, {"FWF", 3, 2559}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KO", 2, 3747}, {""}, {""}, {"CHKM", 4, 1144}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NAK", 3, 4426}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KME", 3, 3716}, {""}, {""}, {""}, {""}, {""}, {""}, {"LBY", 3, 3816}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LGCY", 4, 3848}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EPV", 3, 2089}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LCAPB", 5, 3818}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AOK", 3, 332}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MUJ", 3, 4360}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HGSH", 4, 2987}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LSTZB", 5, 3941}, {""}, {""}, {""}, {""}, {""}, {"KIE", 3, 3703}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LOOP", 4, 3908}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NXE", 3, 4732}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FOH", 3, 2454}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PXLV", 4, 5358}, {""}, {""}, {""}, {""}, {""}, {"HURC", 4, 3133}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HUSA", 4, 3135}, {""}, {""}, {""}, {""}, {""}, {"RVM", 3, 5663}, {""}, {""}, {""}, {""}, {""}, {""}, {"DKP", 3, 1715}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"REW", 3, 5506}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PYZ", 3, 5384}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NRK", 3, 4644}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NUVA", 4, 4697}, {""}, {"ZHNE", 4, 7234}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SUNH", 4, 6182}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LRY", 3, 3931}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LONG", 4, 3905}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AWP", 3, 509}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HOOK", 4, 3066}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"REV", 3, 5505}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KIPS", 4, 3707}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GLPW", 4, 2746}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OTP", 3, 4885}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NXPI", 4, 4739}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NWL", 3, 4725}, {""}, {""}, {""}, {""}, {"BHP", 3, 675}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VXZ", 3, 6954}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HCIIW", 5, 2947}, {""}, {""}, {""}, {"HXL", 3, 3146}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXU", 3, 533}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IGK", 3, 3258}, {""}, {""}, {""}, {""}, {"BUCY", 4, 880}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DTK", 3, 1817}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BKMU", 4, 716}, {""}, {""}, {""}, {""}, {""}, {""}, {"GVP", 3, 2891}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYD", 3, 3150}, {""}, {"NZW", 3, 4763}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WPK", 3, 7068}, {""}, {""}, {"HNZ", 3, 3054}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZQK", 3, 7256}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZIONW", 5, 7237}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BXUB", 4, 912}, {""}, {""}, {""}, {"NSPH", 4, 4657}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JJP", 3, 3573}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WYY", 3, 7127}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CXW", 3, 1555}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HURN", 4, 3134}, {""}, {""}, {""}, {""}, {""}, {""}, {"LPHI", 4, 3915}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PWAV", 4, 5336}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHAW", 4, 5867}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OB", 2, 4771}, {""}, {"RYL", 3, 5690}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CAZAW", 5, 979}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RUSL", 4, 5659}, {""}, {"SPHB", 4, 6060}, {""}, {""}, {""}, {""}, {""}, {""}, {"NPY", 3, 4626}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AVP", 3, 497}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OXM", 3, 4899}, {""}, {""}, {""}, {""}, {""}, {""}, {"LWC", 3, 3966}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVO", 3, 4712}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KNSY", 4, 3733}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHIPW", 5, 5874}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SWKS", 4, 6211}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CWB", 3, 1536}, {""}, {"LAZ", 3, 3806}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CAZAU", 5, 978}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PWB", 3, 5337}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HUN", 3, 3132}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MLPW", 4, 4202}, {""}, {"SWY", 3, 6220}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ORB", 3, 4860}, {"OXLC", 4, 4898}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHU", 3, 1167}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RAH", 3, 5440}, {""}, {""}, {"WWVY", 4, 7119}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZNH", 3, 7248}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RFV", 3, 5518}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KKD", 3, 3710}, {""}, {""}, {""}, {""}, {"OGE", 3, 4794}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RSH", 3, 5626}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHRW", 4, 1158}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RURL", 4, 5656}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HAV", 3, 2925}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KXI", 3, 3785}, {""}, {""}, {""}, {"RJZ", 3, 5550}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KRJ", 3, 3752}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"COKE", 4, 1310}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CV", 2, 1533}, {""}, {""}, {""}, {""}, {"TV", 2, 6553}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OTIV", 4, 4884}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GV", 2, 2893}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SUP", 3, 6187}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TUP", 3, 6544}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UUP", 3, 6751}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SKYW", 4, 5943}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYLD", 4, 3157}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HDB", 3, 2954}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LDF", 3, 3825}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVG", 3, 4707}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BHB", 3, 666}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HDY", 3, 2959}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LWSN", 4, 3968}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LVS", 3, 3964}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BHY", 3, 677}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVB", 3, 1507}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MWIV", 4, 4379}, {""}, {""}, {""}, {""}, {""}, {"EWJ", 3, 2191}, {""}, {"OPHC", 4, 4844}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PVTB", 4, 5334}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVY", 3, 1532}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHW", 3, 5891}, {""}, {""}, {""}, {""}, {"CHW", 3, 1168}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RTH", 3, 5641}, {""}, {""}, {""}, {""}, {"AV", 2, 502}, {""}, {""}, {"AVAV", 4, 483}, {""}, {""}, {"IWF", 3, 3483}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXU", 3, 2582}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HPJ", 3, 3076}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DPZ", 3, 1776}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NUO", 3, 4693}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LINTB", 5, 3865}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHKP", 4, 1145}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHV", 3, 5890}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DY", 2, 1866}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OMAB", 4, 4818}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AVB", 3, 485}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JKJ", 3, 3585}, {""}, {""}, {""}, {""}, {"NY", 2, 4758}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NJV", 3, 4549}, {""}, {""}, {""}, {"OCZ", 3, 4779}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AVY", 3, 501}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OIB", 3, 4798}, {""}, {""}, {""}, {""}, {""}, {"BWF", 3, 893}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SWZ", 3, 6221}, {""}, {""}, {""}, {""}, {"CWZ", 3, 1545}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LMZ", 3, 3887}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ONP", 3, 4838}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PWZ", 3, 5348}, {""}, {""}, {"CYTXW", 5, 1576}, {""}, {""}, {"BKH", 3, 711}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SYSW", 4, 6241}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HEV", 3, 2974}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LIZ", 3, 3871}, {""}, {""}, {"EKH", 3, 1985}, {""}, {""}, {""}, {"OLP", 3, 4817}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BOH", 3, 777}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVJ", 3, 2168}, {""}, {""}, {""}, {""}, {""}, {""}, {"KHI", 3, 3700}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KTF", 3, 3771}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DXJ", 3, 1855}, {""}, {""}, {""}, {"LNBB", 4, 3889}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JNGW", 4, 3596}, {""}, {""}, {"RIH", 3, 5538}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HPF", 3, 3074}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NXJ", 3, 4735}, {""}, {""}, {""}, {""}, {""}, {"JOYG", 4, 3609}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HIW", 3, 3011}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DUG", 3, 1832}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OVBC", 4, 4890}, {""}, {"NZH", 3, 4760}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MHW", 3, 4153}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LLY", 3, 3878}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DUCK", 4, 1829}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZZH", 3, 7276}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IPK", 3, 3388}, {""}, {""}, {"OVTI", 4, 4893}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JKF", 3, 3580}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HWD", 3, 3142}, {""}, {""}, {"KEF", 3, 3675}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SUB", 3, 6178}, {""}, {""}, {""}, {""}, {"CUB", 3, 1494}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SHPGY", 5, 5886}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IYY", 3, 3514}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TYPE", 4, 6583}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CXH", 3, 1550}, {""}, {""}, {"RWO", 3, 5675}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JOF", 3, 3606}, {""}, {""}, {"PXH", 3, 5353}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWZS", 4, 2209}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JAH", 3, 3519}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROP", 3, 5598}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NYNY", 4, 4754}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYL", 3, 3158}, {""}, {""}, {""}, {""}, {"DGW", 3, 1683}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KMF", 3, 3717}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RWL", 3, 5673}, {""}, {""}, {""}, {"NWFL", 4, 4721}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVF", 3, 2165}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BPK", 3, 797}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XUE", 3, 7195}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RTK", 3, 5644}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AUY", 3, 481}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HUM", 3, 3131}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ONAV", 4, 4829}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LOOK", 4, 3907}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"TYW", 3, 6585}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RZV", 3, 5696}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LGF", 3, 3850}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HCH", 3, 2945}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KFFG", 4, 3690}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BXDB", 4, 907}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"REK", 3, 5493}, {""}, {""}, {"PYV", 3, 5382}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYG", 3, 3153}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ONB", 3, 4830}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RWG", 3, 5670}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MUAB", 4, 4349}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MUB", 3, 4355}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BKK", 3, 714}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OLCB", 4, 4813}, {""}, {""}, {""}, {""}, {"MXH", 3, 4391}, {""}, {""}, {""}, {""}, {""}, {"KCP", 3, 3671}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IWP", 3, 3488}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OPLK", 4, 4846}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KSP", 3, 3762}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PXLW", 4, 5359}, {""}, {""}, {""}, {""}, {"ZXZZT", 5, 7266}, {""}, {""}, {""}, {""}, {""}, {"KOOL", 4, 3742}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KOL", 3, 3738}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HNW", 3, 3053}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OPOF", 4, 4848}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DZK", 3, 1867}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LUNA", 4, 3957}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHH", 3, 1134}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JBLU", 4, 3529}, {"RLH", 3, 5554}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LZB", 3, 3977}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IYZ", 3, 3515}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XHB", 3, 7146}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PHH", 3, 5062}, {""}, {""}, {""}, {""}, {""}, {"JPP", 3, 3614}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CUZ", 3, 1502}, {""}, {""}, {""}, {""}, {"TUZ", 3, 6546}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HTH", 3, 3119}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HQH", 3, 3084}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XPH", 3, 7176}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BWP", 3, 901}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BOKF", 4, 778}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OKE", 3, 4808}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"REVU", 4, 5504}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DHF", 3, 1688}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWP", 3, 2197}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JBK", 3, 3528}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JAKK", 4, 3520}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KTP", 3, 3775}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LODE", 4, 3901}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HPP", 3, 3078}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KOG", 3, 3737}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VV", 2, 6949}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"VVTV", 4, 6947}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LHO", 3, 3857}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LNKD", 4, 3896}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ODP", 3, 4783}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CW", 2, 1546}, {""}, {""}, {""}, {""}, {"TW", 2, 6567}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DPU", 3, 1774}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PW", 2, 5349}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HMH", 3, 3036}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RNOW", 4, 5573}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KEP", 3, 3681}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AXK", 3, 522}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HIH", 3, 3001}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXPE", 4, 2231}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FXH", 3, 2573}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SUPG", 4, 6185}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MHH", 3, 4143}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NWE", 3, 4720}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SWU", 3, 6218}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KB", 2, 3664}, {""}, {""}, {""}, {"KBALB", 5, 3654}, {""}, {""}, {"RY", 2, 5694}, {""}, {""}, {""}, {"RYAAY", 5, 5685}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KMP", 3, 3721}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KXM", 3, 3786}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVP", 3, 2174}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JDSU", 4, 3546}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IWB", 3, 3480}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NXP", 3, 4740}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IWY", 3, 3494}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JZV", 3, 3647}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LHCG", 4, 3856}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KONG", 4, 3741}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RYE", 3, 5686}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BPFHW", 5, 793}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVGW", 4, 1515}, {""}, {""}, {""}, {""}, {""}, {"DPW", 3, 1775}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KYN", 3, 3788}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SOHU", 4, 6028}, {""}, {""}, {""}, {""}, {"COHU", 4, 1305}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PVSW", 4, 5332}, {""}, {""}, {""}, {""}, {"LPTH", 4, 3924}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHK", 3, 1146}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MW", 2, 4386}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PHK", 3, 5066}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CYH", 3, 1568}, {""}, {""}, {""}, {""}, {"TYH", 3, 6578}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PYH", 3, 5375}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NPV", 3, 4624}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVE", 3, 4705}, {""}, {""}, {""}, {""}, {"BWINB", 5, 895}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWY", 3, 2208}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NORW", 4, 4605}, {""}, {"SVU", 3, 6201}, {""}, {""}, {""}, {""}, {"CVU", 3, 1528}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UVU", 3, 6757}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GWW", 3, 2898}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LVLT", 4, 3961}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BHLB", 4, 672}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HEK", 3, 2966}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HPY", 3, 3082}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NYF", 3, 4750}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PWV", 3, 5346}, {""}, {""}, {""}, {""}, {""}, {""}, {"HWG", 3, 3143}, {""}, {""}, {""}, {""}, {""}, {""}, {"JJU", 3, 3577}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OUTD", 4, 4889}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HVOL", 4, 3137}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HWBK", 4, 3140}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FWDB", 4, 2556}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EV", 2, 2180}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KEY", 3, 3688}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KWT", 3, 3783}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DOW", 3, 1764}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RCKY", 4, 5467}, {""}, {""}, {"HNH", 3, 3046}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JOB", 3, 3603}, {"XKK", 3, 7153}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JOSB", 4, 3607}, {""}, {""}, {""}, {"EZPW", 4, 2243}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KAZ", 3, 3653}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NHP", 3, 4532}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KMB", 3, 3715}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KMGB", 4, 3718}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MHK", 3, 4145}, {""}, {""}, {""}, {""}, {""}, {"DOV", 3, 1763}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DXB", 3, 1852}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IWZ", 3, 3495}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MVISW", 5, 4370}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NOV", 3, 4608}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVY", 3, 2179}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SVW", 3, 6204}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HDV", 3, 2958}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BHV", 3, 676}, {""}, {""}, {""}, {""}, {""}, {"NXY", 3, 4745}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CYOU", 4, 1572}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MWW", 3, 4385}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVV", 3, 1530}, {""}, {""}, {""}, {""}, {"AVNW", 4, 496}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UVV", 3, 6758}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SU", 2, 6193}, {""}, {""}, {""}, {""}, {"CU", 2, 1503}, {""}, {""}, {""}, {""}, {"TU", 2, 6547}, {""}, {""}, {""}, {""}, {""}, {""}, {"NOVB", 4, 4607}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JPZ", 3, 3617}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"GU", 2, 2888}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MWV", 3, 4384}, {""}, {""}, {""}, {""}, {""}, {"NGK", 3, 4519}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NUE", 3, 4688}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BWZ", 3, 905}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"UUU", 3, 6752}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OVRL", 4, 4892}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LYG", 3, 3974}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWZ", 3, 2210}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LUX", 3, 3959}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SURW", 4, 6189}, {""}, {""}, {""}, {""}, {""}, {""}, {"SYK", 3, 6230}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PULB", 4, 5321}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PYK", 3, 5377}, {""}, {""}, {"KWR", 3, 3782}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AU", 2, 482}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LLNW", 4, 3876}, {""}, {""}, {""}, {""}, {""}, {"IVZ", 3, 3479}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KFY", 3, 3695}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BLKB", 4, 734}, {""}, {""}, {"JNK", 3, 3598}, {""}, {""}, {""}, {""}, {""}, {"HJV", 3, 3022}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NWPX", 4, 4727}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JZH", 3, 3641}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MVV", 3, 4375}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KONE", 4, 3740}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CHKE", 4, 1143}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IYW", 3, 3513}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MU", 2, 4366}, {""}, {""}, {""}, {"EXH", 3, 2223}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DHY", 3, 1697}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NHTB", 4, 4534}, {""}, {""}, {"PUW", 3, 5324}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WWW", 3, 7121}, {"WWWW", 4, 7120}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RDK", 3, 5480}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RPRXW", 5, 5609}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NXZ", 3, 4746}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HUBG", 4, 3130}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DWCH", 4, 1847}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HOMB", 4, 3063}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"FWV", 3, 2562}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"XXV", 3, 7200}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SWH", 3, 6208}, {""}, {""}, {""}, {""}, {"CWH", 3, 1540}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JGV", 3, 3562}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RYJ", 3, 5689}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROICW", 5, 5588}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HUVL", 4, 3136}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AWH", 3, 506}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROICU", 5, 5587}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVJ", 3, 4708}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RPV", 3, 5614}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BHH", 3, 669}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"WU", 2, 7111}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CVH", 3, 1517}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RYF", 3, 5687}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PVH", 3, 5328}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JZK", 3, 3643}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OEH", 3, 4785}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZWZZT", 5, 7264}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DVF", 3, 1839}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EXK", 3, 2225}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DPK", 3, 1768}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HH", 2, 2995}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SYKE", 4, 6229}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LPSB", 4, 3921}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NPK", 3, 4616}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DYY", 3, 1865}, {""}, {""}, {""}, {""}, {""}, {""}, {"KSU", 3, 3765}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NYB", 3, 4748}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HZK", 3, 3166}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OIH", 3, 4800}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KRU", 3, 3757}, {""}, {""}, {""}, {""}, {""}, {"EW", 2, 2211}, {""}, {"LVOL", 4, 3963}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZYY", 3, 7268}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OSK", 3, 4878}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"SWK", 3, 6212}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LVL", 3, 3962}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NUJ", 3, 4690}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RUE", 3, 5654}, {""}, {""}, {""}, {""}, {""}, {"HWAY", 4, 3139}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWU", 3, 2204}, {""}, {""}, {""}, {""}, {""}, {""}, {"KUN", 3, 3778}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ZVZZT", 5, 7263}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JKHY", 4, 3582}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IVOV", 4, 3474}, {""}, {""}, {""}, {""}, {"KOPN", 4, 3743}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OXPS", 4, 4900}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KBW", 3, 3662}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IYH", 3, 3507}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AWK", 3, 508}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KCW", 3, 3672}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IWW", 3, 3492}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NOK", 3, 4602}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KSW", 3, 3767}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BHK", 3, 671}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DUF", 3, 1831}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IWV", 3, 3491}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LAKE", 4, 3796}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KELYB", 5, 3678}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OPY", 3, 4855}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWW", 3, 2206}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BWV", 3, 903}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RWJ", 3, 5671}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"AVK", 3, 493}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWV", 3, 2205}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JYF", 3, 3638}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DXPE", 4, 1856}, {""}, {"IVW", 3, 3478}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MUH", 3, 4358}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IVV", 3, 3477}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OKSB", 4, 4810}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYF", 3, 3151}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JHP", 3, 3564}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OPWV", 4, 4851}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RKH", 3, 5551}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"IYK", 3, 3509}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JXSB", 4, 3637}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"CUK", 3, 1495}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"PUK", 3, 5320}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVV", 3, 2177}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EU", 2, 2160}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KYO", 3, 3789}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HOV", 3, 3072}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NWY", 3, 4730}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DV", 2, 1845}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KOF", 3, 3736}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KBH", 3, 3656}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OYOG", 4, 4902}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"MUK", 3, 4361}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DVY", 3, 1844}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NVY", 3, 4718}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LH", 2, 3858}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KEQU", 4, 3682}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RUTH", 4, 5661}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWH", 3, 2189}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OXF", 3, 4896}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"ROK", 3, 5591}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KTH", 3, 3772}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HHY", 3, 2994}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LWAY", 4, 3965}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JWF", 3, 3634}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JKH", 3, 3583}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KALU", 4, 3650}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RCKB", 4, 5466}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BWOW", 4, 900}, {"BWOWW", 5, 899}, {""}, {"LDK", 3, 3826}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"BWOWU", 5, 898}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LXP", 3, 3970}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KSK", 3, 3760}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RVP", 3, 5664}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"YOKU", 4, 7213}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KOP", 3, 3744}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EWK", 3, 2192}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NYV", 3, 4756}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LOPE", 4, 3909}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KFFB", 4, 3689}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYB", 3, 3148}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYY", 3, 3164}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"JKK", 3, 3586}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LOW", 3, 3913}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"EVK", 3, 2169}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LOV", 3, 3912}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HKK", 3, 3023}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NXK", 3, 4736}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RVSB", 4, 5666}, {""}, {""}, {""}, {"DW", 2, 1851}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYMB", 4, 3159}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HOVU", 4, 3071}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RYU", 3, 5693}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LHB", 3, 3855}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OXY", 3, 4901}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OPXAW", 5, 4852}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LPH", 3, 3916}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NYH", 3, 4751}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RUSHB", 5, 5658}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KYE", 3, 3787}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KEYW", 4, 3687}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NU", 2, 4700}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HWKN", 4, 3144}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LYB", 3, 3973}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KVHI", 4, 3780}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KH", 2, 3701}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NUW", 3, 4699}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LUFK", 4, 3954}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NUV", 3, 4698}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OPK", 3, 4845}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LXU", 3, 3972}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OVLY", 4, 4891}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RYH", 3, 5688}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RWW", 3, 5679}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYV", 3, 3163}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RWV", 3, 5678}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HHH", 3, 2992}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"NWK", 3, 4723}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HW", 2, 3145}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LVB", 3, 3960}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYH", 3, 3154}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"DUK", 3, 1833}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LUB", 3, 3953}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LYV", 3, 3976}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HYK", 3, 3156}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RWK", 3, 5672}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LXK", 3, 3969}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LWPE", 4, 3967}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"RUK", 3, 5655}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"OWW", 3, 4894}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LUV", 3, 3958}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KUTV", 4, 3779}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KUB", 3, 3777}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KW", 2, 3784}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"HOKU", 4, 3059}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LULU", 4, 3956}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LUK", 3, 3955}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"KWK", 3, 3781} }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = get_id_for_stock (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register const char *s = wordlist[key].name; if (*str == *s && !strcmp (str + 1, s + 1)) return &wordlist[key]; } } return 0; } } # 13 "src/bp/symbol_filter.h" 2 class symbol_filter { public: symbol_filter(): maxsize(7281), _size(0) { } size_t load (std::vector stocklist, const bool append=false) { if (!append) this->clear(); if (boost::foreach_detail_::auto_any_t _foreach_col29 = boost::foreach_detail_::contain( (stocklist) , (true ? 0 : boost::foreach_detail_::or_( boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost::foreach_detail_::is_array_(stocklist)) , (true ? 0 : boost::foreach_detail_::is_rvalue_( (true ? boost::foreach_detail_::make_probe(stocklist) : (stocklist)), 0))) , boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost_foreach_is_noncopyable( boost::foreach_detail_::to_ptr(stocklist) , boost_foreach_argument_dependent_lookup_hack_value)) , boost_foreach_is_lightweight_proxy( boost::foreach_detail_::to_ptr(stocklist) , boost_foreach_argument_dependent_lookup_hack_value)))))) {} else if (boost::foreach_detail_::auto_any_t _foreach_cur29 = boost::foreach_detail_::begin( _foreach_col29 , (true ? 0 : boost::foreach_detail_::encode_type(stocklist, boost::foreach_detail_::is_const_(stocklist))) , (true ? 0 : boost::foreach_detail_::or_( boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost::foreach_detail_::is_array_(stocklist)) , (true ? 0 : boost::foreach_detail_::is_rvalue_( (true ? boost::foreach_detail_::make_probe(stocklist) : (stocklist)), 0))) , boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost_foreach_is_noncopyable( boost::foreach_detail_::to_ptr(stocklist) , boost_foreach_argument_dependent_lookup_hack_value)) , boost_foreach_is_lightweight_proxy( boost::foreach_detail_::to_ptr(stocklist) , boost_foreach_argument_dependent_lookup_hack_value)))))) {} else if (boost::foreach_detail_::auto_any_t _foreach_end29 = boost::foreach_detail_::end( _foreach_col29 , (true ? 0 : boost::foreach_detail_::encode_type(stocklist, boost::foreach_detail_::is_const_(stocklist))) , (true ? 0 : boost::foreach_detail_::or_( boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost::foreach_detail_::is_array_(stocklist)) , (true ? 0 : boost::foreach_detail_::is_rvalue_( (true ? boost::foreach_detail_::make_probe(stocklist) : (stocklist)), 0))) , boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost_foreach_is_noncopyable( boost::foreach_detail_::to_ptr(stocklist) , boost_foreach_argument_dependent_lookup_hack_value)) , boost_foreach_is_lightweight_proxy( boost::foreach_detail_::to_ptr(stocklist) , boost_foreach_argument_dependent_lookup_hack_value)))))) {} else for (bool _foreach_continue29 = true; _foreach_continue29 && !boost::foreach_detail_::done( _foreach_cur29 , _foreach_end29 , (true ? 0 : boost::foreach_detail_::encode_type(stocklist, boost::foreach_detail_::is_const_(stocklist)))); _foreach_continue29 ? boost::foreach_detail_::next( _foreach_cur29 , (true ? 0 : boost::foreach_detail_::encode_type(stocklist, boost::foreach_detail_::is_const_(stocklist)))) : (void)0) if (boost::foreach_detail_::set_false(_foreach_continue29)) {} else for (const char* symbol = boost::foreach_detail_::deref( _foreach_cur29 , (true ? 0 : boost::foreach_detail_::encode_type(stocklist, boost::foreach_detail_::is_const_(stocklist)))); !_foreach_continue29; _foreach_continue29 = true) { _size += this->load (symbol); } return _size; } int load (const char* symbol) { const tt::symbol_entry* entry = tt::lookup_stock(symbol, strlen(symbol)); return (__null == entry)? 0: this->load(entry->id); } int load (const unsigned symid) { if (symid >= 7281) return 0; bits[symid] = 1; ++_size; return 1; } int reload(std::bitset<7281>& in) { for(int i=0; i < 7281; i++) bits[i] = in[i]; return 7281; } int unload(std::bitset<7281>& out) { for(int i=0; i < 7281; i++) out[i] = bits[i]; return 7281; } void clear() { bits.reset(); _size=0; } size_t size() { return _size; } const int maxsize; std::bitset<7281> bits; int hit (const int symindex) const { const int rcs[2] = { 0, symindex }; return rcs[bits[symindex]]; } int hit (const char* symbol, const int symlen) const { tt::symbol_entry* entry = tt::lookup_stock(symbol, symlen); return __builtin_expect(!!(entry), 1)? hit(entry->id): 0; } int hit (const char* symbol) const { return hit (symbol, strlen(symbol)); } int hitbf (char* blankfilled, const size_t fldlen) { char* p = blankfilled, *q = (char*) memchr(p, ' ', fldlen); if (__builtin_expect(!!(__null == q), 0)) return hitnn(p, fldlen); *q = '\0'; const int rc = hit (p, q - p); *q = ' '; return rc; } int cached_hit (const char* symarray8) { return this->hit(cached_lookup(symarray8)); } int hittt (char* blankfilled, const size_t fldlen) { char* p = blankfilled, *q = (char*) memchr(p, ' ', fldlen); if (__builtin_expect(!!(__null == q), 0)) return hitnn(p, fldlen); *q = '\0'; return hit (p, q - p); } int hitnn (char* notnullterminated, const size_t fldlen) { enum { BUFLEN=32, CHRLEN=BUFLEN-1 }; char buf[BUFLEN]; const char* nn = notnullterminated; switch(fldlen) { case 8: buf[7] = nn[7]; case 7: buf[6] = nn[6]; case 6: buf[5] = nn[5]; case 5: buf[4] = nn[4]; case 4: buf[3] = nn[3]; case 3: buf[2] = nn[2]; case 2: buf[1] = nn[1]; case 1: buf[0] = nn[0]; break; default: memcpy(buf, notnullterminated, fldlen > CHRLEN? CHRLEN: fldlen); } buf[CHRLEN] = '\0'; return hitbf (buf, fldlen); } static int cached_lookup(const char* symarray8) { static unsigned long long idcache; static int ndxcache; const unsigned long long staged = *((unsigned long long*) symarray8); if (staged == idcache) return ndxcache; const char* p = symarray8; char* q = (char*) memchr(p, ' ', 8); ((q) ? static_cast (0) : __assert_fail ("q", "src/bp/symbol_filter.h", 132, __PRETTY_FUNCTION__)); *q = '\0'; tt::symbol_entry* entry = tt::lookup_stock(symarray8, q - p); if (__builtin_expect(!!(__null == entry), 0)) return 0; idcache = staged; return ndxcache = entry->id; } private: size_t _size; }; static symbol_filter* g_symbol_filter; # 16 "src/bp/feedhdlr.h" 2 # 39 "src/bp/feedhdlr.h" namespace tt { enum FHSCHID { SCHID_NONE=0, SCHID_T3FILE=0x1, SCHID_NASDAQ=0x2, SCHID_BATS=0x4, SCHID_LSPEED=0x8, SCHID_TEST = 0x80, SCHID_MAX=0x80 }; enum FDTYPE { FTBASE = 0x100, FDTYPE_NONE = FTBASE + 0, FDTYPE_INET = FTBASE + 1, FDTYPE_BX = FTBASE + 2, FDTYPE_QUOTE = FTBASE + 3, FDTYPE_ARCA = FTBASE + 4, FDTYPE_BATS = FTBASE + 5, FDTYPE_TESTFILE = FTBASE + 6, FDTYPE_TESTTCP = FTBASE + 7, FDTYPE_TESTMCAST = FTBASE + 8, }; enum FEEDFAMILY { FAMILY_NONE=0, FAMILY_INET=1, FAMILY_BX=2, FAMILY_BATZ=3, FAMILY_LSPD=4, NUMFAMILIES }; enum FEEDEVENT { FH_ORDER_REMOVED = 1, FH_FEEDHDLR_REMOVED = 2, }; typedef std::unordered_map idmap_t; typedef void (*FEEDEVENTCALLBACK)(const FEEDEVENT, const int argn, void* argp); class feedhdlr_net; static int g_nextid; class i_feedhdlr { public: virtual int open() { return -1; } virtual int close() { return -1; } virtual void* get_msg() { return __null; } const int id() { return _id; } protected: i_feedhdlr (const int id): _id(id) { } private: const int _id; }; class feedhdlr: public i_feedhdlr { public: feedhdlr(int feedtype, int rbufsz, const char* name, logger* lgr): i_feedhdlr(++g_nextid), feed_type(feedtype), bufsize(rbufsz? rbufsz: 32768), inbuf(0), bufp(0), endp(0), _idmaps(0), log(lgr), deflog(0) { this->init_instance(name); } static tt::feedhdlr* new_feedhdlr(const char* url, logger*, symbol_filter* sf=0); virtual ~feedhdlr() { delete[] inbuf; delete deflog; } virtual void* get_msg() { return __null; } int filter(const char* symbol) __attribute__ ((hot)) { return __builtin_expect(!!(g_symbol_filter), 1)? g_symbol_filter->cached_hit(symbol): symbol_filter::cached_lookup(symbol); } idmap_t* idmaps() { return _idmaps; } const char* name() { return feed_name; } static int init() { return g_nextid = 0; } static FEEDEVENTCALLBACK callback; int lasterr; struct texttable { const char *TXT_EOF_NORMAL, *TXT_EOF_PARTIAL, *TXT_BADMKTDATA, *TXT_BADERR; const char *MSG_GENERIC, *MSG_BADMSGTYPE, *MSG_MSGNOTFOUND, *MSG_BADPACKET; const char *MSG_SEQUENCEGAP,*MSG_BADMSGLEN, *TXT_SPINNING, *MSG_IDEXISTS; texttable(); }; static texttable xt; protected: const int feed_type, bufsize; int rawmsglen; unsigned long long pkt_sequence; char* inbuf, *bufp, *endp; idmap_t* _idmaps; logger* log; char t3msg[48]; char feed_name[32], LID[3], PCTS[5]; qmflogger* deflog; void init_instance(const char* name); virtual void setup() { } int rawmsg_result(const int rc); char* err_msgtype(const unsigned char msgtype); char* err_msglen (const unsigned char msgtype, int expect, int found); }; class feedhdlr_t3file: public feedhdlr { public: feedhdlr_t3file(const int feedtype, const char* path, const int bufsize, const char* feedname, logger* lgr): feedhdlr(feedtype, bufsize, feedname, lgr), filepath(path) { } protected: const char* filepath; }; class feedhdlr_wrapper: public feedhdlr { public: feedhdlr_wrapper(const int feedtype, char* feedname, logger* lgr): feedhdlr(feedtype, 0, feedname, lgr) { } }; struct netfeed_createparams { int feedtype; int port; int timeout; int bufsize; int nummaps; char* feedname; char* ipaddr; logger* lgr; symbol_filter* sf; char exchange; void set(int ft, int p, char* fn, char* ip, logger* l, symbol_filter* sf, int tm, int bs) { feedtype = ft; port = p; feedname = fn; ipaddr = ip; lgr = l; timeout = tm; bufsize = bs; } }; class feedhdlr_net: public feedhdlr { public: feedhdlr_net(netfeed_createparams& p): feedhdlr(p.feedtype, p.bufsize, p.feedname, p.lgr), rdtimeout(p.timeout), port(p.port), NUMMAPS(p.nummaps), IDMASK(NUMMAPS-1), feedsock(0), ipaddr(p.ipaddr), exchange(p.exchange) { ((NUMMAPS <= 8) ? static_cast (0) : __assert_fail ("NUMMAPS <= 8", "src/bp/feedhdlr.h", 197, __PRETTY_FUNCTION__)); ((0 == (NUMMAPS & IDMASK)) ? static_cast (0) : __assert_fail ("0 == (NUMMAPS & IDMASK)", "src/bp/feedhdlr.h", 198, __PRETTY_FUNCTION__)); } virtual ~feedhdlr_net() { delete feedsock; } idmap_t& get_idmap(const unsigned long long orderid) { return _idmaps[orderid & IDMASK]; } protected: const unsigned int rdtimeout, port, NUMMAPS, IDMASK; tt::socket* feedsock; const char* ipaddr; const unsigned char exchange; int log_sockbuf(const int rc) { unsigned char LVL = rc < 0? 'E': 'I'; log->log(LID,LVL,PCTS,feedsock->mbuf); return rc; } public: bool idmap_insert(const unsigned long long orderid, const unsigned short symbolndx) { idmap_t& idmap = get_idmap(orderid); auto retpair = idmap.insert(std::make_pair(orderid, symbolndx)); return retpair.second; } unsigned short idmap_find(const unsigned long long orderid) { idmap_t& idmap = get_idmap(orderid); auto it = idmap.find(orderid); return (__builtin_expect(!!(idmap.end() != it), 1))? it->second: 0; } bool idmap_remove(const unsigned long long orderid) { idmap_t& idmap = get_idmap(orderid); return __builtin_expect(!!(0 != idmap.erase(orderid)), 1); } }; class feedhdlr_tcp: public feedhdlr_net { public: feedhdlr_tcp (netfeed_createparams& p): feedhdlr_net(p) { feedsock = new socket_tcpclient(rdtimeout); } tt::socket_tcpclient* sock() { return (tt::socket_tcpclient*) feedsock; } int open() { return 0; }; int read(const char* at, const size_t len); char* bufget(const size_t); }; class feedhdlr_multicast: public feedhdlr_net { public: feedhdlr_multicast (netfeed_createparams& p): feedhdlr_net(p) { feedsock = new socket_udpclient_multicast(p.bufsize, p.timeout); } tt::socket_udpclient_multicast* sock() { return (tt::socket_udpclient_multicast*) feedsock; } int join_multicast_group (const char* mcastaddr) { return log_sockbuf(sock()->join_multicast_group(mcastaddr)); } int leave_multicast_group(const char* mcastaddr) { return log_sockbuf(sock()->leave_multicast_group(mcastaddr)); } virtual int open() { if((0 != sock()->lasterr) || (0 != sock()->set_addr(sock()->remote_addr, this->ipaddr, this->port))) return log_sockbuf(-1); return this->join_multicast_group(this->ipaddr); } int read (char* buf, const size_t len); char* bufget (const size_t numbytes, size_t* bytesread); char* bufget (const size_t numbytes); }; } # 18 "src/bp/bp.h" 2 # 1 "src/bp/circlist.h" 1 template class circlist { public: struct node { T content; const unsigned id; node *prev, *next; node(unsigned n): id(n), prev(0), next(0) { } }; unsigned size() { return nodecount; } node* insert (T content, node* insertpos=0) { node* newnode = new node(++nextnodeid); if (__null == sentinel) { sentinel = newnode; sentinel->prev = sentinel->next = sentinel; } if (__null == insertpos) insertpos = sentinel; newnode->prev = insertpos; newnode->next = insertpos->next; newnode->prev->next = newnode->next->prev = newnode; newnode->content = content; ++nodecount; return sentinel = newnode; } node* remove (node* targetnode=0) { if (__null == targetnode) targetnode = sentinel; node* nextnode = sentinel = targetnode->prev->next = targetnode->next; targetnode->next->prev = targetnode->prev; delete targetnode; --nodecount; return nextnode; } node* next () { return sentinel = sentinel->next; } node* prev () { return sentinel = sentinel->prev; } node* next (node* startat) { return sentinel = startat->next; } node* prev (node* startat) { return sentinel = startat->prev; } node* current() { return sentinel; } node* end() { return sentinel; } # 77 "src/bp/circlist.h" node* find ( bool(*f)(T,T), T findval, node* startat=0, const bool reverse=0 ) { if (__null == startat) startat = sentinel; node* thisnode = startat; do { thisnode = reverse? thisnode->prev: thisnode->next; if ( f(thisnode->content, findval) ) return sentinel = thisnode; } while(thisnode->id != startat->id); return __null; } void clear() { node* curnode = sentinel; while(nodecount) curnode = this->remove(curnode); sentinel = __null; nextnodeid = 0; } circlist(unsigned id=0): nextnodeid(0), nodecount(0), listid(id), sentinel(0) { } unsigned id() { return listid; } protected: unsigned nextnodeid, nodecount, listid; node* sentinel; }; # 19 "src/bp/bp.h" 2 typedef struct feedspec feedspec; struct bp_advancedata; # 37 "src/bp/bp.h" typedef tt::ls_fh netfeed_t; class tt_bookprxor { public: tt_bookprxor(std::vector& uri, logger* l=0); tt_bookprxor(std::vector& feeds, logger* l=0); virtual ~tt_bookprxor(); int run(); int run(const unsigned int maxsecs); int open() __attribute__ ((cold)); void close() __attribute__ ((cold)); int create_booktable(const int symcount) __attribute__ ((cold)); void destroy_booktable() __attribute__ ((cold)); int end_of_day_reconcile() __attribute__ ((cold)); int subscribe(bp_event*) __attribute__ ((cold)); int unsubscribe(bp_event*) __attribute__ ((cold)); int subscribe_symbol(bp_symbol_event*) __attribute__ ((cold)); int unsubscribe_symbol(bp_symbol_event*) __attribute__ ((cold)); int unsubscribe_symbol(const unsigned int symbolndx, const unsigned int eventtype, const unsigned long long eventid) __attribute__ ((cold)); bp_symbol_event* get_symbol_event(const t3_symbol_t&, const unsigned char, const unsigned int, const int id) __attribute__ ((cold)); bp_symbol_event* get_symbol_event(const unsigned int, const unsigned char, const unsigned int, const int id) __attribute__ ((cold)); int get_nbbo_for (const unsigned int symbolndx, bp_nbbo_info*); bool symlock_acquire(const unsigned int symbolndx) ; bool symlock_release(const unsigned int symbolndx) ; const bp_event_registry* registry() { return &events; } void stats(bp_stats&) __attribute__ ((cold)); void signal_stop() { is_quit_requested = true; } int set_symbols(t3_symbol_t*, const int); pthread_mutex_t& sub_lock() { return sublock; }; unsigned int get_index_for(const t3_symbol_t&); unsigned int get_index_for(const char*); long long msgcount() { return incount; } static size_t filesize(const char*); static unsigned long long new_subid(); void set_is0urc3(unsigned short n) { input_source = n; } void show_symtable(); bool is_quit_requested; int open_t3_internal() __attribute__ ((cold)); unsigned int maxsecs; unsigned int session_date() const { return this->cur_session_date; } enum { INSOURCE_FILE=1, INSOURCE_INET=2 }; int suspend(); int resume(); int suspend_count(); unsigned long long advance(const unsigned long long howmany_us, bp_advancedata* ret=__null) __attribute__ ((cold)); int inject(t3_xmsghdr*, const bool is_already_halted=false) __attribute__ ((cold)); int dumpbook(const t3_symbol_t&, const unsigned char venue, const int side=0, const int numlvls=0) __attribute__ ((cold)); int dumpbook(const unsigned int symbolndx, const unsigned char venue, const int side=0, const int numlvls=0) __attribute__ ((cold)); void* books() { return bookmap; }; void set_symbol_filter(symbol_filter* sf) { symfilter = sf; } private: void run_multifeed() __attribute__ ((hot)); void run_netfeed() __attribute__ ((hot)); void run_newfeeds() __attribute__ ((hot)); void run_file(); int open_file() __attribute__ ((cold)); int open_inet(bp_uri&, netfeed_t*) __attribute__ ((cold)); int open_singlefeed() __attribute__ ((cold)); int open_multifeed() __attribute__ ((cold)); int open_newfeeds() __attribute__ ((cold)); int dispatch_msg(t3_xmsghdr*) __attribute__ ((hot)); static void clock_mark() __attribute__ ((hot)); static unsigned long long clockns_mark() __attribute__ ((hot)); static unsigned long long clockns_delta() __attribute__ ((hot)); bool monitor_simclock(t3_clock_msg*) __attribute__ ((hot)); bool verify_symbol_index(const unsigned int, const t3_symbol_t&) const; int get_nbbo_for_venue_i(void* book, const int i, bp_nbbo_info* out); void verify_nbbo_info(void* stocktops, bp_nbbo_info* out); void register_globaltime(t3_clock_msg*) __attribute__ ((hot)); void verify_logger() __attribute__ ((cold)); void init_() __attribute__ ((cold)); void set_sessiondate(); bp_event_registry events; bp_stats counts; netfeed_t netfeed; std::vector feedspecs; std::vector feeds; circlist> feedgroups; long long incount; long long handled; long long msgerrors; t3_handle infile; t3_symbol_t* symtable; t3_mpid_t* mpidtable; logger* log; void* bookmap; unsigned int disregard_feedids; unsigned int current_feedid; unsigned int symcount; unsigned int mpidcount; unsigned int cur_session_date; unsigned int stallcount; unsigned int at_suspend_barrier; unsigned short input_source; bool is_open; bool is_created; pthread_mutex_t sublock; pthread_mutex_t suslock; pthread_mutex_t hotlock; pthread_mutex_t toplock; symbol_filter* symfilter; flogger* tlogger; std::vector paths; }; struct feedspec { netfeed_t* feed; std::string uri; unsigned feed_idbit; bool is_disregard_nonunique_venues; feedspec() { feed=0; feed_idbit = 0; is_disregard_nonunique_venues = false; } }; struct bp_advancedata { unsigned long long first_message_us; unsigned long long final_message_us; unsigned int advanced_count; }; logger* bplog(); unsigned int bp_get_start_clocksec(); unsigned int bp_get_current_clocksec(); bool monitor_sysclock(); void sync_and_start_bpclock(); void stop_bpclock(); void makesym(t3_symbol_t&, const char*); bp_event_registry* get_registry(); const static char BP[3] = {'B','P','\0'}; const static char SFMT[5] = {'%','s','\\','n','\0'}; class scoped_lock_if: public tt::scoped_lock { public: scoped_lock_if(pthread_mutex_t* mx) { if (__null != (this->mutex = mx)) { int __attribute__ ((unused)) rc = pthread_mutex_lock(this->mutex); ((0 == rc) ? static_cast (0) : __assert_fail ("0 == rc", "src/bp/bp.h", 195, __PRETTY_FUNCTION__)); } } }; # 20 "src/bp/bp_b.cc" 2 # 1 "src/t3/t3_file.h" 1 # 1 "/usr/include/sys/mman.h" 1 3 4 # 26 "/usr/include/sys/mman.h" 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 27 "/usr/include/sys/mman.h" 2 3 4 # 42 "/usr/include/sys/mman.h" 3 4 # 1 "/usr/include/bits/mman.h" 1 3 4 # 43 "/usr/include/sys/mman.h" 2 3 4 extern "C" { # 58 "/usr/include/sys/mman.h" 3 4 extern void *mmap (void *__addr, size_t __len, int __prot, int __flags, int __fd, __off_t __offset) throw (); # 71 "/usr/include/sys/mman.h" 3 4 extern void *mmap64 (void *__addr, size_t __len, int __prot, int __flags, int __fd, __off64_t __offset) throw (); extern int munmap (void *__addr, size_t __len) throw (); extern int mprotect (void *__addr, size_t __len, int __prot) throw (); extern int msync (void *__addr, size_t __len, int __flags); extern int madvise (void *__addr, size_t __len, int __advice) throw (); extern int posix_madvise (void *__addr, size_t __len, int __advice) throw (); extern int mlock (__const void *__addr, size_t __len) throw (); extern int munlock (__const void *__addr, size_t __len) throw (); extern int mlockall (int __flags) throw (); extern int munlockall (void) throw (); extern int mincore (void *__start, size_t __len, unsigned char *__vec) throw (); # 134 "/usr/include/sys/mman.h" 3 4 extern void *mremap (void *__addr, size_t __old_len, size_t __new_len, int __flags, ...) throw (); extern int remap_file_pages (void *__start, size_t __size, int __prot, size_t __pgoff, int __flags) throw (); extern int shm_open (__const char *__name, int __oflag, mode_t __mode); extern int shm_unlink (__const char *__name); } # 9 "src/t3/t3_file.h" 2 # 1 "src/t3/t3_map.h" 1 # 16 "src/t3/t3_map.h" typedef struct symtable_entry { unsigned short trimlen; char symbol[29]; char term; void _init() { memset(this->symbol,' ', sizeof(this->symbol)); this->trimlen = 0; this->term = '\0'; } symtable_entry() { _init(); } symtable_entry(const char* sym) { _init(); this->trimlen = strlen(sym); memcpy(this->symbol,sym,this->trimlen); } void rtrim() { char* p = &this->term - 1; while(p >= this->symbol && *p ==' ') p--; this->trimlen = ++p - this->symbol; } } symtable_entry; struct DjbSymbolHasher: public std::hash { size_t operator() (const symtable_entry& s) const { unsigned int hash = 5381; char* p = (char*) s.symbol; const char* q = p + s.trimlen; for(; p < q; p++) hash = ((hash << 5) + hash) + *p; return (hash & 0x7fffffff); } }; struct SymbolComparator: public std::equal_to { bool operator() (const symtable_entry& k1, const symtable_entry& k2) const { return (k1.trimlen == k2.trimlen) && (memcmp(k1.symbol, k2.symbol, k1.trimlen) == 0); } }; typedef std::unordered_map SymbolHashmap; typedef std::vector SymbolArray; typedef SymbolArray::const_iterator SymListIterc; # 80 "src/t3/t3_map.h" typedef struct mpid_table_entry { unsigned short trimlen; char mpid[5]; char term; void _init() { memset(this->mpid,' ', sizeof(this->mpid)); this->trimlen = 0; this->term = '\0'; } mpid_table_entry() { _init(); } mpid_table_entry(const char* id) { _init(); this->trimlen = strlen(id); memcpy(this->mpid,id,this->trimlen); } void rtrim() { char* p = &this->term - 1; while(p >= this->mpid && *p ==' ') p--; this->trimlen = ++p - this->mpid; } } mpid_table_entry; struct DjbMpidHasher: public std::hash { size_t operator() (const mpid_table_entry& s) const { unsigned int hash = 5381; char* p = (char*) s.mpid; const char* q = p + s.trimlen; for(; p < q; p++) hash = ((hash << 5) + hash) + *p; return (hash & 0x7fffffff); } }; struct MpidComparator: public std::equal_to { bool operator() (const mpid_table_entry& k1, const mpid_table_entry& k2) const { return (k1.trimlen == k2.trimlen) && (memcmp(k1.mpid, k2.mpid, k1.trimlen) == 0); } }; typedef std::unordered_map MpidHashmap; typedef std::vector MpidArray; typedef MpidArray::const_iterator MpidListIterc; # 14 "src/t3/t3_file.h" 2 #pragma pack(1) typedef struct t3_hdr { char signature[2]; unsigned short t3_version; unsigned short header_length; unsigned short message_offset; unsigned long long metadata_offset; void init() { signature[0]='T'; signature[1]='3'; t3_version = 2; header_length = sizeof(t3_hdr); message_offset = sizeof(t3_hdr); } t3_hdr() { memset(this,0,sizeof(t3_hdr)); init(); } } t3_hdr; #pragma pack() #pragma pack(1) typedef struct t3_meta { unsigned short meta_length; unsigned short mpid_count; unsigned int symbol_count; unsigned int session_date; unsigned int reserved; unsigned long long generated_date; unsigned long long message_count; unsigned long long file_size; char generated_by[32]; unsigned long long numtrades; unsigned long long totalvolume; unsigned long long numorders; unsigned int numordersleft; unsigned int numstockssaw; void init() { meta_length = (1024); time_t t = (time_t)generated_date; time(&t); } t3_meta() { memset(this,0,sizeof(t3_meta)); init(); } } t3_meta; #pragma pack() struct t3_file { unsigned long long signature; long long msgcount; long long curr_tick_nanos; t3_symbol_t* symtable; t3_mpid_t* mpidtable; char *metadata; char *startptr, *endptr; char *writeptr, *readptr; size_t originalsize; size_t actualsize; size_t metadatasize; size_t bytecount; int hfile; int curr_msglen; int curr_symbol_ndx; int curr_mpid_ndx; int t3filetype; unsigned int curr_tick_secs; t3_hdr hdr; t3_meta meta; enum { T3_FILETYPE_UNDEF=0, T3_FILETYPE_NEW=1, T3_FILETYPE_IN=2 }; static int is_t3file (t3_handle h) { return h && h->signature == 0xb0ff0c0bb1edc0de; } static int is_t3outfile(t3_handle h) { return is_t3file(h) && h->t3filetype == T3_FILETYPE_NEW; } static int is_t3infile (t3_handle h) { return is_t3file(h) && h->t3filetype == T3_FILETYPE_IN; } void _init(); t3_file() { _init(); } virtual ~t3_file() { } virtual int do_eof(T3_STATSPARAMS&) { return 0; } virtual int close()=0; }; struct t3_file_new: public t3_file { t3_file_new(): t3_file() { this->t3filetype = T3_FILETYPE_NEW; } virtual ~t3_file_new(); T3_CREATEPARAMS client_params; T3_STATSPARAMS stats_params; t3_xmsghdr msghdr; SymbolHashmap symbolMap; SymbolArray symbols; MpidHashmap mpidMap; MpidArray mpids; char* open(const char *path, const size_t filesize); virtual int close(); virtual int do_eof(T3_STATSPARAMS& params) { this->set_statsparams(params); return this->write_metadata(); } # 143 "src/t3/t3_file.h" inline void bump_writeptr() { this->writeptr += this->curr_msglen; this->bytecount += this->curr_msglen; ++this->msgcount; } virtual void* create_msg(T3_CREATEMSGPARAMS&); virtual void write_clockmsg(const unsigned long long secs); int map_symbol(const char*); int map_symbol(symtable_entry&); int map_mpid(const char*); int map_mpid(mpid_table_entry&); virtual int write_metadata(); virtual int write_symtable(); virtual int write_mpidtable(); virtual void write_meta(); virtual void write_hdr(); int validate_params(T3_CREATEPARAMS&); inline int get_mpid_index(const char* mpid); void set_statsparams(T3_STATSPARAMS&); }; struct t3_file_new_std_io: public t3_file_new { t3_file_new_std_io(): t3_file_new() {} virtual ~t3_file_new_std_io(); const static int BUFF_SIZE = 204800; const static int NUM_MSGS_PER_BATCH = 400; char* msg_buff; char* open(const char *path); virtual int close(); virtual int do_eof(T3_STATSPARAMS& params) { this->set_statsparams(params); return this->write_metadata(); } virtual void* create_msg(T3_CREATEMSGPARAMS&); virtual int write_metadata(); virtual int write_symtable(); virtual int write_mpidtable(); virtual void write_meta(); virtual void write_hdr(); virtual void write_clockmsg(const unsigned long long secs); void update_msg_buff(bool force_write = false); }; struct t3_file_in: public t3_file { t3_file_in(): t3_file() { this->t3filetype = T3_FILETYPE_IN; this->cvtsymndx = false; this->msg_buff = __null; } static const int BUFF_SIZE = 1024; void* msg_buff; bool cvtsymndx; void* open(const char* path, bool cvtsymndx = false); virtual int close(); # 221 "src/t3/t3_file.h" inline void bump_readptr() { this->readptr += this->curr_msglen; this->bytecount += this->curr_msglen; ++this->msgcount; } void* get_msg(); void* get_msg(t3_symbol_t** symbol_out); void* peek_msg(); void* back_msg(const unsigned int); }; int _win_getch(); # 22 "src/bp/bp_b.cc" 2 # 1 "src/bp/bp_book.h" 1 # 1 "/usr/include/assert.h" 1 3 4 # 8 "src/bp/bp_book.h" 2 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 3 4 # 1 "/usr/include/c++/4.5/algorithm" 1 3 4 # 59 "/usr/include/c++/4.5/algorithm" 3 4 # 60 "/usr/include/c++/4.5/algorithm" 3 # 1 "/usr/include/c++/4.5/bits/stl_algo.h" 1 3 # 60 "/usr/include/c++/4.5/bits/stl_algo.h" 3 # 1 "/usr/include/c++/4.5/cstdlib" 1 3 # 41 "/usr/include/c++/4.5/cstdlib" 3 # 42 "/usr/include/c++/4.5/cstdlib" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 45 "/usr/include/c++/4.5/cstdlib" 2 3 # 61 "/usr/include/c++/4.5/bits/stl_algo.h" 2 3 # 1 "/usr/include/c++/4.5/bits/algorithmfwd.h" 1 3 # 33 "/usr/include/c++/4.5/bits/algorithmfwd.h" 3 # 34 "/usr/include/c++/4.5/bits/algorithmfwd.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 190 "/usr/include/c++/4.5/bits/algorithmfwd.h" 3 template bool all_of(_IIter, _IIter, _Predicate); template bool any_of(_IIter, _IIter, _Predicate); template bool binary_search(_FIter, _FIter, const _Tp&); template bool binary_search(_FIter, _FIter, const _Tp&, _Compare); template _OIter copy(_IIter, _IIter, _OIter); template _BIter2 copy_backward(_BIter1, _BIter1, _BIter2); template _OIter copy_if(_IIter, _IIter, _OIter, _Predicate); template _OIter copy_n(_IIter, _Size, _OIter); template pair<_FIter, _FIter> equal_range(_FIter, _FIter, const _Tp&); template pair<_FIter, _FIter> equal_range(_FIter, _FIter, const _Tp&, _Compare); template void fill(_FIter, _FIter, const _Tp&); template _OIter fill_n(_OIter, _Size, const _Tp&); template _FIter1 find_end(_FIter1, _FIter1, _FIter2, _FIter2); template _FIter1 find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); template _IIter find_if_not(_IIter, _IIter, _Predicate); template bool includes(_IIter1, _IIter1, _IIter2, _IIter2); template bool includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); template void inplace_merge(_BIter, _BIter, _BIter); template void inplace_merge(_BIter, _BIter, _BIter, _Compare); template bool is_heap(_RAIter, _RAIter); template bool is_heap(_RAIter, _RAIter, _Compare); template _RAIter is_heap_until(_RAIter, _RAIter); template _RAIter is_heap_until(_RAIter, _RAIter, _Compare); template bool is_partitioned(_IIter, _IIter, _Predicate); template bool is_sorted(_FIter, _FIter); template bool is_sorted(_FIter, _FIter, _Compare); template _FIter is_sorted_until(_FIter, _FIter); template _FIter is_sorted_until(_FIter, _FIter, _Compare); template void iter_swap(_FIter1, _FIter2); template _FIter lower_bound(_FIter, _FIter, const _Tp&); template _FIter lower_bound(_FIter, _FIter, const _Tp&, _Compare); template void make_heap(_RAIter, _RAIter); template void make_heap(_RAIter, _RAIter, _Compare); template const _Tp& max(const _Tp&, const _Tp&); template const _Tp& max(const _Tp&, const _Tp&, _Compare); template const _Tp& min(const _Tp&, const _Tp&); template const _Tp& min(const _Tp&, const _Tp&, _Compare); template pair minmax(const _Tp&, const _Tp&); template pair minmax(const _Tp&, const _Tp&, _Compare); template pair<_FIter, _FIter> minmax_element(_FIter, _FIter); template pair<_FIter, _FIter> minmax_element(_FIter, _FIter, _Compare); template _Tp min(initializer_list<_Tp>); template _Tp min(initializer_list<_Tp>, _Compare); template _Tp max(initializer_list<_Tp>); template _Tp max(initializer_list<_Tp>, _Compare); template pair<_Tp, _Tp> minmax(initializer_list<_Tp>); template pair<_Tp, _Tp> minmax(initializer_list<_Tp>, _Compare); template bool next_permutation(_BIter, _BIter); template bool next_permutation(_BIter, _BIter, _Compare); template bool none_of(_IIter, _IIter, _Predicate); template _RAIter partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); template _RAIter partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); template pair<_OIter1, _OIter2> partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate); template _FIter partition_point(_FIter, _FIter, _Predicate); template void pop_heap(_RAIter, _RAIter); template void pop_heap(_RAIter, _RAIter, _Compare); template bool prev_permutation(_BIter, _BIter); template bool prev_permutation(_BIter, _BIter, _Compare); template void push_heap(_RAIter, _RAIter); template void push_heap(_RAIter, _RAIter, _Compare); template _FIter remove(_FIter, _FIter, const _Tp&); template _FIter remove_if(_FIter, _FIter, _Predicate); template _OIter remove_copy(_IIter, _IIter, _OIter, const _Tp&); template _OIter remove_copy_if(_IIter, _IIter, _OIter, _Predicate); template _OIter replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); template _OIter replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); template void reverse(_BIter, _BIter); template _OIter reverse_copy(_BIter, _BIter, _OIter); template void rotate(_FIter, _FIter, _FIter); template _OIter rotate_copy(_FIter, _FIter, _FIter, _OIter); # 522 "/usr/include/c++/4.5/bits/algorithmfwd.h" 3 template void shuffle(_RAIter, _RAIter, _UGenerator&); template void sort_heap(_RAIter, _RAIter); template void sort_heap(_RAIter, _RAIter, _Compare); template _BIter stable_partition(_BIter, _BIter, _Predicate); template void swap(_Tp&, _Tp&); template void swap(_Tp (&)[_Nm], _Tp (&)[_Nm]); template _FIter2 swap_ranges(_FIter1, _FIter1, _FIter2); template _FIter unique(_FIter, _FIter); template _FIter unique(_FIter, _FIter, _BinaryPredicate); template _FIter upper_bound(_FIter, _FIter, const _Tp&); template _FIter upper_bound(_FIter, _FIter, const _Tp&, _Compare); } namespace std __attribute__ ((__visibility__ ("default"))) { template _FIter adjacent_find(_FIter, _FIter); template _FIter adjacent_find(_FIter, _FIter, _BinaryPredicate); template typename iterator_traits<_IIter>::difference_type count(_IIter, _IIter, const _Tp&); template typename iterator_traits<_IIter>::difference_type count_if(_IIter, _IIter, _Predicate); template bool equal(_IIter1, _IIter1, _IIter2); template bool equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); template _IIter find(_IIter, _IIter, const _Tp&); template _FIter1 find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); template _FIter1 find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); template _IIter find_if(_IIter, _IIter, _Predicate); template _Funct for_each(_IIter, _IIter, _Funct); template void generate(_FIter, _FIter, _Generator); template _OIter generate_n(_OIter, _Size, _Generator); template bool lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); template bool lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); template _FIter max_element(_FIter, _FIter); template _FIter max_element(_FIter, _FIter, _Compare); template _OIter merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); template _OIter merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); template _FIter min_element(_FIter, _FIter); template _FIter min_element(_FIter, _FIter, _Compare); template pair<_IIter1, _IIter2> mismatch(_IIter1, _IIter1, _IIter2); template pair<_IIter1, _IIter2> mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); template void nth_element(_RAIter, _RAIter, _RAIter); template void nth_element(_RAIter, _RAIter, _RAIter, _Compare); template void partial_sort(_RAIter, _RAIter, _RAIter); template void partial_sort(_RAIter, _RAIter, _RAIter, _Compare); template _BIter partition(_BIter, _BIter, _Predicate); template void random_shuffle(_RAIter, _RAIter); template void random_shuffle(_RAIter, _RAIter, _Generator&&); template void replace(_FIter, _FIter, const _Tp&, const _Tp&); template void replace_if(_FIter, _FIter, _Predicate, const _Tp&); template _FIter1 search(_FIter1, _FIter1, _FIter2, _FIter2); template _FIter1 search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); template _FIter search_n(_FIter, _FIter, _Size, const _Tp&); template _FIter search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); template _OIter set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); template _OIter set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); template _OIter set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); template _OIter set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); template _OIter set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); template _OIter set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); template _OIter set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); template _OIter set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); template void sort(_RAIter, _RAIter); template void sort(_RAIter, _RAIter, _Compare); template void stable_sort(_RAIter, _RAIter); template void stable_sort(_RAIter, _RAIter, _Compare); template _OIter transform(_IIter, _IIter, _OIter, _UnaryOperation); template _OIter transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); template _OIter unique_copy(_IIter, _IIter, _OIter); template _OIter unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); } # 62 "/usr/include/c++/4.5/bits/stl_algo.h" 2 3 # 1 "/usr/include/c++/4.5/bits/stl_heap.h" 1 3 # 62 "/usr/include/c++/4.5/bits/stl_heap.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template _Distance __is_heap_until(_RandomAccessIterator __first, _Distance __n) { _Distance __parent = 0; for (_Distance __child = 1; __child < __n; ++__child) { if (__first[__parent] < __first[__child]) return __child; if ((__child & 1) == 0) ++__parent; } return __n; } template _Distance __is_heap_until(_RandomAccessIterator __first, _Distance __n, _Compare __comp) { _Distance __parent = 0; for (_Distance __child = 1; __child < __n; ++__child) { if (__comp(__first[__parent], __first[__child])) return __child; if ((__child & 1) == 0) ++__parent; } return __n; } template inline bool __is_heap(_RandomAccessIterator __first, _Distance __n) { return std::__is_heap_until(__first, __n) == __n; } template inline bool __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) { return std::__is_heap_until(__first, __n, __comp) == __n; } template inline bool __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { return std::__is_heap(__first, std::distance(__first, __last)); } template inline bool __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { return std::__is_heap(__first, __comp, std::distance(__first, __last)); } template void __push_heap(_RandomAccessIterator __first, _Distance __holeIndex, _Distance __topIndex, _Tp __value) { _Distance __parent = (__holeIndex - 1) / 2; while (__holeIndex > __topIndex && *(__first + __parent) < __value) { *(__first + __holeIndex) = std::move(*(__first + __parent)); __holeIndex = __parent; __parent = (__holeIndex - 1) / 2; } *(__first + __holeIndex) = std::move(__value); } # 152 "/usr/include/c++/4.5/bits/stl_heap.h" 3 template inline void push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; ; _ValueType __value = std::move(*(__last - 1)); std::__push_heap(__first, _DistanceType((__last - __first) - 1), _DistanceType(0), std::move(__value)); } template void __push_heap(_RandomAccessIterator __first, _Distance __holeIndex, _Distance __topIndex, _Tp __value, _Compare __comp) { _Distance __parent = (__holeIndex - 1) / 2; while (__holeIndex > __topIndex && __comp(*(__first + __parent), __value)) { *(__first + __holeIndex) = std::move(*(__first + __parent)); __holeIndex = __parent; __parent = (__holeIndex - 1) / 2; } *(__first + __holeIndex) = std::move(__value); } # 201 "/usr/include/c++/4.5/bits/stl_heap.h" 3 template inline void push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; ; _ValueType __value = std::move(*(__last - 1)); std::__push_heap(__first, _DistanceType((__last - __first) - 1), _DistanceType(0), std::move(__value), __comp); } template void __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, _Distance __len, _Tp __value) { const _Distance __topIndex = __holeIndex; _Distance __secondChild = __holeIndex; while (__secondChild < (__len - 1) / 2) { __secondChild = 2 * (__secondChild + 1); if (*(__first + __secondChild) < *(__first + (__secondChild - 1))) __secondChild--; *(__first + __holeIndex) = std::move(*(__first + __secondChild)); __holeIndex = __secondChild; } if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) { __secondChild = 2 * (__secondChild + 1); *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) ; __holeIndex = __secondChild - 1; } std::__push_heap(__first, __holeIndex, __topIndex, std::move(__value)); } template inline void __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomAccessIterator __result) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; _ValueType __value = std::move(*__result); *__result = std::move(*__first); std::__adjust_heap(__first, _DistanceType(0), _DistanceType(__last - __first), std::move(__value)); } # 274 "/usr/include/c++/4.5/bits/stl_heap.h" 3 template inline void pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; ; --__last; std::__pop_heap(__first, __last, __last); } template void __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, _Distance __len, _Tp __value, _Compare __comp) { const _Distance __topIndex = __holeIndex; _Distance __secondChild = __holeIndex; while (__secondChild < (__len - 1) / 2) { __secondChild = 2 * (__secondChild + 1); if (__comp(*(__first + __secondChild), *(__first + (__secondChild - 1)))) __secondChild--; *(__first + __holeIndex) = std::move(*(__first + __secondChild)); __holeIndex = __secondChild; } if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) { __secondChild = 2 * (__secondChild + 1); *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) ; __holeIndex = __secondChild - 1; } std::__push_heap(__first, __holeIndex, __topIndex, std::move(__value), __comp); } template inline void __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomAccessIterator __result, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; _ValueType __value = std::move(*__result); *__result = std::move(*__first); std::__adjust_heap(__first, _DistanceType(0), _DistanceType(__last - __first), std::move(__value), __comp); } # 348 "/usr/include/c++/4.5/bits/stl_heap.h" 3 template inline void pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { ; ; --__last; std::__pop_heap(__first, __last, __last, __comp); } # 371 "/usr/include/c++/4.5/bits/stl_heap.h" 3 template void make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; if (__last - __first < 2) return; const _DistanceType __len = __last - __first; _DistanceType __parent = (__len - 2) / 2; while (true) { _ValueType __value = std::move(*(__first + __parent)); std::__adjust_heap(__first, __parent, __len, std::move(__value)); if (__parent == 0) return; __parent--; } } # 411 "/usr/include/c++/4.5/bits/stl_heap.h" 3 template void make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; if (__last - __first < 2) return; const _DistanceType __len = __last - __first; _DistanceType __parent = (__len - 2) / 2; while (true) { _ValueType __value = std::move(*(__first + __parent)); std::__adjust_heap(__first, __parent, __len, std::move(__value), __comp); if (__parent == 0) return; __parent--; } } # 450 "/usr/include/c++/4.5/bits/stl_heap.h" 3 template void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { ; ; while (__last - __first > 1) { --__last; std::__pop_heap(__first, __last, __last); } } # 479 "/usr/include/c++/4.5/bits/stl_heap.h" 3 template void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { ; ; while (__last - __first > 1) { --__last; std::__pop_heap(__first, __last, __last, __comp); } } # 508 "/usr/include/c++/4.5/bits/stl_heap.h" 3 template inline _RandomAccessIterator is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) { ; return __first + std::__is_heap_until(__first, std::distance(__first, __last)); } # 534 "/usr/include/c++/4.5/bits/stl_heap.h" 3 template inline _RandomAccessIterator is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { ; return __first + std::__is_heap_until(__first, std::distance(__first, __last), __comp); } # 556 "/usr/include/c++/4.5/bits/stl_heap.h" 3 template inline bool is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { return std::is_heap_until(__first, __last) == __last; } # 569 "/usr/include/c++/4.5/bits/stl_heap.h" 3 template inline bool is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { return std::is_heap_until(__first, __last, __comp) == __last; } } # 63 "/usr/include/c++/4.5/bits/stl_algo.h" 2 3 # 1 "/usr/include/c++/4.5/bits/stl_tempbuf.h" 1 3 # 64 "/usr/include/c++/4.5/bits/stl_tempbuf.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 83 "/usr/include/c++/4.5/bits/stl_tempbuf.h" 3 template pair<_Tp*, ptrdiff_t> get_temporary_buffer(ptrdiff_t __len) { const ptrdiff_t __max = __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); if (__len > __max) __len = __max; while (__len > 0) { _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), std::nothrow)); if (__tmp != 0) return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); __len /= 2; } return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); } # 110 "/usr/include/c++/4.5/bits/stl_tempbuf.h" 3 template inline void return_temporary_buffer(_Tp* __p) { ::operator delete(__p, std::nothrow); } template class _Temporary_buffer { public: typedef _Tp value_type; typedef value_type* pointer; typedef pointer iterator; typedef ptrdiff_t size_type; protected: size_type _M_original_len; size_type _M_len; pointer _M_buffer; public: size_type size() const { return _M_len; } size_type requested_size() const { return _M_original_len; } iterator begin() { return _M_buffer; } iterator end() { return _M_buffer + _M_len; } _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last); ~_Temporary_buffer() { std::_Destroy(_M_buffer, _M_buffer + _M_len); std::return_temporary_buffer(_M_buffer); } private: _Temporary_buffer(const _Temporary_buffer&); void operator=(const _Temporary_buffer&); }; template _Temporary_buffer<_ForwardIterator, _Tp>:: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) : _M_original_len(std::distance(__first, __last)), _M_len(0), _M_buffer(0) { try { std::pair __p(std::get_temporary_buffer< value_type>(_M_original_len)); _M_buffer = __p.first; _M_len = __p.second; if(_M_buffer) std::__uninitialized_construct_range(_M_buffer, _M_buffer + _M_len, *__first); } catch(...) { std::return_temporary_buffer(_M_buffer); _M_buffer = 0; _M_len = 0; throw; } } } # 64 "/usr/include/c++/4.5/bits/stl_algo.h" 2 3 # 1 "/usr/include/c++/4.5/random" 1 3 # 32 "/usr/include/c++/4.5/random" 3 # 33 "/usr/include/c++/4.5/random" 3 # 1 "/usr/include/c++/4.5/cmath" 1 3 # 41 "/usr/include/c++/4.5/cmath" 3 # 42 "/usr/include/c++/4.5/cmath" 3 # 1 "/usr/include/math.h" 1 3 4 # 30 "/usr/include/math.h" 3 4 extern "C" { # 1 "/usr/include/bits/huge_val.h" 1 3 4 # 35 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/bits/huge_valf.h" 1 3 4 # 37 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/bits/huge_vall.h" 1 3 4 # 38 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/bits/inf.h" 1 3 4 # 41 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/bits/nan.h" 1 3 4 # 44 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/bits/mathdef.h" 1 3 4 # 26 "/usr/include/bits/mathdef.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 27 "/usr/include/bits/mathdef.h" 2 3 4 typedef float float_t; typedef double double_t; # 48 "/usr/include/math.h" 2 3 4 # 71 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/bits/mathcalls.h" 3 4 extern double acos (double __x) throw (); extern double __acos (double __x) throw (); extern double asin (double __x) throw (); extern double __asin (double __x) throw (); extern double atan (double __x) throw (); extern double __atan (double __x) throw (); extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); extern double cos (double __x) throw (); extern double __cos (double __x) throw (); extern double sin (double __x) throw (); extern double __sin (double __x) throw (); extern double tan (double __x) throw (); extern double __tan (double __x) throw (); extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw () ; extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); extern double exp (double __x) throw (); extern double __exp (double __x) throw (); extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); extern double log (double __x) throw (); extern double __log (double __x) throw (); extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw (); extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); extern double pow10 (double __x) throw (); extern double __pow10 (double __x) throw (); extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); extern double logb (double __x) throw (); extern double __logb (double __x) throw (); extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); extern int __isinf (double __value) throw () __attribute__ ((__const__)); extern int __finite (double __value) throw () __attribute__ ((__const__)); extern int isinf (double __value) throw () __attribute__ ((__const__)); extern int finite (double __value) throw () __attribute__ ((__const__)); extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); extern double significand (double __x) throw (); extern double __significand (double __x) throw (); extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double nan (__const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (__const char *__tagb) throw () __attribute__ ((__const__)); extern int __isnan (double __value) throw () __attribute__ ((__const__)); extern int isnan (double __value) throw () __attribute__ ((__const__)); extern double j0 (double) throw (); extern double __j0 (double) throw (); extern double j1 (double) throw (); extern double __j1 (double) throw (); extern double jn (int, double) throw (); extern double __jn (int, double) throw (); extern double y0 (double) throw (); extern double __y0 (double) throw (); extern double y1 (double) throw (); extern double __y1 (double) throw (); extern double yn (int, double) throw (); extern double __yn (int, double) throw (); extern double erf (double) throw (); extern double __erf (double) throw (); extern double erfc (double) throw (); extern double __erfc (double) throw (); extern double lgamma (double) throw (); extern double __lgamma (double) throw (); extern double tgamma (double) throw (); extern double __tgamma (double) throw (); extern double gamma (double) throw (); extern double __gamma (double) throw (); extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); extern double rint (double __x) throw (); extern double __rint (double __x) throw (); extern double nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); extern double fmax (double __x, double __y) throw (); extern double __fmax (double __x, double __y) throw (); extern double fmin (double __x, double __y) throw (); extern double __fmin (double __x, double __y) throw (); extern int __fpclassify (double __value) throw () __attribute__ ((__const__)); extern int __signbit (double __value) throw () __attribute__ ((__const__)); extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); # 72 "/usr/include/math.h" 2 3 4 # 94 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/bits/mathcalls.h" 3 4 extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); extern void sincosf # 82 "/usr/include/bits/mathcalls.h" 3 4 (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf # 82 "/usr/include/bits/mathcalls.h" 3 4 (float __x, float *__sinx, float *__cosx) throw () ; extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); extern float expf (float __x) throw (); extern float __expf (float __x) throw (); extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); extern float logf (float __x) throw (); extern float __logf (float __x) throw (); extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw (); extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); extern float pow10f (float __x) throw (); extern float __pow10f (float __x) throw (); extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); extern int __isinff (float __value) throw () __attribute__ ((__const__)); extern int __finitef (float __value) throw () __attribute__ ((__const__)); extern int isinff (float __value) throw () __attribute__ ((__const__)); extern int finitef (float __value) throw () __attribute__ ((__const__)); extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float nanf (__const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) throw () __attribute__ ((__const__)); extern int __isnanf (float __value) throw () __attribute__ ((__const__)); extern int isnanf (float __value) throw () __attribute__ ((__const__)); extern float j0f (float) throw (); extern float __j0f (float) throw (); extern float j1f (float) throw (); extern float __j1f (float) throw (); extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); extern float y0f (float) throw (); extern float __y0f (float) throw (); extern float y1f (float) throw (); extern float __y1f (float) throw (); extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); extern float erff (float) throw (); extern float __erff (float) throw (); extern float erfcf (float) throw (); extern float __erfcf (float) throw (); extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); extern float gammaf (float) throw (); extern float __gammaf (float) throw (); extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); extern float nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); extern float fmaxf (float __x, float __y) throw (); extern float __fmaxf (float __x, float __y) throw (); extern float fminf (float __x, float __y) throw (); extern float __fminf (float __x, float __y) throw (); extern int __fpclassifyf (float __value) throw () __attribute__ ((__const__)); extern int __signbitf (float __value) throw () __attribute__ ((__const__)); extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); # 95 "/usr/include/math.h" 2 3 4 # 145 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/bits/mathcalls.h" 3 4 extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); extern void sincosl # 82 "/usr/include/bits/mathcalls.h" 3 4 (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl # 82 "/usr/include/bits/mathcalls.h" 3 4 (long double __x, long double *__sinx, long double *__cosx) throw () ; extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw (); extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); extern long double pow10l (long double __x) throw (); extern long double __pow10l (long double __x) throw (); extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); extern int __finitel (long double __value) throw () __attribute__ ((__const__)); extern int isinfl (long double __value) throw () __attribute__ ((__const__)); extern int finitel (long double __value) throw () __attribute__ ((__const__)); extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double nanl (__const char *__tagb) throw () __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) throw () __attribute__ ((__const__)); extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); extern int isnanl (long double __value) throw () __attribute__ ((__const__)); extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); extern long double nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); extern long double fmaxl (long double __x, long double __y) throw (); extern long double __fmaxl (long double __x, long double __y) throw (); extern long double fminl (long double __x, long double __y) throw (); extern long double __fminl (long double __x, long double __y) throw (); extern int __fpclassifyl (long double __value) throw () __attribute__ ((__const__)); extern int __signbitl (long double __value) throw () __attribute__ ((__const__)); extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); # 146 "/usr/include/math.h" 2 3 4 # 161 "/usr/include/math.h" 3 4 extern int signgam; # 202 "/usr/include/math.h" 3 4 enum { FP_NAN, FP_INFINITE, FP_ZERO, FP_SUBNORMAL, FP_NORMAL }; # 295 "/usr/include/math.h" 3 4 typedef enum { _IEEE_ = -1, _SVID_, _XOPEN_, _POSIX_, _ISOC_ } _LIB_VERSION_TYPE; extern _LIB_VERSION_TYPE _LIB_VERSION; # 318 "/usr/include/math.h" 3 4 struct __exception { int type; char *name; double arg1; double arg2; double retval; }; extern int matherr (struct __exception *__exc) throw (); # 476 "/usr/include/math.h" 3 4 } # 47 "/usr/include/c++/4.5/cmath" 2 3 # 77 "/usr/include/c++/4.5/cmath" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template _Tp __cmath_power(_Tp, unsigned int); template inline _Tp __pow_helper(_Tp __x, int __n) { return __n < 0 ? _Tp(1)/__cmath_power(__x, -__n) : __cmath_power(__x, __n); } inline double abs(double __x) { return __builtin_fabs(__x); } inline float abs(float __x) { return __builtin_fabsf(__x); } inline long double abs(long double __x) { return __builtin_fabsl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type abs(_Tp __x) { return __builtin_fabs(__x); } using ::acos; inline float acos(float __x) { return __builtin_acosf(__x); } inline long double acos(long double __x) { return __builtin_acosl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type acos(_Tp __x) { return __builtin_acos(__x); } using ::asin; inline float asin(float __x) { return __builtin_asinf(__x); } inline long double asin(long double __x) { return __builtin_asinl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type asin(_Tp __x) { return __builtin_asin(__x); } using ::atan; inline float atan(float __x) { return __builtin_atanf(__x); } inline long double atan(long double __x) { return __builtin_atanl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type atan(_Tp __x) { return __builtin_atan(__x); } using ::atan2; inline float atan2(float __y, float __x) { return __builtin_atan2f(__y, __x); } inline long double atan2(long double __y, long double __x) { return __builtin_atan2l(__y, __x); } template inline typename __gnu_cxx::__promote_2< typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value && __is_arithmetic<_Up>::__value, _Tp>::__type, _Up>::__type atan2(_Tp __y, _Up __x) { typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; return atan2(__type(__y), __type(__x)); } using ::ceil; inline float ceil(float __x) { return __builtin_ceilf(__x); } inline long double ceil(long double __x) { return __builtin_ceill(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type ceil(_Tp __x) { return __builtin_ceil(__x); } using ::cos; inline float cos(float __x) { return __builtin_cosf(__x); } inline long double cos(long double __x) { return __builtin_cosl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type cos(_Tp __x) { return __builtin_cos(__x); } using ::cosh; inline float cosh(float __x) { return __builtin_coshf(__x); } inline long double cosh(long double __x) { return __builtin_coshl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type cosh(_Tp __x) { return __builtin_cosh(__x); } using ::exp; inline float exp(float __x) { return __builtin_expf(__x); } inline long double exp(long double __x) { return __builtin_expl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type exp(_Tp __x) { return __builtin_exp(__x); } using ::fabs; inline float fabs(float __x) { return __builtin_fabsf(__x); } inline long double fabs(long double __x) { return __builtin_fabsl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type fabs(_Tp __x) { return __builtin_fabs(__x); } using ::floor; inline float floor(float __x) { return __builtin_floorf(__x); } inline long double floor(long double __x) { return __builtin_floorl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type floor(_Tp __x) { return __builtin_floor(__x); } using ::fmod; inline float fmod(float __x, float __y) { return __builtin_fmodf(__x, __y); } inline long double fmod(long double __x, long double __y) { return __builtin_fmodl(__x, __y); } using ::frexp; inline float frexp(float __x, int* __exp) { return __builtin_frexpf(__x, __exp); } inline long double frexp(long double __x, int* __exp) { return __builtin_frexpl(__x, __exp); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type frexp(_Tp __x, int* __exp) { return __builtin_frexp(__x, __exp); } using ::ldexp; inline float ldexp(float __x, int __exp) { return __builtin_ldexpf(__x, __exp); } inline long double ldexp(long double __x, int __exp) { return __builtin_ldexpl(__x, __exp); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type ldexp(_Tp __x, int __exp) { return __builtin_ldexp(__x, __exp); } using ::log; inline float log(float __x) { return __builtin_logf(__x); } inline long double log(long double __x) { return __builtin_logl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type log(_Tp __x) { return __builtin_log(__x); } using ::log10; inline float log10(float __x) { return __builtin_log10f(__x); } inline long double log10(long double __x) { return __builtin_log10l(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type log10(_Tp __x) { return __builtin_log10(__x); } using ::modf; inline float modf(float __x, float* __iptr) { return __builtin_modff(__x, __iptr); } inline long double modf(long double __x, long double* __iptr) { return __builtin_modfl(__x, __iptr); } using ::pow; inline float pow(float __x, float __y) { return __builtin_powf(__x, __y); } inline long double pow(long double __x, long double __y) { return __builtin_powl(__x, __y); } # 387 "/usr/include/c++/4.5/cmath" 3 template inline typename __gnu_cxx::__promote_2< typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value && __is_arithmetic<_Up>::__value, _Tp>::__type, _Up>::__type pow(_Tp __x, _Up __y) { typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; return pow(__type(__x), __type(__y)); } using ::sin; inline float sin(float __x) { return __builtin_sinf(__x); } inline long double sin(long double __x) { return __builtin_sinl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type sin(_Tp __x) { return __builtin_sin(__x); } using ::sinh; inline float sinh(float __x) { return __builtin_sinhf(__x); } inline long double sinh(long double __x) { return __builtin_sinhl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type sinh(_Tp __x) { return __builtin_sinh(__x); } using ::sqrt; inline float sqrt(float __x) { return __builtin_sqrtf(__x); } inline long double sqrt(long double __x) { return __builtin_sqrtl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type sqrt(_Tp __x) { return __builtin_sqrt(__x); } using ::tan; inline float tan(float __x) { return __builtin_tanf(__x); } inline long double tan(long double __x) { return __builtin_tanl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type tan(_Tp __x) { return __builtin_tan(__x); } using ::tanh; inline float tanh(float __x) { return __builtin_tanhf(__x); } inline long double tanh(long double __x) { return __builtin_tanhl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type tanh(_Tp __x) { return __builtin_tanh(__x); } } # 498 "/usr/include/c++/4.5/cmath" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type fpclassify(_Tp __f) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __type(__f)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isfinite(_Tp __f) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isfinite(__type(__f)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isinf(_Tp __f) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isinf(__type(__f)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isnan(_Tp __f) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isnan(__type(__f)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isnormal(_Tp __f) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isnormal(__type(__f)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type signbit(_Tp __f) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_signbit(__type(__f)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isgreater(_Tp __f1, _Tp __f2) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isgreater(__type(__f1), __type(__f2)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isgreaterequal(_Tp __f1, _Tp __f2) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isgreaterequal(__type(__f1), __type(__f2)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isless(_Tp __f1, _Tp __f2) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isless(__type(__f1), __type(__f2)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type islessequal(_Tp __f1, _Tp __f2) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_islessequal(__type(__f1), __type(__f2)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type islessgreater(_Tp __f1, _Tp __f2) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_islessgreater(__type(__f1), __type(__f2)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isunordered(_Tp __f1, _Tp __f2) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isunordered(__type(__f1), __type(__f2)); } } # 1 "/usr/include/c++/4.5/bits/cmath.tcc" 1 3 # 35 "/usr/include/c++/4.5/bits/cmath.tcc" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template inline _Tp __cmath_power(_Tp __x, unsigned int __n) { _Tp __y = __n % 2 ? __x : _Tp(1); while (__n >>= 1) { __x = __x * __x; if (__n % 2) __y = __y * __x; } return __y; } } # 616 "/usr/include/c++/4.5/cmath" 2 3 # 629 "/usr/include/c++/4.5/cmath" 3 # 1 "/usr/include/c++/4.5/tr1_impl/cmath" 1 3 # 140 "/usr/include/c++/4.5/tr1_impl/cmath" 3 namespace std { using ::double_t; using ::float_t; using ::acosh; using ::acoshf; using ::acoshl; using ::asinh; using ::asinhf; using ::asinhl; using ::atanh; using ::atanhf; using ::atanhl; using ::cbrt; using ::cbrtf; using ::cbrtl; using ::copysign; using ::copysignf; using ::copysignl; using ::erf; using ::erff; using ::erfl; using ::erfc; using ::erfcf; using ::erfcl; using ::exp2; using ::exp2f; using ::exp2l; using ::expm1; using ::expm1f; using ::expm1l; using ::fdim; using ::fdimf; using ::fdiml; using ::fma; using ::fmaf; using ::fmal; using ::fmax; using ::fmaxf; using ::fmaxl; using ::fmin; using ::fminf; using ::fminl; using ::hypot; using ::hypotf; using ::hypotl; using ::ilogb; using ::ilogbf; using ::ilogbl; using ::lgamma; using ::lgammaf; using ::lgammal; using ::llrint; using ::llrintf; using ::llrintl; using ::llround; using ::llroundf; using ::llroundl; using ::log1p; using ::log1pf; using ::log1pl; using ::log2; using ::log2f; using ::log2l; using ::logb; using ::logbf; using ::logbl; using ::lrint; using ::lrintf; using ::lrintl; using ::lround; using ::lroundf; using ::lroundl; using ::nan; using ::nanf; using ::nanl; using ::nearbyint; using ::nearbyintf; using ::nearbyintl; using ::nextafter; using ::nextafterf; using ::nextafterl; using ::nexttoward; using ::nexttowardf; using ::nexttowardl; using ::remainder; using ::remainderf; using ::remainderl; using ::remquo; using ::remquof; using ::remquol; using ::rint; using ::rintf; using ::rintl; using ::round; using ::roundf; using ::roundl; using ::scalbln; using ::scalblnf; using ::scalblnl; using ::scalbn; using ::scalbnf; using ::scalbnl; using ::tgamma; using ::tgammaf; using ::tgammal; using ::trunc; using ::truncf; using ::truncl; using std::signbit; using std::fpclassify; using std::isfinite; using std::isinf; using std::isnan; using std::isnormal; using std::isgreater; using std::isgreaterequal; using std::isless; using std::islessequal; using std::islessgreater; using std::isunordered; using std::acos; inline float acosh(float __x) { return __builtin_acoshf(__x); } inline long double acosh(long double __x) { return __builtin_acoshl(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type acosh(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return acosh(__type(__x)); } using std::asin; inline float asinh(float __x) { return __builtin_asinhf(__x); } inline long double asinh(long double __x) { return __builtin_asinhl(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type asinh(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return asinh(__type(__x)); } using std::atan; using std::atan2; inline float atanh(float __x) { return __builtin_atanhf(__x); } inline long double atanh(long double __x) { return __builtin_atanhl(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type atanh(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return atanh(__type(__x)); } inline float cbrt(float __x) { return __builtin_cbrtf(__x); } inline long double cbrt(long double __x) { return __builtin_cbrtl(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type cbrt(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return cbrt(__type(__x)); } using std::ceil; inline float copysign(float __x, float __y) { return __builtin_copysignf(__x, __y); } inline long double copysign(long double __x, long double __y) { return __builtin_copysignl(__x, __y); } template inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type copysign(_Tp __x, _Up __y) { typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; return copysign(__type(__x), __type(__y)); } using std::cos; using std::cosh; inline float erf(float __x) { return __builtin_erff(__x); } inline long double erf(long double __x) { return __builtin_erfl(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type erf(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return erf(__type(__x)); } inline float erfc(float __x) { return __builtin_erfcf(__x); } inline long double erfc(long double __x) { return __builtin_erfcl(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type erfc(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return erfc(__type(__x)); } using std::exp; inline float exp2(float __x) { return __builtin_exp2f(__x); } inline long double exp2(long double __x) { return __builtin_exp2l(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type exp2(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return exp2(__type(__x)); } inline float expm1(float __x) { return __builtin_expm1f(__x); } inline long double expm1(long double __x) { return __builtin_expm1l(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type expm1(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return expm1(__type(__x)); } using std::fabs; inline float fdim(float __x, float __y) { return __builtin_fdimf(__x, __y); } inline long double fdim(long double __x, long double __y) { return __builtin_fdiml(__x, __y); } template inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type fdim(_Tp __x, _Up __y) { typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; return fdim(__type(__x), __type(__y)); } using std::floor; inline float fma(float __x, float __y, float __z) { return __builtin_fmaf(__x, __y, __z); } inline long double fma(long double __x, long double __y, long double __z) { return __builtin_fmal(__x, __y, __z); } template inline typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type fma(_Tp __x, _Up __y, _Vp __z) { typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; return fma(__type(__x), __type(__y), __type(__z)); } inline float fmax(float __x, float __y) { return __builtin_fmaxf(__x, __y); } inline long double fmax(long double __x, long double __y) { return __builtin_fmaxl(__x, __y); } template inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type fmax(_Tp __x, _Up __y) { typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; return fmax(__type(__x), __type(__y)); } inline float fmin(float __x, float __y) { return __builtin_fminf(__x, __y); } inline long double fmin(long double __x, long double __y) { return __builtin_fminl(__x, __y); } template inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type fmin(_Tp __x, _Up __y) { typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; return fmin(__type(__x), __type(__y)); } using std::fmod; using std::frexp; inline float hypot(float __x, float __y) { return __builtin_hypotf(__x, __y); } inline long double hypot(long double __x, long double __y) { return __builtin_hypotl(__x, __y); } template inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type hypot(_Tp __x, _Up __y) { typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; return hypot(__type(__x), __type(__y)); } inline int ilogb(float __x) { return __builtin_ilogbf(__x); } inline int ilogb(long double __x) { return __builtin_ilogbl(__x); } template inline int ilogb(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return ilogb(__type(__x)); } using std::ldexp; inline float lgamma(float __x) { return __builtin_lgammaf(__x); } inline long double lgamma(long double __x) { return __builtin_lgammal(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type lgamma(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return lgamma(__type(__x)); } inline long long llrint(float __x) { return __builtin_llrintf(__x); } inline long long llrint(long double __x) { return __builtin_llrintl(__x); } template inline long long llrint(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return llrint(__type(__x)); } inline long long llround(float __x) { return __builtin_llroundf(__x); } inline long long llround(long double __x) { return __builtin_llroundl(__x); } template inline long long llround(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return llround(__type(__x)); } using std::log; using std::log10; inline float log1p(float __x) { return __builtin_log1pf(__x); } inline long double log1p(long double __x) { return __builtin_log1pl(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type log1p(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return log1p(__type(__x)); } inline float log2(float __x) { return __builtin_log2f(__x); } inline long double log2(long double __x) { return __builtin_log2l(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type log2(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return log2(__type(__x)); } inline float logb(float __x) { return __builtin_logbf(__x); } inline long double logb(long double __x) { return __builtin_logbl(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type logb(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return logb(__type(__x)); } inline long lrint(float __x) { return __builtin_lrintf(__x); } inline long lrint(long double __x) { return __builtin_lrintl(__x); } template inline long lrint(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return lrint(__type(__x)); } inline long lround(float __x) { return __builtin_lroundf(__x); } inline long lround(long double __x) { return __builtin_lroundl(__x); } template inline long lround(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return lround(__type(__x)); } inline float nearbyint(float __x) { return __builtin_nearbyintf(__x); } inline long double nearbyint(long double __x) { return __builtin_nearbyintl(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type nearbyint(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return nearbyint(__type(__x)); } inline float nextafter(float __x, float __y) { return __builtin_nextafterf(__x, __y); } inline long double nextafter(long double __x, long double __y) { return __builtin_nextafterl(__x, __y); } template inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type nextafter(_Tp __x, _Up __y) { typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; return nextafter(__type(__x), __type(__y)); } inline float nexttoward(float __x, long double __y) { return __builtin_nexttowardf(__x, __y); } inline long double nexttoward(long double __x, long double __y) { return __builtin_nexttowardl(__x, __y); } template inline typename __gnu_cxx::__promote<_Tp>::__type nexttoward(_Tp __x, long double __y) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return nexttoward(__type(__x), __y); } inline float remainder(float __x, float __y) { return __builtin_remainderf(__x, __y); } inline long double remainder(long double __x, long double __y) { return __builtin_remainderl(__x, __y); } template inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type remainder(_Tp __x, _Up __y) { typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; return remainder(__type(__x), __type(__y)); } inline float remquo(float __x, float __y, int* __pquo) { return __builtin_remquof(__x, __y, __pquo); } inline long double remquo(long double __x, long double __y, int* __pquo) { return __builtin_remquol(__x, __y, __pquo); } template inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type remquo(_Tp __x, _Up __y, int* __pquo) { typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; return remquo(__type(__x), __type(__y), __pquo); } inline float rint(float __x) { return __builtin_rintf(__x); } inline long double rint(long double __x) { return __builtin_rintl(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type rint(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return rint(__type(__x)); } inline float round(float __x) { return __builtin_roundf(__x); } inline long double round(long double __x) { return __builtin_roundl(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type round(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return round(__type(__x)); } inline float scalbln(float __x, long __ex) { return __builtin_scalblnf(__x, __ex); } inline long double scalbln(long double __x, long __ex) { return __builtin_scalblnl(__x, __ex); } template inline typename __gnu_cxx::__promote<_Tp>::__type scalbln(_Tp __x, long __ex) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return scalbln(__type(__x), __ex); } inline float scalbn(float __x, int __ex) { return __builtin_scalbnf(__x, __ex); } inline long double scalbn(long double __x, int __ex) { return __builtin_scalbnl(__x, __ex); } template inline typename __gnu_cxx::__promote<_Tp>::__type scalbn(_Tp __x, int __ex) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return scalbn(__type(__x), __ex); } using std::sin; using std::sinh; using std::sqrt; using std::tan; using std::tanh; inline float tgamma(float __x) { return __builtin_tgammaf(__x); } inline long double tgamma(long double __x) { return __builtin_tgammal(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type tgamma(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return tgamma(__type(__x)); } inline float trunc(float __x) { return __builtin_truncf(__x); } inline long double trunc(long double __x) { return __builtin_truncl(__x); } template inline typename __gnu_cxx::__promote<_Tp>::__type trunc(_Tp __x) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return trunc(__type(__x)); } } # 630 "/usr/include/c++/4.5/cmath" 2 3 # 39 "/usr/include/c++/4.5/random" 2 3 # 1 "/usr/include/c++/4.5/cstdio" 1 3 # 41 "/usr/include/c++/4.5/cstdio" 3 # 42 "/usr/include/c++/4.5/cstdio" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 45 "/usr/include/c++/4.5/cstdio" 2 3 # 40 "/usr/include/c++/4.5/random" 2 3 # 1 "/usr/include/c++/4.5/cstdlib" 1 3 # 41 "/usr/include/c++/4.5/cstdlib" 3 # 42 "/usr/include/c++/4.5/cstdlib" 3 # 1 "/usr/include/c++/4.5/cstddef" 1 3 # 41 "/usr/include/c++/4.5/cstddef" 3 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 45 "/usr/include/c++/4.5/cstdlib" 2 3 # 41 "/usr/include/c++/4.5/random" 2 3 # 1 "/usr/include/c++/4.5/limits" 1 3 # 41 "/usr/include/c++/4.5/limits" 3 # 42 "/usr/include/c++/4.5/limits" 3 # 148 "/usr/include/c++/4.5/limits" 3 namespace std __attribute__ ((__visibility__ ("default"))) { enum float_round_style { round_indeterminate = -1, round_toward_zero = 0, round_to_nearest = 1, round_toward_infinity = 2, round_toward_neg_infinity = 3 }; enum float_denorm_style { denorm_indeterminate = -1, denorm_absent = 0, denorm_present = 1 }; # 190 "/usr/include/c++/4.5/limits" 3 struct __numeric_limits_base { static const bool is_specialized = false; static const int digits = 0; static const int digits10 = 0; static const int max_digits10 = 0; static const bool is_signed = false; static const bool is_integer = false; static const bool is_exact = false; static const int radix = 0; static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static const bool is_iec559 = false; static const bool is_bounded = false; static const bool is_modulo = false; static const bool traps = false; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; # 283 "/usr/include/c++/4.5/limits" 3 template struct numeric_limits : public __numeric_limits_base { static _Tp min() throw() { return static_cast<_Tp>(0); } static _Tp max() throw() { return static_cast<_Tp>(0); } static _Tp lowest() throw() { return static_cast<_Tp>(0); } static _Tp epsilon() throw() { return static_cast<_Tp>(0); } static _Tp round_error() throw() { return static_cast<_Tp>(0); } static _Tp infinity() throw() { return static_cast<_Tp>(0); } static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); } static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); } static _Tp denorm_min() throw() { return static_cast<_Tp>(0); } }; template struct numeric_limits : public numeric_limits<_Tp> { }; template struct numeric_limits : public numeric_limits<_Tp> { }; template struct numeric_limits : public numeric_limits<_Tp> { }; template<> struct numeric_limits { static const bool is_specialized = true; static bool min() throw() { return false; } static bool max() throw() { return true; } static bool lowest() throw() { return min(); } static const int digits = 1; static const int digits10 = 0; static const int max_digits10 = 0; static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static bool epsilon() throw() { return false; } static bool round_error() throw() { return false; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static bool infinity() throw() { return false; } static bool quiet_NaN() throw() { return false; } static bool signaling_NaN() throw() { return false; } static bool denorm_min() throw() { return false; } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = false; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static char min() throw() { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) < 0)) : (char)0); } static char max() throw() { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } static char lowest() throw() { return min(); } static const int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); static const int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = ((char)(-1) < 0); static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static char epsilon() throw() { return 0; } static char round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static char infinity() throw() { return char(); } static char quiet_NaN() throw() { return char(); } static char signaling_NaN() throw() { return char(); } static char denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static signed char min() throw() { return -127 - 1; } static signed char max() throw() { return 127; } static signed char lowest() throw() { return min(); } static const int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); static const int digits10 = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = true; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static signed char epsilon() throw() { return 0; } static signed char round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static signed char infinity() throw() { return static_cast(0); } static signed char quiet_NaN() throw() { return static_cast(0); } static signed char signaling_NaN() throw() { return static_cast(0); } static signed char denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static unsigned char min() throw() { return 0; } static unsigned char max() throw() { return 127 * 2U + 1; } static unsigned char lowest() throw() { return min(); } static const int digits = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); static const int digits10 = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static unsigned char epsilon() throw() { return 0; } static unsigned char round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static unsigned char infinity() throw() { return static_cast(0); } static unsigned char quiet_NaN() throw() { return static_cast(0); } static unsigned char signaling_NaN() throw() { return static_cast(0); } static unsigned char denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static wchar_t min() throw() { return (((wchar_t)(-1) < 0) ? (wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) : (wchar_t)0); } static wchar_t max() throw() { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); } static wchar_t lowest() throw() { return min(); } static const int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); static const int digits10 = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = ((wchar_t)(-1) < 0); static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static wchar_t epsilon() throw() { return 0; } static wchar_t round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static wchar_t infinity() throw() { return wchar_t(); } static wchar_t quiet_NaN() throw() { return wchar_t(); } static wchar_t signaling_NaN() throw() { return wchar_t(); } static wchar_t denorm_min() throw() { return wchar_t(); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static char16_t min() throw() { return (((char16_t)(-1) < 0) ? (char16_t)1 << (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) : (char16_t)0); } static char16_t max() throw() { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); } static char16_t lowest() throw() { return min(); } static const int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); static const int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = ((char16_t)(-1) < 0); static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static char16_t epsilon() throw() { return 0; } static char16_t round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static char16_t infinity() throw() { return char16_t(); } static char16_t quiet_NaN() throw() { return char16_t(); } static char16_t signaling_NaN() throw() { return char16_t(); } static char16_t denorm_min() throw() { return char16_t(); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static char32_t min() throw() { return (((char32_t)(-1) < 0) ? (char32_t)1 << (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) : (char32_t)0); } static char32_t max() throw() { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); } static char32_t lowest() throw() { return min(); } static const int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); static const int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = ((char32_t)(-1) < 0); static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static char32_t epsilon() throw() { return 0; } static char32_t round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static char32_t infinity() throw() { return char32_t(); } static char32_t quiet_NaN() throw() { return char32_t(); } static char32_t signaling_NaN() throw() { return char32_t(); } static char32_t denorm_min() throw() { return char32_t(); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static short min() throw() { return -32767 - 1; } static short max() throw() { return 32767; } static short lowest() throw() { return min(); } static const int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); static const int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = true; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static short epsilon() throw() { return 0; } static short round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static short infinity() throw() { return short(); } static short quiet_NaN() throw() { return short(); } static short signaling_NaN() throw() { return short(); } static short denorm_min() throw() { return short(); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static unsigned short min() throw() { return 0; } static unsigned short max() throw() { return 32767 * 2U + 1; } static unsigned short lowest() throw() { return min(); } static const int digits = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); static const int digits10 = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static unsigned short epsilon() throw() { return 0; } static unsigned short round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static unsigned short infinity() throw() { return static_cast(0); } static unsigned short quiet_NaN() throw() { return static_cast(0); } static unsigned short signaling_NaN() throw() { return static_cast(0); } static unsigned short denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static int min() throw() { return -2147483647 - 1; } static int max() throw() { return 2147483647; } static int lowest() throw() { return min(); } static const int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); static const int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = true; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static int epsilon() throw() { return 0; } static int round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static int infinity() throw() { return static_cast(0); } static int quiet_NaN() throw() { return static_cast(0); } static int signaling_NaN() throw() { return static_cast(0); } static int denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static unsigned int min() throw() { return 0; } static unsigned int max() throw() { return 2147483647 * 2U + 1; } static unsigned int lowest() throw() { return min(); } static const int digits = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); static const int digits10 = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static unsigned int epsilon() throw() { return 0; } static unsigned int round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static unsigned int infinity() throw() { return static_cast(0); } static unsigned int quiet_NaN() throw() { return static_cast(0); } static unsigned int signaling_NaN() throw() { return static_cast(0); } static unsigned int denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static long min() throw() { return -9223372036854775807L - 1; } static long max() throw() { return 9223372036854775807L; } static long lowest() throw() { return min(); } static const int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); static const int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = true; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static long epsilon() throw() { return 0; } static long round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static long infinity() throw() { return static_cast(0); } static long quiet_NaN() throw() { return static_cast(0); } static long signaling_NaN() throw() { return static_cast(0); } static long denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static unsigned long min() throw() { return 0; } static unsigned long max() throw() { return 9223372036854775807L * 2UL + 1; } static unsigned long lowest() throw() { return min(); } static const int digits = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); static const int digits10 = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static unsigned long epsilon() throw() { return 0; } static unsigned long round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static unsigned long infinity() throw() { return static_cast(0); } static unsigned long quiet_NaN() throw() { return static_cast(0); } static unsigned long signaling_NaN() throw() { return static_cast(0); } static unsigned long denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static long long min() throw() { return -9223372036854775807LL - 1; } static long long max() throw() { return 9223372036854775807LL; } static long long lowest() throw() { return min(); } static const int digits = (sizeof(long long) * 8 - ((long long)(-1) < 0)); static const int digits10 = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = true; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static long long epsilon() throw() { return 0; } static long long round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static long long infinity() throw() { return static_cast(0); } static long long quiet_NaN() throw() { return static_cast(0); } static long long signaling_NaN() throw() { return static_cast(0); } static long long denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static unsigned long long min() throw() { return 0; } static unsigned long long max() throw() { return 9223372036854775807LL * 2ULL + 1; } static unsigned long long lowest() throw() { return min(); } static const int digits = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); static const int digits10 = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643 / 2136); static const int max_digits10 = 0; static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static unsigned long long epsilon() throw() { return 0; } static unsigned long long round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static unsigned long long infinity() throw() { return static_cast(0); } static unsigned long long quiet_NaN() throw() { return static_cast(0); } static unsigned long long signaling_NaN() throw() { return static_cast(0); } static unsigned long long denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static float min() throw() { return 1.17549435082228750797e-38F; } static float max() throw() { return 3.40282346638528859812e+38F; } static float lowest() throw() { return -3.40282346638528859812e+38F; } static const int digits = 24; static const int digits10 = 6; static const int max_digits10 = (2 + (24) * 643 / 2136); static const bool is_signed = true; static const bool is_integer = false; static const bool is_exact = false; static const int radix = 2; static float epsilon() throw() { return 1.19209289550781250000e-7F; } static float round_error() throw() { return 0.5F; } static const int min_exponent = (-125); static const int min_exponent10 = (-37); static const int max_exponent = 128; static const int max_exponent10 = 38; static const bool has_infinity = 1; static const bool has_quiet_NaN = 1; static const bool has_signaling_NaN = has_quiet_NaN; static const float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static const bool has_denorm_loss = false; static float infinity() throw() { return __builtin_huge_valf (); } static float quiet_NaN() throw() { return __builtin_nanf (""); } static float signaling_NaN() throw() { return __builtin_nansf (""); } static float denorm_min() throw() { return 1.40129846432481707092e-45F; } static const bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static const bool is_bounded = true; static const bool is_modulo = false; static const bool traps = false; static const bool tinyness_before = false; static const float_round_style round_style = round_to_nearest; }; template<> struct numeric_limits { static const bool is_specialized = true; static double min() throw() { return ((double)2.22507385850720138309e-308L); } static double max() throw() { return ((double)1.79769313486231570815e+308L); } static double lowest() throw() { return -((double)1.79769313486231570815e+308L); } static const int digits = 53; static const int digits10 = 15; static const int max_digits10 = (2 + (53) * 643 / 2136); static const bool is_signed = true; static const bool is_integer = false; static const bool is_exact = false; static const int radix = 2; static double epsilon() throw() { return ((double)2.22044604925031308085e-16L); } static double round_error() throw() { return 0.5; } static const int min_exponent = (-1021); static const int min_exponent10 = (-307); static const int max_exponent = 1024; static const int max_exponent10 = 308; static const bool has_infinity = 1; static const bool has_quiet_NaN = 1; static const bool has_signaling_NaN = has_quiet_NaN; static const float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static const bool has_denorm_loss = false; static double infinity() throw() { return __builtin_huge_val(); } static double quiet_NaN() throw() { return __builtin_nan (""); } static double signaling_NaN() throw() { return __builtin_nans (""); } static double denorm_min() throw() { return ((double)4.94065645841246544177e-324L); } static const bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static const bool is_bounded = true; static const bool is_modulo = false; static const bool traps = false; static const bool tinyness_before = false; static const float_round_style round_style = round_to_nearest; }; template<> struct numeric_limits { static const bool is_specialized = true; static long double min() throw() { return 3.36210314311209350626e-4932L; } static long double max() throw() { return 1.18973149535723176502e+4932L; } static long double lowest() throw() { return -1.18973149535723176502e+4932L; } static const int digits = 64; static const int digits10 = 18; static const int max_digits10 = (2 + (64) * 643 / 2136); static const bool is_signed = true; static const bool is_integer = false; static const bool is_exact = false; static const int radix = 2; static long double epsilon() throw() { return 1.08420217248550443401e-19L; } static long double round_error() throw() { return 0.5L; } static const int min_exponent = (-16381); static const int min_exponent10 = (-4931); static const int max_exponent = 16384; static const int max_exponent10 = 4932; static const bool has_infinity = 1; static const bool has_quiet_NaN = 1; static const bool has_signaling_NaN = has_quiet_NaN; static const float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static const bool has_denorm_loss = false; static long double infinity() throw() { return __builtin_huge_vall (); } static long double quiet_NaN() throw() { return __builtin_nanl (""); } static long double signaling_NaN() throw() { return __builtin_nansl (""); } static long double denorm_min() throw() { return 3.64519953188247460253e-4951L; } static const bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static const bool is_bounded = true; static const bool is_modulo = false; static const bool traps = false; static const bool tinyness_before = false; static const float_round_style round_style = round_to_nearest; }; } # 44 "/usr/include/c++/4.5/random" 2 3 # 1 "/usr/include/c++/4.5/bits/random.h" 1 3 # 33 "/usr/include/c++/4.5/bits/random.h" 3 namespace std { # 50 "/usr/include/c++/4.5/bits/random.h" 3 template _RealType generate_canonical(_UniformRandomNumberGenerator& __g); namespace __detail { template (std::numeric_limits<_UIntType>::digits)> struct _Shift { static const _UIntType __value = 0; }; template struct _Shift<_UIntType, __w, true> { static const _UIntType __value = _UIntType(1) << __w; }; template struct _Mod; template inline _Tp __mod(_Tp __x) { return _Mod<_Tp, __m, __a, __c, __m == 0>::__calc(__x); } template struct _Adaptor { public: _Adaptor(_Engine& __g) : _M_g(__g) { } _DInputType min() const { return _DInputType(0); } _DInputType max() const { return _DInputType(1); } _DInputType operator()() { return std::generate_canonical<_DInputType, std::numeric_limits<_DInputType>::digits, _Engine>(_M_g); } private: _Engine& _M_g; }; } # 156 "/usr/include/c++/4.5/bits/random.h" 3 template class linear_congruential_engine { static_assert(std::is_unsigned<_UIntType>::value, "template argument " "substituting _UIntType not an unsigned integral type"); static_assert(__m == 0u || (__a < __m && __c < __m), "template argument substituting __m out of bounds"); public: typedef _UIntType result_type; static const result_type multiplier = __a; static const result_type increment = __c; static const result_type modulus = __m; static const result_type default_seed = 1u; # 183 "/usr/include/c++/4.5/bits/random.h" 3 explicit linear_congruential_engine(result_type __s = default_seed) { seed(__s); } template::value> ::type> explicit linear_congruential_engine(_Sseq& __q) { seed(__q); } void seed(result_type __s = default_seed); # 216 "/usr/include/c++/4.5/bits/random.h" 3 template typename std::enable_if::value>::type seed(_Sseq& __q); # 228 "/usr/include/c++/4.5/bits/random.h" 3 result_type min() const { return __c == 0u ? 1u : 0u; } result_type max() const { return __m - 1u; } void discard(unsigned long long __z) { for (; __z != 0ULL; --__z) (*this)(); } result_type operator()() { _M_x = __detail::__mod<_UIntType, __m, __a, __c>(_M_x); return _M_x; } # 274 "/usr/include/c++/4.5/bits/random.h" 3 friend bool operator==(const linear_congruential_engine& __lhs, const linear_congruential_engine& __rhs) { return __lhs._M_x == __rhs._M_x; } # 287 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::linear_congruential_engine<_UIntType1, __a1, __c1, __m1>&); # 307 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::linear_congruential_engine<_UIntType1, __a1, __c1, __m1>&); private: _UIntType _M_x; }; # 329 "/usr/include/c++/4.5/bits/random.h" 3 template inline bool operator!=(const std::linear_congruential_engine<_UIntType, __a, __c, __m>& __lhs, const std::linear_congruential_engine<_UIntType, __a, __c, __m>& __rhs) { return !(__lhs == __rhs); } # 363 "/usr/include/c++/4.5/bits/random.h" 3 template class mersenne_twister_engine { static_assert(std::is_unsigned<_UIntType>::value, "template argument " "substituting _UIntType not an unsigned integral type"); static_assert(1u <= __m && __m <= __n, "template argument substituting __m out of bounds"); static_assert(__r <= __w, "template argument substituting " "__r out of bound"); static_assert(__u <= __w, "template argument substituting " "__u out of bound"); static_assert(__s <= __w, "template argument substituting " "__s out of bound"); static_assert(__t <= __w, "template argument substituting " "__t out of bound"); static_assert(__l <= __w, "template argument substituting " "__l out of bound"); static_assert(__w <= std::numeric_limits<_UIntType>::digits, "template argument substituting __w out of bound"); static_assert(__a <= (__detail::_Shift<_UIntType, __w>::__value - 1), "template argument substituting __a out of bound"); static_assert(__b <= (__detail::_Shift<_UIntType, __w>::__value - 1), "template argument substituting __b out of bound"); static_assert(__c <= (__detail::_Shift<_UIntType, __w>::__value - 1), "template argument substituting __c out of bound"); static_assert(__d <= (__detail::_Shift<_UIntType, __w>::__value - 1), "template argument substituting __d out of bound"); static_assert(__f <= (__detail::_Shift<_UIntType, __w>::__value - 1), "template argument substituting __f out of bound"); public: typedef _UIntType result_type; static const size_t word_size = __w; static const size_t state_size = __n; static const size_t shift_size = __m; static const size_t mask_bits = __r; static const result_type xor_mask = __a; static const size_t tempering_u = __u; static const result_type tempering_d = __d; static const size_t tempering_s = __s; static const result_type tempering_b = __b; static const size_t tempering_t = __t; static const result_type tempering_c = __c; static const size_t tempering_l = __l; static const result_type initialization_multiplier = __f; static const result_type default_seed = 5489u; explicit mersenne_twister_engine(result_type __sd = default_seed) { seed(__sd); } template::value> ::type> explicit mersenne_twister_engine(_Sseq& __q) { seed(__q); } void seed(result_type __sd = default_seed); template typename std::enable_if::value>::type seed(_Sseq& __q); result_type min() const { return 0; }; result_type max() const { return __detail::_Shift<_UIntType, __w>::__value - 1; } void discard(unsigned long long __z) { for (; __z != 0ULL; --__z) (*this)(); } result_type operator()(); # 487 "/usr/include/c++/4.5/bits/random.h" 3 friend bool operator==(const mersenne_twister_engine& __lhs, const mersenne_twister_engine& __rhs) { return std::equal(__lhs._M_x, __lhs._M_x + state_size, __rhs._M_x); } # 504 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::mersenne_twister_engine<_UIntType1, __w1, __n1, __m1, __r1, __a1, __u1, __d1, __s1, __b1, __t1, __c1, __l1, __f1>&); # 530 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::mersenne_twister_engine<_UIntType1, __w1, __n1, __m1, __r1, __a1, __u1, __d1, __s1, __b1, __t1, __c1, __l1, __f1>&); private: _UIntType _M_x[state_size]; size_t _M_p; }; # 561 "/usr/include/c++/4.5/bits/random.h" 3 template inline bool operator!=(const std::mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>& __lhs, const std::mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>& __rhs) { return !(__lhs == __rhs); } # 593 "/usr/include/c++/4.5/bits/random.h" 3 template class subtract_with_carry_engine { static_assert(std::is_unsigned<_UIntType>::value, "template argument " "substituting _UIntType not an unsigned integral type"); static_assert(0u < __s && __s < __r, "template argument substituting __s out of bounds"); static_assert(0u < __w && __w <= std::numeric_limits<_UIntType>::digits, "template argument substituting __w out of bounds"); public: typedef _UIntType result_type; static const size_t word_size = __w; static const size_t short_lag = __s; static const size_t long_lag = __r; static const result_type default_seed = 19780503u; explicit subtract_with_carry_engine(result_type __sd = default_seed) { seed(__sd); } template::value> ::type> explicit subtract_with_carry_engine(_Sseq& __q) { seed(__q); } # 646 "/usr/include/c++/4.5/bits/random.h" 3 void seed(result_type __sd = default_seed); template typename std::enable_if::value>::type seed(_Sseq& __q); result_type min() const { return 0; } result_type max() const { return __detail::_Shift<_UIntType, __w>::__value - 1; } void discard(unsigned long long __z) { for (; __z != 0ULL; --__z) (*this)(); } result_type operator()(); # 707 "/usr/include/c++/4.5/bits/random.h" 3 friend bool operator==(const subtract_with_carry_engine& __lhs, const subtract_with_carry_engine& __rhs) { return std::equal(__lhs._M_x, __lhs._M_x + long_lag, __rhs._M_x); } # 724 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::subtract_with_carry_engine<_UIntType1, __w1, __s1, __r1>&); # 743 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::subtract_with_carry_engine<_UIntType1, __w1, __s1, __r1>&); private: _UIntType _M_x[long_lag]; _UIntType _M_carry; size_t _M_p; }; # 768 "/usr/include/c++/4.5/bits/random.h" 3 template inline bool operator!=(const std::subtract_with_carry_engine<_UIntType, __w, __s, __r>& __lhs, const std::subtract_with_carry_engine<_UIntType, __w, __s, __r>& __rhs) { return !(__lhs == __rhs); } # 783 "/usr/include/c++/4.5/bits/random.h" 3 template class discard_block_engine { static_assert(1 <= __r && __r <= __p, "template argument substituting __r out of bounds"); public: typedef typename _RandomNumberEngine::result_type result_type; static const size_t block_size = __p; static const size_t used_block = __r; discard_block_engine() : _M_b(), _M_n(0) { } explicit discard_block_engine(const _RandomNumberEngine& __rne) : _M_b(__rne), _M_n(0) { } explicit discard_block_engine(_RandomNumberEngine&& __rne) : _M_b(std::move(__rne)), _M_n(0) { } explicit discard_block_engine(result_type __s) : _M_b(__s), _M_n(0) { } template::value && !std::is_same<_Sseq, _RandomNumberEngine>::value> ::type> explicit discard_block_engine(_Sseq& __q) : _M_b(__q), _M_n(0) { } void seed() { _M_b.seed(); _M_n = 0; } void seed(result_type __s) { _M_b.seed(__s); _M_n = 0; } template void seed(_Sseq& __q) { _M_b.seed(__q); _M_n = 0; } const _RandomNumberEngine& base() const { return _M_b; } result_type min() const { return _M_b.min(); } result_type max() const { return _M_b.max(); } void discard(unsigned long long __z) { for (; __z != 0ULL; --__z) (*this)(); } result_type operator()(); # 939 "/usr/include/c++/4.5/bits/random.h" 3 friend bool operator==(const discard_block_engine& __lhs, const discard_block_engine& __rhs) { return __lhs._M_b == __rhs._M_b && __lhs._M_n == __rhs._M_n; } # 955 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::discard_block_engine<_RandomNumberEngine1, __p1, __r1>&); # 973 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::discard_block_engine<_RandomNumberEngine1, __p1, __r1>&); private: _RandomNumberEngine _M_b; size_t _M_n; }; # 996 "/usr/include/c++/4.5/bits/random.h" 3 template inline bool operator!=(const std::discard_block_engine<_RandomNumberEngine, __p, __r>& __lhs, const std::discard_block_engine<_RandomNumberEngine, __p, __r>& __rhs) { return !(__lhs == __rhs); } template class independent_bits_engine { static_assert(std::is_unsigned<_UIntType>::value, "template argument " "substituting _UIntType not an unsigned integral type"); static_assert(0u < __w && __w <= std::numeric_limits<_UIntType>::digits, "template argument substituting __w out of bounds"); public: typedef _UIntType result_type; independent_bits_engine() : _M_b() { } explicit independent_bits_engine(const _RandomNumberEngine& __rne) : _M_b(__rne) { } explicit independent_bits_engine(_RandomNumberEngine&& __rne) : _M_b(std::move(__rne)) { } explicit independent_bits_engine(result_type __s) : _M_b(__s) { } template::value && !std::is_same<_Sseq, _RandomNumberEngine>::value> ::type> explicit independent_bits_engine(_Sseq& __q) : _M_b(__q) { } void seed() { _M_b.seed(); } void seed(result_type __s) { _M_b.seed(__s); } template void seed(_Sseq& __q) { _M_b.seed(__q); } const _RandomNumberEngine& base() const { return _M_b; } result_type min() const { return 0U; } result_type max() const { return __detail::_Shift<_UIntType, __w>::__value - 1; } void discard(unsigned long long __z) { for (; __z != 0ULL; --__z) (*this)(); } result_type operator()(); # 1155 "/usr/include/c++/4.5/bits/random.h" 3 friend bool operator==(const independent_bits_engine& __lhs, const independent_bits_engine& __rhs) { return __lhs._M_b == __rhs._M_b; } # 1172 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, std::independent_bits_engine<_RandomNumberEngine, __w, _UIntType>& __x) { __is >> __x._M_b; return __is; } private: _RandomNumberEngine _M_b; }; # 1198 "/usr/include/c++/4.5/bits/random.h" 3 template inline bool operator!=(const std::independent_bits_engine<_RandomNumberEngine, __w, _UIntType>& __lhs, const std::independent_bits_engine<_RandomNumberEngine, __w, _UIntType>& __rhs) { return !(__lhs == __rhs); } # 1216 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const std::independent_bits_engine<_RandomNumberEngine, __w, _UIntType>& __x) { __os << __x.base(); return __os; } template class shuffle_order_engine { static_assert(1u <= __k, "template argument substituting " "__k out of bound"); public: typedef typename _RandomNumberEngine::result_type result_type; static const size_t table_size = __k; shuffle_order_engine() : _M_b() { _M_initialize(); } explicit shuffle_order_engine(const _RandomNumberEngine& __rne) : _M_b(__rne) { _M_initialize(); } explicit shuffle_order_engine(_RandomNumberEngine&& __rne) : _M_b(std::move(__rne)) { _M_initialize(); } explicit shuffle_order_engine(result_type __s) : _M_b(__s) { _M_initialize(); } template::value && !std::is_same<_Sseq, _RandomNumberEngine>::value> ::type> explicit shuffle_order_engine(_Sseq& __q) : _M_b(__q) { _M_initialize(); } void seed() { _M_b.seed(); _M_initialize(); } void seed(result_type __s) { _M_b.seed(__s); _M_initialize(); } template void seed(_Sseq& __q) { _M_b.seed(__q); _M_initialize(); } const _RandomNumberEngine& base() const { return _M_b; } result_type min() const { return _M_b.min(); } result_type max() const { return _M_b.max(); } void discard(unsigned long long __z) { for (; __z != 0ULL; --__z) (*this)(); } result_type operator()(); # 1390 "/usr/include/c++/4.5/bits/random.h" 3 friend bool operator==(const shuffle_order_engine& __lhs, const shuffle_order_engine& __rhs) { return __lhs._M_b == __rhs._M_b; } # 1406 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::shuffle_order_engine<_RandomNumberEngine1, __k1>&); # 1424 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::shuffle_order_engine<_RandomNumberEngine1, __k1>&); private: void _M_initialize() { for (size_t __i = 0; __i < __k; ++__i) _M_v[__i] = _M_b(); _M_y = _M_b(); } _RandomNumberEngine _M_b; result_type _M_v[__k]; result_type _M_y; }; # 1454 "/usr/include/c++/4.5/bits/random.h" 3 template inline bool operator!=(const std::shuffle_order_engine<_RandomNumberEngine, __k>& __lhs, const std::shuffle_order_engine<_RandomNumberEngine, __k>& __rhs) { return !(__lhs == __rhs); } typedef linear_congruential_engine minstd_rand0; typedef linear_congruential_engine minstd_rand; # 1483 "/usr/include/c++/4.5/bits/random.h" 3 typedef mersenne_twister_engine< uint_fast32_t, 32, 624, 397, 31, 0x9908b0dfUL, 11, 0xffffffffUL, 7, 0x9d2c5680UL, 15, 0xefc60000UL, 18, 1812433253UL> mt19937; typedef mersenne_twister_engine< uint_fast64_t, 64, 312, 156, 31, 0xb5026f5aa96619e9ULL, 29, 0x5555555555555555ULL, 17, 0x71d67fffeda60000ULL, 37, 0xfff7eee000000000ULL, 43, 6364136223846793005ULL> mt19937_64; typedef subtract_with_carry_engine ranlux24_base; typedef subtract_with_carry_engine ranlux48_base; typedef discard_block_engine ranlux24; typedef discard_block_engine ranlux48; typedef shuffle_order_engine knuth_b; typedef minstd_rand0 default_random_engine; class random_device { public: typedef unsigned int result_type; explicit random_device(const std::string& __token = "/dev/urandom") { if ((__token != "/dev/urandom" && __token != "/dev/random") || !(_M_file = std::fopen(__token.c_str(), "rb"))) std::__throw_runtime_error(("random_device::" "random_device(const std::string&)") ); } ~random_device() { std::fclose(_M_file); } # 1570 "/usr/include/c++/4.5/bits/random.h" 3 result_type min() const { return std::numeric_limits::min(); } result_type max() const { return std::numeric_limits::max(); } double entropy() const { return 0.0; } result_type operator()() { result_type __ret; std::fread(reinterpret_cast(&__ret), sizeof(result_type), 1, _M_file); return __ret; } random_device(const random_device&) = delete; void operator=(const random_device&) = delete; private: FILE* _M_file; }; # 1627 "/usr/include/c++/4.5/bits/random.h" 3 template class uniform_int_distribution { static_assert(std::is_integral<_IntType>::value, "template argument not an integral type"); public: typedef _IntType result_type; struct param_type { typedef uniform_int_distribution<_IntType> distribution_type; explicit param_type(_IntType __a = 0, _IntType __b = std::numeric_limits<_IntType>::max()) : _M_a(__a), _M_b(__b) { ; } result_type a() const { return _M_a; } result_type b() const { return _M_b; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } private: _IntType _M_a; _IntType _M_b; }; public: explicit uniform_int_distribution(_IntType __a = 0, _IntType __b = std::numeric_limits<_IntType>::max()) : _M_param(__a, __b) { } explicit uniform_int_distribution(const param_type& __p) : _M_param(__p) { } void reset() { } result_type a() const { return _M_param.a(); } result_type b() const { return _M_param.b(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return this->a(); } result_type max() const { return this->b(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); param_type _M_param; }; template inline bool operator==(const std::uniform_int_distribution<_IntType>& __d1, const std::uniform_int_distribution<_IntType>& __d2) { return __d1.param() == __d2.param(); } template inline bool operator!=(const std::uniform_int_distribution<_IntType>& __d1, const std::uniform_int_distribution<_IntType>& __d2) { return !(__d1 == __d2); } # 1772 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::uniform_int_distribution<_IntType>&); # 1786 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::uniform_int_distribution<_IntType>&); # 1799 "/usr/include/c++/4.5/bits/random.h" 3 template class uniform_real_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef uniform_real_distribution<_RealType> distribution_type; explicit param_type(_RealType __a = _RealType(0), _RealType __b = _RealType(1)) : _M_a(__a), _M_b(__b) { ; } result_type a() const { return _M_a; } result_type b() const { return _M_b; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } private: _RealType _M_a; _RealType _M_b; }; public: explicit uniform_real_distribution(_RealType __a = _RealType(0), _RealType __b = _RealType(1)) : _M_param(__a, __b) { } explicit uniform_real_distribution(const param_type& __p) : _M_param(__p) { } void reset() { } result_type a() const { return _M_param.a(); } result_type b() const { return _M_param.b(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return this->a(); } result_type max() const { return this->b(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p) { __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> __aurng(__urng); return (__aurng() * (__p.b() - __p.a())) + __p.a(); } private: param_type _M_param; }; template inline bool operator==(const std::uniform_real_distribution<_IntType>& __d1, const std::uniform_real_distribution<_IntType>& __d2) { return __d1.param() == __d2.param(); } template inline bool operator!=(const std::uniform_real_distribution<_IntType>& __d1, const std::uniform_real_distribution<_IntType>& __d2) { return !(__d1 == __d2); } # 1953 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::uniform_real_distribution<_RealType>&); # 1967 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::uniform_real_distribution<_RealType>&); # 1989 "/usr/include/c++/4.5/bits/random.h" 3 template class normal_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef normal_distribution<_RealType> distribution_type; explicit param_type(_RealType __mean = _RealType(0), _RealType __stddev = _RealType(1)) : _M_mean(__mean), _M_stddev(__stddev) { ; } _RealType mean() const { return _M_mean; } _RealType stddev() const { return _M_stddev; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return (__p1._M_mean == __p2._M_mean && __p1._M_stddev == __p2._M_stddev); } private: _RealType _M_mean; _RealType _M_stddev; }; public: explicit normal_distribution(result_type __mean = result_type(0), result_type __stddev = result_type(1)) : _M_param(__mean, __stddev), _M_saved_available(false) { } explicit normal_distribution(const param_type& __p) : _M_param(__p), _M_saved_available(false) { } void reset() { _M_saved_available = false; } _RealType mean() const { return _M_param.mean(); } _RealType stddev() const { return _M_param.stddev(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return std::numeric_limits::min(); } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); template friend bool operator==(const std::normal_distribution<_RealType1>& __d1, const std::normal_distribution<_RealType1>& __d2); # 2128 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::normal_distribution<_RealType1>&); # 2143 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::normal_distribution<_RealType1>&); private: param_type _M_param; result_type _M_saved; bool _M_saved_available; }; template inline bool operator!=(const std::normal_distribution<_RealType>& __d1, const std::normal_distribution<_RealType>& __d2) { return !(__d1 == __d2); } # 2173 "/usr/include/c++/4.5/bits/random.h" 3 template class lognormal_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef lognormal_distribution<_RealType> distribution_type; explicit param_type(_RealType __m = _RealType(0), _RealType __s = _RealType(1)) : _M_m(__m), _M_s(__s) { } _RealType m() const { return _M_m; } _RealType s() const { return _M_s; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_m == __p2._M_m && __p1._M_s == __p2._M_s; } private: _RealType _M_m; _RealType _M_s; }; explicit lognormal_distribution(_RealType __m = _RealType(0), _RealType __s = _RealType(1)) : _M_param(__m, __s), _M_nd() { } explicit lognormal_distribution(const param_type& __p) : _M_param(__p), _M_nd() { } void reset() { _M_nd.reset(); } _RealType m() const { return _M_param.m(); } _RealType s() const { return _M_param.s(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return result_type(0); } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p) { return std::exp(__p.s() * _M_nd(__urng) + __p.m()); } template friend bool operator==(const std::lognormal_distribution<_RealType1>& __d1, const std::lognormal_distribution<_RealType1>& __d2) { return (__d1.param() == __d2.param() && __d1._M_nd == __d2._M_nd); } # 2304 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::lognormal_distribution<_RealType1>&); # 2319 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::lognormal_distribution<_RealType1>&); private: param_type _M_param; std::normal_distribution _M_nd; }; template inline bool operator!=(const std::lognormal_distribution<_RealType>& __d1, const std::lognormal_distribution<_RealType>& __d2) { return !(__d1 == __d2); } # 2349 "/usr/include/c++/4.5/bits/random.h" 3 template class gamma_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef gamma_distribution<_RealType> distribution_type; friend class gamma_distribution<_RealType>; explicit param_type(_RealType __alpha_val = _RealType(1), _RealType __beta_val = _RealType(1)) : _M_alpha(__alpha_val), _M_beta(__beta_val) { ; _M_initialize(); } _RealType alpha() const { return _M_alpha; } _RealType beta() const { return _M_beta; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return (__p1._M_alpha == __p2._M_alpha && __p1._M_beta == __p2._M_beta); } private: void _M_initialize(); _RealType _M_alpha; _RealType _M_beta; _RealType _M_malpha, _M_a2; }; public: explicit gamma_distribution(_RealType __alpha_val = _RealType(1), _RealType __beta_val = _RealType(1)) : _M_param(__alpha_val, __beta_val), _M_nd() { } explicit gamma_distribution(const param_type& __p) : _M_param(__p), _M_nd() { } void reset() { _M_nd.reset(); } _RealType alpha() const { return _M_param.alpha(); } _RealType beta() const { return _M_param.beta(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return result_type(0); } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); template friend bool operator==(const std::gamma_distribution<_RealType1>& __d1, const std::gamma_distribution<_RealType1>& __d2) { return (__d1.param() == __d2.param() && __d1._M_nd == __d2._M_nd); } # 2497 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::gamma_distribution<_RealType1>&); # 2511 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::gamma_distribution<_RealType1>&); private: param_type _M_param; std::normal_distribution _M_nd; }; template inline bool operator!=(const std::gamma_distribution<_RealType>& __d1, const std::gamma_distribution<_RealType>& __d2) { return !(__d1 == __d2); } # 2538 "/usr/include/c++/4.5/bits/random.h" 3 template class chi_squared_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef chi_squared_distribution<_RealType> distribution_type; explicit param_type(_RealType __n = _RealType(1)) : _M_n(__n) { } _RealType n() const { return _M_n; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_n == __p2._M_n; } private: _RealType _M_n; }; explicit chi_squared_distribution(_RealType __n = _RealType(1)) : _M_param(__n), _M_gd(__n / 2) { } explicit chi_squared_distribution(const param_type& __p) : _M_param(__p), _M_gd(__p.n() / 2) { } void reset() { _M_gd.reset(); } _RealType n() const { return _M_param.n(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return result_type(0); } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return 2 * _M_gd(__urng); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p) { typedef typename std::gamma_distribution::param_type param_type; return 2 * _M_gd(__urng, param_type(__p.n() / 2)); } template friend bool operator==(const std::chi_squared_distribution<_RealType1>& __d1, const std::chi_squared_distribution<_RealType1>& __d2) { return __d1.param() == __d2.param() && __d1._M_gd == __d2._M_gd; } # 2661 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::chi_squared_distribution<_RealType1>&); # 2676 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::chi_squared_distribution<_RealType1>&); private: param_type _M_param; std::gamma_distribution _M_gd; }; template inline bool operator!=(const std::chi_squared_distribution<_RealType>& __d1, const std::chi_squared_distribution<_RealType>& __d2) { return !(__d1 == __d2); } # 2703 "/usr/include/c++/4.5/bits/random.h" 3 template class cauchy_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef cauchy_distribution<_RealType> distribution_type; explicit param_type(_RealType __a = _RealType(0), _RealType __b = _RealType(1)) : _M_a(__a), _M_b(__b) { } _RealType a() const { return _M_a; } _RealType b() const { return _M_b; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } private: _RealType _M_a; _RealType _M_b; }; explicit cauchy_distribution(_RealType __a = _RealType(0), _RealType __b = _RealType(1)) : _M_param(__a, __b) { } explicit cauchy_distribution(const param_type& __p) : _M_param(__p) { } void reset() { } _RealType a() const { return _M_param.a(); } _RealType b() const { return _M_param.b(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return std::numeric_limits::min(); } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); private: param_type _M_param; }; template inline bool operator==(const std::cauchy_distribution<_RealType>& __d1, const std::cauchy_distribution<_RealType>& __d2) { return __d1.param() == __d2.param(); } template inline bool operator!=(const std::cauchy_distribution<_RealType>& __d1, const std::cauchy_distribution<_RealType>& __d2) { return !(__d1 == __d2); } # 2845 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::cauchy_distribution<_RealType>&); # 2860 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::cauchy_distribution<_RealType>&); # 2876 "/usr/include/c++/4.5/bits/random.h" 3 template class fisher_f_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef fisher_f_distribution<_RealType> distribution_type; explicit param_type(_RealType __m = _RealType(1), _RealType __n = _RealType(1)) : _M_m(__m), _M_n(__n) { } _RealType m() const { return _M_m; } _RealType n() const { return _M_n; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_m == __p2._M_m && __p1._M_n == __p2._M_n; } private: _RealType _M_m; _RealType _M_n; }; explicit fisher_f_distribution(_RealType __m = _RealType(1), _RealType __n = _RealType(1)) : _M_param(__m, __n), _M_gd_x(__m / 2), _M_gd_y(__n / 2) { } explicit fisher_f_distribution(const param_type& __p) : _M_param(__p), _M_gd_x(__p.m() / 2), _M_gd_y(__p.n() / 2) { } void reset() { _M_gd_x.reset(); _M_gd_y.reset(); } _RealType m() const { return _M_param.m(); } _RealType n() const { return _M_param.n(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return result_type(0); } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return (_M_gd_x(__urng) * n()) / (_M_gd_y(__urng) * m()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p) { typedef typename std::gamma_distribution::param_type param_type; return ((_M_gd_x(__urng, param_type(__p.m() / 2)) * n()) / (_M_gd_y(__urng, param_type(__p.n() / 2)) * m())); } template friend bool operator==(const std::fisher_f_distribution<_RealType1>& __d1, const std::fisher_f_distribution<_RealType1>& __d2) { return (__d1.param() == __d2.param() && __d1._M_gd_x == __d2._M_gd_x && __d1._M_gd_y == __d2._M_gd_y); } # 3016 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::fisher_f_distribution<_RealType1>&); # 3031 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::fisher_f_distribution<_RealType1>&); private: param_type _M_param; std::gamma_distribution _M_gd_x, _M_gd_y; }; template inline bool operator!=(const std::fisher_f_distribution<_RealType>& __d1, const std::fisher_f_distribution<_RealType>& __d2) { return !(__d1 == __d2); } # 3060 "/usr/include/c++/4.5/bits/random.h" 3 template class student_t_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef student_t_distribution<_RealType> distribution_type; explicit param_type(_RealType __n = _RealType(1)) : _M_n(__n) { } _RealType n() const { return _M_n; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_n == __p2._M_n; } private: _RealType _M_n; }; explicit student_t_distribution(_RealType __n = _RealType(1)) : _M_param(__n), _M_nd(), _M_gd(__n / 2, 2) { } explicit student_t_distribution(const param_type& __p) : _M_param(__p), _M_nd(), _M_gd(__p.n() / 2, 2) { } void reset() { _M_nd.reset(); _M_gd.reset(); } _RealType n() const { return _M_param.n(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return std::numeric_limits::min(); } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return _M_nd(__urng) * std::sqrt(n() / _M_gd(__urng)); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p) { typedef typename std::gamma_distribution::param_type param_type; const result_type __g = _M_gd(__urng, param_type(__p.n() / 2, 2)); return _M_nd(__urng) * std::sqrt(__p.n() / __g); } template friend bool operator==(const std::student_t_distribution<_RealType1>& __d1, const std::student_t_distribution<_RealType1>& __d2) { return (__d1.param() == __d2.param() && __d1._M_nd == __d2._M_nd && __d1._M_gd == __d2._M_gd); } # 3189 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::student_t_distribution<_RealType1>&); # 3204 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::student_t_distribution<_RealType1>&); private: param_type _M_param; std::normal_distribution _M_nd; std::gamma_distribution _M_gd; }; template inline bool operator!=(const std::student_t_distribution<_RealType>& __d1, const std::student_t_distribution<_RealType>& __d2) { return !(__d1 == __d2); } # 3240 "/usr/include/c++/4.5/bits/random.h" 3 class bernoulli_distribution { public: typedef bool result_type; struct param_type { typedef bernoulli_distribution distribution_type; explicit param_type(double __p = 0.5) : _M_p(__p) { ; } double p() const { return _M_p; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_p == __p2._M_p; } private: double _M_p; }; public: explicit bernoulli_distribution(double __p = 0.5) : _M_param(__p) { } explicit bernoulli_distribution(const param_type& __p) : _M_param(__p) { } void reset() { } double p() const { return _M_param.p(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return std::numeric_limits::min(); } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p) { __detail::_Adaptor<_UniformRandomNumberGenerator, double> __aurng(__urng); if ((__aurng() - __aurng.min()) < __p.p() * (__aurng.max() - __aurng.min())) return true; return false; } private: param_type _M_param; }; inline bool operator==(const std::bernoulli_distribution& __d1, const std::bernoulli_distribution& __d2) { return __d1.param() == __d2.param(); } inline bool operator!=(const std::bernoulli_distribution& __d1, const std::bernoulli_distribution& __d2) { return !(__d1 == __d2); } # 3383 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::bernoulli_distribution&); # 3397 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, std::bernoulli_distribution& __x) { double __p; __is >> __p; __x.param(bernoulli_distribution::param_type(__p)); return __is; } # 3416 "/usr/include/c++/4.5/bits/random.h" 3 template class binomial_distribution { static_assert(std::is_integral<_IntType>::value, "template argument not an integral type"); public: typedef _IntType result_type; struct param_type { typedef binomial_distribution<_IntType> distribution_type; friend class binomial_distribution<_IntType>; explicit param_type(_IntType __t = _IntType(1), double __p = 0.5) : _M_t(__t), _M_p(__p) { ; _M_initialize(); } _IntType t() const { return _M_t; } double p() const { return _M_p; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_t == __p2._M_t && __p1._M_p == __p2._M_p; } private: void _M_initialize(); _IntType _M_t; double _M_p; double _M_q; double _M_d1, _M_d2, _M_s1, _M_s2, _M_c, _M_a1, _M_a123, _M_s, _M_lf, _M_lp1p; bool _M_easy; }; explicit binomial_distribution(_IntType __t = _IntType(1), double __p = 0.5) : _M_param(__t, __p), _M_nd() { } explicit binomial_distribution(const param_type& __p) : _M_param(__p), _M_nd() { } void reset() { _M_nd.reset(); } _IntType t() const { return _M_param.t(); } double p() const { return _M_param.p(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return 0; } result_type max() const { return _M_param.t(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); template friend bool operator==(const std::binomial_distribution<_IntType1>& __d1, const std::binomial_distribution<_IntType1>& __d2) { return __d1.param() == __d2.param() && __d1._M_nd == __d2._M_nd; } # 3568 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::binomial_distribution<_IntType1>&); # 3584 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::binomial_distribution<_IntType1>&); private: template result_type _M_waiting(_UniformRandomNumberGenerator& __urng, _IntType __t); param_type _M_param; std::normal_distribution _M_nd; }; template inline bool operator!=(const std::binomial_distribution<_IntType>& __d1, const std::binomial_distribution<_IntType>& __d2) { return !(__d1 == __d2); } # 3618 "/usr/include/c++/4.5/bits/random.h" 3 template class geometric_distribution { static_assert(std::is_integral<_IntType>::value, "template argument not an integral type"); public: typedef _IntType result_type; struct param_type { typedef geometric_distribution<_IntType> distribution_type; friend class geometric_distribution<_IntType>; explicit param_type(double __p = 0.5) : _M_p(__p) { ; _M_initialize(); } double p() const { return _M_p; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_p == __p2._M_p; } private: void _M_initialize() { _M_log_p = std::log(_M_p); } double _M_p; double _M_log_p; }; explicit geometric_distribution(double __p = 0.5) : _M_param(__p) { } explicit geometric_distribution(const param_type& __p) : _M_param(__p) { } void reset() { } double p() const { return _M_param.p(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return 0; } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); private: param_type _M_param; }; template inline bool operator==(const std::geometric_distribution<_IntType>& __d1, const std::geometric_distribution<_IntType>& __d2) { return __d1.param() == __d2.param(); } template inline bool operator!=(const std::geometric_distribution<_IntType>& __d1, const std::geometric_distribution<_IntType>& __d2) { return !(__d1 == __d2); } # 3762 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::geometric_distribution<_IntType>&); # 3777 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::geometric_distribution<_IntType>&); # 3791 "/usr/include/c++/4.5/bits/random.h" 3 template class negative_binomial_distribution { static_assert(std::is_integral<_IntType>::value, "template argument not an integral type"); public: typedef _IntType result_type; struct param_type { typedef negative_binomial_distribution<_IntType> distribution_type; explicit param_type(_IntType __k = 1, double __p = 0.5) : _M_k(__k), _M_p(__p) { } _IntType k() const { return _M_k; } double p() const { return _M_p; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_k == __p2._M_k && __p1._M_p == __p2._M_p; } private: _IntType _M_k; double _M_p; }; explicit negative_binomial_distribution(_IntType __k = 1, double __p = 0.5) : _M_param(__k, __p), _M_gd(__k, __p / (1.0 - __p)) { } explicit negative_binomial_distribution(const param_type& __p) : _M_param(__p), _M_gd(__p.k(), __p.p() / (1.0 - __p.p())) { } void reset() { _M_gd.reset(); } _IntType k() const { return _M_param.k(); } double p() const { return _M_param.p(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return result_type(0); } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng); template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); template friend bool operator==(const std::negative_binomial_distribution<_IntType1>& __d1, const std::negative_binomial_distribution<_IntType1>& __d2) { return __d1.param() == __d2.param() && __d1._M_gd == __d2._M_gd; } # 3921 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::negative_binomial_distribution<_IntType1>&); # 3936 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::negative_binomial_distribution<_IntType1>&); private: param_type _M_param; std::gamma_distribution _M_gd; }; template inline bool operator!=(const std::negative_binomial_distribution<_IntType>& __d1, const std::negative_binomial_distribution<_IntType>& __d2) { return !(__d1 == __d2); } # 3972 "/usr/include/c++/4.5/bits/random.h" 3 template class poisson_distribution { static_assert(std::is_integral<_IntType>::value, "template argument not an integral type"); public: typedef _IntType result_type; struct param_type { typedef poisson_distribution<_IntType> distribution_type; friend class poisson_distribution<_IntType>; explicit param_type(double __mean = 1.0) : _M_mean(__mean) { ; _M_initialize(); } double mean() const { return _M_mean; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_mean == __p2._M_mean; } private: void _M_initialize(); double _M_mean; double _M_lm_thr; double _M_lfm, _M_sm, _M_d, _M_scx, _M_1cx, _M_c2b, _M_cb; }; explicit poisson_distribution(double __mean = 1.0) : _M_param(__mean), _M_nd() { } explicit poisson_distribution(const param_type& __p) : _M_param(__p), _M_nd() { } void reset() { _M_nd.reset(); } double mean() const { return _M_param.mean(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return 0; } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); template friend bool operator==(const std::poisson_distribution<_IntType1>& __d1, const std::poisson_distribution<_IntType1>& __d2) { return __d1.param() == __d2.param() && __d1._M_nd == __d2._M_nd; } # 4108 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::poisson_distribution<_IntType1>&); # 4123 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::poisson_distribution<_IntType1>&); private: param_type _M_param; std::normal_distribution _M_nd; }; template inline bool operator!=(const std::poisson_distribution<_IntType>& __d1, const std::poisson_distribution<_IntType>& __d2) { return !(__d1 == __d2); } # 4160 "/usr/include/c++/4.5/bits/random.h" 3 template class exponential_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef exponential_distribution<_RealType> distribution_type; explicit param_type(_RealType __lambda = _RealType(1)) : _M_lambda(__lambda) { ; } _RealType lambda() const { return _M_lambda; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_lambda == __p2._M_lambda; } private: _RealType _M_lambda; }; public: explicit exponential_distribution(const result_type& __lambda = result_type(1)) : _M_param(__lambda) { } explicit exponential_distribution(const param_type& __p) : _M_param(__p) { } void reset() { } _RealType lambda() const { return _M_param.lambda(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return result_type(0); } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p) { __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> __aurng(__urng); return -std::log(__aurng()) / __p.lambda(); } private: param_type _M_param; }; template inline bool operator==(const std::exponential_distribution<_RealType>& __d1, const std::exponential_distribution<_RealType>& __d2) { return __d1.param() == __d2.param(); } template inline bool operator!=(const std::exponential_distribution<_RealType>& __d1, const std::exponential_distribution<_RealType>& __d2) { return !(__d1 == __d2); } # 4304 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::exponential_distribution<_RealType>&); # 4319 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::exponential_distribution<_RealType>&); # 4334 "/usr/include/c++/4.5/bits/random.h" 3 template class weibull_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef weibull_distribution<_RealType> distribution_type; explicit param_type(_RealType __a = _RealType(1), _RealType __b = _RealType(1)) : _M_a(__a), _M_b(__b) { } _RealType a() const { return _M_a; } _RealType b() const { return _M_b; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } private: _RealType _M_a; _RealType _M_b; }; explicit weibull_distribution(_RealType __a = _RealType(1), _RealType __b = _RealType(1)) : _M_param(__a, __b) { } explicit weibull_distribution(const param_type& __p) : _M_param(__p) { } void reset() { } _RealType a() const { return _M_param.a(); } _RealType b() const { return _M_param.b(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return result_type(0); } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); private: param_type _M_param; }; template inline bool operator==(const std::weibull_distribution<_RealType>& __d1, const std::weibull_distribution<_RealType>& __d2) { return __d1.param() == __d2.param(); } template inline bool operator!=(const std::weibull_distribution<_RealType>& __d1, const std::weibull_distribution<_RealType>& __d2) { return !(__d1 == __d2); } # 4479 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::weibull_distribution<_RealType>&); # 4494 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::weibull_distribution<_RealType>&); # 4509 "/usr/include/c++/4.5/bits/random.h" 3 template class extreme_value_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef extreme_value_distribution<_RealType> distribution_type; explicit param_type(_RealType __a = _RealType(0), _RealType __b = _RealType(1)) : _M_a(__a), _M_b(__b) { } _RealType a() const { return _M_a; } _RealType b() const { return _M_b; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } private: _RealType _M_a; _RealType _M_b; }; explicit extreme_value_distribution(_RealType __a = _RealType(0), _RealType __b = _RealType(1)) : _M_param(__a, __b) { } explicit extreme_value_distribution(const param_type& __p) : _M_param(__p) { } void reset() { } _RealType a() const { return _M_param.a(); } _RealType b() const { return _M_param.b(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return std::numeric_limits::min(); } result_type max() const { return std::numeric_limits::max(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); private: param_type _M_param; }; template inline bool operator==(const std::extreme_value_distribution<_RealType>& __d1, const std::extreme_value_distribution<_RealType>& __d2) { return __d1.param() == __d2.param(); } template inline bool operator!=(const std::extreme_value_distribution<_RealType>& __d1, const std::extreme_value_distribution<_RealType>& __d2) { return !(__d1 == __d2); } # 4654 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::extreme_value_distribution<_RealType>&); # 4669 "/usr/include/c++/4.5/bits/random.h" 3 template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::extreme_value_distribution<_RealType>&); # 4681 "/usr/include/c++/4.5/bits/random.h" 3 template class discrete_distribution { static_assert(std::is_integral<_IntType>::value, "template argument not an integral type"); public: typedef _IntType result_type; struct param_type { typedef discrete_distribution<_IntType> distribution_type; friend class discrete_distribution<_IntType>; param_type() : _M_prob(), _M_cp() { _M_initialize(); } template param_type(_InputIterator __wbegin, _InputIterator __wend) : _M_prob(__wbegin, __wend), _M_cp() { _M_initialize(); } param_type(initializer_list __wil) : _M_prob(__wil.begin(), __wil.end()), _M_cp() { _M_initialize(); } template param_type(size_t __nw, double __xmin, double __xmax, _Func __fw); std::vector probabilities() const { return _M_prob; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_prob == __p2._M_prob; } private: void _M_initialize(); std::vector _M_prob; std::vector _M_cp; }; discrete_distribution() : _M_param() { } template discrete_distribution(_InputIterator __wbegin, _InputIterator __wend) : _M_param(__wbegin, __wend) { } discrete_distribution(initializer_list __wl) : _M_param(__wl) { } template discrete_distribution(size_t __nw, double __xmin, double __xmax, _Func __fw) : _M_param(__nw, __xmin, __xmax, __fw) { } explicit discrete_distribution(const param_type& __p) : _M_param(__p) { } void reset() { } std::vector probabilities() const { return _M_param.probabilities(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return result_type(0); } result_type max() const { return this->_M_param._M_prob.size() - 1; } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); # 4821 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::discrete_distribution<_IntType1>&); # 4837 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::discrete_distribution<_IntType1>&); private: param_type _M_param; }; template inline bool operator==(const std::discrete_distribution<_IntType>& __d1, const std::discrete_distribution<_IntType>& __d2) { return __d1.param() == __d2.param(); } template inline bool operator!=(const std::discrete_distribution<_IntType>& __d1, const std::discrete_distribution<_IntType>& __d2) { return !(__d1 == __d2); } # 4873 "/usr/include/c++/4.5/bits/random.h" 3 template class piecewise_constant_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef piecewise_constant_distribution<_RealType> distribution_type; friend class piecewise_constant_distribution<_RealType>; param_type() : _M_int(), _M_den(), _M_cp() { _M_initialize(); } template param_type(_InputIteratorB __bfirst, _InputIteratorB __bend, _InputIteratorW __wbegin); template param_type(initializer_list<_RealType> __bi, _Func __fw); template param_type(size_t __nw, _RealType __xmin, _RealType __xmax, _Func __fw); std::vector<_RealType> intervals() const { return _M_int; } std::vector densities() const { return _M_den; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return __p1._M_int == __p2._M_int && __p1._M_den == __p2._M_den; } private: void _M_initialize(); std::vector<_RealType> _M_int; std::vector _M_den; std::vector _M_cp; }; explicit piecewise_constant_distribution() : _M_param() { } template piecewise_constant_distribution(_InputIteratorB __bfirst, _InputIteratorB __bend, _InputIteratorW __wbegin) : _M_param(__bfirst, __bend, __wbegin) { } template piecewise_constant_distribution(initializer_list<_RealType> __bl, _Func __fw) : _M_param(__bl, __fw) { } template piecewise_constant_distribution(size_t __nw, _RealType __xmin, _RealType __xmax, _Func __fw) : _M_param(__nw, __xmin, __xmax, __fw) { } explicit piecewise_constant_distribution(const param_type& __p) : _M_param(__p) { } void reset() { } std::vector<_RealType> intervals() const { return _M_param.intervals(); } std::vector densities() const { return _M_param.densities(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return this->_M_param._M_int.front(); } result_type max() const { return this->_M_param._M_int.back(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); # 5029 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::piecewise_constant_distribution<_RealType1>&); # 5045 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::piecewise_constant_distribution<_RealType1>&); private: param_type _M_param; }; template inline bool operator==(const std::piecewise_constant_distribution<_RealType>& __d1, const std::piecewise_constant_distribution<_RealType>& __d2) { return __d1.param() == __d2.param(); } template inline bool operator!=(const std::piecewise_constant_distribution<_RealType>& __d1, const std::piecewise_constant_distribution<_RealType>& __d2) { return !(__d1 == __d2); } # 5081 "/usr/include/c++/4.5/bits/random.h" 3 template class piecewise_linear_distribution { static_assert(std::is_floating_point<_RealType>::value, "template argument not a floating point type"); public: typedef _RealType result_type; struct param_type { typedef piecewise_linear_distribution<_RealType> distribution_type; friend class piecewise_linear_distribution<_RealType>; param_type() : _M_int(), _M_den(), _M_cp(), _M_m() { _M_initialize(); } template param_type(_InputIteratorB __bfirst, _InputIteratorB __bend, _InputIteratorW __wbegin); template param_type(initializer_list<_RealType> __bl, _Func __fw); template param_type(size_t __nw, _RealType __xmin, _RealType __xmax, _Func __fw); std::vector<_RealType> intervals() const { return _M_int; } std::vector densities() const { return _M_den; } friend bool operator==(const param_type& __p1, const param_type& __p2) { return (__p1._M_int == __p2._M_int && __p1._M_den == __p2._M_den); } private: void _M_initialize(); std::vector<_RealType> _M_int; std::vector _M_den; std::vector _M_cp; std::vector _M_m; }; explicit piecewise_linear_distribution() : _M_param() { } template piecewise_linear_distribution(_InputIteratorB __bfirst, _InputIteratorB __bend, _InputIteratorW __wbegin) : _M_param(__bfirst, __bend, __wbegin) { } template piecewise_linear_distribution(initializer_list<_RealType> __bl, _Func __fw) : _M_param(__bl, __fw) { } template piecewise_linear_distribution(size_t __nw, _RealType __xmin, _RealType __xmax, _Func __fw) : _M_param(__nw, __xmin, __xmax, __fw) { } explicit piecewise_linear_distribution(const param_type& __p) : _M_param(__p) { } void reset() { } std::vector<_RealType> intervals() const { return _M_param.intervals(); } std::vector densities() const { return _M_param.densities(); } param_type param() const { return _M_param; } void param(const param_type& __param) { _M_param = __param; } result_type min() const { return this->_M_param._M_int.front(); } result_type max() const { return this->_M_param._M_int.back(); } template result_type operator()(_UniformRandomNumberGenerator& __urng) { return this->operator()(__urng, this->param()); } template result_type operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p); # 5240 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>&, const std::piecewise_linear_distribution<_RealType1>&); # 5256 "/usr/include/c++/4.5/bits/random.h" 3 template friend std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>&, std::piecewise_linear_distribution<_RealType1>&); private: param_type _M_param; }; template inline bool operator==(const std::piecewise_linear_distribution<_RealType>& __d1, const std::piecewise_linear_distribution<_RealType>& __d2) { return __d1.param() == __d2.param(); } template inline bool operator!=(const std::piecewise_linear_distribution<_RealType>& __d1, const std::piecewise_linear_distribution<_RealType>& __d2) { return !(__d1 == __d2); } # 5300 "/usr/include/c++/4.5/bits/random.h" 3 class seed_seq { public: typedef uint_least32_t result_type; seed_seq() : _M_v() { } template seed_seq(std::initializer_list<_IntType> il); template seed_seq(_InputIterator __begin, _InputIterator __end); template void generate(_RandomAccessIterator __begin, _RandomAccessIterator __end); size_t size() const { return _M_v.size(); } template void param(OutputIterator __dest) const { std::copy(_M_v.begin(), _M_v.end(), __dest); } private: std::vector _M_v; }; } # 52 "/usr/include/c++/4.5/random" 2 3 # 1 "/usr/include/c++/4.5/bits/random.tcc" 1 3 # 30 "/usr/include/c++/4.5/bits/random.tcc" 3 # 1 "/usr/include/c++/4.5/numeric" 1 3 # 58 "/usr/include/c++/4.5/numeric" 3 # 59 "/usr/include/c++/4.5/numeric" 3 # 1 "/usr/include/c++/4.5/bits/stl_numeric.h" 1 3 # 66 "/usr/include/c++/4.5/bits/stl_numeric.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 79 "/usr/include/c++/4.5/bits/stl_numeric.h" 3 template void iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value) { ; for (; __first != __last; ++__first) { *__first = __value; ++__value; } } } namespace std __attribute__ ((__visibility__ ("default"))) { # 114 "/usr/include/c++/4.5/bits/stl_numeric.h" 3 template inline _Tp accumulate(_InputIterator __first, _InputIterator __last, _Tp __init) { ; for (; __first != __last; ++__first) __init = __init + *__first; return __init; } # 140 "/usr/include/c++/4.5/bits/stl_numeric.h" 3 template inline _Tp accumulate(_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation __binary_op) { ; for (; __first != __last; ++__first) __init = __binary_op(__init, *__first); return __init; } # 168 "/usr/include/c++/4.5/bits/stl_numeric.h" 3 template inline _Tp inner_product(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init) { ; for (; __first1 != __last1; ++__first1, ++__first2) __init = __init + (*__first1 * *__first2); return __init; } # 199 "/usr/include/c++/4.5/bits/stl_numeric.h" 3 template inline _Tp inner_product(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init, _BinaryOperation1 __binary_op1, _BinaryOperation2 __binary_op2) { ; for (; __first1 != __last1; ++__first1, ++__first2) __init = __binary_op1(__init, __binary_op2(*__first1, *__first2)); return __init; } # 231 "/usr/include/c++/4.5/bits/stl_numeric.h" 3 template _OutputIterator partial_sum(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator>::value_type _ValueType; ; if (__first == __last) return __result; _ValueType __value = *__first; *__result = __value; while (++__first != __last) { __value = __value + *__first; *++__result = __value; } return ++__result; } # 270 "/usr/include/c++/4.5/bits/stl_numeric.h" 3 template _OutputIterator partial_sum(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryOperation __binary_op) { typedef typename iterator_traits<_InputIterator>::value_type _ValueType; ; if (__first == __last) return __result; _ValueType __value = *__first; *__result = __value; while (++__first != __last) { __value = __binary_op(__value, *__first); *++__result = __value; } return ++__result; } # 310 "/usr/include/c++/4.5/bits/stl_numeric.h" 3 template _OutputIterator adjacent_difference(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator>::value_type _ValueType; ; if (__first == __last) return __result; _ValueType __value = *__first; *__result = __value; while (++__first != __last) { _ValueType __tmp = *__first; *++__result = __tmp - __value; __value = std::move(__tmp); } return ++__result; } # 351 "/usr/include/c++/4.5/bits/stl_numeric.h" 3 template _OutputIterator adjacent_difference(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryOperation __binary_op) { typedef typename iterator_traits<_InputIterator>::value_type _ValueType; ; if (__first == __last) return __result; _ValueType __value = *__first; *__result = __value; while (++__first != __last) { _ValueType __tmp = *__first; *++__result = __binary_op(__tmp, __value); __value = std::move(__tmp); } return ++__result; } } # 63 "/usr/include/c++/4.5/numeric" 2 3 # 31 "/usr/include/c++/4.5/bits/random.tcc" 2 3 namespace std { namespace __detail { # 47 "/usr/include/c++/4.5/bits/random.tcc" 3 template struct _Mod { static _Tp __calc(_Tp __x) { if (__a == 1) __x %= __m; else { static const _Tp __q = __m / __a; static const _Tp __r = __m % __a; _Tp __t1 = __a * (__x % __q); _Tp __t2 = __r * (__x / __q); if (__t1 >= __t2) __x = __t1 - __t2; else __x = __m - __t2 + __t1; } if (__c != 0) { const _Tp __d = __m - __x; if (__d > __c) __x += __c; else __x = __c - __d; } return __x; } }; template struct _Mod<_Tp, __m, __a, __c, true> { static _Tp __calc(_Tp __x) { return __a * __x + __c; } }; template _OutputIterator __transform(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __unary_op) { for (; __first != __last; ++__first, ++__result) *__result = __unary_op(*__first); return __result; } } template const _UIntType linear_congruential_engine<_UIntType, __a, __c, __m>::multiplier; template const _UIntType linear_congruential_engine<_UIntType, __a, __c, __m>::increment; template const _UIntType linear_congruential_engine<_UIntType, __a, __c, __m>::modulus; template const _UIntType linear_congruential_engine<_UIntType, __a, __c, __m>::default_seed; template void linear_congruential_engine<_UIntType, __a, __c, __m>:: seed(result_type __s) { if ((__detail::__mod<_UIntType, __m>(__c) == 0) && (__detail::__mod<_UIntType, __m>(__s) == 0)) _M_x = 1; else _M_x = __detail::__mod<_UIntType, __m>(__s); } template template typename std::enable_if::value>::type linear_congruential_engine<_UIntType, __a, __c, __m>:: seed(_Sseq& __q) { const _UIntType __k0 = __m == 0 ? std::numeric_limits<_UIntType>::digits : std::__lg(__m); const _UIntType __k = (__k0 + 31) / 32; uint_least32_t __arr[__k + 3]; __q.generate(__arr + 0, __arr + __k + 3); _UIntType __factor = 1u; _UIntType __sum = 0u; for (size_t __j = 0; __j < __k; ++__j) { __sum += __arr[__j + 3] * __factor; __factor *= __detail::_Shift<_UIntType, 32>::__value; } seed(__sum); } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const linear_congruential_engine<_UIntType, __a, __c, __m>& __lcr) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); __os.flags(__ios_base::dec | __ios_base::fixed | __ios_base::left); __os.fill(__os.widen(' ')); __os << __lcr._M_x; __os.flags(__flags); __os.fill(__fill); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, linear_congruential_engine<_UIntType, __a, __c, __m>& __lcr) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec); __is >> __lcr._M_x; __is.flags(__flags); return __is; } template const size_t mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::word_size; template const size_t mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::state_size; template const size_t mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::shift_size; template const size_t mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::mask_bits; template const _UIntType mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::xor_mask; template const size_t mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_u; template const _UIntType mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_d; template const size_t mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_s; template const _UIntType mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_b; template const size_t mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_t; template const _UIntType mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_c; template const size_t mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_l; template const _UIntType mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>:: initialization_multiplier; template const _UIntType mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::default_seed; template void mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>:: seed(result_type __sd) { _M_x[0] = __detail::__mod<_UIntType, __detail::_Shift<_UIntType, __w>::__value>(__sd); for (size_t __i = 1; __i < state_size; ++__i) { _UIntType __x = _M_x[__i - 1]; __x ^= __x >> (__w - 2); __x *= __f; __x += __detail::__mod<_UIntType, __n>(__i); _M_x[__i] = __detail::__mod<_UIntType, __detail::_Shift<_UIntType, __w>::__value>(__x); } _M_p = state_size; } template template typename std::enable_if::value>::type mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>:: seed(_Sseq& __q) { const _UIntType __upper_mask = (~_UIntType()) << __r; const size_t __k = (__w + 31) / 32; uint_least32_t __arr[__n * __k]; __q.generate(__arr + 0, __arr + __n * __k); bool __zero = true; for (size_t __i = 0; __i < state_size; ++__i) { _UIntType __factor = 1u; _UIntType __sum = 0u; for (size_t __j = 0; __j < __k; ++__j) { __sum += __arr[__k * __i + __j] * __factor; __factor *= __detail::_Shift<_UIntType, 32>::__value; } _M_x[__i] = __detail::__mod<_UIntType, __detail::_Shift<_UIntType, __w>::__value>(__sum); if (__zero) { if (__i == 0) { if ((_M_x[0] & __upper_mask) != 0u) __zero = false; } else if (_M_x[__i] != 0u) __zero = false; } } if (__zero) _M_x[0] = __detail::_Shift<_UIntType, __w - 1>::__value; } template typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>:: operator()() { if (_M_p >= state_size) { const _UIntType __upper_mask = (~_UIntType()) << __r; const _UIntType __lower_mask = ~__upper_mask; for (size_t __k = 0; __k < (__n - __m); ++__k) { _UIntType __y = ((_M_x[__k] & __upper_mask) | (_M_x[__k + 1] & __lower_mask)); _M_x[__k] = (_M_x[__k + __m] ^ (__y >> 1) ^ ((__y & 0x01) ? __a : 0)); } for (size_t __k = (__n - __m); __k < (__n - 1); ++__k) { _UIntType __y = ((_M_x[__k] & __upper_mask) | (_M_x[__k + 1] & __lower_mask)); _M_x[__k] = (_M_x[__k + (__m - __n)] ^ (__y >> 1) ^ ((__y & 0x01) ? __a : 0)); } _UIntType __y = ((_M_x[__n - 1] & __upper_mask) | (_M_x[0] & __lower_mask)); _M_x[__n - 1] = (_M_x[__m - 1] ^ (__y >> 1) ^ ((__y & 0x01) ? __a : 0)); _M_p = 0; } result_type __z = _M_x[_M_p++]; __z ^= (__z >> __u) & __d; __z ^= (__z << __s) & __b; __z ^= (__z << __t) & __c; __z ^= (__z >> __l); return __z; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::dec | __ios_base::fixed | __ios_base::left); __os.fill(__space); for (size_t __i = 0; __i < __n - 1; ++__i) __os << __x._M_x[__i] << __space; __os << __x._M_x[__n - 1]; __os.flags(__flags); __os.fill(__fill); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); for (size_t __i = 0; __i < __n; ++__i) __is >> __x._M_x[__i]; __is.flags(__flags); return __is; } template const size_t subtract_with_carry_engine<_UIntType, __w, __s, __r>::word_size; template const size_t subtract_with_carry_engine<_UIntType, __w, __s, __r>::short_lag; template const size_t subtract_with_carry_engine<_UIntType, __w, __s, __r>::long_lag; template const _UIntType subtract_with_carry_engine<_UIntType, __w, __s, __r>::default_seed; template void subtract_with_carry_engine<_UIntType, __w, __s, __r>:: seed(result_type __value) { std::linear_congruential_engine __lcg(__value == 0u ? default_seed : __value); const size_t __n = (__w + 31) / 32; for (size_t __i = 0; __i < long_lag; ++__i) { _UIntType __sum = 0u; _UIntType __factor = 1u; for (size_t __j = 0; __j < __n; ++__j) { __sum += __detail::__mod::__value> (__lcg()) * __factor; __factor *= __detail::_Shift<_UIntType, 32>::__value; } _M_x[__i] = __detail::__mod<_UIntType, __detail::_Shift<_UIntType, __w>::__value>(__sum); } _M_carry = (_M_x[long_lag - 1] == 0) ? 1 : 0; _M_p = 0; } template template typename std::enable_if::value>::type subtract_with_carry_engine<_UIntType, __w, __s, __r>:: seed(_Sseq& __q) { const size_t __k = (__w + 31) / 32; uint_least32_t __arr[__r * __k]; __q.generate(__arr + 0, __arr + __r * __k); for (size_t __i = 0; __i < long_lag; ++__i) { _UIntType __sum = 0u; _UIntType __factor = 1u; for (size_t __j = 0; __j < __k; ++__j) { __sum += __arr[__k * __i + __j] * __factor; __factor *= __detail::_Shift<_UIntType, 32>::__value; } _M_x[__i] = __detail::__mod<_UIntType, __detail::_Shift<_UIntType, __w>::__value>(__sum); } _M_carry = (_M_x[long_lag - 1] == 0) ? 1 : 0; _M_p = 0; } template typename subtract_with_carry_engine<_UIntType, __w, __s, __r>:: result_type subtract_with_carry_engine<_UIntType, __w, __s, __r>:: operator()() { long __ps = _M_p - short_lag; if (__ps < 0) __ps += long_lag; _UIntType __xi; if (_M_x[__ps] >= _M_x[_M_p] + _M_carry) { __xi = _M_x[__ps] - _M_x[_M_p] - _M_carry; _M_carry = 0; } else { __xi = (__detail::_Shift<_UIntType, __w>::__value - _M_x[_M_p] - _M_carry + _M_x[__ps]); _M_carry = 1; } _M_x[_M_p] = __xi; if (++_M_p >= long_lag) _M_p = 0; return __xi; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const subtract_with_carry_engine<_UIntType, __w, __s, __r>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::dec | __ios_base::fixed | __ios_base::left); __os.fill(__space); for (size_t __i = 0; __i < __r; ++__i) __os << __x._M_x[__i] << __space; __os << __x._M_carry; __os.flags(__flags); __os.fill(__fill); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, subtract_with_carry_engine<_UIntType, __w, __s, __r>& __x) { typedef std::basic_ostream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); for (size_t __i = 0; __i < __r; ++__i) __is >> __x._M_x[__i]; __is >> __x._M_carry; __is.flags(__flags); return __is; } template const size_t discard_block_engine<_RandomNumberEngine, __p, __r>::block_size; template const size_t discard_block_engine<_RandomNumberEngine, __p, __r>::used_block; template typename discard_block_engine<_RandomNumberEngine, __p, __r>::result_type discard_block_engine<_RandomNumberEngine, __p, __r>:: operator()() { if (_M_n >= used_block) { _M_b.discard(block_size - _M_n); _M_n = 0; } ++_M_n; return _M_b(); } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const discard_block_engine<_RandomNumberEngine, __p, __r>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::dec | __ios_base::fixed | __ios_base::left); __os.fill(__space); __os << __x.base() << __space << __x._M_n; __os.flags(__flags); __os.fill(__fill); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, discard_block_engine<_RandomNumberEngine, __p, __r>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); __is >> __x._M_b >> __x._M_n; __is.flags(__flags); return __is; } template typename independent_bits_engine<_RandomNumberEngine, __w, _UIntType>:: result_type independent_bits_engine<_RandomNumberEngine, __w, _UIntType>:: operator()() { const long double __r = static_cast(_M_b.max()) - static_cast(_M_b.min()) + 1.0L; const result_type __m = std::log(__r) / std::log(2.0L); result_type __n, __n0, __y0, __y1, __s0, __s1; for (size_t __i = 0; __i < 2; ++__i) { __n = (__w + __m - 1) / __m + __i; __n0 = __n - __w % __n; const result_type __w0 = __w / __n; const result_type __w1 = __w0 + 1; __s0 = result_type(1) << __w0; __s1 = result_type(1) << __w1; __y0 = __s0 * (__r / __s0); __y1 = __s1 * (__r / __s1); if (__r - __y0 <= __y0 / __n) break; } result_type __sum = 0; for (size_t __k = 0; __k < __n0; ++__k) { result_type __u; do __u = _M_b() - _M_b.min(); while (__u >= __y0); __sum = __s0 * __sum + __u % __s0; } for (size_t __k = __n0; __k < __n; ++__k) { result_type __u; do __u = _M_b() - _M_b.min(); while (__u >= __y1); __sum = __s1 * __sum + __u % __s1; } return __sum; } template const size_t shuffle_order_engine<_RandomNumberEngine, __k>::table_size; template typename shuffle_order_engine<_RandomNumberEngine, __k>::result_type shuffle_order_engine<_RandomNumberEngine, __k>:: operator()() { size_t __j = __k * ((_M_y - _M_b.min()) / (_M_b.max() - _M_b.min() + 1.0L)); _M_y = _M_v[__j]; _M_v[__j] = _M_b(); return _M_y; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const shuffle_order_engine<_RandomNumberEngine, __k>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::dec | __ios_base::fixed | __ios_base::left); __os.fill(__space); __os << __x.base(); for (size_t __i = 0; __i < __k; ++__i) __os << __space << __x._M_v[__i]; __os << __space << __x._M_y; __os.flags(__flags); __os.fill(__fill); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, shuffle_order_engine<_RandomNumberEngine, __k>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); __is >> __x._M_b; for (size_t __i = 0; __i < __k; ++__i) __is >> __x._M_v[__i]; __is >> __x._M_y; __is.flags(__flags); return __is; } template template typename uniform_int_distribution<_IntType>::result_type uniform_int_distribution<_IntType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __param) { typedef typename std::make_unsigned::type __urntype; typedef typename std::make_unsigned::type __utype; typedef typename std::conditional<(sizeof(__urntype) > sizeof(__utype)), __urntype, __utype>::type __uctype; result_type __ret; const __urntype __urnmin = __urng.min(); const __urntype __urnmax = __urng.max(); const __urntype __urnrange = __urnmax - __urnmin; const __uctype __urange = __param.b() - __param.a(); const __uctype __udenom = (__urnrange <= __urange ? 1 : __urnrange / (__urange + 1)); do __ret = (__urntype(__urng()) - __urnmin) / __udenom; while (__ret > __param.b() - __param.a()); return __ret + __param.a(); } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const uniform_int_distribution<_IntType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os << __x.a() << __space << __x.b(); __os.flags(__flags); __os.fill(__fill); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, uniform_int_distribution<_IntType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); _IntType __a, __b; __is >> __a >> __b; __x.param(typename uniform_int_distribution<_IntType>:: param_type(__a, __b)); __is.flags(__flags); return __is; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const uniform_real_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits<_RealType>::max_digits10); __os << __x.a() << __space << __x.b(); __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, uniform_real_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::skipws); _RealType __a, __b; __is >> __a >> __b; __x.param(typename uniform_real_distribution<_RealType>:: param_type(__a, __b)); __is.flags(__flags); return __is; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const bernoulli_distribution& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__os.widen(' ')); __os.precision(std::numeric_limits::max_digits10); __os << __x.p(); __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template template typename geometric_distribution<_IntType>::result_type geometric_distribution<_IntType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __param) { const double __naf = (1 - std::numeric_limits::epsilon()) / 2; const double __thr = std::numeric_limits<_IntType>::max() + __naf; __detail::_Adaptor<_UniformRandomNumberGenerator, double> __aurng(__urng); double __cand; do __cand = std::ceil(std::log(__aurng()) / __param._M_log_p); while (__cand >= __thr); return result_type(__cand + __naf); } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const geometric_distribution<_IntType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__os.widen(' ')); __os.precision(std::numeric_limits::max_digits10); __os << __x.p(); __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, geometric_distribution<_IntType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::skipws); double __p; __is >> __p; __x.param(typename geometric_distribution<_IntType>::param_type(__p)); __is.flags(__flags); return __is; } template template typename negative_binomial_distribution<_IntType>::result_type negative_binomial_distribution<_IntType>:: operator()(_UniformRandomNumberGenerator& __urng) { const double __y = _M_gd(__urng); std::poisson_distribution __poisson(__y); return __poisson(__urng); } template template typename negative_binomial_distribution<_IntType>::result_type negative_binomial_distribution<_IntType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p) { typedef typename std::gamma_distribution::param_type param_type; const double __y = _M_gd(__urng, param_type(__p.k(), __p.p() / (1.0 - __p.p()))); std::poisson_distribution __poisson(__y); return __poisson(__urng); } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const negative_binomial_distribution<_IntType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__os.widen(' ')); __os.precision(std::numeric_limits::max_digits10); __os << __x.k() << __space << __x.p() << __space << __x._M_gd; __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, negative_binomial_distribution<_IntType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::skipws); _IntType __k; double __p; __is >> __k >> __p >> __x._M_gd; __x.param(typename negative_binomial_distribution<_IntType>:: param_type(__k, __p)); __is.flags(__flags); return __is; } template void poisson_distribution<_IntType>::param_type:: _M_initialize() { if (_M_mean >= 12) { const double __m = std::floor(_M_mean); _M_lm_thr = std::log(_M_mean); _M_lfm = std::lgamma(__m + 1); _M_sm = std::sqrt(__m); const double __pi_4 = 0.7853981633974483096156608458198757L; const double __dx = std::sqrt(2 * __m * std::log(32 * __m / __pi_4)); _M_d = std::round(std::max(6.0, std::min(__m, __dx))); const double __cx = 2 * __m + _M_d; _M_scx = std::sqrt(__cx / 2); _M_1cx = 1 / __cx; _M_c2b = std::sqrt(__pi_4 * __cx) * std::exp(_M_1cx); _M_cb = 2 * __cx * std::exp(-_M_d * _M_1cx * (1 + _M_d / 2)) / _M_d; } else _M_lm_thr = std::exp(-_M_mean); } # 1154 "/usr/include/c++/4.5/bits/random.tcc" 3 template template typename poisson_distribution<_IntType>::result_type poisson_distribution<_IntType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __param) { __detail::_Adaptor<_UniformRandomNumberGenerator, double> __aurng(__urng); if (__param.mean() >= 12) { double __x; const double __naf = (1 - std::numeric_limits::epsilon()) / 2; const double __thr = std::numeric_limits<_IntType>::max() + __naf; const double __m = std::floor(__param.mean()); const double __spi_2 = 1.2533141373155002512078826424055226L; const double __c1 = __param._M_sm * __spi_2; const double __c2 = __param._M_c2b + __c1; const double __c3 = __c2 + 1; const double __c4 = __c3 + 1; const double __e178 = 1.0129030479320018583185514777512983L; const double __c5 = __c4 + __e178; const double __c = __param._M_cb + __c5; const double __2cx = 2 * (2 * __m + __param._M_d); bool __reject = true; do { const double __u = __c * __aurng(); const double __e = -std::log(__aurng()); double __w = 0.0; if (__u <= __c1) { const double __n = _M_nd(__urng); const double __y = -std::abs(__n) * __param._M_sm - 1; __x = std::floor(__y); __w = -__n * __n / 2; if (__x < -__m) continue; } else if (__u <= __c2) { const double __n = _M_nd(__urng); const double __y = 1 + std::abs(__n) * __param._M_scx; __x = std::ceil(__y); __w = __y * (2 - __y) * __param._M_1cx; if (__x > __param._M_d) continue; } else if (__u <= __c3) __x = -1; else if (__u <= __c4) __x = 0; else if (__u <= __c5) __x = 1; else { const double __v = -std::log(__aurng()); const double __y = __param._M_d + __v * __2cx / __param._M_d; __x = std::ceil(__y); __w = -__param._M_d * __param._M_1cx * (1 + __y / 2); } __reject = (__w - __e - __x * __param._M_lm_thr > __param._M_lfm - std::lgamma(__x + __m + 1)); __reject |= __x + __m >= __thr; } while (__reject); return result_type(__x + __m + __naf); } else { _IntType __x = 0; double __prod = 1.0; do { __prod *= __aurng(); __x += 1; } while (__prod > __param._M_lm_thr); return __x - 1; } } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const poisson_distribution<_IntType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits::max_digits10); __os << __x.mean() << __space << __x._M_nd; __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, poisson_distribution<_IntType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::skipws); double __mean; __is >> __mean >> __x._M_nd; __x.param(typename poisson_distribution<_IntType>::param_type(__mean)); __is.flags(__flags); return __is; } template void binomial_distribution<_IntType>::param_type:: _M_initialize() { const double __p12 = _M_p <= 0.5 ? _M_p : 1.0 - _M_p; _M_easy = true; if (_M_t * __p12 >= 8) { _M_easy = false; const double __np = std::floor(_M_t * __p12); const double __pa = __np / _M_t; const double __1p = 1 - __pa; const double __pi_4 = 0.7853981633974483096156608458198757L; const double __d1x = std::sqrt(__np * __1p * std::log(32 * __np / (81 * __pi_4 * __1p))); _M_d1 = std::round(std::max(1.0, __d1x)); const double __d2x = std::sqrt(__np * __1p * std::log(32 * _M_t * __1p / (__pi_4 * __pa))); _M_d2 = std::round(std::max(1.0, __d2x)); const double __spi_2 = 1.2533141373155002512078826424055226L; _M_s1 = std::sqrt(__np * __1p) * (1 + _M_d1 / (4 * __np)); _M_s2 = std::sqrt(__np * __1p) * (1 + _M_d2 / (4 * _M_t * __1p)); _M_c = 2 * _M_d1 / __np; _M_a1 = std::exp(_M_c) * _M_s1 * __spi_2; const double __a12 = _M_a1 + _M_s2 * __spi_2; const double __s1s = _M_s1 * _M_s1; _M_a123 = __a12 + (std::exp(_M_d1 / (_M_t * __1p)) * 2 * __s1s / _M_d1 * std::exp(-_M_d1 * _M_d1 / (2 * __s1s))); const double __s2s = _M_s2 * _M_s2; _M_s = (_M_a123 + 2 * __s2s / _M_d2 * std::exp(-_M_d2 * _M_d2 / (2 * __s2s))); _M_lf = (std::lgamma(__np + 1) + std::lgamma(_M_t - __np + 1)); _M_lp1p = std::log(__pa / __1p); _M_q = -std::log(1 - (__p12 - __pa) / __1p); } else _M_q = -std::log(1 - __p12); } template template typename binomial_distribution<_IntType>::result_type binomial_distribution<_IntType>:: _M_waiting(_UniformRandomNumberGenerator& __urng, _IntType __t) { _IntType __x = 0; double __sum = 0.0; __detail::_Adaptor<_UniformRandomNumberGenerator, double> __aurng(__urng); do { const double __e = -std::log(__aurng()); __sum += __e / (__t - __x); __x += 1; } while (__sum <= _M_param._M_q); return __x - 1; } # 1386 "/usr/include/c++/4.5/bits/random.tcc" 3 template template typename binomial_distribution<_IntType>::result_type binomial_distribution<_IntType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __param) { result_type __ret; const _IntType __t = __param.t(); const double __p = __param.p(); const double __p12 = __p <= 0.5 ? __p : 1.0 - __p; __detail::_Adaptor<_UniformRandomNumberGenerator, double> __aurng(__urng); if (!__param._M_easy) { double __x; const double __naf = (1 - std::numeric_limits::epsilon()) / 2; const double __thr = std::numeric_limits<_IntType>::max() + __naf; const double __np = std::floor(__t * __p12); const double __spi_2 = 1.2533141373155002512078826424055226L; const double __a1 = __param._M_a1; const double __a12 = __a1 + __param._M_s2 * __spi_2; const double __a123 = __param._M_a123; const double __s1s = __param._M_s1 * __param._M_s1; const double __s2s = __param._M_s2 * __param._M_s2; bool __reject; do { const double __u = __param._M_s * __aurng(); double __v; if (__u <= __a1) { const double __n = _M_nd(__urng); const double __y = __param._M_s1 * std::abs(__n); __reject = __y >= __param._M_d1; if (!__reject) { const double __e = -std::log(__aurng()); __x = std::floor(__y); __v = -__e - __n * __n / 2 + __param._M_c; } } else if (__u <= __a12) { const double __n = _M_nd(__urng); const double __y = __param._M_s2 * std::abs(__n); __reject = __y >= __param._M_d2; if (!__reject) { const double __e = -std::log(__aurng()); __x = std::floor(-__y); __v = -__e - __n * __n / 2; } } else if (__u <= __a123) { const double __e1 = -std::log(__aurng()); const double __e2 = -std::log(__aurng()); const double __y = __param._M_d1 + 2 * __s1s * __e1 / __param._M_d1; __x = std::floor(__y); __v = (-__e2 + __param._M_d1 * (1 / (__t - __np) -__y / (2 * __s1s))); __reject = false; } else { const double __e1 = -std::log(__aurng()); const double __e2 = -std::log(__aurng()); const double __y = __param._M_d2 + 2 * __s2s * __e1 / __param._M_d2; __x = std::floor(-__y); __v = -__e2 - __param._M_d2 * __y / (2 * __s2s); __reject = false; } __reject = __reject || __x < -__np || __x > __t - __np; if (!__reject) { const double __lfx = std::lgamma(__np + __x + 1) + std::lgamma(__t - (__np + __x) + 1); __reject = __v > __param._M_lf - __lfx + __x * __param._M_lp1p; } __reject |= __x + __np >= __thr; } while (__reject); __x += __np + __naf; const _IntType __z = _M_waiting(__urng, __t - _IntType(__x)); __ret = _IntType(__x) + __z; } else __ret = _M_waiting(__urng, __t); if (__p12 != __p) __ret = __t - __ret; return __ret; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const binomial_distribution<_IntType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits::max_digits10); __os << __x.t() << __space << __x.p() << __space << __x._M_nd; __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, binomial_distribution<_IntType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); _IntType __t; double __p; __is >> __t >> __p >> __x._M_nd; __x.param(typename binomial_distribution<_IntType>:: param_type(__t, __p)); __is.flags(__flags); return __is; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const exponential_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__os.widen(' ')); __os.precision(std::numeric_limits<_RealType>::max_digits10); __os << __x.lambda(); __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, exponential_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); _RealType __lambda; __is >> __lambda; __x.param(typename exponential_distribution<_RealType>:: param_type(__lambda)); __is.flags(__flags); return __is; } # 1603 "/usr/include/c++/4.5/bits/random.tcc" 3 template template typename normal_distribution<_RealType>::result_type normal_distribution<_RealType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __param) { result_type __ret; __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> __aurng(__urng); if (_M_saved_available) { _M_saved_available = false; __ret = _M_saved; } else { result_type __x, __y, __r2; do { __x = result_type(2.0) * __aurng() - 1.0; __y = result_type(2.0) * __aurng() - 1.0; __r2 = __x * __x + __y * __y; } while (__r2 > 1.0 || __r2 == 0.0); const result_type __mult = std::sqrt(-2 * std::log(__r2) / __r2); _M_saved = __x * __mult; _M_saved_available = true; __ret = __y * __mult; } __ret = __ret * __param.stddev() + __param.mean(); return __ret; } template bool operator==(const std::normal_distribution<_RealType>& __d1, const std::normal_distribution<_RealType>& __d2) { if (__d1._M_param == __d2._M_param && __d1._M_saved_available == __d2._M_saved_available) { if (__d1._M_saved_available && __d1._M_saved == __d2._M_saved) return true; else if(!__d1._M_saved_available) return true; else return false; } else return false; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const normal_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits<_RealType>::max_digits10); __os << __x.mean() << __space << __x.stddev() << __space << __x._M_saved_available; if (__x._M_saved_available) __os << __space << __x._M_saved; __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, normal_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); double __mean, __stddev; __is >> __mean >> __stddev >> __x._M_saved_available; if (__x._M_saved_available) __is >> __x._M_saved; __x.param(typename normal_distribution<_RealType>:: param_type(__mean, __stddev)); __is.flags(__flags); return __is; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const lognormal_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits<_RealType>::max_digits10); __os << __x.m() << __space << __x.s() << __space << __x._M_nd; __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, lognormal_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); _RealType __m, __s; __is >> __m >> __s >> __x._M_nd; __x.param(typename lognormal_distribution<_RealType>:: param_type(__m, __s)); __is.flags(__flags); return __is; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const chi_squared_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits<_RealType>::max_digits10); __os << __x.n() << __space << __x._M_gd; __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, chi_squared_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); _RealType __n; __is >> __n >> __x._M_gd; __x.param(typename chi_squared_distribution<_RealType>:: param_type(__n)); __is.flags(__flags); return __is; } template template typename cauchy_distribution<_RealType>::result_type cauchy_distribution<_RealType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p) { __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> __aurng(__urng); _RealType __u; do __u = __aurng(); while (__u == 0.5); const _RealType __pi = 3.1415926535897932384626433832795029L; return __p.a() + __p.b() * std::tan(__pi * __u); } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const cauchy_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits<_RealType>::max_digits10); __os << __x.a() << __space << __x.b(); __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, cauchy_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); _RealType __a, __b; __is >> __a >> __b; __x.param(typename cauchy_distribution<_RealType>:: param_type(__a, __b)); __is.flags(__flags); return __is; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const fisher_f_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits<_RealType>::max_digits10); __os << __x.m() << __space << __x.n() << __space << __x._M_gd_x << __space << __x._M_gd_y; __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, fisher_f_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); _RealType __m, __n; __is >> __m >> __n >> __x._M_gd_x >> __x._M_gd_y; __x.param(typename fisher_f_distribution<_RealType>:: param_type(__m, __n)); __is.flags(__flags); return __is; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const student_t_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits<_RealType>::max_digits10); __os << __x.n() << __space << __x._M_nd << __space << __x._M_gd; __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, student_t_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); _RealType __n; __is >> __n >> __x._M_nd >> __x._M_gd; __x.param(typename student_t_distribution<_RealType>::param_type(__n)); __is.flags(__flags); return __is; } template void gamma_distribution<_RealType>::param_type:: _M_initialize() { _M_malpha = _M_alpha < 1.0 ? _M_alpha + _RealType(1.0) : _M_alpha; const _RealType __a1 = _M_malpha - _RealType(1.0) / _RealType(3.0); _M_a2 = _RealType(1.0) / std::sqrt(_RealType(9.0) * __a1); } template template typename gamma_distribution<_RealType>::result_type gamma_distribution<_RealType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __param) { __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> __aurng(__urng); result_type __u, __v, __n; const result_type __a1 = (__param._M_malpha - _RealType(1.0) / _RealType(3.0)); do { do { __n = _M_nd(__urng); __v = result_type(1.0) + __param._M_a2 * __n; } while (__v <= 0.0); __v = __v * __v * __v; __u = __aurng(); } while (__u > result_type(1.0) - 0.331 * __n * __n * __n * __n && (std::log(__u) > (0.5 * __n * __n + __a1 * (1.0 - __v + std::log(__v))))); if (__param.alpha() == __param._M_malpha) return __a1 * __v * __param.beta(); else { do __u = __aurng(); while (__u == 0.0); return (std::pow(__u, result_type(1.0) / __param.alpha()) * __a1 * __v * __param.beta()); } } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const gamma_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits<_RealType>::max_digits10); __os << __x.alpha() << __space << __x.beta() << __space << __x._M_nd; __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, gamma_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); _RealType __alpha_val, __beta_val; __is >> __alpha_val >> __beta_val >> __x._M_nd; __x.param(typename gamma_distribution<_RealType>:: param_type(__alpha_val, __beta_val)); __is.flags(__flags); return __is; } template template typename weibull_distribution<_RealType>::result_type weibull_distribution<_RealType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p) { __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> __aurng(__urng); return __p.b() * std::pow(-std::log(__aurng()), result_type(1) / __p.a()); } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const weibull_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits<_RealType>::max_digits10); __os << __x.a() << __space << __x.b(); __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, weibull_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); _RealType __a, __b; __is >> __a >> __b; __x.param(typename weibull_distribution<_RealType>:: param_type(__a, __b)); __is.flags(__flags); return __is; } template template typename extreme_value_distribution<_RealType>::result_type extreme_value_distribution<_RealType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __p) { __detail::_Adaptor<_UniformRandomNumberGenerator, result_type> __aurng(__urng); return __p.a() - __p.b() * std::log(-std::log(__aurng())); } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const extreme_value_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits<_RealType>::max_digits10); __os << __x.a() << __space << __x.b(); __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, extreme_value_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); _RealType __a, __b; __is >> __a >> __b; __x.param(typename extreme_value_distribution<_RealType>:: param_type(__a, __b)); __is.flags(__flags); return __is; } template void discrete_distribution<_IntType>::param_type:: _M_initialize() { if (_M_prob.size() < 2) { _M_prob.clear(); _M_prob.push_back(1.0); return; } const double __sum = std::accumulate(_M_prob.begin(), _M_prob.end(), 0.0); __detail::__transform(_M_prob.begin(), _M_prob.end(), _M_prob.begin(), std::bind2nd(std::divides(), __sum)); _M_cp.reserve(_M_prob.size()); std::partial_sum(_M_prob.begin(), _M_prob.end(), std::back_inserter(_M_cp)); _M_cp[_M_cp.size() - 1] = 1.0; } template template discrete_distribution<_IntType>::param_type:: param_type(size_t __nw, double __xmin, double __xmax, _Func __fw) : _M_prob(), _M_cp() { const size_t __n = __nw == 0 ? 1 : __nw; const double __delta = (__xmax - __xmin) / __n; _M_prob.reserve(__n); for (size_t __k = 0; __k < __nw; ++__k) _M_prob.push_back(__fw(__xmin + __k * __delta + 0.5 * __delta)); _M_initialize(); } template template typename discrete_distribution<_IntType>::result_type discrete_distribution<_IntType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __param) { __detail::_Adaptor<_UniformRandomNumberGenerator, double> __aurng(__urng); const double __p = __aurng(); auto __pos = std::lower_bound(__param._M_cp.begin(), __param._M_cp.end(), __p); return __pos - __param._M_cp.begin(); } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const discrete_distribution<_IntType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits::max_digits10); std::vector __prob = __x.probabilities(); __os << __prob.size(); for (auto __dit = __prob.begin(); __dit != __prob.end(); ++__dit) __os << __space << *__dit; __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, discrete_distribution<_IntType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); size_t __n; __is >> __n; std::vector __prob_vec; __prob_vec.reserve(__n); for (; __n != 0; --__n) { double __prob; __is >> __prob; __prob_vec.push_back(__prob); } __x.param(typename discrete_distribution<_IntType>:: param_type(__prob_vec.begin(), __prob_vec.end())); __is.flags(__flags); return __is; } template void piecewise_constant_distribution<_RealType>::param_type:: _M_initialize() { if (_M_int.size() < 2) { _M_int.clear(); _M_int.reserve(2); _M_int.push_back(_RealType(0)); _M_int.push_back(_RealType(1)); _M_den.clear(); _M_den.push_back(1.0); return; } const double __sum = std::accumulate(_M_den.begin(), _M_den.end(), 0.0); __detail::__transform(_M_den.begin(), _M_den.end(), _M_den.begin(), std::bind2nd(std::divides(), __sum)); _M_cp.reserve(_M_den.size()); std::partial_sum(_M_den.begin(), _M_den.end(), std::back_inserter(_M_cp)); _M_cp[_M_cp.size() - 1] = 1.0; for (size_t __k = 0; __k < _M_den.size(); ++__k) _M_den[__k] /= _M_int[__k + 1] - _M_int[__k]; } template template piecewise_constant_distribution<_RealType>::param_type:: param_type(_InputIteratorB __bbegin, _InputIteratorB __bend, _InputIteratorW __wbegin) : _M_int(), _M_den(), _M_cp() { if (__bbegin != __bend) { for (;;) { _M_int.push_back(*__bbegin); ++__bbegin; if (__bbegin == __bend) break; _M_den.push_back(*__wbegin); ++__wbegin; } } _M_initialize(); } template template piecewise_constant_distribution<_RealType>::param_type:: param_type(initializer_list<_RealType> __bl, _Func __fw) : _M_int(), _M_den(), _M_cp() { _M_int.reserve(__bl.size()); for (auto __biter = __bl.begin(); __biter != __bl.end(); ++__biter) _M_int.push_back(*__biter); _M_den.reserve(_M_int.size() - 1); for (size_t __k = 0; __k < _M_int.size() - 1; ++__k) _M_den.push_back(__fw(0.5 * (_M_int[__k + 1] + _M_int[__k]))); _M_initialize(); } template template piecewise_constant_distribution<_RealType>::param_type:: param_type(size_t __nw, _RealType __xmin, _RealType __xmax, _Func __fw) : _M_int(), _M_den(), _M_cp() { const size_t __n = __nw == 0 ? 1 : __nw; const _RealType __delta = (__xmax - __xmin) / __n; _M_int.reserve(__n + 1); for (size_t __k = 0; __k <= __nw; ++__k) _M_int.push_back(__xmin + __k * __delta); _M_den.reserve(__n); for (size_t __k = 0; __k < __nw; ++__k) _M_den.push_back(__fw(_M_int[__k] + 0.5 * __delta)); _M_initialize(); } template template typename piecewise_constant_distribution<_RealType>::result_type piecewise_constant_distribution<_RealType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __param) { __detail::_Adaptor<_UniformRandomNumberGenerator, double> __aurng(__urng); const double __p = __aurng(); auto __pos = std::lower_bound(__param._M_cp.begin(), __param._M_cp.end(), __p); const size_t __i = __pos - __param._M_cp.begin(); const double __pref = __i > 0 ? __param._M_cp[__i - 1] : 0.0; return __param._M_int[__i] + (__p - __pref) / __param._M_den[__i]; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const piecewise_constant_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits<_RealType>::max_digits10); std::vector<_RealType> __int = __x.intervals(); __os << __int.size() - 1; for (auto __xit = __int.begin(); __xit != __int.end(); ++__xit) __os << __space << *__xit; std::vector __den = __x.densities(); for (auto __dit = __den.begin(); __dit != __den.end(); ++__dit) __os << __space << *__dit; __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, piecewise_constant_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); size_t __n; __is >> __n; std::vector<_RealType> __int_vec; __int_vec.reserve(__n + 1); for (size_t __i = 0; __i <= __n; ++__i) { _RealType __int; __is >> __int; __int_vec.push_back(__int); } std::vector __den_vec; __den_vec.reserve(__n); for (size_t __i = 0; __i < __n; ++__i) { double __den; __is >> __den; __den_vec.push_back(__den); } __x.param(typename piecewise_constant_distribution<_RealType>:: param_type(__int_vec.begin(), __int_vec.end(), __den_vec.begin())); __is.flags(__flags); return __is; } template void piecewise_linear_distribution<_RealType>::param_type:: _M_initialize() { if (_M_int.size() < 2) { _M_int.clear(); _M_int.reserve(2); _M_int.push_back(_RealType(0)); _M_int.push_back(_RealType(1)); _M_den.clear(); _M_den.reserve(2); _M_den.push_back(1.0); _M_den.push_back(1.0); return; } double __sum = 0.0; _M_cp.reserve(_M_int.size() - 1); _M_m.reserve(_M_int.size() - 1); for (size_t __k = 0; __k < _M_int.size() - 1; ++__k) { const _RealType __delta = _M_int[__k + 1] - _M_int[__k]; __sum += 0.5 * (_M_den[__k + 1] + _M_den[__k]) * __delta; _M_cp.push_back(__sum); _M_m.push_back((_M_den[__k + 1] - _M_den[__k]) / __delta); } __detail::__transform(_M_den.begin(), _M_den.end(), _M_den.begin(), std::bind2nd(std::divides(), __sum)); __detail::__transform(_M_cp.begin(), _M_cp.end(), _M_cp.begin(), std::bind2nd(std::divides(), __sum)); __detail::__transform(_M_m.begin(), _M_m.end(), _M_m.begin(), std::bind2nd(std::divides(), __sum)); _M_cp[_M_cp.size() - 1] = 1.0; } template template piecewise_linear_distribution<_RealType>::param_type:: param_type(_InputIteratorB __bbegin, _InputIteratorB __bend, _InputIteratorW __wbegin) : _M_int(), _M_den(), _M_cp(), _M_m() { for (; __bbegin != __bend; ++__bbegin, ++__wbegin) { _M_int.push_back(*__bbegin); _M_den.push_back(*__wbegin); } _M_initialize(); } template template piecewise_linear_distribution<_RealType>::param_type:: param_type(initializer_list<_RealType> __bl, _Func __fw) : _M_int(), _M_den(), _M_cp(), _M_m() { _M_int.reserve(__bl.size()); _M_den.reserve(__bl.size()); for (auto __biter = __bl.begin(); __biter != __bl.end(); ++__biter) { _M_int.push_back(*__biter); _M_den.push_back(__fw(*__biter)); } _M_initialize(); } template template piecewise_linear_distribution<_RealType>::param_type:: param_type(size_t __nw, _RealType __xmin, _RealType __xmax, _Func __fw) : _M_int(), _M_den(), _M_cp(), _M_m() { const size_t __n = __nw == 0 ? 1 : __nw; const _RealType __delta = (__xmax - __xmin) / __n; _M_int.reserve(__n + 1); _M_den.reserve(__n + 1); for (size_t __k = 0; __k <= __nw; ++__k) { _M_int.push_back(__xmin + __k * __delta); _M_den.push_back(__fw(_M_int[__k] + __delta)); } _M_initialize(); } template template typename piecewise_linear_distribution<_RealType>::result_type piecewise_linear_distribution<_RealType>:: operator()(_UniformRandomNumberGenerator& __urng, const param_type& __param) { __detail::_Adaptor<_UniformRandomNumberGenerator, double> __aurng(__urng); const double __p = __aurng(); if (__param._M_m.empty()) return __p; auto __pos = std::lower_bound(__param._M_cp.begin(), __param._M_cp.end(), __p); const size_t __i = __pos - __param._M_cp.begin(); const double __pref = __i > 0 ? __param._M_cp[__i - 1] : 0.0; const double __a = 0.5 * __param._M_m[__i]; const double __b = __param._M_den[__i]; const double __cm = __p - __pref; _RealType __x = __param._M_int[__i]; if (__a == 0) __x += __cm / __b; else { const double __d = __b * __b + 4.0 * __a * __cm; __x += 0.5 * (std::sqrt(__d) - __b) / __a; } return __x; } template std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const piecewise_linear_distribution<_RealType>& __x) { typedef std::basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __os.flags(); const _CharT __fill = __os.fill(); const std::streamsize __precision = __os.precision(); const _CharT __space = __os.widen(' '); __os.flags(__ios_base::scientific | __ios_base::left); __os.fill(__space); __os.precision(std::numeric_limits<_RealType>::max_digits10); std::vector<_RealType> __int = __x.intervals(); __os << __int.size() - 1; for (auto __xit = __int.begin(); __xit != __int.end(); ++__xit) __os << __space << *__xit; std::vector __den = __x.densities(); for (auto __dit = __den.begin(); __dit != __den.end(); ++__dit) __os << __space << *__dit; __os.flags(__flags); __os.fill(__fill); __os.precision(__precision); return __os; } template std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, piecewise_linear_distribution<_RealType>& __x) { typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; const typename __ios_base::fmtflags __flags = __is.flags(); __is.flags(__ios_base::dec | __ios_base::skipws); size_t __n; __is >> __n; std::vector<_RealType> __int_vec; __int_vec.reserve(__n + 1); for (size_t __i = 0; __i <= __n; ++__i) { _RealType __int; __is >> __int; __int_vec.push_back(__int); } std::vector __den_vec; __den_vec.reserve(__n + 1); for (size_t __i = 0; __i <= __n; ++__i) { double __den; __is >> __den; __den_vec.push_back(__den); } __x.param(typename piecewise_linear_distribution<_RealType>:: param_type(__int_vec.begin(), __int_vec.end(), __den_vec.begin())); __is.flags(__flags); return __is; } template seed_seq::seed_seq(std::initializer_list<_IntType> __il) { for (auto __iter = __il.begin(); __iter != __il.end(); ++__iter) _M_v.push_back(__detail::__mod::__value>(*__iter)); } template seed_seq::seed_seq(_InputIterator __begin, _InputIterator __end) { for (_InputIterator __iter = __begin; __iter != __end; ++__iter) _M_v.push_back(__detail::__mod::__value>(*__iter)); } template void seed_seq::generate(_RandomAccessIterator __begin, _RandomAccessIterator __end) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _Type; if (__begin == __end) return; std::fill(__begin, __end, _Type(0x8b8b8b8bu)); const size_t __n = __end - __begin; const size_t __s = _M_v.size(); const size_t __t = (__n >= 623) ? 11 : (__n >= 68) ? 7 : (__n >= 39) ? 5 : (__n >= 7) ? 3 : (__n - 1) / 2; const size_t __p = (__n - __t) / 2; const size_t __q = __p + __t; const size_t __m = std::max(__s + 1, __n); for (size_t __k = 0; __k < __m; ++__k) { _Type __arg = (__begin[__k % __n] ^ __begin[(__k + __p) % __n] ^ __begin[(__k - 1) % __n]); _Type __r1 = __arg ^ (__arg << 27); __r1 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value, 1664525u, 0u>(__r1); _Type __r2 = __r1; if (__k == 0) __r2 += __s; else if (__k <= __s) __r2 += __k % __n + _M_v[__k - 1]; else __r2 += __k % __n; __r2 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value>(__r2); __begin[(__k + __p) % __n] += __r1; __begin[(__k + __q) % __n] += __r2; __begin[__k % __n] = __r2; } for (size_t __k = __m; __k < __m + __n; ++__k) { _Type __arg = (__begin[__k % __n] + __begin[(__k + __p) % __n] + __begin[(__k - 1) % __n]); _Type __r3 = __arg ^ (__arg << 27); __r3 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value, 1566083941u, 0u>(__r3); _Type __r4 = __r3 - __k % __n; __r4 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value>(__r4); __begin[(__k + __p) % __n] ^= __r4; __begin[(__k + __q) % __n] ^= __r3; __begin[__k % __n] = __r4; } } template _RealType generate_canonical(_UniformRandomNumberGenerator& __urng) { const size_t __b = std::min(static_cast(std::numeric_limits<_RealType>::digits), __bits); const long double __r = static_cast(__urng.max()) - static_cast(__urng.min()) + 1.0L; const size_t __log2r = std::log(__r) / std::log(2.0L); size_t __k = std::max(1UL, (__b + __log2r - 1UL) / __log2r); _RealType __sum = _RealType(0); _RealType __tmp = _RealType(1); for (; __k != 0; --__k) { __sum += _RealType(__urng() - __urng.min()) * __tmp; __tmp *= __r; } return __sum / __tmp; } } # 55 "/usr/include/c++/4.5/random" 2 3 # 67 "/usr/include/c++/4.5/bits/stl_algo.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { template void __move_median_first(_Iterator __a, _Iterator __b, _Iterator __c) { if (*__a < *__b) { if (*__b < *__c) std::iter_swap(__a, __b); else if (*__a < *__c) std::iter_swap(__a, __c); } else if (*__a < *__c) return; else if (*__b < *__c) std::iter_swap(__a, __c); else std::iter_swap(__a, __b); } template void __move_median_first(_Iterator __a, _Iterator __b, _Iterator __c, _Compare __comp) { if (__comp(*__a, *__b)) { if (__comp(*__b, *__c)) std::iter_swap(__a, __b); else if (__comp(*__a, *__c)) std::iter_swap(__a, __c); } else if (__comp(*__a, *__c)) return; else if (__comp(*__b, *__c)) std::iter_swap(__a, __c); else std::iter_swap(__a, __b); } template inline _InputIterator __find(_InputIterator __first, _InputIterator __last, const _Tp& __val, input_iterator_tag) { while (__first != __last && !(*__first == __val)) ++__first; return __first; } template inline _InputIterator __find_if(_InputIterator __first, _InputIterator __last, _Predicate __pred, input_iterator_tag) { while (__first != __last && !bool(__pred(*__first))) ++__first; return __first; } template _RandomAccessIterator __find(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __val, random_access_iterator_tag) { typename iterator_traits<_RandomAccessIterator>::difference_type __trip_count = (__last - __first) >> 2; for (; __trip_count > 0; --__trip_count) { if (*__first == __val) return __first; ++__first; if (*__first == __val) return __first; ++__first; if (*__first == __val) return __first; ++__first; if (*__first == __val) return __first; ++__first; } switch (__last - __first) { case 3: if (*__first == __val) return __first; ++__first; case 2: if (*__first == __val) return __first; ++__first; case 1: if (*__first == __val) return __first; ++__first; case 0: default: return __last; } } template _RandomAccessIterator __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, _Predicate __pred, random_access_iterator_tag) { typename iterator_traits<_RandomAccessIterator>::difference_type __trip_count = (__last - __first) >> 2; for (; __trip_count > 0; --__trip_count) { if (__pred(*__first)) return __first; ++__first; if (__pred(*__first)) return __first; ++__first; if (__pred(*__first)) return __first; ++__first; if (__pred(*__first)) return __first; ++__first; } switch (__last - __first) { case 3: if (__pred(*__first)) return __first; ++__first; case 2: if (__pred(*__first)) return __first; ++__first; case 1: if (__pred(*__first)) return __first; ++__first; case 0: default: return __last; } } template inline _InputIterator __find_if_not(_InputIterator __first, _InputIterator __last, _Predicate __pred, input_iterator_tag) { while (__first != __last && bool(__pred(*__first))) ++__first; return __first; } template _RandomAccessIterator __find_if_not(_RandomAccessIterator __first, _RandomAccessIterator __last, _Predicate __pred, random_access_iterator_tag) { typename iterator_traits<_RandomAccessIterator>::difference_type __trip_count = (__last - __first) >> 2; for (; __trip_count > 0; --__trip_count) { if (!bool(__pred(*__first))) return __first; ++__first; if (!bool(__pred(*__first))) return __first; ++__first; if (!bool(__pred(*__first))) return __first; ++__first; if (!bool(__pred(*__first))) return __first; ++__first; } switch (__last - __first) { case 3: if (!bool(__pred(*__first))) return __first; ++__first; case 2: if (!bool(__pred(*__first))) return __first; ++__first; case 1: if (!bool(__pred(*__first))) return __first; ++__first; case 0: default: return __last; } } # 322 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator __search_n(_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp& __val, std::forward_iterator_tag) { __first = std::find(__first, __last, __val); while (__first != __last) { typename iterator_traits<_ForwardIterator>::difference_type __n = __count; _ForwardIterator __i = __first; ++__i; while (__i != __last && __n != 1 && *__i == __val) { ++__i; --__n; } if (__n == 1) return __first; if (__i == __last) return __last; __first = std::find(++__i, __last, __val); } return __last; } template _RandomAccessIter __search_n(_RandomAccessIter __first, _RandomAccessIter __last, _Integer __count, const _Tp& __val, std::random_access_iterator_tag) { typedef typename std::iterator_traits<_RandomAccessIter>::difference_type _DistanceType; _DistanceType __tailSize = __last - __first; const _DistanceType __pattSize = __count; if (__tailSize < __pattSize) return __last; const _DistanceType __skipOffset = __pattSize - 1; _RandomAccessIter __lookAhead = __first + __skipOffset; __tailSize -= __pattSize; while (1) { while (!(*__lookAhead == __val)) { if (__tailSize < __pattSize) return __last; __lookAhead += __pattSize; __tailSize -= __pattSize; } _DistanceType __remainder = __skipOffset; for (_RandomAccessIter __backTrack = __lookAhead - 1; *__backTrack == __val; --__backTrack) { if (--__remainder == 0) return (__lookAhead - __skipOffset); } if (__remainder > __tailSize) return __last; __lookAhead += __remainder; __tailSize -= __remainder; } } # 407 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator __search_n(_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp& __val, _BinaryPredicate __binary_pred, std::forward_iterator_tag) { while (__first != __last && !bool(__binary_pred(*__first, __val))) ++__first; while (__first != __last) { typename iterator_traits<_ForwardIterator>::difference_type __n = __count; _ForwardIterator __i = __first; ++__i; while (__i != __last && __n != 1 && bool(__binary_pred(*__i, __val))) { ++__i; --__n; } if (__n == 1) return __first; if (__i == __last) return __last; __first = ++__i; while (__first != __last && !bool(__binary_pred(*__first, __val))) ++__first; } return __last; } template _RandomAccessIter __search_n(_RandomAccessIter __first, _RandomAccessIter __last, _Integer __count, const _Tp& __val, _BinaryPredicate __binary_pred, std::random_access_iterator_tag) { typedef typename std::iterator_traits<_RandomAccessIter>::difference_type _DistanceType; _DistanceType __tailSize = __last - __first; const _DistanceType __pattSize = __count; if (__tailSize < __pattSize) return __last; const _DistanceType __skipOffset = __pattSize - 1; _RandomAccessIter __lookAhead = __first + __skipOffset; __tailSize -= __pattSize; while (1) { while (!bool(__binary_pred(*__lookAhead, __val))) { if (__tailSize < __pattSize) return __last; __lookAhead += __pattSize; __tailSize -= __pattSize; } _DistanceType __remainder = __skipOffset; for (_RandomAccessIter __backTrack = __lookAhead - 1; __binary_pred(*__backTrack, __val); --__backTrack) { if (--__remainder == 0) return (__lookAhead - __skipOffset); } if (__remainder > __tailSize) return __last; __lookAhead += __remainder; __tailSize -= __remainder; } } template _ForwardIterator1 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, forward_iterator_tag, forward_iterator_tag) { if (__first2 == __last2) return __last1; else { _ForwardIterator1 __result = __last1; while (1) { _ForwardIterator1 __new_result = std::search(__first1, __last1, __first2, __last2); if (__new_result == __last1) return __result; else { __result = __new_result; __first1 = __new_result; ++__first1; } } } } template _ForwardIterator1 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, forward_iterator_tag, forward_iterator_tag, _BinaryPredicate __comp) { if (__first2 == __last2) return __last1; else { _ForwardIterator1 __result = __last1; while (1) { _ForwardIterator1 __new_result = std::search(__first1, __last1, __first2, __last2, __comp); if (__new_result == __last1) return __result; else { __result = __new_result; __first1 = __new_result; ++__first1; } } } } template _BidirectionalIterator1 __find_end(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, bidirectional_iterator_tag, bidirectional_iterator_tag) { typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; _RevIterator1 __rlast1(__first1); _RevIterator2 __rlast2(__first2); _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1, _RevIterator2(__last2), __rlast2); if (__rresult == __rlast1) return __last1; else { _BidirectionalIterator1 __result = __rresult.base(); std::advance(__result, -std::distance(__first2, __last2)); return __result; } } template _BidirectionalIterator1 __find_end(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, bidirectional_iterator_tag, bidirectional_iterator_tag, _BinaryPredicate __comp) { typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; _RevIterator1 __rlast1(__first1); _RevIterator2 __rlast2(__first2); _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1, _RevIterator2(__last2), __rlast2, __comp); if (__rresult == __rlast1) return __last1; else { _BidirectionalIterator1 __result = __rresult.base(); std::advance(__result, -std::distance(__first2, __last2)); return __result; } } # 645 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline _ForwardIterator1 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) { ; ; return std::__find_end(__first1, __last1, __first2, __last2, std::__iterator_category(__first1), std::__iterator_category(__first2)); } # 691 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline _ForwardIterator1 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __comp) { ; ; return std::__find_end(__first1, __last1, __first2, __last2, std::__iterator_category(__first1), std::__iterator_category(__first2), __comp); } # 726 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline bool all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) { return __last == std::find_if_not(__first, __last, __pred); } # 743 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline bool none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) { return __last == std::find_if(__first, __last, __pred); } # 760 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline bool any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) { return !std::none_of(__first, __last, __pred); } # 775 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline _InputIterator find_if_not(_InputIterator __first, _InputIterator __last, _Predicate __pred) { ; return std::__find_if_not(__first, __last, __pred, std::__iterator_category(__first)); } # 799 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline bool is_partitioned(_InputIterator __first, _InputIterator __last, _Predicate __pred) { __first = std::find_if_not(__first, __last, __pred); return std::none_of(__first, __last, __pred); } # 817 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator partition_point(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) { ; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; _DistanceType __len = std::distance(__first, __last); _DistanceType __half; _ForwardIterator __middle; while (__len > 0) { __half = __len >> 1; __middle = __first; std::advance(__middle, __half); if (__pred(*__middle)) { __first = __middle; ++__first; __len = __len - __half - 1; } else __len = __half; } return __first; } # 870 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator remove_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, const _Tp& __value) { ; for (; __first != __last; ++__first) if (!(*__first == __value)) { *__result = *__first; ++__result; } return __result; } # 907 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator remove_copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred) { ; for (; __first != __last; ++__first) if (!bool(__pred(*__first))) { *__result = *__first; ++__result; } return __result; } # 946 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred) { ; for (; __first != __last; ++__first) if (__pred(*__first)) { *__result = *__first; ++__result; } return __result; } template _OutputIterator __copy_n(_InputIterator __first, _Size __n, _OutputIterator __result, input_iterator_tag) { for (; __n > 0; --__n) { *__result = *__first; ++__first; ++__result; } return __result; } template inline _OutputIterator __copy_n(_RandomAccessIterator __first, _Size __n, _OutputIterator __result, random_access_iterator_tag) { return std::copy(__first, __first + __n, __result); } # 1004 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline _OutputIterator copy_n(_InputIterator __first, _Size __n, _OutputIterator __result) { return std::__copy_n(__first, __n, __result, std::__iterator_category(__first)); } # 1032 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template pair<_OutputIterator1, _OutputIterator2> partition_copy(_InputIterator __first, _InputIterator __last, _OutputIterator1 __out_true, _OutputIterator2 __out_false, _Predicate __pred) { ; for (; __first != __last; ++__first) if (__pred(*__first)) { *__out_true = *__first; ++__out_true; } else { *__out_false = *__first; ++__out_false; } return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); } # 1082 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator remove(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) { ; __first = std::find(__first, __last, __value); if(__first == __last) return __first; _ForwardIterator __result = __first; ++__first; for(; __first != __last; ++__first) if(!(*__first == __value)) { *__result = std::move(*__first); ++__result; } return __result; } # 1125 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator remove_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) { ; __first = std::find_if(__first, __last, __pred); if(__first == __last) return __first; _ForwardIterator __result = __first; ++__first; for(; __first != __last; ++__first) if(!bool(__pred(*__first))) { *__result = std::move(*__first); ++__result; } return __result; } # 1165 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator unique(_ForwardIterator __first, _ForwardIterator __last) { ; __first = std::adjacent_find(__first, __last); if (__first == __last) return __last; _ForwardIterator __dest = __first; ++__first; while (++__first != __last) if (!(*__dest == *__first)) *++__dest = std::move(*__first); return ++__dest; } # 1205 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator unique(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred) { ; __first = std::adjacent_find(__first, __last, __binary_pred); if (__first == __last) return __last; _ForwardIterator __dest = __first; ++__first; while (++__first != __last) if (!bool(__binary_pred(*__dest, *__first))) *++__dest = std::move(*__first); return ++__dest; } template _OutputIterator __unique_copy(_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __result, forward_iterator_tag, output_iterator_tag) { _ForwardIterator __next = __first; *__result = *__first; while (++__next != __last) if (!(*__first == *__next)) { __first = __next; *++__result = *__first; } return ++__result; } template _OutputIterator __unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, input_iterator_tag, output_iterator_tag) { typename iterator_traits<_InputIterator>::value_type __value = *__first; *__result = __value; while (++__first != __last) if (!(__value == *__first)) { __value = *__first; *++__result = __value; } return ++__result; } template _ForwardIterator __unique_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, input_iterator_tag, forward_iterator_tag) { *__result = *__first; while (++__first != __last) if (!(*__result == *__first)) *++__result = *__first; return ++__result; } template _OutputIterator __unique_copy(_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred, forward_iterator_tag, output_iterator_tag) { _ForwardIterator __next = __first; *__result = *__first; while (++__next != __last) if (!bool(__binary_pred(*__first, *__next))) { __first = __next; *++__result = *__first; } return ++__result; } template _OutputIterator __unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred, input_iterator_tag, output_iterator_tag) { typename iterator_traits<_InputIterator>::value_type __value = *__first; *__result = __value; while (++__first != __last) if (!bool(__binary_pred(__value, *__first))) { __value = *__first; *++__result = __value; } return ++__result; } template _ForwardIterator __unique_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _BinaryPredicate __binary_pred, input_iterator_tag, forward_iterator_tag) { *__result = *__first; while (++__first != __last) if (!bool(__binary_pred(*__result, *__first))) *++__result = *__first; return ++__result; } template void __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, bidirectional_iterator_tag) { while (true) if (__first == __last || __first == --__last) return; else { std::iter_swap(__first, __last); ++__first; } } template void __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) { if (__first == __last) return; --__last; while (__first < __last) { std::iter_swap(__first, __last); ++__first; --__last; } } # 1433 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline void reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) { ; std::__reverse(__first, __last, std::__iterator_category(__first)); } # 1460 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, _OutputIterator __result) { ; while (__first != __last) { --__last; *__result = *__last; ++__result; } return __result; } template _EuclideanRingElement __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) { while (__n != 0) { _EuclideanRingElement __t = __m % __n; __m = __n; __n = __t; } return __m; } template void __rotate(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, forward_iterator_tag) { if (__first == __middle || __last == __middle) return; _ForwardIterator __first2 = __middle; do { std::iter_swap(__first, __first2); ++__first; ++__first2; if (__first == __middle) __middle = __first2; } while (__first2 != __last); __first2 = __middle; while (__first2 != __last) { std::iter_swap(__first, __first2); ++__first; ++__first2; if (__first == __middle) __middle = __first2; else if (__first2 == __last) __first2 = __middle; } } template void __rotate(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, bidirectional_iterator_tag) { if (__first == __middle || __last == __middle) return; std::__reverse(__first, __middle, bidirectional_iterator_tag()); std::__reverse(__middle, __last, bidirectional_iterator_tag()); while (__first != __middle && __middle != __last) { std::iter_swap(__first, --__last); ++__first; } if (__first == __middle) std::__reverse(__middle, __last, bidirectional_iterator_tag()); else std::__reverse(__first, __middle, bidirectional_iterator_tag()); } template void __rotate(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, random_access_iterator_tag) { if (__first == __middle || __last == __middle) return; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance; typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; _Distance __n = __last - __first; _Distance __k = __middle - __first; if (__k == __n - __k) { std::swap_ranges(__first, __middle, __middle); return; } _RandomAccessIterator __p = __first; for (;;) { if (__k < __n - __k) { if (__is_pod(_ValueType) && __k == 1) { _ValueType __t = std::move(*__p); std::move(__p + 1, __p + __n, __p); *(__p + __n - 1) = std::move(__t); return; } _RandomAccessIterator __q = __p + __k; for (_Distance __i = 0; __i < __n - __k; ++ __i) { std::iter_swap(__p, __q); ++__p; ++__q; } __n %= __k; if (__n == 0) return; std::swap(__n, __k); __k = __n - __k; } else { __k = __n - __k; if (__is_pod(_ValueType) && __k == 1) { _ValueType __t = std::move(*(__p + __n - 1)); std::move_backward(__p, __p + __n - 1, __p + __n); *__p = std::move(__t); return; } _RandomAccessIterator __q = __p + __n; __p = __q - __k; for (_Distance __i = 0; __i < __n - __k; ++ __i) { --__p; --__q; std::iter_swap(__p, __q); } __n %= __k; if (__n == 0) return; std::swap(__n, __k); } } } # 1664 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline void rotate(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last) { ; ; typedef typename iterator_traits<_ForwardIterator>::iterator_category _IterType; std::__rotate(__first, __middle, __last, _IterType()); } # 1698 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, _OutputIterator __result) { ; ; return std::copy(__first, __middle, std::copy(__middle, __last, __result)); } template _ForwardIterator __partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, forward_iterator_tag) { if (__first == __last) return __first; while (__pred(*__first)) if (++__first == __last) return __first; _ForwardIterator __next = __first; while (++__next != __last) if (__pred(*__next)) { std::iter_swap(__first, __next); ++__first; } return __first; } template _BidirectionalIterator __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred, bidirectional_iterator_tag) { while (true) { while (true) if (__first == __last) return __first; else if (__pred(*__first)) ++__first; else break; --__last; while (true) if (__first == __last) return __first; else if (!bool(__pred(*__last))) --__last; else break; std::iter_swap(__first, __last); ++__first; } } template _ForwardIterator __inplace_stable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, _Distance __len) { if (__len == 1) return __pred(*__first) ? __last : __first; _ForwardIterator __middle = __first; std::advance(__middle, __len / 2); _ForwardIterator __begin = std::__inplace_stable_partition(__first, __middle, __pred, __len / 2); _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last, __pred, __len - __len / 2); std::rotate(__begin, __middle, __end); std::advance(__begin, std::distance(__middle, __end)); return __begin; } template _ForwardIterator __stable_partition_adaptive(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, _Distance __len, _Pointer __buffer, _Distance __buffer_size) { if (__len <= __buffer_size) { _ForwardIterator __result1 = __first; _Pointer __result2 = __buffer; for (; __first != __last; ++__first) if (__pred(*__first)) { *__result1 = std::move(*__first); ++__result1; } else { *__result2 = std::move(*__first); ++__result2; } std::move(__buffer, __result2, __result1); return __result1; } else { _ForwardIterator __middle = __first; std::advance(__middle, __len / 2); _ForwardIterator __begin = std::__stable_partition_adaptive(__first, __middle, __pred, __len / 2, __buffer, __buffer_size); _ForwardIterator __end = std::__stable_partition_adaptive(__middle, __last, __pred, __len - __len / 2, __buffer, __buffer_size); std::rotate(__begin, __middle, __end); std::advance(__begin, std::distance(__middle, __end)); return __begin; } } # 1856 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator stable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) { ; if (__first == __last) return __first; else { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first, __last); if (__buf.size() > 0) return std::__stable_partition_adaptive(__first, __last, __pred, _DistanceType(__buf.requested_size()), __buf.begin(), _DistanceType(__buf.size())); else return std::__inplace_stable_partition(__first, __last, __pred, _DistanceType(__buf.requested_size())); } } template void __heap_select(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last) { std::make_heap(__first, __middle); for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) if (*__i < *__first) std::__pop_heap(__first, __middle, __i); } template void __heap_select(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, _Compare __comp) { std::make_heap(__first, __middle, __comp); for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) if (__comp(*__i, *__first)) std::__pop_heap(__first, __middle, __i, __comp); } # 1938 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _RandomAccessIterator partial_sort_copy(_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last) { typedef typename iterator_traits<_InputIterator>::value_type _InputValueType; typedef typename iterator_traits<_RandomAccessIterator>::value_type _OutputValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; ; if (__result_first == __result_last) return __result_last; _RandomAccessIterator __result_real_last = __result_first; while(__first != __last && __result_real_last != __result_last) { *__result_real_last = *__first; ++__result_real_last; ++__first; } std::make_heap(__result_first, __result_real_last); while (__first != __last) { if (*__first < *__result_first) std::__adjust_heap(__result_first, _DistanceType(0), _DistanceType(__result_real_last - __result_first), _InputValueType(*__first)); ++__first; } std::sort_heap(__result_first, __result_real_last); return __result_real_last; } # 2004 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _RandomAccessIterator partial_sort_copy(_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp) { typedef typename iterator_traits<_InputIterator>::value_type _InputValueType; typedef typename iterator_traits<_RandomAccessIterator>::value_type _OutputValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; ; if (__result_first == __result_last) return __result_last; _RandomAccessIterator __result_real_last = __result_first; while(__first != __last && __result_real_last != __result_last) { *__result_real_last = *__first; ++__result_real_last; ++__first; } std::make_heap(__result_first, __result_real_last, __comp); while (__first != __last) { if (__comp(*__first, *__result_first)) std::__adjust_heap(__result_first, _DistanceType(0), _DistanceType(__result_real_last - __result_first), _InputValueType(*__first), __comp); ++__first; } std::sort_heap(__result_first, __result_real_last, __comp); return __result_real_last; } template void __unguarded_linear_insert(_RandomAccessIterator __last) { typename iterator_traits<_RandomAccessIterator>::value_type __val = std::move(*__last); _RandomAccessIterator __next = __last; --__next; while (__val < *__next) { *__last = std::move(*__next); __last = __next; --__next; } *__last = std::move(__val); } template void __unguarded_linear_insert(_RandomAccessIterator __last, _Compare __comp) { typename iterator_traits<_RandomAccessIterator>::value_type __val = std::move(*__last); _RandomAccessIterator __next = __last; --__next; while (__comp(__val, *__next)) { *__last = std::move(*__next); __last = __next; --__next; } *__last = std::move(__val); } template void __insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { if (__first == __last) return; for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) { if (*__i < *__first) { typename iterator_traits<_RandomAccessIterator>::value_type __val = std::move(*__i); std::move_backward(__first, __i, __i + 1); *__first = std::move(__val); } else std::__unguarded_linear_insert(__i); } } template void __insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { if (__first == __last) return; for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) { if (__comp(*__i, *__first)) { typename iterator_traits<_RandomAccessIterator>::value_type __val = std::move(*__i); std::move_backward(__first, __i, __i + 1); *__first = std::move(__val); } else std::__unguarded_linear_insert(__i, __comp); } } template inline void __unguarded_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; for (_RandomAccessIterator __i = __first; __i != __last; ++__i) std::__unguarded_linear_insert(__i); } template inline void __unguarded_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; for (_RandomAccessIterator __i = __first; __i != __last; ++__i) std::__unguarded_linear_insert(__i, __comp); } enum { _S_threshold = 16 }; template void __final_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { if (__last - __first > int(_S_threshold)) { std::__insertion_sort(__first, __first + int(_S_threshold)); std::__unguarded_insertion_sort(__first + int(_S_threshold), __last); } else std::__insertion_sort(__first, __last); } template void __final_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { if (__last - __first > int(_S_threshold)) { std::__insertion_sort(__first, __first + int(_S_threshold), __comp); std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, __comp); } else std::__insertion_sort(__first, __last, __comp); } template _RandomAccessIterator __unguarded_partition(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __pivot) { while (true) { while (*__first < __pivot) ++__first; --__last; while (__pivot < *__last) --__last; if (!(__first < __last)) return __first; std::iter_swap(__first, __last); ++__first; } } template _RandomAccessIterator __unguarded_partition(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __pivot, _Compare __comp) { while (true) { while (__comp(*__first, __pivot)) ++__first; --__last; while (__comp(__pivot, *__last)) --__last; if (!(__first < __last)) return __first; std::iter_swap(__first, __last); ++__first; } } template inline _RandomAccessIterator __unguarded_partition_pivot(_RandomAccessIterator __first, _RandomAccessIterator __last) { _RandomAccessIterator __mid = __first + (__last - __first) / 2; std::__move_median_first(__first, __mid, (__last - 1)); return std::__unguarded_partition(__first + 1, __last, *__first); } template inline _RandomAccessIterator __unguarded_partition_pivot(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { _RandomAccessIterator __mid = __first + (__last - __first) / 2; std::__move_median_first(__first, __mid, (__last - 1), __comp); return std::__unguarded_partition(__first + 1, __last, *__first, __comp); } template void __introsort_loop(_RandomAccessIterator __first, _RandomAccessIterator __last, _Size __depth_limit) { while (__last - __first > int(_S_threshold)) { if (__depth_limit == 0) { std::partial_sort(__first, __last, __last); return; } --__depth_limit; _RandomAccessIterator __cut = std::__unguarded_partition_pivot(__first, __last); std::__introsort_loop(__cut, __last, __depth_limit); __last = __cut; } } template void __introsort_loop(_RandomAccessIterator __first, _RandomAccessIterator __last, _Size __depth_limit, _Compare __comp) { while (__last - __first > int(_S_threshold)) { if (__depth_limit == 0) { std::partial_sort(__first, __last, __last, __comp); return; } --__depth_limit; _RandomAccessIterator __cut = std::__unguarded_partition_pivot(__first, __last, __comp); std::__introsort_loop(__cut, __last, __depth_limit, __comp); __last = __cut; } } template void __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Size __depth_limit) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; while (__last - __first > 3) { if (__depth_limit == 0) { std::__heap_select(__first, __nth + 1, __last); std::iter_swap(__first, __nth); return; } --__depth_limit; _RandomAccessIterator __cut = std::__unguarded_partition_pivot(__first, __last); if (__cut <= __nth) __first = __cut; else __last = __cut; } std::__insertion_sort(__first, __last); } template void __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Size __depth_limit, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; while (__last - __first > 3) { if (__depth_limit == 0) { std::__heap_select(__first, __nth + 1, __last, __comp); std::iter_swap(__first, __nth); return; } --__depth_limit; _RandomAccessIterator __cut = std::__unguarded_partition_pivot(__first, __last, __comp); if (__cut <= __nth) __first = __cut; else __last = __cut; } std::__insertion_sort(__first, __last, __comp); } # 2388 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val, _Compare __comp) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; ; _DistanceType __len = std::distance(__first, __last); _DistanceType __half; _ForwardIterator __middle; while (__len > 0) { __half = __len >> 1; __middle = __first; std::advance(__middle, __half); if (__comp(*__middle, __val)) { __first = __middle; ++__first; __len = __len - __half - 1; } else __len = __half; } return __first; } # 2437 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; ; _DistanceType __len = std::distance(__first, __last); _DistanceType __half; _ForwardIterator __middle; while (__len > 0) { __half = __len >> 1; __middle = __first; std::advance(__middle, __half); if (__val < *__middle) __len = __half; else { __first = __middle; ++__first; __len = __len - __half - 1; } } return __first; } # 2488 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val, _Compare __comp) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; ; _DistanceType __len = std::distance(__first, __last); _DistanceType __half; _ForwardIterator __middle; while (__len > 0) { __half = __len >> 1; __middle = __first; std::advance(__middle, __half); if (__comp(__val, *__middle)) __len = __half; else { __first = __middle; ++__first; __len = __len - __half - 1; } } return __first; } # 2543 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template pair<_ForwardIterator, _ForwardIterator> equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; ; ; _DistanceType __len = std::distance(__first, __last); _DistanceType __half; _ForwardIterator __middle, __left, __right; while (__len > 0) { __half = __len >> 1; __middle = __first; std::advance(__middle, __half); if (*__middle < __val) { __first = __middle; ++__first; __len = __len - __half - 1; } else if (__val < *__middle) __len = __half; else { __left = std::lower_bound(__first, __middle, __val); std::advance(__first, __len); __right = std::upper_bound(++__middle, __first, __val); return pair<_ForwardIterator, _ForwardIterator>(__left, __right); } } return pair<_ForwardIterator, _ForwardIterator>(__first, __first); } # 2605 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template pair<_ForwardIterator, _ForwardIterator> equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val, _Compare __comp) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; ; ; _DistanceType __len = std::distance(__first, __last); _DistanceType __half; _ForwardIterator __middle, __left, __right; while (__len > 0) { __half = __len >> 1; __middle = __first; std::advance(__middle, __half); if (__comp(*__middle, __val)) { __first = __middle; ++__first; __len = __len - __half - 1; } else if (__comp(__val, *__middle)) __len = __half; else { __left = std::lower_bound(__first, __middle, __val, __comp); std::advance(__first, __len); __right = std::upper_bound(++__middle, __first, __val, __comp); return pair<_ForwardIterator, _ForwardIterator>(__left, __right); } } return pair<_ForwardIterator, _ForwardIterator>(__first, __first); } # 2666 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template bool binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; ; ; _ForwardIterator __i = std::lower_bound(__first, __last, __val); return __i != __last && !(__val < *__i); } # 2699 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template bool binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val, _Compare __comp) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; ; ; _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp); return __i != __last && !bool(__comp(__val, *__i)); } template _BidirectionalIterator3 __merge_backward(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BidirectionalIterator3 __result) { if (__first1 == __last1) return std::copy_backward(__first2, __last2, __result); if (__first2 == __last2) return std::copy_backward(__first1, __last1, __result); --__last1; --__last2; while (true) { if (*__last2 < *__last1) { *--__result = *__last1; if (__first1 == __last1) return std::copy_backward(__first2, ++__last2, __result); --__last1; } else { *--__result = *__last2; if (__first2 == __last2) return std::copy_backward(__first1, ++__last1, __result); --__last2; } } } template _BidirectionalIterator3 __merge_backward(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BidirectionalIterator3 __result, _Compare __comp) { if (__first1 == __last1) return std::copy_backward(__first2, __last2, __result); if (__first2 == __last2) return std::copy_backward(__first1, __last1, __result); --__last1; --__last2; while (true) { if (__comp(*__last2, *__last1)) { *--__result = *__last1; if (__first1 == __last1) return std::copy_backward(__first2, ++__last2, __result); --__last1; } else { *--__result = *__last2; if (__first2 == __last2) return std::copy_backward(__first1, ++__last1, __result); --__last2; } } } template _BidirectionalIterator1 __rotate_adaptive(_BidirectionalIterator1 __first, _BidirectionalIterator1 __middle, _BidirectionalIterator1 __last, _Distance __len1, _Distance __len2, _BidirectionalIterator2 __buffer, _Distance __buffer_size) { _BidirectionalIterator2 __buffer_end; if (__len1 > __len2 && __len2 <= __buffer_size) { __buffer_end = std::move(__middle, __last, __buffer); std::move_backward(__first, __middle, __last); return std::move(__buffer, __buffer_end, __first); } else if (__len1 <= __buffer_size) { __buffer_end = std::move(__first, __middle, __buffer); std::move(__middle, __last, __first); return std::move_backward(__buffer, __buffer_end, __last); } else { std::rotate(__first, __middle, __last); std::advance(__first, std::distance(__middle, __last)); return __first; } } template void __merge_adaptive(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size) { if (__len1 <= __len2 && __len1 <= __buffer_size) { _Pointer __buffer_end = std::move(__first, __middle, __buffer); std::merge(std::make_move_iterator(__buffer), std::make_move_iterator(__buffer_end), std::make_move_iterator(__middle), std::make_move_iterator(__last), __first); } else if (__len2 <= __buffer_size) { _Pointer __buffer_end = std::move(__middle, __last, __buffer); std::__merge_backward(std::make_move_iterator(__first), std::make_move_iterator(__middle), std::make_move_iterator(__buffer), std::make_move_iterator(__buffer_end), __last); } else { _BidirectionalIterator __first_cut = __first; _BidirectionalIterator __second_cut = __middle; _Distance __len11 = 0; _Distance __len22 = 0; if (__len1 > __len2) { __len11 = __len1 / 2; std::advance(__first_cut, __len11); __second_cut = std::lower_bound(__middle, __last, *__first_cut); __len22 = std::distance(__middle, __second_cut); } else { __len22 = __len2 / 2; std::advance(__second_cut, __len22); __first_cut = std::upper_bound(__first, __middle, *__second_cut); __len11 = std::distance(__first, __first_cut); } _BidirectionalIterator __new_middle = std::__rotate_adaptive(__first_cut, __middle, __second_cut, __len1 - __len11, __len22, __buffer, __buffer_size); std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, __len22, __buffer, __buffer_size); std::__merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, __len2 - __len22, __buffer, __buffer_size); } } template void __merge_adaptive(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size, _Compare __comp) { if (__len1 <= __len2 && __len1 <= __buffer_size) { _Pointer __buffer_end = std::move(__first, __middle, __buffer); std::merge(std::make_move_iterator(__buffer), std::make_move_iterator(__buffer_end), std::make_move_iterator(__middle), std::make_move_iterator(__last), __first, __comp); } else if (__len2 <= __buffer_size) { _Pointer __buffer_end = std::move(__middle, __last, __buffer); std::__merge_backward(std::make_move_iterator(__first), std::make_move_iterator(__middle), std::make_move_iterator(__buffer), std::make_move_iterator(__buffer_end), __last,__comp); } else { _BidirectionalIterator __first_cut = __first; _BidirectionalIterator __second_cut = __middle; _Distance __len11 = 0; _Distance __len22 = 0; if (__len1 > __len2) { __len11 = __len1 / 2; std::advance(__first_cut, __len11); __second_cut = std::lower_bound(__middle, __last, *__first_cut, __comp); __len22 = std::distance(__middle, __second_cut); } else { __len22 = __len2 / 2; std::advance(__second_cut, __len22); __first_cut = std::upper_bound(__first, __middle, *__second_cut, __comp); __len11 = std::distance(__first, __first_cut); } _BidirectionalIterator __new_middle = std::__rotate_adaptive(__first_cut, __middle, __second_cut, __len1 - __len11, __len22, __buffer, __buffer_size); std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, __len22, __buffer, __buffer_size, __comp); std::__merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, __len2 - __len22, __buffer, __buffer_size, __comp); } } template void __merge_without_buffer(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2) { if (__len1 == 0 || __len2 == 0) return; if (__len1 + __len2 == 2) { if (*__middle < *__first) std::iter_swap(__first, __middle); return; } _BidirectionalIterator __first_cut = __first; _BidirectionalIterator __second_cut = __middle; _Distance __len11 = 0; _Distance __len22 = 0; if (__len1 > __len2) { __len11 = __len1 / 2; std::advance(__first_cut, __len11); __second_cut = std::lower_bound(__middle, __last, *__first_cut); __len22 = std::distance(__middle, __second_cut); } else { __len22 = __len2 / 2; std::advance(__second_cut, __len22); __first_cut = std::upper_bound(__first, __middle, *__second_cut); __len11 = std::distance(__first, __first_cut); } std::rotate(__first_cut, __middle, __second_cut); _BidirectionalIterator __new_middle = __first_cut; std::advance(__new_middle, std::distance(__middle, __second_cut)); std::__merge_without_buffer(__first, __first_cut, __new_middle, __len11, __len22); std::__merge_without_buffer(__new_middle, __second_cut, __last, __len1 - __len11, __len2 - __len22); } template void __merge_without_buffer(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Compare __comp) { if (__len1 == 0 || __len2 == 0) return; if (__len1 + __len2 == 2) { if (__comp(*__middle, *__first)) std::iter_swap(__first, __middle); return; } _BidirectionalIterator __first_cut = __first; _BidirectionalIterator __second_cut = __middle; _Distance __len11 = 0; _Distance __len22 = 0; if (__len1 > __len2) { __len11 = __len1 / 2; std::advance(__first_cut, __len11); __second_cut = std::lower_bound(__middle, __last, *__first_cut, __comp); __len22 = std::distance(__middle, __second_cut); } else { __len22 = __len2 / 2; std::advance(__second_cut, __len22); __first_cut = std::upper_bound(__first, __middle, *__second_cut, __comp); __len11 = std::distance(__first, __first_cut); } std::rotate(__first_cut, __middle, __second_cut); _BidirectionalIterator __new_middle = __first_cut; std::advance(__new_middle, std::distance(__middle, __second_cut)); std::__merge_without_buffer(__first, __first_cut, __new_middle, __len11, __len22, __comp); std::__merge_without_buffer(__new_middle, __second_cut, __last, __len1 - __len11, __len2 - __len22, __comp); } # 3059 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template void inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last) { typedef typename iterator_traits<_BidirectionalIterator>::value_type _ValueType; typedef typename iterator_traits<_BidirectionalIterator>::difference_type _DistanceType; ; ; if (__first == __middle || __middle == __last) return; _DistanceType __len1 = std::distance(__first, __middle); _DistanceType __len2 = std::distance(__middle, __last); _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first, __last); if (__buf.begin() == 0) std::__merge_without_buffer(__first, __middle, __last, __len1, __len2); else std::__merge_adaptive(__first, __middle, __last, __len1, __len2, __buf.begin(), _DistanceType(__buf.size())); } # 3114 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template void inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Compare __comp) { typedef typename iterator_traits<_BidirectionalIterator>::value_type _ValueType; typedef typename iterator_traits<_BidirectionalIterator>::difference_type _DistanceType; ; ; if (__first == __middle || __middle == __last) return; const _DistanceType __len1 = std::distance(__first, __middle); const _DistanceType __len2 = std::distance(__middle, __last); _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first, __last); if (__buf.begin() == 0) std::__merge_without_buffer(__first, __middle, __last, __len1, __len2, __comp); else std::__merge_adaptive(__first, __middle, __last, __len1, __len2, __buf.begin(), _DistanceType(__buf.size()), __comp); } template void __merge_sort_loop(_RandomAccessIterator1 __first, _RandomAccessIterator1 __last, _RandomAccessIterator2 __result, _Distance __step_size) { const _Distance __two_step = 2 * __step_size; while (__last - __first >= __two_step) { __result = std::merge( std::make_move_iterator(__first), std::make_move_iterator(__first + __step_size), std::make_move_iterator(__first + __step_size), std::make_move_iterator(__first + __two_step), __result); __first += __two_step; } __step_size = std::min(_Distance(__last - __first), __step_size); std::merge(std::make_move_iterator(__first), std::make_move_iterator(__first + __step_size) , std::make_move_iterator(__first + __step_size) , std::make_move_iterator(__last), __result); } template void __merge_sort_loop(_RandomAccessIterator1 __first, _RandomAccessIterator1 __last, _RandomAccessIterator2 __result, _Distance __step_size, _Compare __comp) { const _Distance __two_step = 2 * __step_size; while (__last - __first >= __two_step) { __result = std::merge( std::make_move_iterator(__first), std::make_move_iterator(__first + __step_size), std::make_move_iterator(__first + __step_size), std::make_move_iterator(__first + __two_step), __result, __comp); __first += __two_step; } __step_size = std::min(_Distance(__last - __first), __step_size); std::merge(std::make_move_iterator(__first), std::make_move_iterator(__first + __step_size) , std::make_move_iterator(__first + __step_size) , std::make_move_iterator(__last), __result, __comp); } template void __chunk_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Distance __chunk_size) { while (__last - __first >= __chunk_size) { std::__insertion_sort(__first, __first + __chunk_size); __first += __chunk_size; } std::__insertion_sort(__first, __last); } template void __chunk_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Distance __chunk_size, _Compare __comp) { while (__last - __first >= __chunk_size) { std::__insertion_sort(__first, __first + __chunk_size, __comp); __first += __chunk_size; } std::__insertion_sort(__first, __last, __comp); } enum { _S_chunk_size = 7 }; template void __merge_sort_with_buffer(_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer) { typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance; const _Distance __len = __last - __first; const _Pointer __buffer_last = __buffer + __len; _Distance __step_size = _S_chunk_size; std::__chunk_insertion_sort(__first, __last, __step_size); while (__step_size < __len) { std::__merge_sort_loop(__first, __last, __buffer, __step_size); __step_size *= 2; std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size); __step_size *= 2; } } template void __merge_sort_with_buffer(_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance; const _Distance __len = __last - __first; const _Pointer __buffer_last = __buffer + __len; _Distance __step_size = _S_chunk_size; std::__chunk_insertion_sort(__first, __last, __step_size, __comp); while (__step_size < __len) { std::__merge_sort_loop(__first, __last, __buffer, __step_size, __comp); __step_size *= 2; std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size, __comp); __step_size *= 2; } } template void __stable_sort_adaptive(_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Distance __buffer_size) { const _Distance __len = (__last - __first + 1) / 2; const _RandomAccessIterator __middle = __first + __len; if (__len > __buffer_size) { std::__stable_sort_adaptive(__first, __middle, __buffer, __buffer_size); std::__stable_sort_adaptive(__middle, __last, __buffer, __buffer_size); } else { std::__merge_sort_with_buffer(__first, __middle, __buffer); std::__merge_sort_with_buffer(__middle, __last, __buffer); } std::__merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), _Distance(__last - __middle), __buffer, __buffer_size); } template void __stable_sort_adaptive(_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Distance __buffer_size, _Compare __comp) { const _Distance __len = (__last - __first + 1) / 2; const _RandomAccessIterator __middle = __first + __len; if (__len > __buffer_size) { std::__stable_sort_adaptive(__first, __middle, __buffer, __buffer_size, __comp); std::__stable_sort_adaptive(__middle, __last, __buffer, __buffer_size, __comp); } else { std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); } std::__merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), _Distance(__last - __middle), __buffer, __buffer_size, __comp); } template void __inplace_stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { if (__last - __first < 15) { std::__insertion_sort(__first, __last); return; } _RandomAccessIterator __middle = __first + (__last - __first) / 2; std::__inplace_stable_sort(__first, __middle); std::__inplace_stable_sort(__middle, __last); std::__merge_without_buffer(__first, __middle, __last, __middle - __first, __last - __middle); } template void __inplace_stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { if (__last - __first < 15) { std::__insertion_sort(__first, __last, __comp); return; } _RandomAccessIterator __middle = __first + (__last - __first) / 2; std::__inplace_stable_sort(__first, __middle, __comp); std::__inplace_stable_sort(__middle, __last, __comp); std::__merge_without_buffer(__first, __middle, __last, __middle - __first, __last - __middle, __comp); } # 3412 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template bool includes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (*__first2 < *__first1) return false; else if(*__first1 < *__first2) ++__first1; else ++__first1, ++__first2; return __first2 == __last2; } # 3461 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template bool includes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first2, *__first1)) return false; else if(__comp(*__first1, *__first2)) ++__first1; else ++__first1, ++__first2; return __first2 == __last2; } # 3516 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template bool next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last) { ; if (__first == __last) return false; _BidirectionalIterator __i = __first; ++__i; if (__i == __last) return false; __i = __last; --__i; for(;;) { _BidirectionalIterator __ii = __i; --__i; if (*__i < *__ii) { _BidirectionalIterator __j = __last; while (!(*__i < *--__j)) {} std::iter_swap(__i, __j); std::reverse(__ii, __last); return true; } if (__i == __first) { std::reverse(__first, __last); return false; } } } # 3573 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template bool next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) { ; if (__first == __last) return false; _BidirectionalIterator __i = __first; ++__i; if (__i == __last) return false; __i = __last; --__i; for(;;) { _BidirectionalIterator __ii = __i; --__i; if (__comp(*__i, *__ii)) { _BidirectionalIterator __j = __last; while (!bool(__comp(*__i, *--__j))) {} std::iter_swap(__i, __j); std::reverse(__ii, __last); return true; } if (__i == __first) { std::reverse(__first, __last); return false; } } } # 3629 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template bool prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last) { ; if (__first == __last) return false; _BidirectionalIterator __i = __first; ++__i; if (__i == __last) return false; __i = __last; --__i; for(;;) { _BidirectionalIterator __ii = __i; --__i; if (*__ii < *__i) { _BidirectionalIterator __j = __last; while (!(*--__j < *__i)) {} std::iter_swap(__i, __j); std::reverse(__ii, __last); return true; } if (__i == __first) { std::reverse(__first, __last); return false; } } } # 3686 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template bool prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) { ; if (__first == __last) return false; _BidirectionalIterator __i = __first; ++__i; if (__i == __last) return false; __i = __last; --__i; for(;;) { _BidirectionalIterator __ii = __i; --__i; if (__comp(*__ii, *__i)) { _BidirectionalIterator __j = __last; while (!bool(__comp(*--__j, *__i))) {} std::iter_swap(__i, __j); std::reverse(__ii, __last); return true; } if (__i == __first) { std::reverse(__first, __last); return false; } } } # 3746 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator replace_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, const _Tp& __old_value, const _Tp& __new_value) { ; for (; __first != __last; ++__first, ++__result) if (*__first == __old_value) *__result = __new_value; else *__result = *__first; return __result; } # 3783 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator replace_copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred, const _Tp& __new_value) { ; for (; __first != __last; ++__first, ++__result) if (__pred(*__first)) *__result = __new_value; else *__result = *__first; return __result; } # 3814 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline bool is_sorted(_ForwardIterator __first, _ForwardIterator __last) { return std::is_sorted_until(__first, __last) == __last; } # 3828 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline bool is_sorted(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { return std::is_sorted_until(__first, __last, __comp) == __last; } # 3842 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) { ; if (__first == __last) return __last; _ForwardIterator __next = __first; for (++__next; __next != __last; __first = __next, ++__next) if (*__next < *__first) return __next; return __next; } # 3871 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { ; if (__first == __last) return __last; _ForwardIterator __next = __first; for (++__next; __next != __last; __first = __next, ++__next) if (__comp(*__next, *__first)) return __next; return __next; } # 3900 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline pair minmax(const _Tp& __a, const _Tp& __b) { return __b < __a ? pair(__b, __a) : pair(__a, __b); } # 3919 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline pair minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) { return __comp(__b, __a) ? pair(__b, __a) : pair(__a, __b); } # 3938 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template pair<_ForwardIterator, _ForwardIterator> minmax_element(_ForwardIterator __first, _ForwardIterator __last) { ; _ForwardIterator __next = __first; if (__first == __last || ++__next == __last) return std::make_pair(__first, __first); _ForwardIterator __min, __max; if (*__next < *__first) { __min = __next; __max = __first; } else { __min = __first; __max = __next; } __first = __next; ++__first; while (__first != __last) { __next = __first; if (++__next == __last) { if (*__first < *__min) __min = __first; else if (!(*__first < *__max)) __max = __first; break; } if (*__next < *__first) { if (*__next < *__min) __min = __next; if (!(*__first < *__max)) __max = __first; } else { if (*__first < *__min) __min = __first; if (!(*__next < *__max)) __max = __next; } __first = __next; ++__first; } return std::make_pair(__min, __max); } # 4014 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template pair<_ForwardIterator, _ForwardIterator> minmax_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { ; _ForwardIterator __next = __first; if (__first == __last || ++__next == __last) return std::make_pair(__first, __first); _ForwardIterator __min, __max; if (__comp(*__next, *__first)) { __min = __next; __max = __first; } else { __min = __first; __max = __next; } __first = __next; ++__first; while (__first != __last) { __next = __first; if (++__next == __last) { if (__comp(*__first, *__min)) __min = __first; else if (!__comp(*__first, *__max)) __max = __first; break; } if (__comp(*__next, *__first)) { if (__comp(*__next, *__min)) __min = __next; if (!__comp(*__first, *__max)) __max = __first; } else { if (__comp(*__first, *__min)) __min = __first; if (!__comp(*__next, *__max)) __max = __next; } __first = __next; ++__first; } return std::make_pair(__min, __max); } template inline _Tp min(initializer_list<_Tp> __l) { return *std::min_element(__l.begin(), __l.end()); } template inline _Tp min(initializer_list<_Tp> __l, _Compare __comp) { return *std::min_element(__l.begin(), __l.end(), __comp); } template inline _Tp max(initializer_list<_Tp> __l) { return *std::max_element(__l.begin(), __l.end()); } template inline _Tp max(initializer_list<_Tp> __l, _Compare __comp) { return *std::max_element(__l.begin(), __l.end(), __comp); } template inline pair<_Tp, _Tp> minmax(initializer_list<_Tp> __l) { pair __p = std::minmax_element(__l.begin(), __l.end()); return std::make_pair(*__p.first, *__p.second); } template inline pair<_Tp, _Tp> minmax(initializer_list<_Tp> __l, _Compare __comp) { pair __p = std::minmax_element(__l.begin(), __l.end(), __comp); return std::make_pair(*__p.first, *__p.second); } # 4132 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template void shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, _UniformRandomNumberGenerator& __g) { ; if (__first == __last) return; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; typedef typename std::make_unsigned<_DistanceType>::type __ud_type; typedef typename std::uniform_int_distribution<__ud_type> __distr_type; typedef typename __distr_type::param_type __p_type; __distr_type __d; for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first))); } } namespace std __attribute__ ((__visibility__ ("default"))) { # 4177 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _Function for_each(_InputIterator __first, _InputIterator __last, _Function __f) { ; for (; __first != __last; ++__first) __f(*__first); return std::move(__f); } # 4198 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline _InputIterator find(_InputIterator __first, _InputIterator __last, const _Tp& __val) { ; return std::__find(__first, __last, __val, std::__iterator_category(__first)); } # 4222 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline _InputIterator find_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) { ; return std::__find_if(__first, __last, __pred, std::__iterator_category(__first)); } # 4251 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _InputIterator find_first_of(_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2) { ; ; for (; __first1 != __last1; ++__first1) for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) if (*__first1 == *__iter) return __first1; return __last1; } # 4290 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _InputIterator find_first_of(_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2, _BinaryPredicate __comp) { ; ; for (; __first1 != __last1; ++__first1) for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) if (__comp(*__first1, *__iter)) return __first1; return __last1; } # 4322 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator adjacent_find(_ForwardIterator __first, _ForwardIterator __last) { ; if (__first == __last) return __last; _ForwardIterator __next = __first; while(++__next != __last) { if (*__first == *__next) return __first; __first = __next; } return __last; } # 4354 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator adjacent_find(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred) { ; if (__first == __last) return __last; _ForwardIterator __next = __first; while(++__next != __last) { if (__binary_pred(*__first, *__next)) return __first; __first = __next; } return __last; } # 4386 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template typename iterator_traits<_InputIterator>::difference_type count(_InputIterator __first, _InputIterator __last, const _Tp& __value) { ; typename iterator_traits<_InputIterator>::difference_type __n = 0; for (; __first != __last; ++__first) if (*__first == __value) ++__n; return __n; } # 4411 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template typename iterator_traits<_InputIterator>::difference_type count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) { ; typename iterator_traits<_InputIterator>::difference_type __n = 0; for (; __first != __last; ++__first) if (__pred(*__first)) ++__n; return __n; } # 4451 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator1 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) { ; ; if (__first1 == __last1 || __first2 == __last2) return __first1; _ForwardIterator2 __p1(__first2); if (++__p1 == __last2) return std::find(__first1, __last1, *__first2); _ForwardIterator2 __p; _ForwardIterator1 __current = __first1; for (;;) { __first1 = std::find(__first1, __last1, *__first2); if (__first1 == __last1) return __last1; __p = __p1; __current = __first1; if (++__current == __last1) return __last1; while (*__current == *__p) { if (++__p == __last2) return __first1; if (++__current == __last1) return __last1; } ++__first1; } return __first1; } # 4522 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator1 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __predicate) { ; ; if (__first1 == __last1 || __first2 == __last2) return __first1; _ForwardIterator2 __p1(__first2); if (++__p1 == __last2) { while (__first1 != __last1 && !bool(__predicate(*__first1, *__first2))) ++__first1; return __first1; } _ForwardIterator2 __p; _ForwardIterator1 __current = __first1; for (;;) { while (__first1 != __last1 && !bool(__predicate(*__first1, *__first2))) ++__first1; if (__first1 == __last1) return __last1; __p = __p1; __current = __first1; if (++__current == __last1) return __last1; while (__predicate(*__current, *__p)) { if (++__p == __last2) return __first1; if (++__current == __last1) return __last1; } ++__first1; } return __first1; } # 4596 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator search_n(_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp& __val) { ; if (__count <= 0) return __first; if (__count == 1) return std::find(__first, __last, __val); return std::__search_n(__first, __last, __count, __val, std::__iterator_category(__first)); } # 4632 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator search_n(_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp& __val, _BinaryPredicate __binary_pred) { ; if (__count <= 0) return __first; if (__count == 1) { while (__first != __last && !bool(__binary_pred(*__first, __val))) ++__first; return __first; } return std::__search_n(__first, __last, __count, __val, __binary_pred, std::__iterator_category(__first)); } # 4674 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator transform(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __unary_op) { ; for (; __first != __last; ++__first, ++__result) *__result = __unary_op(*__first); return __result; } # 4710 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator transform(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _OutputIterator __result, _BinaryOperation __binary_op) { ; for (; __first1 != __last1; ++__first1, ++__first2, ++__result) *__result = __binary_op(*__first1, *__first2); return __result; } # 4743 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template void replace(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __old_value, const _Tp& __new_value) { ; for (; __first != __last; ++__first) if (*__first == __old_value) *__first = __new_value; } # 4775 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template void replace_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, const _Tp& __new_value) { ; for (; __first != __last; ++__first) if (__pred(*__first)) *__first = __new_value; } # 4807 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template void generate(_ForwardIterator __first, _ForwardIterator __last, _Generator __gen) { ; for (; __first != __last; ++__first) *__first = __gen(); } # 4838 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator generate_n(_OutputIterator __first, _Size __n, _Generator __gen) { for (; __n > 0; --__n, ++__first) *__first = __gen(); return __first; } # 4874 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline _OutputIterator unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { ; if (__first == __last) return __result; return std::__unique_copy(__first, __last, __result, std::__iterator_category(__first), std::__iterator_category(__result)); } # 4913 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline _OutputIterator unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred) { ; if (__first == __last) return __result; return std::__unique_copy(__first, __last, __result, __binary_pred, std::__iterator_category(__first), std::__iterator_category(__result)); } # 4945 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline void random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) { ; if (__first != __last) for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1))); } # 4973 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template void random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomNumberGenerator&& __rand) { ; if (__first == __last) return; for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) std::iter_swap(__i, __first + __rand((__i - __first) + 1)); } # 5009 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline _ForwardIterator partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) { ; return std::__partition(__first, __last, __pred, std::__iterator_category(__first)); } # 5043 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline void partial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; ; std::__heap_select(__first, __middle, __last); std::sort_heap(__first, __middle); } # 5082 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline void partial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; ; std::__heap_select(__first, __middle, __last, __comp); std::sort_heap(__first, __middle, __comp); } # 5120 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline void nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; ; if (__first == __last || __nth == __last) return; std::__introselect(__first, __nth, __last, std::__lg(__last - __first) * 2); } # 5159 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline void nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; ; if (__first == __last || __nth == __last) return; std::__introselect(__first, __nth, __last, std::__lg(__last - __first) * 2, __comp); } # 5197 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline void sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; if (__first != __last) { std::__introsort_loop(__first, __last, std::__lg(__last - __first) * 2); std::__final_insertion_sort(__first, __last); } } # 5233 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline void sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; if (__first != __last) { std::__introsort_loop(__first, __last, std::__lg(__last - __first) * 2, __comp); std::__final_insertion_sort(__first, __last, __comp); } } # 5274 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator merge(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) { if (*__first2 < *__first1) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; } ++__result; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)); } # 5337 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator merge(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) { if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; } ++__result; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)); } # 5397 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline void stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; _Temporary_buffer<_RandomAccessIterator, _ValueType> __buf(__first, __last); if (__buf.begin() == 0) std::__inplace_stable_sort(__first, __last); else std::__stable_sort_adaptive(__first, __last, __buf.begin(), _DistanceType(__buf.size())); } # 5439 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template inline void stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; _Temporary_buffer<_RandomAccessIterator, _ValueType> __buf(__first, __last); if (__buf.begin() == 0) std::__inplace_stable_sort(__first, __last, __comp); else std::__stable_sort_adaptive(__first, __last, __buf.begin(), _DistanceType(__buf.size()), __comp); } # 5485 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator set_union(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) { if (*__first1 < *__first2) { *__result = *__first1; ++__first1; } else if (*__first2 < *__first1) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; ++__first2; } ++__result; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)); } # 5552 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator set_union(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) { if (__comp(*__first1, *__first2)) { *__result = *__first1; ++__first1; } else if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; ++__first2; } ++__result; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)); } # 5619 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (*__first1 < *__first2) ++__first1; else if (*__first2 < *__first1) ++__first2; else { *__result = *__first1; ++__first1; ++__first2; ++__result; } return __result; } # 5676 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first1, *__first2)) ++__first1; else if (__comp(*__first2, *__first1)) ++__first2; else { *__result = *__first1; ++__first1; ++__first2; ++__result; } return __result; } # 5734 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator set_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (*__first1 < *__first2) { *__result = *__first1; ++__first1; ++__result; } else if (*__first2 < *__first1) ++__first2; else { ++__first1; ++__first2; } return std::copy(__first1, __last1, __result); } # 5795 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator set_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first1, *__first2)) { *__result = *__first1; ++__first1; ++__result; } else if (__comp(*__first2, *__first1)) ++__first2; else { ++__first1; ++__first2; } return std::copy(__first1, __last1, __result); } # 5853 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (*__first1 < *__first2) { *__result = *__first1; ++__first1; ++__result; } else if (*__first2 < *__first1) { *__result = *__first2; ++__first2; ++__result; } else { ++__first1; ++__first2; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)); } # 5919 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _OutputIterator set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first1, *__first2)) { *__result = *__first1; ++__first1; ++__result; } else if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__first2; ++__result; } else { ++__first1; ++__first2; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)); } # 5976 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator min_element(_ForwardIterator __first, _ForwardIterator __last) { ; if (__first == __last) return __first; _ForwardIterator __result = __first; while (++__first != __last) if (*__first < *__result) __result = __first; return __result; } # 6004 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { ; if (__first == __last) return __first; _ForwardIterator __result = __first; while (++__first != __last) if (__comp(*__first, *__result)) __result = __first; return __result; } # 6032 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator max_element(_ForwardIterator __first, _ForwardIterator __last) { ; if (__first == __last) return __first; _ForwardIterator __result = __first; while (++__first != __last) if (*__result < *__first) __result = __first; return __result; } # 6060 "/usr/include/c++/4.5/bits/stl_algo.h" 3 template _ForwardIterator max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { ; if (__first == __last) return __first; _ForwardIterator __result = __first; while (++__first != __last) if (__comp(*__result, *__first)) __result = __first; return __result; } } # 64 "/usr/include/c++/4.5/algorithm" 2 3 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/detail/allocator_utilities.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/detail/allocator_utilities.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/detail/allocator_utilities.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/memory" 1 3 4 # 47 "/usr/include/c++/4.5/memory" 3 4 # 48 "/usr/include/c++/4.5/memory" 3 # 68 "/usr/include/c++/4.5/memory" 3 # 1 "/usr/include/c++/4.5/bits/stl_raw_storage_iter.h" 1 3 # 60 "/usr/include/c++/4.5/bits/stl_raw_storage_iter.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template class raw_storage_iterator : public iterator { protected: _OutputIterator _M_iter; public: explicit raw_storage_iterator(_OutputIterator __x) : _M_iter(__x) {} raw_storage_iterator& operator*() { return *this; } raw_storage_iterator& operator=(const _Tp& __element) { std::_Construct(&*_M_iter, __element); return *this; } raw_storage_iterator<_OutputIterator, _Tp>& operator++() { ++_M_iter; return *this; } raw_storage_iterator<_OutputIterator, _Tp> operator++(int) { raw_storage_iterator<_OutputIterator, _Tp> __tmp = *this; ++_M_iter; return __tmp; } }; } # 69 "/usr/include/c++/4.5/memory" 2 3 # 1 "/usr/include/c++/4.5/typeinfo" 1 3 # 34 "/usr/include/c++/4.5/typeinfo" 3 # 35 "/usr/include/c++/4.5/typeinfo" 3 #pragma GCC visibility push(default) extern "C++" { namespace __cxxabiv1 { class __class_type_info; } # 79 "/usr/include/c++/4.5/typeinfo" 3 namespace std { class type_info { public: virtual ~type_info(); const char* name() const { return __name[0] == '*' ? __name + 1 : __name; } # 114 "/usr/include/c++/4.5/typeinfo" 3 bool before(const type_info& __arg) const { return (__name[0] == '*' && __arg.__name[0] == '*') ? __name < __arg.__name : __builtin_strcmp (__name, __arg.__name) < 0; } bool operator==(const type_info& __arg) const { return ((__name == __arg.__name) || (__name[0] != '*' && __builtin_strcmp (__name, __arg.__name) == 0)); } # 135 "/usr/include/c++/4.5/typeinfo" 3 bool operator!=(const type_info& __arg) const { return !operator==(__arg); } virtual bool __is_pointer_p() const; virtual bool __is_function_p() const; virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, unsigned __outer) const; virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, void **__obj_ptr) const; protected: const char *__name; explicit type_info(const char *__n): __name(__n) { } private: type_info& operator=(const type_info&); type_info(const type_info&); }; class bad_cast : public exception { public: bad_cast() throw() { } virtual ~bad_cast() throw(); virtual const char* what() const throw(); }; class bad_typeid : public exception { public: bad_typeid () throw() { } virtual ~bad_typeid() throw(); virtual const char* what() const throw(); }; } #pragma GCC visibility pop } # 76 "/usr/include/c++/4.5/memory" 2 3 # 1 "/usr/include/c++/4.5/ext/concurrence.h" 1 3 # 38 "/usr/include/c++/4.5/ext/concurrence.h" 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { enum _Lock_policy { _S_single, _S_mutex, _S_atomic }; static const _Lock_policy __default_lock_policy = _S_atomic; # 63 "/usr/include/c++/4.5/ext/concurrence.h" 3 class __concurrence_lock_error : public std::exception { public: virtual char const* what() const throw() { return "__gnu_cxx::__concurrence_lock_error"; } }; class __concurrence_unlock_error : public std::exception { public: virtual char const* what() const throw() { return "__gnu_cxx::__concurrence_unlock_error"; } }; class __concurrence_broadcast_error : public std::exception { public: virtual char const* what() const throw() { return "__gnu_cxx::__concurrence_broadcast_error"; } }; class __concurrence_wait_error : public std::exception { public: virtual char const* what() const throw() { return "__gnu_cxx::__concurrence_wait_error"; } }; inline void __throw_concurrence_lock_error() { throw __concurrence_lock_error(); } inline void __throw_concurrence_unlock_error() { throw __concurrence_unlock_error(); } inline void __throw_concurrence_broadcast_error() { throw __concurrence_broadcast_error(); } inline void __throw_concurrence_wait_error() { throw __concurrence_wait_error(); } class __mutex { private: __gthread_mutex_t _M_mutex; __mutex(const __mutex&); __mutex& operator=(const __mutex&); public: __mutex() { if (__gthread_active_p()) { __gthread_mutex_t __tmp = { { 0, 0, 0, 0, 0, 0, { 0, 0 } } }; _M_mutex = __tmp; } } void lock() { if (__gthread_active_p()) { if (__gthread_mutex_lock(&_M_mutex) != 0) __throw_concurrence_lock_error(); } } void unlock() { if (__gthread_active_p()) { if (__gthread_mutex_unlock(&_M_mutex) != 0) __throw_concurrence_unlock_error(); } } __gthread_mutex_t* gthread_mutex(void) { return &_M_mutex; } }; class __recursive_mutex { private: __gthread_recursive_mutex_t _M_mutex; __recursive_mutex(const __recursive_mutex&); __recursive_mutex& operator=(const __recursive_mutex&); public: __recursive_mutex() { if (__gthread_active_p()) { __gthread_recursive_mutex_t __tmp = { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0, 0 } } }; _M_mutex = __tmp; } } void lock() { if (__gthread_active_p()) { if (__gthread_recursive_mutex_lock(&_M_mutex) != 0) __throw_concurrence_lock_error(); } } void unlock() { if (__gthread_active_p()) { if (__gthread_recursive_mutex_unlock(&_M_mutex) != 0) __throw_concurrence_unlock_error(); } } __gthread_recursive_mutex_t* gthread_recursive_mutex(void) { return &_M_mutex; } }; class __scoped_lock { public: typedef __mutex __mutex_type; private: __mutex_type& _M_device; __scoped_lock(const __scoped_lock&); __scoped_lock& operator=(const __scoped_lock&); public: explicit __scoped_lock(__mutex_type& __name) : _M_device(__name) { _M_device.lock(); } ~__scoped_lock() throw() { _M_device.unlock(); } }; class __cond { private: __gthread_cond_t _M_cond; __cond(const __cond&); __cond& operator=(const __cond&); public: __cond() { if (__gthread_active_p()) { __gthread_cond_t __tmp = { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }; _M_cond = __tmp; } } void broadcast() { if (__gthread_active_p()) { if (__gthread_cond_broadcast(&_M_cond) != 0) __throw_concurrence_broadcast_error(); } } void wait(__mutex *mutex) { { if (__gthread_cond_wait(&_M_cond, mutex->gthread_mutex()) != 0) __throw_concurrence_wait_error(); } } void wait_recursive(__recursive_mutex *mutex) { { if (__gthread_cond_wait_recursive(&_M_cond, mutex->gthread_recursive_mutex()) != 0) __throw_concurrence_wait_error(); } } }; } # 79 "/usr/include/c++/4.5/memory" 2 3 # 1 "/usr/include/c++/4.5/functional" 1 3 # 47 "/usr/include/c++/4.5/functional" 3 # 48 "/usr/include/c++/4.5/functional" 3 # 56 "/usr/include/c++/4.5/functional" 3 # 1 "/usr/include/c++/4.5/tuple" 1 3 # 32 "/usr/include/c++/4.5/tuple" 3 # 33 "/usr/include/c++/4.5/tuple" 3 namespace std { template struct __add_c_ref { typedef const _Tp& type; }; template struct __add_c_ref<_Tp&> { typedef _Tp& type; }; template struct __add_ref { typedef _Tp& type; }; template struct __add_ref<_Tp&> { typedef _Tp& type; }; template struct _Head_base; template struct _Head_base<_Idx, _Head, true> : public _Head { _Head_base() : _Head() { } _Head_base(const _Head& __h) : _Head(__h) { } template _Head_base(_UHead&& __h) : _Head(std::forward<_UHead>(__h)) { } _Head& _M_head() { return *this; } const _Head& _M_head() const { return *this; } void _M_swap_impl(_Head&) { } }; template struct _Head_base<_Idx, _Head, false> { _Head_base() : _M_head_impl() { } _Head_base(const _Head& __h) : _M_head_impl(__h) { } template _Head_base(_UHead&& __h) : _M_head_impl(std::forward<_UHead>(__h)) { } _Head& _M_head() { return _M_head_impl; } const _Head& _M_head() const { return _M_head_impl; } void _M_swap_impl(_Head& __h) { using std::swap; swap(__h, _M_head_impl); } _Head _M_head_impl; }; # 117 "/usr/include/c++/4.5/tuple" 3 template struct _Tuple_impl; template struct _Tuple_impl<_Idx> { protected: void _M_swap_impl(_Tuple_impl&) { } }; template struct _Tuple_impl<_Idx, _Head, _Tail...> : public _Tuple_impl<_Idx + 1, _Tail...>, private _Head_base<_Idx, _Head, std::is_empty<_Head>::value> { typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; typedef _Head_base<_Idx, _Head, std::is_empty<_Head>::value> _Base; _Head& _M_head() { return _Base::_M_head(); } const _Head& _M_head() const { return _Base::_M_head(); } _Inherited& _M_tail() { return *this; } const _Inherited& _M_tail() const { return *this; } _Tuple_impl() : _Inherited(), _Base() { } explicit _Tuple_impl(const _Head& __head, const _Tail&... __tail) : _Inherited(__tail...), _Base(__head) { } template explicit _Tuple_impl(_UHead&& __head, _UTail&&... __tail) : _Inherited(std::forward<_UTail>(__tail)...), _Base(std::forward<_UHead>(__head)) { } _Tuple_impl(const _Tuple_impl& __in) : _Inherited(__in._M_tail()), _Base(__in._M_head()) { } _Tuple_impl(_Tuple_impl&& __in) : _Inherited(std::move(__in._M_tail())), _Base(std::forward<_Head>(__in._M_head())) { } template _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) : _Inherited(__in._M_tail()), _Base(__in._M_head()) { } template _Tuple_impl(_Tuple_impl<_Idx, _UElements...>&& __in) : _Inherited(std::move(__in._M_tail())), _Base(std::move(__in._M_head())) { } _Tuple_impl& operator=(const _Tuple_impl& __in) { _M_head() = __in._M_head(); _M_tail() = __in._M_tail(); return *this; } _Tuple_impl& operator=(_Tuple_impl&& __in) { _M_head() = std::move(__in._M_head()); _M_tail() = std::move(__in._M_tail()); return *this; } template _Tuple_impl& operator=(const _Tuple_impl<_Idx, _UElements...>& __in) { _M_head() = __in._M_head(); _M_tail() = __in._M_tail(); return *this; } template _Tuple_impl& operator=(_Tuple_impl<_Idx, _UElements...>&& __in) { _M_head() = std::move(__in._M_head()); _M_tail() = std::move(__in._M_tail()); return *this; } protected: void _M_swap_impl(_Tuple_impl& __in) { _Base::_M_swap_impl(__in._M_head()); _Inherited::_M_swap_impl(__in._M_tail()); } }; template class tuple : public _Tuple_impl<0, _Elements...> { typedef _Tuple_impl<0, _Elements...> _Inherited; public: tuple() : _Inherited() { } explicit tuple(const _Elements&... __elements) : _Inherited(__elements...) { } template explicit tuple(_UElements&&... __elements) : _Inherited(std::forward<_UElements>(__elements)...) { } tuple(const tuple& __in) : _Inherited(static_cast(__in)) { } tuple(tuple&& __in) : _Inherited(static_cast<_Inherited&&>(__in)) { } template tuple(const tuple<_UElements...>& __in) : _Inherited(static_cast&>(__in)) { } template tuple(tuple<_UElements...>&& __in) : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } template tuple(tuple<_UElements...>& __in) : _Inherited(static_cast&>(__in)) { } tuple& operator=(const tuple& __in) { static_cast<_Inherited&>(*this) = __in; return *this; } tuple& operator=(tuple&& __in) { static_cast<_Inherited&>(*this) = std::move(__in); return *this; } template tuple& operator=(const tuple<_UElements...>& __in) { static_cast<_Inherited&>(*this) = __in; return *this; } template tuple& operator=(tuple<_UElements...>&& __in) { static_cast<_Inherited&>(*this) = std::move(__in); return *this; } void swap(tuple& __in) { _Inherited::_M_swap_impl(__in); } }; template<> class tuple<> { public: void swap(tuple&) { } }; template class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> { typedef _Tuple_impl<0, _T1, _T2> _Inherited; public: tuple() : _Inherited() { } explicit tuple(const _T1& __a1, const _T2& __a2) : _Inherited(__a1, __a2) { } template explicit tuple(_U1&& __a1, _U2&& __a2) : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } tuple(const tuple& __in) : _Inherited(static_cast(__in)) { } tuple(tuple&& __in) : _Inherited(static_cast<_Inherited&&>(__in)) { } template tuple(const tuple<_U1, _U2>& __in) : _Inherited(static_cast&>(__in)) { } template tuple(tuple<_U1, _U2>&& __in) : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } template tuple(const pair<_U1, _U2>& __in) : _Inherited(__in.first, __in.second) { } template tuple(pair<_U1, _U2>&& __in) : _Inherited(std::forward<_U1>(__in.first), std::forward<_U2>(__in.second)) { } tuple& operator=(const tuple& __in) { static_cast<_Inherited&>(*this) = __in; return *this; } tuple& operator=(tuple&& __in) { static_cast<_Inherited&>(*this) = std::move(__in); return *this; } template tuple& operator=(const tuple<_U1, _U2>& __in) { static_cast<_Inherited&>(*this) = __in; return *this; } template tuple& operator=(tuple<_U1, _U2>&& __in) { static_cast<_Inherited&>(*this) = std::move(__in); return *this; } template tuple& operator=(const pair<_U1, _U2>& __in) { this->_M_head() = __in.first; this->_M_tail()._M_head() = __in.second; return *this; } template tuple& operator=(pair<_U1, _U2>&& __in) { this->_M_head() = std::move(__in.first); this->_M_tail()._M_head() = std::move(__in.second); return *this; } void swap(tuple& __in) { using std::swap; swap(this->_M_head(), __in._M_head()); swap(this->_M_tail()._M_head(), __in._M_tail()._M_head()); } }; template struct tuple_element; template struct tuple_element<__i, tuple<_Head, _Tail...> > : tuple_element<__i - 1, tuple<_Tail...> > { }; template struct tuple_element<0, tuple<_Head, _Tail...> > { typedef _Head type; }; template struct tuple_size; template struct tuple_size > { static const std::size_t value = sizeof...(_Elements); }; template const std::size_t tuple_size >::value; template inline typename __add_ref<_Head>::type __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) { return __t._M_head(); } template inline typename __add_c_ref<_Head>::type __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) { return __t._M_head(); } template inline typename __add_ref< typename tuple_element<__i, tuple<_Elements...> >::type >::type get(tuple<_Elements...>& __t) { return __get_helper<__i>(__t); } template inline typename __add_c_ref< typename tuple_element<__i, tuple<_Elements...> >::type >::type get(const tuple<_Elements...>& __t) { return __get_helper<__i>(__t); } template struct __tuple_compare; template struct __tuple_compare<0, __i, __j, _Tp, _Up> { static bool __eq(const _Tp& __t, const _Up& __u) { return (get<__i>(__t) == get<__i>(__u) && __tuple_compare<0, __i + 1, __j, _Tp, _Up>::__eq(__t, __u)); } static bool __less(const _Tp& __t, const _Up& __u) { return ((get<__i>(__t) < get<__i>(__u)) || !(get<__i>(__u) < get<__i>(__t)) && __tuple_compare<0, __i + 1, __j, _Tp, _Up>::__less(__t, __u)); } }; template struct __tuple_compare<0, __i, __i, _Tp, _Up> { static bool __eq(const _Tp&, const _Up&) { return true; } static bool __less(const _Tp&, const _Up&) { return false; } }; template bool operator==(const tuple<_TElements...>& __t, const tuple<_UElements...>& __u) { typedef tuple<_TElements...> _Tp; typedef tuple<_UElements...> _Up; return (__tuple_compare::value - tuple_size<_Up>::value, 0, tuple_size<_Tp>::value, _Tp, _Up>::__eq(__t, __u)); } template bool operator<(const tuple<_TElements...>& __t, const tuple<_UElements...>& __u) { typedef tuple<_TElements...> _Tp; typedef tuple<_UElements...> _Up; return (__tuple_compare::value - tuple_size<_Up>::value, 0, tuple_size<_Tp>::value, _Tp, _Up>::__less(__t, __u)); } template inline bool operator!=(const tuple<_TElements...>& __t, const tuple<_UElements...>& __u) { return !(__t == __u); } template inline bool operator>(const tuple<_TElements...>& __t, const tuple<_UElements...>& __u) { return __u < __t; } template inline bool operator<=(const tuple<_TElements...>& __t, const tuple<_UElements...>& __u) { return !(__u < __t); } template inline bool operator>=(const tuple<_TElements...>& __t, const tuple<_UElements...>& __u) { return !(__t < __u); } template inline tuple::__type...> make_tuple(_Elements&&... __args) { typedef tuple::__type...> __result_type; return __result_type(std::forward<_Elements>(__args)...); } template struct __index_holder { }; template struct __index_holder_impl; template struct __index_holder_impl<__i, __index_holder<_Indexes...>, _IdxHolder, _Elements...> { typedef typename __index_holder_impl<__i + 1, __index_holder<_Indexes..., __i>, _Elements...>::type type; }; template struct __index_holder_impl<__i, __index_holder<_Indexes...> > { typedef __index_holder<_Indexes...> type; }; template struct __make_index_holder : __index_holder_impl<0, __index_holder<>, _Elements...> { }; template inline tuple<_TElements..., _UElements...> __tuple_cat_helper(const tuple<_TElements...>& __t, const __index_holder<_TIdx...>&, const tuple<_UElements...>& __u, const __index_holder<_UIdx...>&) { return tuple<_TElements..., _UElements...>(get<_TIdx>(__t)..., get<_UIdx>(__u)...); } template inline tuple<_TElements..., _UElements...> __tuple_cat_helper(tuple<_TElements...>&& __t, const __index_holder<_TIdx...>&, const tuple<_UElements...>& __u, const __index_holder<_UIdx...>&) { return tuple<_TElements..., _UElements...> (std::move(get<_TIdx>(__t))..., get<_UIdx>(__u)...); } template inline tuple<_TElements..., _UElements...> __tuple_cat_helper(const tuple<_TElements...>& __t, const __index_holder<_TIdx...>&, tuple<_UElements...>&& __u, const __index_holder<_UIdx...>&) { return tuple<_TElements..., _UElements...> (get<_TIdx>(__t)..., std::move(get<_UIdx>(__u))...); } template inline tuple<_TElements..., _UElements...> __tuple_cat_helper(tuple<_TElements...>&& __t, const __index_holder<_TIdx...>&, tuple<_UElements...>&& __u, const __index_holder<_UIdx...>&) { return tuple<_TElements..., _UElements...> (std::move(get<_TIdx>(__t))..., std::move(get<_UIdx>(__u))...); } template inline tuple<_TElements..., _UElements...> tuple_cat(const tuple<_TElements...>& __t, const tuple<_UElements...>& __u) { return __tuple_cat_helper(__t, typename __make_index_holder<_TElements...>::type(), __u, typename __make_index_holder<_UElements...>::type()); } template inline tuple<_TElements..., _UElements...> tuple_cat(tuple<_TElements...>&& __t, const tuple<_UElements...>& __u) { return __tuple_cat_helper(std::move(__t), typename __make_index_holder<_TElements...>::type(), __u, typename __make_index_holder<_UElements...>::type()); } template inline tuple<_TElements..., _UElements...> tuple_cat(const tuple<_TElements...>& __t, tuple<_UElements...>&& __u) { return __tuple_cat_helper(__t, typename __make_index_holder<_TElements...>::type(), std::move(__u), typename __make_index_holder<_UElements...>::type()); } template inline tuple<_TElements..., _UElements...> tuple_cat(tuple<_TElements...>&& __t, tuple<_UElements...>&& __u) { return __tuple_cat_helper(std::move(__t), typename __make_index_holder<_TElements...>::type(), std::move(__u), typename __make_index_holder<_UElements...>::type()); } template inline tuple<_Elements&...> tie(_Elements&... __args) { return tuple<_Elements&...>(__args...); } template inline void swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) { __x.swap(__y); } struct _Swallow_assign { template _Swallow_assign& operator=(const _Tp&) { return *this; } }; namespace { _Swallow_assign ignore; }; } # 57 "/usr/include/c++/4.5/functional" 2 3 namespace std { template class _Mem_fn; template class _Has_result_type_helper : __sfinae_types { template struct _Wrap_type { }; template static __one __test(_Wrap_type*); template static __two __test(...); public: static const bool value = sizeof(__test<_Tp>(0)) == 1; }; template struct _Has_result_type : integral_constant::type>::value> { }; template struct _Maybe_get_result_type { }; template struct _Maybe_get_result_type { typedef typename _Functor::result_type result_type; }; template struct _Weak_result_type_impl : _Maybe_get_result_type<_Has_result_type<_Functor>::value, _Functor> { }; template struct _Weak_result_type_impl<_Res(_ArgTypes...)> { typedef _Res result_type; }; template struct _Weak_result_type_impl<_Res(&)(_ArgTypes...)> { typedef _Res result_type; }; template struct _Weak_result_type_impl<_Res(*)(_ArgTypes...)> { typedef _Res result_type; }; template struct _Weak_result_type_impl<_Res (_Class::*)(_ArgTypes...)> { typedef _Res result_type; }; template struct _Weak_result_type_impl<_Res (_Class::*)(_ArgTypes...) const> { typedef _Res result_type; }; template struct _Weak_result_type_impl<_Res (_Class::*)(_ArgTypes...) volatile> { typedef _Res result_type; }; template struct _Weak_result_type_impl<_Res (_Class::*)(_ArgTypes...)const volatile> { typedef _Res result_type; }; template struct _Weak_result_type : _Weak_result_type_impl::type> { }; template class result_of; template struct result_of<_Functor(_ArgTypes...)> { typedef decltype( std::declval<_Functor>()(std::declval<_ArgTypes>()...) ) type; }; template struct _Derives_from_unary_function : __sfinae_types { private: template static __one __test(const volatile unary_function<_T1, _Res>*); static __two __test(...); public: static const bool value = sizeof(__test((_Tp*)0)) == 1; }; template struct _Derives_from_binary_function : __sfinae_types { private: template static __one __test(const volatile binary_function<_T1, _T2, _Res>*); static __two __test(...); public: static const bool value = sizeof(__test((_Tp*)0)) == 1; }; template::value> struct _Function_to_function_pointer { typedef _Tp type; }; template struct _Function_to_function_pointer<_Tp, true> { typedef _Tp* type; }; template inline typename enable_if< (!is_member_pointer<_Functor>::value && !is_function<_Functor>::value && !is_function::type>::value), typename result_of<_Functor(_Args...)>::type >::type __invoke(_Functor& __f, _Args&&... __args) { return __f(std::forward<_Args>(__args)...); } template inline typename enable_if< (is_pointer<_Functor>::value && is_function::type>::value), typename result_of<_Functor(_Args...)>::type >::type __invoke(_Functor __f, _Args&&... __args) { return __f(std::forward<_Args>(__args)...); } template struct _Reference_wrapper_base_impl; template struct _Reference_wrapper_base_impl : _Weak_result_type<_Tp> { }; template struct _Reference_wrapper_base_impl : unary_function { }; template struct _Reference_wrapper_base_impl : binary_function { }; template struct _Reference_wrapper_base_impl : unary_function, binary_function { typedef typename _Tp::result_type result_type; }; template struct _Reference_wrapper_base : _Reference_wrapper_base_impl< _Derives_from_unary_function<_Tp>::value, _Derives_from_binary_function<_Tp>::value, _Tp> { }; template struct _Reference_wrapper_base<_Res(_T1)> : unary_function<_T1, _Res> { }; template struct _Reference_wrapper_base<_Res(_T1, _T2)> : binary_function<_T1, _T2, _Res> { }; template struct _Reference_wrapper_base<_Res(*)(_T1)> : unary_function<_T1, _Res> { }; template struct _Reference_wrapper_base<_Res(*)(_T1, _T2)> : binary_function<_T1, _T2, _Res> { }; template struct _Reference_wrapper_base<_Res (_T1::*)()> : unary_function<_T1*, _Res> { }; template struct _Reference_wrapper_base<_Res (_T1::*)(_T2)> : binary_function<_T1*, _T2, _Res> { }; template struct _Reference_wrapper_base<_Res (_T1::*)() const> : unary_function { }; template struct _Reference_wrapper_base<_Res (_T1::*)(_T2) const> : binary_function { }; template struct _Reference_wrapper_base<_Res (_T1::*)() volatile> : unary_function { }; template struct _Reference_wrapper_base<_Res (_T1::*)(_T2) volatile> : binary_function { }; template struct _Reference_wrapper_base<_Res (_T1::*)() const volatile> : unary_function { }; template struct _Reference_wrapper_base<_Res (_T1::*)(_T2) const volatile> : binary_function { }; template class reference_wrapper : public _Reference_wrapper_base::type> { typedef typename _Function_to_function_pointer<_Tp>::type _M_func_type; _Tp* _M_data; public: typedef _Tp type; reference_wrapper(_Tp& __indata): _M_data(&__indata) { } reference_wrapper(_Tp&&) = delete; reference_wrapper(const reference_wrapper<_Tp>& __inref): _M_data(__inref._M_data) { } reference_wrapper& operator=(const reference_wrapper<_Tp>& __inref) { _M_data = __inref._M_data; return *this; } operator _Tp&() const { return this->get(); } _Tp& get() const { return *_M_data; } template typename result_of<_M_func_type(_Args...)>::type operator()(_Args&&... __args) const { return __invoke(get(), std::forward<_Args>(__args)...); } }; template inline reference_wrapper<_Tp> ref(_Tp& __t) { return reference_wrapper<_Tp>(__t); } template inline reference_wrapper cref(const _Tp& __t) { return reference_wrapper(__t); } template inline reference_wrapper<_Tp> ref(reference_wrapper<_Tp> __t) { return ref(__t.get()); } template inline reference_wrapper cref(reference_wrapper<_Tp> __t) { return cref(__t.get()); } template struct _Mem_fn_const_or_non { typedef const _Tp& type; }; template struct _Mem_fn_const_or_non<_Tp, false> { typedef _Tp& type; }; template struct _Maybe_unary_or_binary_function { }; template struct _Maybe_unary_or_binary_function<_Res, _T1> : std::unary_function<_T1, _Res> { }; template struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> : std::binary_function<_T1, _T2, _Res> { }; template class _Mem_fn<_Res (_Class::*)(_ArgTypes...)> : public _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...> { typedef _Res (_Class::*_Functor)(_ArgTypes...); template _Res _M_call(_Tp& __object, const volatile _Class *, _ArgTypes... __args) const { return (__object.*__pmf)(std::forward<_ArgTypes>(__args)...); } template _Res _M_call(_Tp& __ptr, const volatile void *, _ArgTypes... __args) const { return ((*__ptr).*__pmf)(std::forward<_ArgTypes>(__args)...); } public: typedef _Res result_type; explicit _Mem_fn(_Functor __pmf) : __pmf(__pmf) { } _Res operator()(_Class& __object, _ArgTypes... __args) const { return (__object.*__pmf)(std::forward<_ArgTypes>(__args)...); } _Res operator()(_Class* __object, _ArgTypes... __args) const { return (__object->*__pmf)(std::forward<_ArgTypes>(__args)...); } template _Res operator()(_Tp& __object, _ArgTypes... __args) const { return _M_call(__object, &__object, std::forward<_ArgTypes>(__args)...); } private: _Functor __pmf; }; template class _Mem_fn<_Res (_Class::*)(_ArgTypes...) const> : public _Maybe_unary_or_binary_function<_Res, const _Class*, _ArgTypes...> { typedef _Res (_Class::*_Functor)(_ArgTypes...) const; template _Res _M_call(_Tp& __object, const volatile _Class *, _ArgTypes... __args) const { return (__object.*__pmf)(std::forward<_ArgTypes>(__args)...); } template _Res _M_call(_Tp& __ptr, const volatile void *, _ArgTypes... __args) const { return ((*__ptr).*__pmf)(std::forward<_ArgTypes>(__args)...); } public: typedef _Res result_type; explicit _Mem_fn(_Functor __pmf) : __pmf(__pmf) { } _Res operator()(const _Class& __object, _ArgTypes... __args) const { return (__object.*__pmf)(std::forward<_ArgTypes>(__args)...); } _Res operator()(const _Class* __object, _ArgTypes... __args) const { return (__object->*__pmf)(std::forward<_ArgTypes>(__args)...); } template _Res operator()(_Tp& __object, _ArgTypes... __args) const { return _M_call(__object, &__object, std::forward<_ArgTypes>(__args)...); } private: _Functor __pmf; }; template class _Mem_fn<_Res (_Class::*)(_ArgTypes...) volatile> : public _Maybe_unary_or_binary_function<_Res, volatile _Class*, _ArgTypes...> { typedef _Res (_Class::*_Functor)(_ArgTypes...) volatile; template _Res _M_call(_Tp& __object, const volatile _Class *, _ArgTypes... __args) const { return (__object.*__pmf)(std::forward<_ArgTypes>(__args)...); } template _Res _M_call(_Tp& __ptr, const volatile void *, _ArgTypes... __args) const { return ((*__ptr).*__pmf)(std::forward<_ArgTypes>(__args)...); } public: typedef _Res result_type; explicit _Mem_fn(_Functor __pmf) : __pmf(__pmf) { } _Res operator()(volatile _Class& __object, _ArgTypes... __args) const { return (__object.*__pmf)(std::forward<_ArgTypes>(__args)...); } _Res operator()(volatile _Class* __object, _ArgTypes... __args) const { return (__object->*__pmf)(std::forward<_ArgTypes>(__args)...); } template _Res operator()(_Tp& __object, _ArgTypes... __args) const { return _M_call(__object, &__object, std::forward<_ArgTypes>(__args)...); } private: _Functor __pmf; }; template class _Mem_fn<_Res (_Class::*)(_ArgTypes...) const volatile> : public _Maybe_unary_or_binary_function<_Res, const volatile _Class*, _ArgTypes...> { typedef _Res (_Class::*_Functor)(_ArgTypes...) const volatile; template _Res _M_call(_Tp& __object, const volatile _Class *, _ArgTypes... __args) const { return (__object.*__pmf)(std::forward<_ArgTypes>(__args)...); } template _Res _M_call(_Tp& __ptr, const volatile void *, _ArgTypes... __args) const { return ((*__ptr).*__pmf)(std::forward<_ArgTypes>(__args)...); } public: typedef _Res result_type; explicit _Mem_fn(_Functor __pmf) : __pmf(__pmf) { } _Res operator()(const volatile _Class& __object, _ArgTypes... __args) const { return (__object.*__pmf)(std::forward<_ArgTypes>(__args)...); } _Res operator()(const volatile _Class* __object, _ArgTypes... __args) const { return (__object->*__pmf)(std::forward<_ArgTypes>(__args)...); } template _Res operator()(_Tp& __object, _ArgTypes... __args) const { return _M_call(__object, &__object, std::forward<_ArgTypes>(__args)...); } private: _Functor __pmf; }; template class _Mem_fn<_Res _Class::*> { template _Res& _M_call(_Tp& __object, _Class *) const { return __object.*__pm; } template _Res& _M_call(_Tp& __object, _Up * const *) const { return (*__object).*__pm; } template const _Res& _M_call(_Tp& __object, const _Up * const *) const { return (*__object).*__pm; } template const _Res& _M_call(_Tp& __object, const _Class *) const { return __object.*__pm; } template const _Res& _M_call(_Tp& __ptr, const volatile void*) const { return (*__ptr).*__pm; } template static _Tp& __get_ref(); template static __sfinae_types::__one __check_const(_Tp&, _Class*); template static __sfinae_types::__one __check_const(_Tp&, _Up * const *); template static __sfinae_types::__two __check_const(_Tp&, const _Up * const *); template static __sfinae_types::__two __check_const(_Tp&, const _Class*); template static __sfinae_types::__two __check_const(_Tp&, const volatile void*); public: template struct _Result_type : _Mem_fn_const_or_non<_Res, (sizeof(__sfinae_types::__two) == sizeof(__check_const<_Tp>(__get_ref<_Tp>(), (_Tp*)0)))> { }; template struct result; template struct result<_CVMem(_Tp)> : public _Result_type<_Tp> { }; template struct result<_CVMem(_Tp&)> : public _Result_type<_Tp> { }; explicit _Mem_fn(_Res _Class::*__pm) : __pm(__pm) { } _Res& operator()(_Class& __object) const { return __object.*__pm; } const _Res& operator()(const _Class& __object) const { return __object.*__pm; } _Res& operator()(_Class* __object) const { return __object->*__pm; } const _Res& operator()(const _Class* __object) const { return __object->*__pm; } template typename _Result_type<_Tp>::type operator()(_Tp& __unknown) const { return _M_call(__unknown, &__unknown); } private: _Res _Class::*__pm; }; template inline _Mem_fn<_Tp _Class::*> mem_fn(_Tp _Class::* __pm) { return _Mem_fn<_Tp _Class::*>(__pm); } template struct is_bind_expression : public false_type { }; template struct is_placeholder : public integral_constant { }; template struct _Placeholder { }; # 814 "/usr/include/c++/4.5/functional" 3 namespace placeholders { namespace { _Placeholder<1> _1; _Placeholder<2> _2; _Placeholder<3> _3; _Placeholder<4> _4; _Placeholder<5> _5; _Placeholder<6> _6; _Placeholder<7> _7; _Placeholder<8> _8; _Placeholder<9> _9; _Placeholder<10> _10; _Placeholder<11> _11; _Placeholder<12> _12; _Placeholder<13> _13; _Placeholder<14> _14; _Placeholder<15> _15; _Placeholder<16> _16; _Placeholder<17> _17; _Placeholder<18> _18; _Placeholder<19> _19; _Placeholder<20> _20; _Placeholder<21> _21; _Placeholder<22> _22; _Placeholder<23> _23; _Placeholder<24> _24; _Placeholder<25> _25; _Placeholder<26> _26; _Placeholder<27> _27; _Placeholder<28> _28; _Placeholder<29> _29; } } template struct is_placeholder<_Placeholder<_Num> > : public integral_constant { }; template struct _Index_tuple { typedef _Index_tuple<_Indexes..., sizeof...(_Indexes)> __next; }; template struct _Build_index_tuple { typedef typename _Build_index_tuple<_Num-1>::__type::__next __type; }; template<> struct _Build_index_tuple<0> { typedef _Index_tuple<> __type; }; struct _No_tuple_element; template struct _Safe_tuple_element_impl : tuple_element<__i, _Tuple> { }; template struct _Safe_tuple_element_impl<__i, _Tuple, false> { typedef _No_tuple_element type; }; template struct _Safe_tuple_element : _Safe_tuple_element_impl<__i, _Tuple, (__i >= 0 && __i < tuple_size<_Tuple>::value)> { }; # 930 "/usr/include/c++/4.5/functional" 3 template::value, bool _IsPlaceholder = (is_placeholder<_Arg>::value > 0)> class _Mu; template class _Mu, false, false> { public: typedef _Tp& result_type; template result_type operator()(_CVRef& __arg, _Tuple&&) const volatile { return __arg.get(); } }; template class _Mu<_Arg, true, false> { public: template class result; template class result<_CVMu(_CVArg, tuple<_Args...>)> : public result_of<_CVArg(_Args...)> { }; template typename result_of<_CVArg(_Args...)>::type operator()(_CVArg& __arg, tuple<_Args...>&& __tuple) const volatile { typedef typename _Build_index_tuple::__type _Indexes; return this->__call(__arg, std::move(__tuple), _Indexes()); } private: template typename result_of<_CVArg(_Args...)>::type __call(_CVArg& __arg, tuple<_Args...>&& __tuple, const _Index_tuple<_Indexes...>&) const volatile { return __arg(std::forward<_Args>(get<_Indexes>(__tuple))...); } }; template class _Mu<_Arg, false, true> { public: template class result; template class result<_CVMu(_CVArg, _Tuple)> { typedef typename _Safe_tuple_element<(is_placeholder<_Arg>::value - 1), _Tuple>::type __base_type; public: typedef typename add_rvalue_reference<__base_type>::type type; }; template typename result<_Mu(_Arg, _Tuple)>::type operator()(const volatile _Arg&, _Tuple&& __tuple) const volatile { return std::forward::type>( ::std::get<(is_placeholder<_Arg>::value - 1)>(__tuple)); } }; template class _Mu<_Arg, false, false> { public: template struct result; template struct result<_CVMu(_CVArg, _Tuple)> { typedef typename add_lvalue_reference<_CVArg>::type type; }; template _CVArg&& operator()(_CVArg&& __arg, _Tuple&&) const volatile { return std::forward<_CVArg>(__arg); } }; template struct _Maybe_wrap_member_pointer { typedef _Tp type; static const _Tp& __do_wrap(const _Tp& __x) { return __x; } }; template struct _Maybe_wrap_member_pointer<_Tp _Class::*> { typedef _Mem_fn<_Tp _Class::*> type; static type __do_wrap(_Tp _Class::* __pm) { return type(__pm); } }; template<> struct _Maybe_wrap_member_pointer { typedef void type; }; template struct _Bind; template class _Bind<_Functor(_Bound_args...)> : public _Weak_result_type<_Functor> { typedef _Bind __self_type; typedef typename _Build_index_tuple::__type _Bound_indexes; _Functor _M_f; tuple<_Bound_args...> _M_bound_args; template _Result __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) { return _M_f(_Mu<_Bound_args>() (get<_Indexes>(_M_bound_args), std::move(__args))...); } template _Result __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const { return _M_f(_Mu<_Bound_args>() (get<_Indexes>(_M_bound_args), std::move(__args))...); } # 1149 "/usr/include/c++/4.5/functional" 3 public: explicit _Bind(_Functor __f, _Bound_args... __bound_args) : _M_f(std::forward<_Functor>(__f)), _M_bound_args(std::forward<_Bound_args>(__bound_args)...) { } template()( _Mu<_Bound_args>()( std::declval<_Bound_args&>(), std::declval&&>() )... ) )> _Result operator()(_Args&&... __args) { return this->__call<_Result>(tuple<_Args...> (std::forward<_Args>(__args)...), _Bound_indexes()); } template()( _Mu<_Bound_args>()( std::declval(), std::declval&&>() )... ) )> _Result operator()(_Args&&... __args) const { return this->__call_c<_Result>(tuple<_Args...> (std::forward<_Args>(__args)...), _Bound_indexes()); } # 1208 "/usr/include/c++/4.5/functional" 3 }; template struct _Bind_result; template class _Bind_result<_Result, _Functor(_Bound_args...)> { typedef _Bind_result __self_type; typedef typename _Build_index_tuple::__type _Bound_indexes; _Functor _M_f; tuple<_Bound_args...> _M_bound_args; template struct __enable_if_void : enable_if::value, int> { }; template struct __disable_if_void : enable_if::value, int> { }; template _Result __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>, typename __disable_if_void<_Res>::type = 0) { return _M_f(_Mu<_Bound_args>() (get<_Indexes>(_M_bound_args), std::move(__args))...); } template void __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>, typename __enable_if_void<_Res>::type = 0) { _M_f(_Mu<_Bound_args>() (get<_Indexes>(_M_bound_args), std::move(__args))...); } template _Result __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>, typename __disable_if_void<_Res>::type = 0) const { return _M_f(_Mu<_Bound_args>() (get<_Indexes>(_M_bound_args), std::move(__args))...); } template void __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>, typename __enable_if_void<_Res>::type = 0) const { _M_f(_Mu<_Bound_args>() (get<_Indexes>(_M_bound_args), std::move(__args))...); } template _Result __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>, typename __disable_if_void<_Res>::type = 0) volatile { return _M_f(_Mu<_Bound_args>() (get<_Indexes>(_M_bound_args), std::move(__args))...); } template void __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>, typename __enable_if_void<_Res>::type = 0) volatile { _M_f(_Mu<_Bound_args>() (get<_Indexes>(_M_bound_args), std::move(__args))...); } template _Result __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>, typename __disable_if_void<_Res>::type = 0) const volatile { return _M_f(_Mu<_Bound_args>() (get<_Indexes>(_M_bound_args), std::move(__args))...); } template void __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>, typename __enable_if_void<_Res>::type = 0) const volatile { _M_f(_Mu<_Bound_args>() (get<_Indexes>(_M_bound_args), std::move(__args))...); } public: typedef _Result result_type; explicit _Bind_result(_Functor __f, _Bound_args... __bound_args) : _M_f(std::forward<_Functor>(__f)), _M_bound_args(std::forward<_Bound_args>(__bound_args)...) { } template result_type operator()(_Args&&... __args) { return this->__call<_Result>( tuple<_Args...>(std::forward<_Args>(__args)...), _Bound_indexes()); } template result_type operator()(_Args&&... __args) const { return this->__call<_Result>( tuple<_Args...>(std::forward<_Args>(__args)...), _Bound_indexes()); } template result_type operator()(_Args&&... __args) volatile { return this->__call<_Result>( tuple<_Args...>(std::forward<_Args>(__args)...), _Bound_indexes()); } template result_type operator()(_Args&&... __args) const volatile { return this->__call<_Result>( tuple<_Args...>(std::forward<_Args>(__args)...), _Bound_indexes()); } }; template struct is_bind_expression<_Bind<_Signature> > : public true_type { }; template struct is_bind_expression<_Bind_result<_Result, _Signature> > : public true_type { }; template inline _Bind::type(_ArgTypes...)> bind(_Functor __f, _ArgTypes... __args) { typedef _Maybe_wrap_member_pointer<_Functor> __maybe_type; typedef typename __maybe_type::type __functor_type; typedef _Bind<__functor_type(_ArgTypes...)> __result_type; return __result_type(__maybe_type::__do_wrap(__f), std::forward<_ArgTypes>(__args)...); } template inline _Bind_result<_Result, typename _Maybe_wrap_member_pointer<_Functor>::type (_ArgTypes...)> bind(_Functor __f, _ArgTypes... __args) { typedef _Maybe_wrap_member_pointer<_Functor> __maybe_type; typedef typename __maybe_type::type __functor_type; typedef _Bind_result<_Result, __functor_type(_ArgTypes...)> __result_type; return __result_type(__maybe_type::__do_wrap(__f), std::forward<_ArgTypes>(__args)...); } class bad_function_call : public std::exception { }; struct _M_clear_type; template struct __is_location_invariant : integral_constant::value || is_member_pointer<_Tp>::value)> { }; class _Undefined_class; union _Nocopy_types { void* _M_object; const void* _M_const_object; void (*_M_function_pointer)(); void (_Undefined_class::*_M_member_pointer)(); }; union _Any_data { void* _M_access() { return &_M_pod_data[0]; } const void* _M_access() const { return &_M_pod_data[0]; } template _Tp& _M_access() { return *static_cast<_Tp*>(_M_access()); } template const _Tp& _M_access() const { return *static_cast(_M_access()); } _Nocopy_types _M_unused; char _M_pod_data[sizeof(_Nocopy_types)]; }; enum _Manager_operation { __get_type_info, __get_functor_ptr, __clone_functor, __destroy_functor }; template struct _Simple_type_wrapper { _Simple_type_wrapper(_Tp __value) : __value(__value) { } _Tp __value; }; template struct __is_location_invariant<_Simple_type_wrapper<_Tp> > : __is_location_invariant<_Tp> { }; template inline _Functor& __callable_functor(_Functor& __f) { return __f; } template inline _Mem_fn<_Member _Class::*> __callable_functor(_Member _Class::* &__p) { return mem_fn(__p); } template inline _Mem_fn<_Member _Class::*> __callable_functor(_Member _Class::* const &__p) { return mem_fn(__p); } template class function; class _Function_base { public: static const std::size_t _M_max_size = sizeof(_Nocopy_types); static const std::size_t _M_max_align = __alignof__(_Nocopy_types); template class _Base_manager { protected: static const bool __stored_locally = (__is_location_invariant<_Functor>::value && sizeof(_Functor) <= _M_max_size && __alignof__(_Functor) <= _M_max_align && (_M_max_align % __alignof__(_Functor) == 0)); typedef integral_constant _Local_storage; static _Functor* _M_get_pointer(const _Any_data& __source) { const _Functor* __ptr = __stored_locally? &__source._M_access<_Functor>() : __source._M_access<_Functor*>(); return const_cast<_Functor*>(__ptr); } static void _M_clone(_Any_data& __dest, const _Any_data& __source, true_type) { new (__dest._M_access()) _Functor(__source._M_access<_Functor>()); } static void _M_clone(_Any_data& __dest, const _Any_data& __source, false_type) { __dest._M_access<_Functor*>() = new _Functor(*__source._M_access<_Functor*>()); } static void _M_destroy(_Any_data& __victim, true_type) { __victim._M_access<_Functor>().~_Functor(); } static void _M_destroy(_Any_data& __victim, false_type) { delete __victim._M_access<_Functor*>(); } public: static bool _M_manager(_Any_data& __dest, const _Any_data& __source, _Manager_operation __op) { switch (__op) { case __get_type_info: __dest._M_access() = &typeid(_Functor); break; case __get_functor_ptr: __dest._M_access<_Functor*>() = _M_get_pointer(__source); break; case __clone_functor: _M_clone(__dest, __source, _Local_storage()); break; case __destroy_functor: _M_destroy(__dest, _Local_storage()); break; } return false; } static void _M_init_functor(_Any_data& __functor, _Functor&& __f) { _M_init_functor(__functor, std::move(__f), _Local_storage()); } template static bool _M_not_empty_function(const function<_Signature>& __f) { return static_cast(__f); } template static bool _M_not_empty_function(const _Tp*& __fp) { return __fp; } template static bool _M_not_empty_function(_Tp _Class::* const& __mp) { return __mp; } template static bool _M_not_empty_function(const _Tp&) { return true; } private: static void _M_init_functor(_Any_data& __functor, _Functor&& __f, true_type) { new (__functor._M_access()) _Functor(std::move(__f)); } static void _M_init_functor(_Any_data& __functor, _Functor&& __f, false_type) { __functor._M_access<_Functor*>() = new _Functor(std::move(__f)); } }; template class _Ref_manager : public _Base_manager<_Functor*> { typedef _Function_base::_Base_manager<_Functor*> _Base; public: static bool _M_manager(_Any_data& __dest, const _Any_data& __source, _Manager_operation __op) { switch (__op) { case __get_type_info: __dest._M_access() = &typeid(_Functor); break; case __get_functor_ptr: __dest._M_access<_Functor*>() = *_Base::_M_get_pointer(__source); return is_const<_Functor>::value; break; default: _Base::_M_manager(__dest, __source, __op); } return false; } static void _M_init_functor(_Any_data& __functor, reference_wrapper<_Functor> __f) { _Base::_M_init_functor(__functor, &__f.get()); } }; _Function_base() : _M_manager(0) { } ~_Function_base() { if (_M_manager) _M_manager(_M_functor, _M_functor, __destroy_functor); } bool _M_empty() const { return !_M_manager; } typedef bool (*_Manager_type)(_Any_data&, const _Any_data&, _Manager_operation); _Any_data _M_functor; _Manager_type _M_manager; }; template class _Function_handler; template class _Function_handler<_Res(_ArgTypes...), _Functor> : public _Function_base::_Base_manager<_Functor> { typedef _Function_base::_Base_manager<_Functor> _Base; public: static _Res _M_invoke(const _Any_data& __functor, _ArgTypes... __args) { return (*_Base::_M_get_pointer(__functor))( std::forward<_ArgTypes>(__args)...); } }; template class _Function_handler : public _Function_base::_Base_manager<_Functor> { typedef _Function_base::_Base_manager<_Functor> _Base; public: static void _M_invoke(const _Any_data& __functor, _ArgTypes... __args) { (*_Base::_M_get_pointer(__functor))( std::forward<_ArgTypes>(__args)...); } }; template class _Function_handler<_Res(_ArgTypes...), reference_wrapper<_Functor> > : public _Function_base::_Ref_manager<_Functor> { typedef _Function_base::_Ref_manager<_Functor> _Base; public: static _Res _M_invoke(const _Any_data& __functor, _ArgTypes... __args) { return __callable_functor(**_Base::_M_get_pointer(__functor))( std::forward<_ArgTypes>(__args)...); } }; template class _Function_handler > : public _Function_base::_Ref_manager<_Functor> { typedef _Function_base::_Ref_manager<_Functor> _Base; public: static void _M_invoke(const _Any_data& __functor, _ArgTypes... __args) { __callable_functor(**_Base::_M_get_pointer(__functor))( std::forward<_ArgTypes>(__args)...); } }; template class _Function_handler<_Res(_ArgTypes...), _Member _Class::*> : public _Function_handler { typedef _Function_handler _Base; public: static _Res _M_invoke(const _Any_data& __functor, _ArgTypes... __args) { return mem_fn(_Base::_M_get_pointer(__functor)->__value)( std::forward<_ArgTypes>(__args)...); } }; template class _Function_handler : public _Function_base::_Base_manager< _Simple_type_wrapper< _Member _Class::* > > { typedef _Member _Class::* _Functor; typedef _Simple_type_wrapper<_Functor> _Wrapper; typedef _Function_base::_Base_manager<_Wrapper> _Base; public: static bool _M_manager(_Any_data& __dest, const _Any_data& __source, _Manager_operation __op) { switch (__op) { case __get_type_info: __dest._M_access() = &typeid(_Functor); break; case __get_functor_ptr: __dest._M_access<_Functor*>() = &_Base::_M_get_pointer(__source)->__value; break; default: _Base::_M_manager(__dest, __source, __op); } return false; } static void _M_invoke(const _Any_data& __functor, _ArgTypes... __args) { mem_fn(_Base::_M_get_pointer(__functor)->__value)( std::forward<_ArgTypes>(__args)...); } }; template class function<_Res(_ArgTypes...)> : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>, private _Function_base { typedef _Res _Signature_type(_ArgTypes...); struct _Useless { }; public: typedef _Res result_type; explicit function() : _Function_base() { } function(_M_clear_type*) : _Function_base() { } # 1846 "/usr/include/c++/4.5/functional" 3 function(const function& __x); # 1855 "/usr/include/c++/4.5/functional" 3 function(function&& __x) : _Function_base() { __x.swap(*this); } # 1878 "/usr/include/c++/4.5/functional" 3 template function(_Functor __f, typename enable_if< !is_integral<_Functor>::value, _Useless>::type = _Useless()); # 1896 "/usr/include/c++/4.5/functional" 3 function& operator=(const function& __x) { function(__x).swap(*this); return *this; } # 1914 "/usr/include/c++/4.5/functional" 3 function& operator=(function&& __x) { function(std::move(__x)).swap(*this); return *this; } # 1928 "/usr/include/c++/4.5/functional" 3 function& operator=(_M_clear_type*) { if (_M_manager) { _M_manager(_M_functor, _M_functor, __destroy_functor); _M_manager = 0; _M_invoker = 0; } return *this; } # 1956 "/usr/include/c++/4.5/functional" 3 template typename enable_if::value, function&>::type operator=(_Functor&& __f) { function(std::forward<_Functor>(__f)).swap(*this); return *this; } template typename enable_if::value, function&>::type operator=(reference_wrapper<_Functor> __f) { function(__f).swap(*this); return *this; } # 1982 "/usr/include/c++/4.5/functional" 3 void swap(function& __x) { # 1992 "/usr/include/c++/4.5/functional" 3 for (unsigned i = 0; i < sizeof (_M_functor._M_pod_data); ++i) std::swap (_M_functor._M_pod_data[i], __x._M_functor._M_pod_data[i]); _Manager_type __old_manager = _M_manager; _M_manager = __x._M_manager; __x._M_manager = __old_manager; _Invoker_type __old_invoker = _M_invoker; _M_invoker = __x._M_invoker; __x._M_invoker = __old_invoker; } # 2023 "/usr/include/c++/4.5/functional" 3 explicit operator bool() const { return !_M_empty(); } # 2036 "/usr/include/c++/4.5/functional" 3 _Res operator()(_ArgTypes... __args) const; # 2049 "/usr/include/c++/4.5/functional" 3 const type_info& target_type() const; # 2060 "/usr/include/c++/4.5/functional" 3 template _Functor* target(); template const _Functor* target() const; template void operator==(const function<_Res2(_ArgTypes2...)>&) const = delete; template void operator!=(const function<_Res2(_ArgTypes2...)>&) const = delete; private: typedef _Res (*_Invoker_type)(const _Any_data&, _ArgTypes...); _Invoker_type _M_invoker; }; template function<_Res(_ArgTypes...)>:: function(const function& __x) : _Function_base() { if (static_cast(__x)) { _M_invoker = __x._M_invoker; _M_manager = __x._M_manager; __x._M_manager(_M_functor, __x._M_functor, __clone_functor); } } template template function<_Res(_ArgTypes...)>:: function(_Functor __f, typename enable_if< !is_integral<_Functor>::value, _Useless>::type) : _Function_base() { typedef _Function_handler<_Signature_type, _Functor> _My_handler; if (_My_handler::_M_not_empty_function(__f)) { _M_invoker = &_My_handler::_M_invoke; _M_manager = &_My_handler::_M_manager; _My_handler::_M_init_functor(_M_functor, std::move(__f)); } } template _Res function<_Res(_ArgTypes...)>:: operator()(_ArgTypes... __args) const { if (_M_empty()) __throw_bad_function_call(); return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...); } template const type_info& function<_Res(_ArgTypes...)>:: target_type() const { if (_M_manager) { _Any_data __typeinfo_result; _M_manager(__typeinfo_result, _M_functor, __get_type_info); return *__typeinfo_result._M_access(); } else return typeid(void); } template template _Functor* function<_Res(_ArgTypes...)>:: target() { if (typeid(_Functor) == target_type() && _M_manager) { _Any_data __ptr; if (_M_manager(__ptr, _M_functor, __get_functor_ptr) && !is_const<_Functor>::value) return 0; else return __ptr._M_access<_Functor*>(); } else return 0; } template template const _Functor* function<_Res(_ArgTypes...)>:: target() const { if (typeid(_Functor) == target_type() && _M_manager) { _Any_data __ptr; _M_manager(__ptr, _M_functor, __get_functor_ptr); return __ptr._M_access(); } else return 0; } # 2180 "/usr/include/c++/4.5/functional" 3 template inline bool operator==(const function<_Res(_Args...)>& __f, _M_clear_type*) { return !static_cast(__f); } template inline bool operator==(_M_clear_type*, const function<_Res(_Args...)>& __f) { return !static_cast(__f); } # 2198 "/usr/include/c++/4.5/functional" 3 template inline bool operator!=(const function<_Res(_Args...)>& __f, _M_clear_type*) { return static_cast(__f); } template inline bool operator!=(_M_clear_type*, const function<_Res(_Args...)>& __f) { return static_cast(__f); } # 2216 "/usr/include/c++/4.5/functional" 3 template inline void swap(function<_Res(_Args...)>& __x, function<_Res(_Args...)>& __y) { __x.swap(__y); } } # 83 "/usr/include/c++/4.5/memory" 2 3 # 1 "/usr/include/c++/4.5/bits/unique_ptr.h" 1 3 # 39 "/usr/include/c++/4.5/bits/unique_ptr.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template struct default_delete { default_delete() { } template default_delete(const default_delete<_Up>&) { } void operator()(_Tp* __ptr) const { static_assert(sizeof(_Tp)>0, "can't delete pointer to incomplete type"); delete __ptr; } }; template struct default_delete<_Tp[]> { void operator()(_Tp* __ptr) const { static_assert(sizeof(_Tp)>0, "can't delete pointer to incomplete type"); delete [] __ptr; } }; template > class unique_ptr { typedef std::tuple<_Tp*, _Tp_Deleter> __tuple_type; typedef _Tp* unique_ptr::* __unspecified_pointer_type; public: typedef _Tp* pointer; typedef _Tp element_type; typedef _Tp_Deleter deleter_type; unique_ptr() : _M_t(pointer(), deleter_type()) { static_assert(!std::is_pointer::value, "constructed with null function pointer deleter"); } explicit unique_ptr(pointer __p) : _M_t(__p, deleter_type()) { static_assert(!std::is_pointer::value, "constructed with null function pointer deleter"); } unique_ptr(pointer __p, typename std::conditional::value, deleter_type, const deleter_type&>::type __d) : _M_t(__p, __d) { } unique_ptr(pointer __p, typename std::remove_reference::type&& __d) : _M_t(std::move(__p), std::move(__d)) { static_assert(!std::is_reference::value, "rvalue deleter bound to reference"); } unique_ptr(unique_ptr&& __u) : _M_t(__u.release(), std::forward(__u.get_deleter())) { } template unique_ptr(unique_ptr<_Up, _Up_Deleter>&& __u) : _M_t(__u.release(), std::forward(__u.get_deleter())) { } ~unique_ptr() { reset(); } unique_ptr& operator=(unique_ptr&& __u) { reset(__u.release()); get_deleter() = std::move(__u.get_deleter()); return *this; } template unique_ptr& operator=(unique_ptr<_Up, _Up_Deleter>&& __u) { reset(__u.release()); get_deleter() = std::move(__u.get_deleter()); return *this; } unique_ptr& operator=(__unspecified_pointer_type) { reset(); return *this; } typename std::add_lvalue_reference::type operator*() const { ; return *get(); } pointer operator->() const { ; return get(); } pointer get() const { return std::get<0>(_M_t); } deleter_type& get_deleter() { return std::get<1>(_M_t); } const deleter_type& get_deleter() const { return std::get<1>(_M_t); } explicit operator bool() const { return get() == pointer() ? false : true; } pointer release() { pointer __p = get(); std::get<0>(_M_t) = pointer(); return __p; } void reset(pointer __p = pointer()) { using std::swap; swap(std::get<0>(_M_t), __p); if (__p != pointer()) get_deleter()(__p); } void swap(unique_ptr& __u) { using std::swap; swap(_M_t, __u._M_t); } unique_ptr(const unique_ptr&) = delete; unique_ptr& operator=(const unique_ptr&) = delete; private: __tuple_type _M_t; }; template class unique_ptr<_Tp[], _Tp_Deleter> { typedef std::tuple<_Tp*, _Tp_Deleter> __tuple_type; typedef _Tp* unique_ptr::* __unspecified_pointer_type; public: typedef _Tp* pointer; typedef _Tp element_type; typedef _Tp_Deleter deleter_type; unique_ptr() : _M_t(pointer(), deleter_type()) { static_assert(!std::is_pointer::value, "constructed with null function pointer deleter"); } explicit unique_ptr(pointer __p) : _M_t(__p, deleter_type()) { static_assert(!std::is_pointer::value, "constructed with null function pointer deleter"); } unique_ptr(pointer __p, typename std::conditional::value, deleter_type, const deleter_type&>::type __d) : _M_t(__p, __d) { } unique_ptr(pointer __p, typename std::remove_reference::type && __d) : _M_t(std::move(__p), std::move(__d)) { static_assert(!std::is_reference::value, "rvalue deleter bound to reference"); } unique_ptr(unique_ptr&& __u) : _M_t(__u.release(), std::forward(__u.get_deleter())) { } template unique_ptr(unique_ptr<_Up, _Up_Deleter>&& __u) : _M_t(__u.release(), std::forward(__u.get_deleter())) { } ~unique_ptr() { reset(); } unique_ptr& operator=(unique_ptr&& __u) { reset(__u.release()); get_deleter() = std::move(__u.get_deleter()); return *this; } template unique_ptr& operator=(unique_ptr<_Up, _Up_Deleter>&& __u) { reset(__u.release()); get_deleter() = std::move(__u.get_deleter()); return *this; } unique_ptr& operator=(__unspecified_pointer_type) { reset(); return *this; } typename std::add_lvalue_reference::type operator[](size_t __i) const { ; return get()[__i]; } pointer get() const { return std::get<0>(_M_t); } deleter_type& get_deleter() { return std::get<1>(_M_t); } const deleter_type& get_deleter() const { return std::get<1>(_M_t); } explicit operator bool() const { return get() == pointer() ? false : true; } pointer release() { pointer __p = get(); std::get<0>(_M_t) = pointer(); return __p; } void reset(pointer __p = pointer()) { using std::swap; swap(std::get<0>(_M_t), __p); if (__p != pointer()) get_deleter()(__p); } template void reset(_Up) = delete; void swap(unique_ptr& __u) { using std::swap; swap(_M_t, __u._M_t); } unique_ptr(const unique_ptr&) = delete; unique_ptr& operator=(const unique_ptr&) = delete; template unique_ptr(_Up*, typename std::conditional::value, deleter_type, const deleter_type&>::type, typename std::enable_if::value>::type* = 0) = delete; template unique_ptr(_Up*, typename std::remove_reference::type&&, typename std::enable_if::value>::type* = 0) = delete; template explicit unique_ptr(_Up*, typename std::enable_if::value>::type* = 0) = delete; private: __tuple_type _M_t; }; template inline void swap(unique_ptr<_Tp, _Tp_Deleter>& __x, unique_ptr<_Tp, _Tp_Deleter>& __y) { __x.swap(__y); } template inline bool operator==(const unique_ptr<_Tp, _Tp_Deleter>& __x, const unique_ptr<_Up, _Up_Deleter>& __y) { return __x.get() == __y.get(); } template inline bool operator!=(const unique_ptr<_Tp, _Tp_Deleter>& __x, const unique_ptr<_Up, _Up_Deleter>& __y) { return !(__x.get() == __y.get()); } template inline bool operator<(const unique_ptr<_Tp, _Tp_Deleter>& __x, const unique_ptr<_Up, _Up_Deleter>& __y) { return __x.get() < __y.get(); } template inline bool operator<=(const unique_ptr<_Tp, _Tp_Deleter>& __x, const unique_ptr<_Up, _Up_Deleter>& __y) { return !(__y.get() < __x.get()); } template inline bool operator>(const unique_ptr<_Tp, _Tp_Deleter>& __x, const unique_ptr<_Up, _Up_Deleter>& __y) { return __y.get() < __x.get(); } template inline bool operator>=(const unique_ptr<_Tp, _Tp_Deleter>& __x, const unique_ptr<_Up, _Up_Deleter>& __y) { return !(__x.get() < __y.get()); } } # 85 "/usr/include/c++/4.5/memory" 2 3 # 1 "/usr/include/c++/4.5/backward/auto_ptr.h" 1 3 # 36 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 45 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 template struct auto_ptr_ref { _Tp1* _M_ptr; explicit auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { } } __attribute__ ((__deprecated__)); # 84 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 template class auto_ptr { private: _Tp* _M_ptr; public: typedef _Tp element_type; explicit auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { } # 110 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { } # 122 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 template auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { } # 133 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 auto_ptr& operator=(auto_ptr& __a) throw() { reset(__a.release()); return *this; } # 150 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 template auto_ptr& operator=(auto_ptr<_Tp1>& __a) throw() { reset(__a.release()); return *this; } # 168 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 ~auto_ptr() { delete _M_ptr; } # 178 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 element_type& operator*() const throw() { ; return *_M_ptr; } element_type* operator->() const throw() { ; return _M_ptr; } # 208 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 element_type* get() const throw() { return _M_ptr; } # 222 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 element_type* release() throw() { element_type* __tmp = _M_ptr; _M_ptr = 0; return __tmp; } # 237 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 void reset(element_type* __p = 0) throw() { if (__p != _M_ptr) { delete _M_ptr; _M_ptr = __p; } } # 258 "/usr/include/c++/4.5/backward/auto_ptr.h" 3 auto_ptr(auto_ptr_ref __ref) throw() : _M_ptr(__ref._M_ptr) { } auto_ptr& operator=(auto_ptr_ref __ref) throw() { if (__ref._M_ptr != this->get()) { delete _M_ptr; _M_ptr = __ref._M_ptr; } return *this; } template operator auto_ptr_ref<_Tp1>() throw() { return auto_ptr_ref<_Tp1>(this->release()); } template operator auto_ptr<_Tp1>() throw() { return auto_ptr<_Tp1>(this->release()); } } __attribute__ ((__deprecated__)); template<> class auto_ptr { public: typedef void element_type; } __attribute__ ((__deprecated__)); } # 87 "/usr/include/c++/4.5/memory" 2 3 # 95 "/usr/include/c++/4.5/memory" 3 # 1 "/usr/include/c++/4.5/tr1_impl/boost_sp_counted_base.h" 1 3 # 50 "/usr/include/c++/4.5/tr1_impl/boost_sp_counted_base.h" 3 namespace std { class bad_weak_ptr : public std::exception { public: virtual char const* what() const throw() { return "std::bad_weak_ptr"; } }; inline void __throw_bad_weak_ptr() { throw bad_weak_ptr(); } using __gnu_cxx::_Lock_policy; using __gnu_cxx::__default_lock_policy; using __gnu_cxx::_S_single; using __gnu_cxx::_S_mutex; using __gnu_cxx::_S_atomic; template<_Lock_policy _Lp> class _Mutex_base { protected: enum { _S_need_barriers = 0 }; }; template<> class _Mutex_base<_S_mutex> : public __gnu_cxx::__mutex { protected: enum { _S_need_barriers = 1 }; }; template<_Lock_policy _Lp = __default_lock_policy> class _Sp_counted_base : public _Mutex_base<_Lp> { public: _Sp_counted_base() : _M_use_count(1), _M_weak_count(1) { } virtual ~_Sp_counted_base() { } virtual void _M_dispose() = 0; virtual void _M_destroy() { delete this; } virtual void* _M_get_deleter(const std::type_info&) = 0; void _M_add_ref_copy() { __gnu_cxx::__atomic_add_dispatch(&_M_use_count, 1); } void _M_add_ref_lock(); void _M_release() { if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1) { _M_dispose(); if (_Mutex_base<_Lp>::_S_need_barriers) { __asm __volatile ("":::"memory"); __asm __volatile ("":::"memory"); } if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, -1) == 1) _M_destroy(); } } void _M_weak_add_ref() { __gnu_cxx::__atomic_add_dispatch(&_M_weak_count, 1); } void _M_weak_release() { if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, -1) == 1) { if (_Mutex_base<_Lp>::_S_need_barriers) { __asm __volatile ("":::"memory"); __asm __volatile ("":::"memory"); } _M_destroy(); } } long _M_get_use_count() const { return const_cast(_M_use_count); } private: _Sp_counted_base(_Sp_counted_base const&); _Sp_counted_base& operator=(_Sp_counted_base const&); _Atomic_word _M_use_count; _Atomic_word _M_weak_count; }; template<> inline void _Sp_counted_base<_S_single>:: _M_add_ref_lock() { if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) { _M_use_count = 0; __throw_bad_weak_ptr(); } } template<> inline void _Sp_counted_base<_S_mutex>:: _M_add_ref_lock() { __gnu_cxx::__scoped_lock sentry(*this); if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) { _M_use_count = 0; __throw_bad_weak_ptr(); } } template<> inline void _Sp_counted_base<_S_atomic>:: _M_add_ref_lock() { _Atomic_word __count; do { __count = _M_use_count; if (__count == 0) __throw_bad_weak_ptr(); } while (!__sync_bool_compare_and_swap(&_M_use_count, __count, __count + 1)); } } # 96 "/usr/include/c++/4.5/memory" 2 3 # 1 "/usr/include/c++/4.5/bits/shared_ptr.h" 1 3 # 52 "/usr/include/c++/4.5/bits/shared_ptr.h" 3 # 1 "/usr/include/c++/4.5/bits/shared_ptr_base.h" 1 3 # 52 "/usr/include/c++/4.5/bits/shared_ptr_base.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template class __shared_ptr; template class __weak_ptr; template class __enable_shared_from_this; template class shared_ptr; template class weak_ptr; template struct owner_less; template class enable_shared_from_this; template<_Lock_policy _Lp = __default_lock_policy> class __weak_count; template<_Lock_policy _Lp = __default_lock_policy> class __shared_count; template class _Sp_counted_ptr : public _Sp_counted_base<_Lp> { public: _Sp_counted_ptr(_Ptr __p) : _M_ptr(__p) { } virtual void _M_dispose() { delete _M_ptr; } virtual void _M_destroy() { delete this; } virtual void* _M_get_deleter(const std::type_info& __ti) { return 0; } _Sp_counted_ptr(const _Sp_counted_ptr&) = delete; _Sp_counted_ptr& operator=(const _Sp_counted_ptr&) = delete; protected: _Ptr _M_ptr; }; template class _Sp_counted_deleter : public _Sp_counted_ptr<_Ptr, _Lp> { typedef typename _Alloc::template rebind<_Sp_counted_deleter>::other _My_alloc_type; struct _My_Deleter : public _My_alloc_type { _Deleter _M_del; _My_Deleter(_Deleter __d, const _Alloc& __a) : _My_alloc_type(__a), _M_del(__d) { } }; protected: typedef _Sp_counted_ptr<_Ptr, _Lp> _Base_type; public: _Sp_counted_deleter(_Ptr __p, _Deleter __d) : _Base_type(__p), _M_del(__d, _Alloc()) { } _Sp_counted_deleter(_Ptr __p, _Deleter __d, const _Alloc& __a) : _Base_type(__p), _M_del(__d, __a) { } virtual void _M_dispose() { _M_del._M_del(_Base_type::_M_ptr); } virtual void _M_destroy() { _My_alloc_type __a(_M_del); this->~_Sp_counted_deleter(); __a.deallocate(this, 1); } virtual void* _M_get_deleter(const std::type_info& __ti) { return __ti == typeid(_Deleter) ? &_M_del._M_del : 0; } protected: _My_Deleter _M_del; }; template struct _Sp_destroy_inplace { void operator()(_Tp* __p) const { if (__p) __p->~_Tp(); } }; struct _Sp_make_shared_tag { }; template class _Sp_counted_ptr_inplace : public _Sp_counted_deleter<_Tp*, _Sp_destroy_inplace<_Tp>, _Alloc, _Lp> { typedef _Sp_counted_deleter<_Tp*, _Sp_destroy_inplace<_Tp>, _Alloc, _Lp> _Base_type; public: _Sp_counted_ptr_inplace(_Alloc __a) : _Base_type(static_cast<_Tp*>(0), _Sp_destroy_inplace<_Tp>(), __a) , _M_storage() { void* __p = &_M_storage; ::new (__p) _Tp(); _Base_type::_Base_type::_M_ptr = static_cast<_Tp*>(__p); } template _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args) : _Base_type(static_cast<_Tp*>(0), _Sp_destroy_inplace<_Tp>(), __a) , _M_storage() { void* __p = &_M_storage; ::new (__p) _Tp(std::forward<_Args>(__args)...); _Base_type::_Base_type::_M_ptr = static_cast<_Tp*>(__p); } virtual void _M_destroy() { typedef typename _Alloc::template rebind<_Sp_counted_ptr_inplace>::other _My_alloc_type; _My_alloc_type __a(_Base_type::_M_del); this->~_Sp_counted_ptr_inplace(); __a.deallocate(this, 1); } virtual void* _M_get_deleter(const std::type_info& __ti) { return __ti == typeid(_Sp_make_shared_tag) ? static_cast(&_M_storage) : _Base_type::_M_get_deleter(__ti); } private: typename aligned_storage::value>::type _M_storage; }; template<_Lock_policy _Lp> class __shared_count { public: __shared_count() : _M_pi(0) { } template __shared_count(_Ptr __p) : _M_pi(0) { try { _M_pi = new _Sp_counted_ptr<_Ptr, _Lp>(__p); } catch(...) { delete __p; throw; } } template __shared_count(_Ptr __p, _Deleter __d) : _M_pi(0) { typedef std::allocator _Alloc; typedef _Sp_counted_deleter<_Ptr, _Deleter, _Alloc, _Lp> _Sp_cd_type; typedef std::allocator<_Sp_cd_type> _Alloc2; _Alloc2 __a2; try { _M_pi = __a2.allocate(1); ::new(static_cast(_M_pi)) _Sp_cd_type(__p, __d); } catch(...) { __d(__p); if (_M_pi) __a2.deallocate(static_cast<_Sp_cd_type*>(_M_pi), 1); throw; } } template __shared_count(_Ptr __p, _Deleter __d, _Alloc __a) : _M_pi(0) { typedef _Sp_counted_deleter<_Ptr, _Deleter, _Alloc, _Lp> _Sp_cd_type; typedef typename _Alloc::template rebind<_Sp_cd_type>::other _Alloc2; _Alloc2 __a2(__a); try { _M_pi = __a2.allocate(1); ::new(static_cast(_M_pi)) _Sp_cd_type(__p, __d, __a); } catch(...) { __d(__p); if (_M_pi) __a2.deallocate(static_cast<_Sp_cd_type*>(_M_pi), 1); throw; } } template __shared_count(_Sp_make_shared_tag, _Tp*, _Alloc __a, _Args&&... __args) : _M_pi(0) { typedef _Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp> _Sp_cp_type; typedef typename _Alloc::template rebind<_Sp_cp_type>::other _Alloc2; _Alloc2 __a2(__a); try { _M_pi = __a2.allocate(1); ::new(static_cast(_M_pi)) _Sp_cp_type(__a, std::forward<_Args>(__args)...); } catch(...) { if (_M_pi) __a2.deallocate(static_cast<_Sp_cp_type*>(_M_pi), 1); throw; } } template __shared_count(std::auto_ptr<_Tp>&& __r) : _M_pi(new _Sp_counted_ptr<_Tp*, _Lp>(__r.get())) { __r.release(); } template __shared_count(std::unique_ptr<_Tp, _Del>&& __r) : _M_pi(_S_create_from_up(std::move(__r))) { __r.release(); } explicit __shared_count(const __weak_count<_Lp>& __r); ~__shared_count() { if (_M_pi != 0) _M_pi->_M_release(); } __shared_count(const __shared_count& __r) : _M_pi(__r._M_pi) { if (_M_pi != 0) _M_pi->_M_add_ref_copy(); } __shared_count& operator=(const __shared_count& __r) { _Sp_counted_base<_Lp>* __tmp = __r._M_pi; if (__tmp != _M_pi) { if (__tmp != 0) __tmp->_M_add_ref_copy(); if (_M_pi != 0) _M_pi->_M_release(); _M_pi = __tmp; } return *this; } void _M_swap(__shared_count& __r) { _Sp_counted_base<_Lp>* __tmp = __r._M_pi; __r._M_pi = _M_pi; _M_pi = __tmp; } long _M_get_use_count() const { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; } bool _M_unique() const { return this->_M_get_use_count() == 1; } void* _M_get_deleter(const std::type_info& __ti) const { return _M_pi ? _M_pi->_M_get_deleter(__ti) : 0; } bool _M_less(const __shared_count& __rhs) const { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } bool _M_less(const __weak_count<_Lp>& __rhs) const { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } friend inline bool operator==(const __shared_count& __a, const __shared_count& __b) { return __a._M_pi == __b._M_pi; } private: friend class __weak_count<_Lp>; template static _Sp_counted_base<_Lp>* _S_create_from_up(std::unique_ptr<_Tp, _Del>&& __r, typename std::enable_if::value>::type* = 0) { return new _Sp_counted_deleter<_Tp*, _Del, std::allocator<_Tp>, _Lp>(__r.get(), __r.get_deleter()); } template static _Sp_counted_base<_Lp>* _S_create_from_up(std::unique_ptr<_Tp, _Del>&& __r, typename std::enable_if::value>::type* = 0) { typedef typename std::remove_reference<_Del>::type _Del1; typedef std::reference_wrapper<_Del1> _Del2; return new _Sp_counted_deleter<_Tp*, _Del2, std::allocator<_Tp>, _Lp>(__r.get(), std::ref(__r.get_deleter())); } _Sp_counted_base<_Lp>* _M_pi; }; template<_Lock_policy _Lp> class __weak_count { public: __weak_count() : _M_pi(0) { } __weak_count(const __shared_count<_Lp>& __r) : _M_pi(__r._M_pi) { if (_M_pi != 0) _M_pi->_M_weak_add_ref(); } __weak_count(const __weak_count<_Lp>& __r) : _M_pi(__r._M_pi) { if (_M_pi != 0) _M_pi->_M_weak_add_ref(); } ~__weak_count() { if (_M_pi != 0) _M_pi->_M_weak_release(); } __weak_count<_Lp>& operator=(const __shared_count<_Lp>& __r) { _Sp_counted_base<_Lp>* __tmp = __r._M_pi; if (__tmp != 0) __tmp->_M_weak_add_ref(); if (_M_pi != 0) _M_pi->_M_weak_release(); _M_pi = __tmp; return *this; } __weak_count<_Lp>& operator=(const __weak_count<_Lp>& __r) { _Sp_counted_base<_Lp>* __tmp = __r._M_pi; if (__tmp != 0) __tmp->_M_weak_add_ref(); if (_M_pi != 0) _M_pi->_M_weak_release(); _M_pi = __tmp; return *this; } void _M_swap(__weak_count<_Lp>& __r) { _Sp_counted_base<_Lp>* __tmp = __r._M_pi; __r._M_pi = _M_pi; _M_pi = __tmp; } long _M_get_use_count() const { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; } bool _M_less(const __weak_count& __rhs) const { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } bool _M_less(const __shared_count<_Lp>& __rhs) const { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } friend inline bool operator==(const __weak_count& __a, const __weak_count& __b) { return __a._M_pi == __b._M_pi; } private: friend class __shared_count<_Lp>; _Sp_counted_base<_Lp>* _M_pi; }; template<_Lock_policy _Lp> inline __shared_count<_Lp>:: __shared_count(const __weak_count<_Lp>& __r) : _M_pi(__r._M_pi) { if (_M_pi != 0) _M_pi->_M_add_ref_lock(); else __throw_bad_weak_ptr(); } template<_Lock_policy _Lp, typename _Tp1, typename _Tp2> void __enable_shared_from_this_helper(const __shared_count<_Lp>&, const __enable_shared_from_this<_Tp1, _Lp>*, const _Tp2*); template void __enable_shared_from_this_helper(const __shared_count<>&, const enable_shared_from_this<_Tp1>*, const _Tp2*); template<_Lock_policy _Lp> inline void __enable_shared_from_this_helper(const __shared_count<_Lp>&, ...) { } template class __shared_ptr { public: typedef _Tp element_type; __shared_ptr() : _M_ptr(0), _M_refcount() { } template explicit __shared_ptr(_Tp1* __p) : _M_ptr(__p), _M_refcount(__p) { __enable_shared_from_this_helper(_M_refcount, __p, __p); } template __shared_ptr(_Tp1* __p, _Deleter __d) : _M_ptr(__p), _M_refcount(__p, __d) { __enable_shared_from_this_helper(_M_refcount, __p, __p); } template __shared_ptr(_Tp1* __p, _Deleter __d, const _Alloc& __a) : _M_ptr(__p), _M_refcount(__p, __d, __a) { __enable_shared_from_this_helper(_M_refcount, __p, __p); } template __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r, _Tp* __p) : _M_ptr(__p), _M_refcount(__r._M_refcount) { } template __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r) : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) { } __shared_ptr(__shared_ptr&& __r) : _M_ptr(__r._M_ptr), _M_refcount() { _M_refcount._M_swap(__r._M_refcount); __r._M_ptr = 0; } template __shared_ptr(__shared_ptr<_Tp1, _Lp>&& __r) : _M_ptr(__r._M_ptr), _M_refcount() { _M_refcount._M_swap(__r._M_refcount); __r._M_ptr = 0; } template explicit __shared_ptr(const __weak_ptr<_Tp1, _Lp>& __r) : _M_refcount(__r._M_refcount) { _M_ptr = __r._M_ptr; } template __shared_ptr(std::unique_ptr<_Tp1, _Del>&& __r) : _M_ptr(__r.get()), _M_refcount() { _Tp1* __tmp = __r.get(); _M_refcount = __shared_count<_Lp>(std::move(__r)); __enable_shared_from_this_helper(_M_refcount, __tmp, __tmp); } template __shared_ptr(std::auto_ptr<_Tp1>&& __r) : _M_ptr(__r.get()), _M_refcount() { _Tp1* __tmp = __r.get(); _M_refcount = __shared_count<_Lp>(std::move(__r)); __enable_shared_from_this_helper(_M_refcount, __tmp, __tmp); } template __shared_ptr& operator=(const __shared_ptr<_Tp1, _Lp>& __r) { _M_ptr = __r._M_ptr; _M_refcount = __r._M_refcount; return *this; } template __shared_ptr& operator=(std::auto_ptr<_Tp1>&& __r) { __shared_ptr(std::move(__r)).swap(*this); return *this; } __shared_ptr& operator=(__shared_ptr&& __r) { __shared_ptr(std::move(__r)).swap(*this); return *this; } template __shared_ptr& operator=(__shared_ptr<_Tp1, _Lp>&& __r) { __shared_ptr(std::move(__r)).swap(*this); return *this; } template __shared_ptr& operator=(std::unique_ptr<_Tp1, _Del>&& __r) { __shared_ptr(std::move(__r)).swap(*this); return *this; } void reset() { __shared_ptr().swap(*this); } template void reset(_Tp1* __p) { ; __shared_ptr(__p).swap(*this); } template void reset(_Tp1* __p, _Deleter __d) { __shared_ptr(__p, __d).swap(*this); } template void reset(_Tp1* __p, _Deleter __d, const _Alloc& __a) { __shared_ptr(__p, __d, __a).swap(*this); } typename std::add_lvalue_reference<_Tp>::type operator*() const { ; return *_M_ptr; } _Tp* operator->() const { ; return _M_ptr; } _Tp* get() const { return _M_ptr; } explicit operator bool() const { return _M_ptr == 0 ? false : true; } bool unique() const { return _M_refcount._M_unique(); } long use_count() const { return _M_refcount._M_get_use_count(); } void swap(__shared_ptr<_Tp, _Lp>& __other) { std::swap(_M_ptr, __other._M_ptr); _M_refcount._M_swap(__other._M_refcount); } template bool owner_before(__shared_ptr<_Tp1, _Lp> const& __rhs) const { return _M_refcount._M_less(__rhs._M_refcount); } template bool owner_before(__weak_ptr<_Tp1, _Lp> const& __rhs) const { return _M_refcount._M_less(__rhs._M_refcount); } protected: template __shared_ptr(_Sp_make_shared_tag __tag, _Alloc __a, _Args&&... __args) : _M_ptr(), _M_refcount(__tag, (_Tp*)0, __a, std::forward<_Args>(__args)...) { void* __p = _M_refcount._M_get_deleter(typeid(__tag)); _M_ptr = static_cast<_Tp*>(__p); __enable_shared_from_this_helper(_M_refcount, _M_ptr, _M_ptr); } # 794 "/usr/include/c++/4.5/bits/shared_ptr_base.h" 3 template friend __shared_ptr<_Tp1, _Lp1> __allocate_shared(_Alloc __a, _Args&&... __args); private: void* _M_get_deleter(const std::type_info& __ti) const { return _M_refcount._M_get_deleter(__ti); } template friend class __shared_ptr; template friend class __weak_ptr; template friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&); _Tp* _M_ptr; __shared_count<_Lp> _M_refcount; }; template inline bool operator==(const __shared_ptr<_Tp1, _Lp>& __a, const __shared_ptr<_Tp2, _Lp>& __b) { return __a.get() == __b.get(); } template inline bool operator!=(const __shared_ptr<_Tp1, _Lp>& __a, const __shared_ptr<_Tp2, _Lp>& __b) { return __a.get() != __b.get(); } template inline bool operator<(const __shared_ptr<_Tp1, _Lp>& __a, const __shared_ptr<_Tp2, _Lp>& __b) { return __a.get() < __b.get(); } template struct _Sp_less : public binary_function<_Sp, _Sp, bool> { bool operator()(const _Sp& __lhs, const _Sp& __rhs) const { typedef typename _Sp::element_type element_type; return std::less()(__lhs.get(), __rhs.get()); } }; template struct less<__shared_ptr<_Tp, _Lp>> : public _Sp_less<__shared_ptr<_Tp, _Lp>> { }; template inline bool operator>(const __shared_ptr<_Tp, _Lp>& __a, const __shared_ptr<_Tp, _Lp>& __b) { return __a.get() > __b.get(); } template inline bool operator>=(const __shared_ptr<_Tp, _Lp>& __a, const __shared_ptr<_Tp, _Lp>& __b) { return __a.get() >= __b.get(); } template inline bool operator<=(const __shared_ptr<_Tp, _Lp>& __a, const __shared_ptr<_Tp, _Lp>& __b) { return __a.get() <= __b.get(); } template inline void swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b) { __a.swap(__b); } # 882 "/usr/include/c++/4.5/bits/shared_ptr_base.h" 3 template inline __shared_ptr<_Tp, _Lp> static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) { return __shared_ptr<_Tp, _Lp>(__r, static_cast<_Tp*>(__r.get())); } template inline __shared_ptr<_Tp, _Lp> const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) { return __shared_ptr<_Tp, _Lp>(__r, const_cast<_Tp*>(__r.get())); } template inline __shared_ptr<_Tp, _Lp> dynamic_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) { if (_Tp* __p = dynamic_cast<_Tp*>(__r.get())) return __shared_ptr<_Tp, _Lp>(__r, __p); return __shared_ptr<_Tp, _Lp>(); } template class __weak_ptr { public: typedef _Tp element_type; __weak_ptr() : _M_ptr(0), _M_refcount() { } # 937 "/usr/include/c++/4.5/bits/shared_ptr_base.h" 3 template __weak_ptr(const __weak_ptr<_Tp1, _Lp>& __r) : _M_refcount(__r._M_refcount) { _M_ptr = __r.lock().get(); } template __weak_ptr(const __shared_ptr<_Tp1, _Lp>& __r) : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) { } template __weak_ptr& operator=(const __weak_ptr<_Tp1, _Lp>& __r) { _M_ptr = __r.lock().get(); _M_refcount = __r._M_refcount; return *this; } template __weak_ptr& operator=(const __shared_ptr<_Tp1, _Lp>& __r) { _M_ptr = __r._M_ptr; _M_refcount = __r._M_refcount; return *this; } __shared_ptr<_Tp, _Lp> lock() const { if (expired()) return __shared_ptr(); try { return __shared_ptr(*this); } catch(const bad_weak_ptr&) { return __shared_ptr(); } } long use_count() const { return _M_refcount._M_get_use_count(); } bool expired() const { return _M_refcount._M_get_use_count() == 0; } template bool owner_before(const __shared_ptr<_Tp1, _Lp>& __rhs) const { return _M_refcount._M_less(__rhs._M_refcount); } template bool owner_before(const __weak_ptr<_Tp1, _Lp>& __rhs) const { return _M_refcount._M_less(__rhs._M_refcount); } void reset() { __weak_ptr().swap(*this); } void swap(__weak_ptr& __s) { std::swap(_M_ptr, __s._M_ptr); _M_refcount._M_swap(__s._M_refcount); } private: void _M_assign(_Tp* __ptr, const __shared_count<_Lp>& __refcount) { _M_ptr = __ptr; _M_refcount = __refcount; } template friend class __shared_ptr; template friend class __weak_ptr; friend class __enable_shared_from_this<_Tp, _Lp>; friend class enable_shared_from_this<_Tp>; _Tp* _M_ptr; __weak_count<_Lp> _M_refcount; }; template inline void swap(__weak_ptr<_Tp, _Lp>& __a, __weak_ptr<_Tp, _Lp>& __b) { __a.swap(__b); } template struct _Sp_owner_less : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __lhs, const _Tp& __rhs) const { return __lhs.owner_before(__rhs); } bool operator()(const _Tp& __lhs, const _Tp1& __rhs) const { return __lhs.owner_before(__rhs); } bool operator()(const _Tp1& __lhs, const _Tp& __rhs) const { return __lhs.owner_before(__rhs); } }; template struct owner_less<__shared_ptr<_Tp, _Lp>> : public _Sp_owner_less<__shared_ptr<_Tp, _Lp>, __weak_ptr<_Tp, _Lp>> { }; template struct owner_less<__weak_ptr<_Tp, _Lp>> : public _Sp_owner_less<__weak_ptr<_Tp, _Lp>, __shared_ptr<_Tp, _Lp>> { }; template class __enable_shared_from_this { protected: __enable_shared_from_this() { } __enable_shared_from_this(const __enable_shared_from_this&) { } __enable_shared_from_this& operator=(const __enable_shared_from_this&) { return *this; } ~__enable_shared_from_this() { } public: __shared_ptr<_Tp, _Lp> shared_from_this() { return __shared_ptr<_Tp, _Lp>(this->_M_weak_this); } __shared_ptr shared_from_this() const { return __shared_ptr(this->_M_weak_this); } private: template void _M_weak_assign(_Tp1* __p, const __shared_count<_Lp>& __n) const { _M_weak_this._M_assign(__p, __n); } template friend void __enable_shared_from_this_helper(const __shared_count<_Lp>& __pn, const __enable_shared_from_this* __pe, const _Tp1* __px) { if (__pe != 0) __pe->_M_weak_assign(const_cast<_Tp1*>(__px), __pn); } mutable __weak_ptr<_Tp, _Lp> _M_weak_this; }; template inline __shared_ptr<_Tp, _Lp> __allocate_shared(_Alloc __a, _Args&&... __args) { return __shared_ptr<_Tp, _Lp>(_Sp_make_shared_tag(), std::forward<_Alloc>(__a), std::forward<_Args>(__args)...); } template inline __shared_ptr<_Tp, _Lp> __make_shared(_Args&&... __args) { typedef typename std::remove_const<_Tp>::type _Tp_nc; return __allocate_shared<_Tp, _Lp>(std::allocator<_Tp_nc>(), std::forward<_Args>(__args)...); } } # 53 "/usr/include/c++/4.5/bits/shared_ptr.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { template inline std::basic_ostream<_Ch, _Tr>& operator<<(std::basic_ostream<_Ch, _Tr>& __os, const __shared_ptr<_Tp, _Lp>& __p) { __os << __p.get(); return __os; } template inline _Del* get_deleter(const __shared_ptr<_Tp, _Lp>& __p) { return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); } # 90 "/usr/include/c++/4.5/bits/shared_ptr.h" 3 template class shared_ptr : public __shared_ptr<_Tp> { public: shared_ptr() : __shared_ptr<_Tp>() { } template explicit shared_ptr(_Tp1* __p) : __shared_ptr<_Tp>(__p) { } # 122 "/usr/include/c++/4.5/bits/shared_ptr.h" 3 template shared_ptr(_Tp1* __p, _Deleter __d) : __shared_ptr<_Tp>(__p, __d) { } # 140 "/usr/include/c++/4.5/bits/shared_ptr.h" 3 template shared_ptr(_Tp1* __p, _Deleter __d, const _Alloc& __a) : __shared_ptr<_Tp>(__p, __d, __a) { } # 162 "/usr/include/c++/4.5/bits/shared_ptr.h" 3 template shared_ptr(const shared_ptr<_Tp1>& __r, _Tp* __p) : __shared_ptr<_Tp>(__r, __p) { } # 173 "/usr/include/c++/4.5/bits/shared_ptr.h" 3 template shared_ptr(const shared_ptr<_Tp1>& __r) : __shared_ptr<_Tp>(__r) { } shared_ptr(shared_ptr&& __r) : __shared_ptr<_Tp>(std::move(__r)) { } template shared_ptr(shared_ptr<_Tp1>&& __r) : __shared_ptr<_Tp>(std::move(__r)) { } # 201 "/usr/include/c++/4.5/bits/shared_ptr.h" 3 template explicit shared_ptr(const weak_ptr<_Tp1>& __r) : __shared_ptr<_Tp>(__r) { } template shared_ptr(std::auto_ptr<_Tp1>&& __r) : __shared_ptr<_Tp>(std::move(__r)) { } template shared_ptr(std::unique_ptr<_Tp1, _Del>&& __r) : __shared_ptr<_Tp>(std::move(__r)) { } template shared_ptr& operator=(const shared_ptr<_Tp1>& __r) { this->__shared_ptr<_Tp>::operator=(__r); return *this; } template shared_ptr& operator=(std::auto_ptr<_Tp1>&& __r) { this->__shared_ptr<_Tp>::operator=(std::move(__r)); return *this; } shared_ptr& operator=(shared_ptr&& __r) { this->__shared_ptr<_Tp>::operator=(std::move(__r)); return *this; } template shared_ptr& operator=(shared_ptr<_Tp1>&& __r) { this->__shared_ptr<_Tp>::operator=(std::move(__r)); return *this; } template shared_ptr& operator=(std::unique_ptr<_Tp1, _Del>&& __r) { this->__shared_ptr<_Tp>::operator=(std::move(__r)); return *this; } private: template shared_ptr(_Sp_make_shared_tag __tag, _Alloc __a, _Args&&... __args) : __shared_ptr<_Tp>(__tag, __a, std::forward<_Args>(__args)...) { } template friend shared_ptr<_Tp1> allocate_shared(_Alloc __a, _Args&&... __args); }; template inline bool operator==(const shared_ptr<_Tp1>& __a, const shared_ptr<_Tp2>& __b) { return __a.get() == __b.get(); } template inline bool operator!=(const shared_ptr<_Tp1>& __a, const shared_ptr<_Tp2>& __b) { return __a.get() != __b.get(); } template inline bool operator<(const shared_ptr<_Tp1>& __a, const shared_ptr<_Tp2>& __b) { return __a.get() < __b.get(); } template struct less> : public _Sp_less> { }; template inline void swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>& __b) { __a.swap(__b); } template inline shared_ptr<_Tp> static_pointer_cast(const shared_ptr<_Tp1>& __r) { return shared_ptr<_Tp>(__r, static_cast<_Tp*>(__r.get())); } template inline shared_ptr<_Tp> const_pointer_cast(const shared_ptr<_Tp1>& __r) { return shared_ptr<_Tp>(__r, const_cast<_Tp*>(__r.get())); } template inline shared_ptr<_Tp> dynamic_pointer_cast(const shared_ptr<_Tp1>& __r) { if (_Tp* __p = dynamic_cast<_Tp*>(__r.get())) return shared_ptr<_Tp>(__r, __p); return shared_ptr<_Tp>(); } template class weak_ptr : public __weak_ptr<_Tp> { public: weak_ptr() : __weak_ptr<_Tp>() { } template weak_ptr(const weak_ptr<_Tp1>& __r) : __weak_ptr<_Tp>(__r) { } template weak_ptr(const shared_ptr<_Tp1>& __r) : __weak_ptr<_Tp>(__r) { } template weak_ptr& operator=(const weak_ptr<_Tp1>& __r) { this->__weak_ptr<_Tp>::operator=(__r); return *this; } template weak_ptr& operator=(const shared_ptr<_Tp1>& __r) { this->__weak_ptr<_Tp>::operator=(__r); return *this; } shared_ptr<_Tp> lock() const { if (this->expired()) return shared_ptr<_Tp>(); try { return shared_ptr<_Tp>(*this); } catch(const bad_weak_ptr&) { return shared_ptr<_Tp>(); } } }; template inline void swap(weak_ptr<_Tp>& __a, weak_ptr<_Tp>& __b) { __a.swap(__b); } template struct owner_less; template struct owner_less> : public _Sp_owner_less, weak_ptr<_Tp>> { }; template struct owner_less> : public _Sp_owner_less, shared_ptr<_Tp>> { }; template class enable_shared_from_this { protected: enable_shared_from_this() { } enable_shared_from_this(const enable_shared_from_this&) { } enable_shared_from_this& operator=(const enable_shared_from_this&) { return *this; } ~enable_shared_from_this() { } public: shared_ptr<_Tp> shared_from_this() { return shared_ptr<_Tp>(this->_M_weak_this); } shared_ptr shared_from_this() const { return shared_ptr(this->_M_weak_this); } private: template void _M_weak_assign(_Tp1* __p, const __shared_count<>& __n) const { _M_weak_this._M_assign(__p, __n); } template friend void __enable_shared_from_this_helper(const __shared_count<>& __pn, const enable_shared_from_this* __pe, const _Tp1* __px) { if (__pe != 0) __pe->_M_weak_assign(const_cast<_Tp1*>(__px), __pn); } mutable weak_ptr<_Tp> _M_weak_this; }; # 450 "/usr/include/c++/4.5/bits/shared_ptr.h" 3 template inline shared_ptr<_Tp> allocate_shared(_Alloc __a, _Args&&... __args) { return shared_ptr<_Tp>(_Sp_make_shared_tag(), std::forward<_Alloc>(__a), std::forward<_Args>(__args)...); } # 465 "/usr/include/c++/4.5/bits/shared_ptr.h" 3 template inline shared_ptr<_Tp> make_shared(_Args&&... __args) { typedef typename std::remove_const<_Tp>::type _Tp_nc; return allocate_shared<_Tp>(std::allocator<_Tp_nc>(), std::forward<_Args>(__args)...); } } # 102 "/usr/include/c++/4.5/memory" 2 3 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/detail/allocator_utilities.hpp" 2 3 4 namespace boost{ namespace detail{ namespace allocator{ template class partial_std_allocator_wrapper:public std::allocator { public: typedef Type value_type; partial_std_allocator_wrapper(){}; template partial_std_allocator_wrapper(const partial_std_allocator_wrapper&){} partial_std_allocator_wrapper(const std::allocator& x): std::allocator(x) { }; # 70 "/home/jas/.tt/ttsetup/opt/include/boost/detail/allocator_utilities.hpp" 3 4 }; # 101 "/home/jas/.tt/ttsetup/opt/include/boost/detail/allocator_utilities.hpp" 3 4 template struct is_partial_std_allocator { static const bool value=false; }; template struct partial_std_allocator_rebind_to { typedef partial_std_allocator_wrapper type; }; # 142 "/home/jas/.tt/ttsetup/opt/include/boost/detail/allocator_utilities.hpp" 3 4 template struct rebinder { template struct result { typedef typename Allocator::template rebind::other other; }; }; template struct compliant_allocator_rebind_to { typedef typename rebinder:: template result::other type; }; template struct rebind_to: mpl::eval_if_c< is_partial_std_allocator::value, partial_std_allocator_rebind_to, compliant_allocator_rebind_to > { }; template void construct(void* p,const Type& t) { new (p) Type(t); } # 190 "/home/jas/.tt/ttsetup/opt/include/boost/detail/allocator_utilities.hpp" 3 4 template void destroy(const Type* p) { p->~Type(); } } } } # 21 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/detail/no_exceptions_support.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/at.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/at.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/at_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/at_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct at_impl; template< typename Sequence, typename N > struct at; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/at.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/at_impl.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/at_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/begin_end.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/begin_end.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/begin_end_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/begin_end_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct begin_impl; template< typename Tag > struct end_impl; template< typename Sequence > struct begin; template< typename Sequence > struct end; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/begin_end.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/begin_end_impl.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/begin_end_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/sequence_tag_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/sequence_tag_fwd.hpp" 3 4 namespace boost { namespace mpl { struct nested_begin_end_tag; struct non_sequence_tag; template< typename Sequence > struct sequence_tag; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/begin_end_impl.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_begin.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_begin.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_begin { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; }}} # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/begin_end_impl.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/traits_lambda_spec.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/begin_end_impl.hpp" 2 3 4 namespace boost { namespace mpl { namespace aux { template< typename Sequence > struct begin_type { typedef typename Sequence::begin type; }; template< typename Sequence > struct end_type { typedef typename Sequence::end type; }; } template< typename Tag > struct begin_impl { template< typename Sequence > struct apply { typedef typename eval_if, aux::begin_type, void_>::type type; }; }; template< typename Tag > struct end_impl { template< typename Sequence > struct apply { typedef typename eval_if, aux::end_type, void_>::type type; }; }; # 82 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/begin_end_impl.hpp" 3 4 template<> struct begin_impl { template< typename Sequence > struct apply { typedef typename Sequence::begin type; }; }; template<> struct end_impl { template< typename Sequence > struct apply { typedef typename Sequence::end type; }; }; template<> struct begin_impl { template< typename Sequence > struct apply { typedef void_ type; }; }; template<> struct end_impl { template< typename Sequence > struct apply { typedef void_ type; }; }; template<> struct begin_impl { template< typename Sequence > struct apply { typedef void_ type; }; }; template<> struct end_impl { template< typename Sequence > struct apply { typedef void_ type; }; }; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/begin_end.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/sequence_tag.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/sequence_tag.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_tag.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_tag.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_tag { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; }}} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/sequence_tag.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/is_msvc_eti_arg.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/is_msvc_eti_arg.hpp" 3 4 namespace boost { namespace mpl { namespace aux { # 62 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/is_msvc_eti_arg.hpp" 3 4 }}} # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/sequence_tag.hpp" 2 3 4 namespace boost { namespace mpl { # 78 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/sequence_tag.hpp" 3 4 namespace aux { template< bool has_tag_, bool has_begin_ > struct sequence_tag_impl { template< typename Sequence > struct result2_; }; # 98 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/sequence_tag.hpp" 3 4 template<> struct sequence_tag_impl { template< typename Sequence > struct result2_ { typedef typename Sequence::tag type; }; }; template<> struct sequence_tag_impl { template< typename Sequence > struct result2_ { typedef typename Sequence::tag type; }; }; template<> struct sequence_tag_impl { template< typename Sequence > struct result2_ { typedef nested_begin_end_tag type; }; }; template<> struct sequence_tag_impl { template< typename Sequence > struct result2_ { typedef non_sequence_tag type; }; }; } template< typename Sequence = na > struct sequence_tag : aux::sequence_tag_impl< ::boost::mpl::aux::has_tag::value , ::boost::mpl::aux::has_begin::value >::template result2_ { }; template<> struct sequence_tag< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : sequence_tag< T1 > { }; }; template< typename Tag > struct lambda< sequence_tag< na > , Tag , int_<-1> > { typedef false_ is_le; typedef sequence_tag< na > result_; typedef sequence_tag< na > type; }; namespace aux { template< typename T1 > struct template_arity< sequence_tag< T1 > > : int_<1> { }; template<> struct template_arity< sequence_tag< na > > : int_<-1> { }; } }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/begin_end.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na > struct begin { typedef typename sequence_tag::type tag_; typedef typename begin_impl< tag_ > ::template apply< Sequence >::type type; }; template< typename Sequence = na > struct end { typedef typename sequence_tag::type tag_; typedef typename end_impl< tag_ > ::template apply< Sequence >::type type; }; template<> struct begin< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : begin< T1 > { }; }; template< typename Tag > struct lambda< begin< na > , Tag , int_<-1> > { typedef false_ is_le; typedef begin< na > result_; typedef begin< na > type; }; namespace aux { template< typename T1 > struct template_arity< begin< T1 > > : int_<1> { }; template<> struct template_arity< begin< na > > : int_<-1> { }; } template<> struct end< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : end< T1 > { }; }; template< typename Tag > struct lambda< end< na > , Tag , int_<-1> > { typedef false_ is_le; typedef end< na > result_; typedef end< na > type; }; namespace aux { template< typename T1 > struct template_arity< end< T1 > > : int_<1> { }; template<> struct template_arity< end< na > > : int_<-1> { }; } }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/at_impl.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/advance.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/advance.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/advance_fwd.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/advance_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct advance_impl; template< typename Iterator, typename N > struct advance; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/advance.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/less.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/less.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/numeric_cast.hpp" 1 3 4 # 30 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/numeric_cast.hpp" 3 4 namespace boost { namespace mpl { template< typename SourceTag, typename TargetTag > struct numeric_cast { template< typename N > struct apply; }; }} # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/tag.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/tag.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename T > struct tag_impl { typedef typename T::tag type; }; } template< typename T, typename Default = void_ > struct tag : if_< aux::has_tag , aux::tag_impl , Default >::type { # 48 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/tag.hpp" 3 4 }; }} # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_cast_utils.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_cast_utils.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_cast_utils.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/forwarding.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_cast_utils.hpp" 2 3 4 namespace boost { namespace mpl { namespace aux { template< typename F , typename Tag1 , typename Tag2 > struct cast1st_impl { template< typename N1, typename N2 > struct apply : apply_wrap2< F , typename apply_wrap1< numeric_cast,N1 >::type , N2 > { # 46 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_cast_utils.hpp" 3 4 }; }; template< typename F , typename Tag1 , typename Tag2 > struct cast2nd_impl { template< typename N1, typename N2 > struct apply : apply_wrap2< F , N1 , typename apply_wrap1< numeric_cast,N2 >::type > { # 72 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_cast_utils.hpp" 3 4 }; }; }}} # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/msvc_eti_base.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/msvc_eti_base.hpp" 3 4 namespace boost { namespace mpl { namespace aux { # 55 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/msvc_eti_base.hpp" 3 4 template< typename T > struct msvc_eti_base : T { msvc_eti_base(); typedef T type; }; template<> struct msvc_eti_base { typedef msvc_eti_base type; typedef msvc_eti_base first; typedef msvc_eti_base second; typedef msvc_eti_base tag; enum { value = 0 }; }; }}} # 30 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/less.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/less.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag1 , typename Tag2 > struct less_impl : if_c< ( Tag1::value > Tag2::value ) , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > >::type { }; template<> struct less_impl< na,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct less_impl< na,Tag > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct less_impl< Tag,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename T > struct less_tag { typedef typename T::tag type; }; template< typename N1 = na , typename N2 = na > struct less : less_impl< typename less_tag::type , typename less_tag::type >::template apply< N1,N2 >::type { }; template<> struct less< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : less< T1 , T2 > { }; }; template< typename Tag > struct lambda< less< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef less< na , na > result_; typedef less< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< less< T1 , T2 > > : int_<2> { }; template<> struct template_arity< less< na , na > > : int_<-1> { }; } }} namespace boost { namespace mpl { template<> struct less_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply : bool_< ( N2::value > N1::value ) > { }; }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/less.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/advance.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/negate.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/negate.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct negate_impl; template< typename T > struct negate_tag { typedef typename T::tag type; }; template< typename N = na > struct negate : negate_impl< typename negate_tag::type >::template apply::type { }; template<> struct negate< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : negate< T1 > { }; }; template< typename Tag > struct lambda< negate< na > , Tag , int_<-1> > { typedef false_ is_le; typedef negate< na > result_; typedef negate< na > type; }; namespace aux { template< typename T1 > struct template_arity< negate< T1 > > : int_<1> { }; template<> struct template_arity< negate< na > > : int_<-1> { }; } # 65 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/negate.hpp" 3 4 template<> struct negate_impl { template< typename N > struct apply : integral_c< typename N::value_type, (-N::value) > { }; }; }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/advance.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/long.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/long.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/long_fwd.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/long_fwd.hpp" 3 4 namespace mpl_ { template< long N > struct long_; } namespace boost { namespace mpl { using ::mpl_::long_; } } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/long.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 1 3 4 # 40 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 namespace mpl_ { template< long N > struct long_ { static const long value = N; typedef long_ type; typedef long value_type; typedef integral_c_tag tag; # 72 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 typedef mpl_::long_< static_cast((value + 1)) > next; typedef mpl_::long_< static_cast((value - 1)) > prior; operator long() const { return static_cast(this->value); } }; template< long N > long const mpl_::long_< N >::value; } # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/long.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/advance.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/advance.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/advance_forward.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/advance_forward.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/advance_forward.hpp" 2 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/advance_forward.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< long N > struct advance_forward; template<> struct advance_forward<0> { template< typename Iterator > struct apply { typedef Iterator iter0; typedef iter0 type; }; }; template<> struct advance_forward<1> { template< typename Iterator > struct apply { typedef Iterator iter0; typedef typename next::type iter1; typedef iter1 type; }; }; template<> struct advance_forward<2> { template< typename Iterator > struct apply { typedef Iterator iter0; typedef typename next::type iter1; typedef typename next::type iter2; typedef iter2 type; }; }; template<> struct advance_forward<3> { template< typename Iterator > struct apply { typedef Iterator iter0; typedef typename next::type iter1; typedef typename next::type iter2; typedef typename next::type iter3; typedef iter3 type; }; }; template<> struct advance_forward<4> { template< typename Iterator > struct apply { typedef Iterator iter0; typedef typename next::type iter1; typedef typename next::type iter2; typedef typename next::type iter3; typedef typename next::type iter4; typedef iter4 type; }; }; template< long N > struct advance_forward { template< typename Iterator > struct apply { typedef typename apply_wrap1< advance_forward<4> , Iterator >::type chunk_result_; typedef typename apply_wrap1< advance_forward<( (N - 4) < 0 ? 0 : N - 4 )> , chunk_result_ >::type type; }; }; }}} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 33 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/advance_forward.hpp" 2 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/advance.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/advance_backward.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/advance_backward.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/prior.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/advance_backward.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/advance_backward.hpp" 2 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/advance_backward.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< long N > struct advance_backward; template<> struct advance_backward<0> { template< typename Iterator > struct apply { typedef Iterator iter0; typedef iter0 type; }; }; template<> struct advance_backward<1> { template< typename Iterator > struct apply { typedef Iterator iter0; typedef typename prior::type iter1; typedef iter1 type; }; }; template<> struct advance_backward<2> { template< typename Iterator > struct apply { typedef Iterator iter0; typedef typename prior::type iter1; typedef typename prior::type iter2; typedef iter2 type; }; }; template<> struct advance_backward<3> { template< typename Iterator > struct apply { typedef Iterator iter0; typedef typename prior::type iter1; typedef typename prior::type iter2; typedef typename prior::type iter3; typedef iter3 type; }; }; template<> struct advance_backward<4> { template< typename Iterator > struct apply { typedef Iterator iter0; typedef typename prior::type iter1; typedef typename prior::type iter2; typedef typename prior::type iter3; typedef typename prior::type iter4; typedef iter4 type; }; }; template< long N > struct advance_backward { template< typename Iterator > struct apply { typedef typename apply_wrap1< advance_backward<4> , Iterator >::type chunk_result_; typedef typename apply_wrap1< advance_backward<( (N - 4) < 0 ? 0 : N - 4 )> , chunk_result_ >::type type; }; }; }}} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 33 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/advance_backward.hpp" 2 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/advance.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Tag > struct advance_impl { template< typename Iterator, typename N > struct apply { typedef typename less< N,long_<0> >::type backward_; typedef typename if_< backward_, negate, N >::type offset_; typedef typename if_< backward_ , aux::advance_backward< offset_::value > , aux::advance_forward< offset_::value > >::type f_; typedef typename apply_wrap1::type type; }; }; template< typename Iterator = na , typename N = na > struct advance : advance_impl< typename tag::type > ::template apply { }; template< typename Iterator , long N > struct advance_c : advance_impl< typename tag::type > ::template apply > { }; template<> struct advance< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : advance< T1 , T2 > { }; }; template< typename Tag > struct lambda< advance< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef advance< na , na > result_; typedef advance< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< advance< T1 , T2 > > : int_<2> { }; template<> struct template_arity< advance< na , na > > : int_<-1> { }; } }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/at_impl.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/deref.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/deref.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/msvc_type.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/msvc_type.hpp" 3 4 namespace boost { namespace mpl { namespace aux { # 48 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/msvc_type.hpp" 3 4 template< typename T > struct msvc_type { typedef typename T::type type; }; template<> struct msvc_type { typedef int type; }; }}} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/deref.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Iterator = na > struct deref { typedef typename Iterator::type type; }; template<> struct deref< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : deref< T1 > { }; }; template< typename Tag > struct lambda< deref< na > , Tag , int_<-1> > { typedef false_ is_le; typedef deref< na > result_; typedef deref< na > type; }; namespace aux { template< typename T1 > struct template_arity< deref< T1 > > : int_<1> { }; template<> struct template_arity< deref< na > > : int_<-1> { }; } }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/at_impl.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Tag > struct at_impl { template< typename Sequence, typename N > struct apply { typedef typename advance< typename begin::type , N >::type iter_; typedef typename deref::type type; }; }; template<> struct at_impl {}; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/at.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na , typename N = na > struct at : at_impl< typename sequence_tag::type > ::template apply< Sequence,N > { }; template< typename Sequence , long N > struct at_c : at_impl< typename sequence_tag::type > ::template apply< Sequence,mpl::long_ > { }; template<> struct at< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : at< T1 , T2 > { }; }; template< typename Tag > struct lambda< at< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef at< na , na > result_; typedef at< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< at< T1 , T2 > > : int_<2> { }; template<> struct template_arity< at< na , na > > : int_<-1> { }; } }} # 24 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/contains.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/contains.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/contains_fwd.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/contains_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct contains_impl; template< typename Sequence, typename T > struct contains; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/contains.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/contains_impl.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/contains_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/find.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/find.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/find_if.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/find_if.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/find_if_pred.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/find_if_pred.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_apply.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_apply.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_apply.hpp" 2 3 4 namespace boost { namespace mpl { namespace aux { template< typename F , typename Iterator > struct iter_apply1 : apply1< F,typename deref::type > { }; template< typename F , typename Iterator1 , typename Iterator2 > struct iter_apply2 : apply2< F , typename deref::type , typename deref::type > { }; }}} # 15 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/find_if_pred.hpp" 2 3 4 namespace boost { namespace mpl { namespace aux { template< typename Predicate > struct find_if_pred { template< typename Iterator > struct apply { typedef not_< aux::iter_apply1 > type; }; }; }}} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/find_if.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/find_if.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iter_fold_if.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iter_fold_if.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/pair.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/pair.hpp" 3 4 namespace boost { namespace mpl { template< typename T1 = na , typename T2 = na > struct pair { typedef pair type; typedef T1 first; typedef T2 second; }; template< typename P = na > struct first { typedef typename P::first type; }; template< typename P = na > struct second { typedef typename P::second type; }; template<> struct pair< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : pair< T1 , T2 > { }; }; template< typename Tag > struct lambda< pair< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef pair< na , na > result_; typedef pair< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< pair< T1 , T2 > > : int_<2> { }; template<> struct template_arity< pair< na , na > > : int_<-1> { }; } template<> struct first< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : first< T1 > { }; }; template< typename Tag > struct lambda< first< na > , Tag , int_<-1> > { typedef false_ is_le; typedef first< na > result_; typedef first< na > type; }; namespace aux { template< typename T1 > struct template_arity< first< T1 > > : int_<1> { }; template<> struct template_arity< first< na > > : int_<-1> { }; } template<> struct second< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : second< T1 > { }; }; template< typename Tag > struct lambda< second< na > , Tag , int_<-1> > { typedef false_ is_le; typedef second< na > result_; typedef second< na > type; }; namespace aux { template< typename T1 > struct template_arity< second< T1 > > : int_<1> { }; template<> struct template_arity< second< na > > : int_<-1> { }; } }} # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iter_fold_if.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iter_fold_if.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_fold_if_impl.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_fold_if_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_fold_if_impl.hpp" 2 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_fold_if_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename Iterator, typename State > struct iter_fold_if_null_step { typedef State state; typedef Iterator iterator; }; template< bool > struct iter_fold_if_step_impl { template< typename Iterator , typename State , typename StateOp , typename IteratorOp > struct result_ { typedef typename apply2< StateOp,State,Iterator >::type state; typedef typename IteratorOp::type iterator; }; }; template<> struct iter_fold_if_step_impl { template< typename Iterator , typename State , typename StateOp , typename IteratorOp > struct result_ { typedef State state; typedef Iterator iterator; }; }; template< typename Iterator , typename State , typename ForwardOp , typename Predicate > struct iter_fold_if_forward_step { typedef typename apply2< Predicate,State,Iterator >::type not_last; typedef typename iter_fold_if_step_impl< not_last::value >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; typedef typename impl_::state state; typedef typename impl_::iterator iterator; }; template< typename Iterator , typename State , typename BackwardOp , typename Predicate > struct iter_fold_if_backward_step { typedef typename apply2< Predicate,State,Iterator >::type not_last; typedef typename iter_fold_if_step_impl< not_last::value >::template result_< Iterator,State,BackwardOp, identity > impl_; typedef typename impl_::state state; typedef typename impl_::iterator iterator; }; template< typename Iterator , typename State , typename ForwardOp , typename ForwardPredicate , typename BackwardOp , typename BackwardPredicate > struct iter_fold_if_impl { private: typedef iter_fold_if_null_step< Iterator,State > forward_step0; typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; typedef typename if_< typename forward_step4::not_last , iter_fold_if_impl< typename forward_step4::iterator , typename forward_step4::state , ForwardOp , ForwardPredicate , BackwardOp , BackwardPredicate > , iter_fold_if_null_step< typename forward_step4::iterator , typename forward_step4::state > >::type backward_step4; typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; public: typedef typename backward_step0::state state; typedef typename backward_step4::iterator iterator; }; }}} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 33 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_fold_if_impl.hpp" 2 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iter_fold_if.hpp" 2 3 4 namespace boost { namespace mpl { namespace aux { template< typename Predicate, typename LastIterator > struct iter_fold_if_pred { template< typename State, typename Iterator > struct apply : and_< not_< is_same > , apply1 > { }; }; } template< typename Sequence = na , typename State = na , typename ForwardOp = na , typename ForwardPredicate = na , typename BackwardOp = na , typename BackwardPredicate = na > struct iter_fold_if { typedef typename begin::type first_; typedef typename end::type last_; typedef typename eval_if< is_na , if_< is_na, always, always > , identity >::type backward_pred_; struct result_ : aux::iter_fold_if_impl< first_ , State , ForwardOp , protect< aux::iter_fold_if_pred< ForwardPredicate,last_ > > , BackwardOp , backward_pred_ > { }; public: typedef pair< typename result_::state , typename result_::iterator > type; }; template<> struct iter_fold_if< na , na , na , na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 > struct apply : iter_fold_if< T1 , T2 , T3 , T4 , T5 , T6 > { }; }; template< typename Tag > struct lambda< iter_fold_if< na , na , na , na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef iter_fold_if< na , na , na , na , na , na > result_; typedef iter_fold_if< na , na , na , na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 > struct template_arity< iter_fold_if< T1 , T2 , T3 , T4 , T5 , T6 > > : int_<6> { }; template<> struct template_arity< iter_fold_if< na , na , na , na , na , na > > : int_<-1> { }; } }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/find_if.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na , typename Predicate = na > struct find_if { typedef typename iter_fold_if< Sequence , void , mpl::arg<1> , protect< aux::find_if_pred > >::type result_; typedef typename second::type type; }; template<> struct find_if< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : find_if< T1 , T2 > { }; }; template< typename Tag > struct lambda< find_if< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef find_if< na , na > result_; typedef find_if< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< find_if< T1 , T2 > > : int_<2> { }; template<> struct template_arity< find_if< na , na > > : int_<-1> { }; } }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/find.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/same_as.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/same_as.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/lambda_spec.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/same_as.hpp" 2 3 4 namespace boost { namespace mpl { template< typename T1 > struct same_as { template< typename T2 > struct apply : is_same { }; }; template< typename T1 > struct not_same_as { template< typename T2 > struct apply : not_< is_same > { }; }; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/find.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na , typename T = na > struct find : find_if< Sequence,same_as > { }; template<> struct find< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : find< T1 , T2 > { }; }; template< typename Tag > struct lambda< find< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef find< na , na > result_; typedef find< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< find< T1 , T2 > > : int_<2> { }; template<> struct template_arity< find< na , na > > : int_<-1> { }; } }} # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/contains_impl.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Tag > struct contains_impl { template< typename Sequence, typename T > struct apply : not_< is_same< typename find::type , typename end::type > > { # 54 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/contains_impl.hpp" 3 4 }; }; template<> struct contains_impl {}; }} # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/contains.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na , typename T = na > struct contains : contains_impl< typename sequence_tag::type > ::template apply< Sequence,T > { }; template<> struct contains< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : contains< T1 , T2 > { }; }; template< typename Tag > struct lambda< contains< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef contains< na , na > result_; typedef contains< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< contains< T1 , T2 > > : int_<2> { }; template<> struct template_arity< contains< na , na > > : int_<-1> { }; } }} # 25 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct size_impl; template< typename Sequence > struct size; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/size_impl.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/size_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/distance.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/distance.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/distance_fwd.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/distance_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct distance_impl; template< typename First, typename Last > struct distance; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/distance.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iter_fold.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iter_fold.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/O1_size.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/O1_size.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/O1_size_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/O1_size_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct O1_size_impl; template< typename Sequence > struct O1_size; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/O1_size.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/O1_size_impl.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/O1_size_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_size.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_size.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_size { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; }}} # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/O1_size_impl.hpp" 2 3 4 namespace boost { namespace mpl { # 35 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/O1_size_impl.hpp" 3 4 namespace aux { template< typename Sequence > struct O1_size_impl : Sequence::size { }; } template< typename Tag > struct O1_size_impl { template< typename Sequence > struct apply : if_< aux::has_size , aux::O1_size_impl , long_<-1> >::type { # 69 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/O1_size_impl.hpp" 3 4 }; }; # 85 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/O1_size_impl.hpp" 3 4 }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/O1_size.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na > struct O1_size : O1_size_impl< typename sequence_tag::type > ::template apply< Sequence > { }; template<> struct O1_size< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : O1_size< T1 > { }; }; template< typename Tag > struct lambda< O1_size< na > , Tag , int_<-1> > { typedef false_ is_le; typedef O1_size< na > result_; typedef O1_size< na > type; }; namespace aux { template< typename T1 > struct template_arity< O1_size< T1 > > : int_<1> { }; template<> struct template_arity< O1_size< na > > : int_<-1> { }; } }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iter_fold.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_fold_impl.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_fold_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_fold_impl.hpp" 2 3 4 # 33 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_fold_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< int N , typename First , typename Last , typename State , typename ForwardOp > struct iter_fold_impl; template< typename First , typename Last , typename State , typename ForwardOp > struct iter_fold_impl< 0,First,Last,State,ForwardOp > { typedef First iter0; typedef State state0; typedef state0 state; typedef iter0 iterator; }; template< typename First , typename Last , typename State , typename ForwardOp > struct iter_fold_impl< 1,First,Last,State,ForwardOp > { typedef First iter0; typedef State state0; typedef typename apply2< ForwardOp,state0,iter0 >::type state1; typedef typename mpl::next::type iter1; typedef state1 state; typedef iter1 iterator; }; template< typename First , typename Last , typename State , typename ForwardOp > struct iter_fold_impl< 2,First,Last,State,ForwardOp > { typedef First iter0; typedef State state0; typedef typename apply2< ForwardOp,state0,iter0 >::type state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp,state1,iter1 >::type state2; typedef typename mpl::next::type iter2; typedef state2 state; typedef iter2 iterator; }; template< typename First , typename Last , typename State , typename ForwardOp > struct iter_fold_impl< 3,First,Last,State,ForwardOp > { typedef First iter0; typedef State state0; typedef typename apply2< ForwardOp,state0,iter0 >::type state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp,state1,iter1 >::type state2; typedef typename mpl::next::type iter2; typedef typename apply2< ForwardOp,state2,iter2 >::type state3; typedef typename mpl::next::type iter3; typedef state3 state; typedef iter3 iterator; }; template< typename First , typename Last , typename State , typename ForwardOp > struct iter_fold_impl< 4,First,Last,State,ForwardOp > { typedef First iter0; typedef State state0; typedef typename apply2< ForwardOp,state0,iter0 >::type state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp,state1,iter1 >::type state2; typedef typename mpl::next::type iter2; typedef typename apply2< ForwardOp,state2,iter2 >::type state3; typedef typename mpl::next::type iter3; typedef typename apply2< ForwardOp,state3,iter3 >::type state4; typedef typename mpl::next::type iter4; typedef state4 state; typedef iter4 iterator; }; template< int N , typename First , typename Last , typename State , typename ForwardOp > struct iter_fold_impl { typedef iter_fold_impl< 4 , First , Last , State , ForwardOp > chunk_; typedef iter_fold_impl< ( (N - 4) < 0 ? 0 : N - 4 ) , typename chunk_::iterator , Last , typename chunk_::state , ForwardOp > res_; typedef typename res_::state state; typedef typename res_::iterator iterator; }; template< typename First , typename Last , typename State , typename ForwardOp > struct iter_fold_impl< -1,First,Last,State,ForwardOp > : iter_fold_impl< -1 , typename mpl::next::type , Last , typename apply2< ForwardOp,State,First >::type , ForwardOp > { }; template< typename Last , typename State , typename ForwardOp > struct iter_fold_impl< -1,Last,Last,State,ForwardOp > { typedef State state; typedef Last iterator; }; }}} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 34 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/iter_fold_impl.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iter_fold.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na , typename State = na , typename ForwardOp = na > struct iter_fold { typedef typename aux::iter_fold_impl< ::boost::mpl::O1_size::value , typename begin::type , typename end::type , State , typename lambda::type >::state type; }; template<> struct iter_fold< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : iter_fold< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< iter_fold< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef iter_fold< na , na , na > result_; typedef iter_fold< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< iter_fold< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< iter_fold< na , na , na > > : int_<-1> { }; } }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/distance.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iterator_range.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iterator_range.hpp" 3 4 namespace boost { namespace mpl { struct iterator_range_tag; template< typename First = na , typename Last = na > struct iterator_range { typedef iterator_range_tag tag; typedef iterator_range type; typedef First begin; typedef Last end; }; template<> struct iterator_range< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : iterator_range< T1 , T2 > { }; }; template< typename Tag > struct lambda< iterator_range< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef iterator_range< na , na > result_; typedef iterator_range< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< iterator_range< T1 , T2 > > : int_<2> { }; template<> struct template_arity< iterator_range< na , na > > : int_<-1> { }; } }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/distance.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/distance.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Tag > struct distance_impl { template< typename First, typename Last > struct apply : aux::msvc_eti_base< typename iter_fold< iterator_range , mpl::long_<0> , next<> >::type > { # 60 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/distance.hpp" 3 4 }; }; template< typename First = na , typename Last = na > struct distance : distance_impl< typename tag::type > ::template apply { }; template<> struct distance< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : distance< T1 , T2 > { }; }; template< typename Tag > struct lambda< distance< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef distance< na , na > result_; typedef distance< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< distance< T1 , T2 > > : int_<2> { }; template<> struct template_arity< distance< na , na > > : int_<-1> { }; } }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/size_impl.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Tag > struct size_impl { template< typename Sequence > struct apply : distance< typename begin::type , typename end::type > { }; }; template<> struct size_impl {}; }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na > struct size : aux::msvc_eti_base< typename size_impl< typename sequence_tag::type > ::template apply< Sequence >::type >::type { }; template<> struct size< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : size< T1 > { }; }; template< typename Tag > struct lambda< size< na > , Tag , int_<-1> > { typedef false_ is_le; typedef size< na > result_; typedef size< na > type; }; namespace aux { template< typename T1 > struct template_arity< size< T1 > > : int_<1> { }; template<> struct template_arity< size< na > > : int_<-1> { }; } }} # 29 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container_fwd.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/identity.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/identity.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/identity_fwd.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/identity_fwd.hpp" 3 4 namespace boost{ namespace multi_index{ template struct identity; } } # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/identity.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/identity.hpp" 3 4 namespace boost{ template class reference_wrapper; namespace multi_index{ namespace detail{ # 55 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/identity.hpp" 3 4 template struct const_identity_base { typedef Type result_type; template typename disable_if,Type&>::type operator()(const ChainedPtr& x)const { return operator()(*x); } Type& operator()(Type& x)const { return x; } Type& operator()(const reference_wrapper& x)const { return x.get(); } Type& operator()( const reference_wrapper::type>& x,int=0)const { return x.get(); } }; template struct non_const_identity_base { typedef Type result_type; template typename disable_if< is_convertible,Type&>::type operator()(const ChainedPtr& x)const { return operator()(*x); } const Type& operator()(const Type& x,int=0)const { return x; } Type& operator()(Type& x)const { return x; } const Type& operator()(const reference_wrapper& x,int=0)const { return x.get(); } Type& operator()(const reference_wrapper& x)const { return x.get(); } }; } template struct identity: mpl::if_c< is_const::value, detail::const_identity_base,detail::non_const_identity_base >::type { }; } } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container_fwd.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/indexed_by.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/indexed_by.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/limits/vector.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector20.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector20.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector10.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector10.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/at.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/at.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/tag.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/tag.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/typeof.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/tag.hpp" 2 3 4 namespace boost { namespace mpl { namespace aux { struct v_iter_tag; struct vector_tag; }}} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/at.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/at.hpp" 3 4 namespace boost { namespace mpl { template< typename Vector, long n_ > struct v_at_impl { typedef long_< (Vector::lower_bound_::value + n_) > index_; typedef __typeof__( Vector::item_(index_()) ) type; }; template< typename Vector, long n_ > struct v_at : aux::wrapped_type< typename v_at_impl::type > { }; template<> struct at_impl< aux::vector_tag > { template< typename Vector, typename N > struct apply : v_at< Vector , N::value > { }; }; # 114 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/at.hpp" 3 4 }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/front.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/front.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/front_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/front_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct front_impl; template< typename Sequence > struct front; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/front.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct front_impl< aux::vector_tag > { template< typename Vector > struct apply : v_at { }; }; # 54 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/front.hpp" 3 4 }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/push_front.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/push_front.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/push_front_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/push_front_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct push_front_impl; template< typename Sequence, typename T > struct push_front; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/push_front.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/item.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/item.hpp" 3 4 namespace boost { namespace mpl { template< typename T , typename Base , int at_front = 0 > struct v_item : Base { typedef typename Base::upper_bound_ index_; typedef typename next::type upper_bound_; typedef typename next::type size; typedef Base base; typedef v_item type; static aux::type_wrapper item_(index_); using Base::item_; }; template< typename T , typename Base > struct v_item : Base { typedef typename prior::type index_; typedef index_ lower_bound_; typedef typename next::type size; typedef Base base; typedef v_item type; static aux::type_wrapper item_(index_); using Base::item_; }; template< typename Base , int at_front > struct v_mask : Base { typedef typename prior::type index_; typedef index_ upper_bound_; typedef typename prior::type size; typedef Base base; typedef v_mask type; static aux::type_wrapper item_(index_); using Base::item_; }; template< typename Base > struct v_mask : Base { typedef typename Base::lower_bound_ index_; typedef typename next::type lower_bound_; typedef typename prior::type size; typedef Base base; typedef v_mask type; static aux::type_wrapper item_(index_); using Base::item_; }; }} # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/push_front.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct push_front_impl< aux::vector_tag > { template< typename Vector, typename T > struct apply { typedef v_item type; }; }; }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/pop_front.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/pop_front.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/pop_front_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/pop_front_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct pop_front_impl; template< typename Sequence > struct pop_front; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/pop_front.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct pop_front_impl< aux::vector_tag > { template< typename Vector > struct apply { typedef v_mask type; }; }; }} # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/push_back.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/push_back.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/push_back_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/push_back_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct push_back_impl; template< typename Sequence, typename T > struct push_back; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/push_back.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct push_back_impl< aux::vector_tag > { template< typename Vector, typename T > struct apply { typedef v_item type; }; }; }} # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/pop_back.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/pop_back.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/pop_back_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/pop_back_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct pop_back_impl; template< typename Sequence > struct pop_back; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/pop_back.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct pop_back_impl< aux::vector_tag > { template< typename Vector > struct apply { typedef v_mask type; }; }; }} # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/back.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/back.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/back_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/back_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct back_impl; template< typename Sequence > struct back; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/back.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct back_impl< aux::vector_tag > { template< typename Vector > struct apply : v_at< Vector , prior::type::value > { }; }; # 57 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/back.hpp" 3 4 }} # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/clear.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/clear.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/clear_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/clear_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct clear_impl; template< typename Sequence > struct clear; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/clear.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/vector0.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/vector0.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/iterator.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/iterator.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iterator_tags.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iterator_tags.hpp" 3 4 namespace boost { namespace mpl { struct forward_iterator_tag : int_<0> { typedef forward_iterator_tag type; }; struct bidirectional_iterator_tag : int_<1> { typedef bidirectional_iterator_tag type; }; struct random_access_iterator_tag : int_<2> { typedef random_access_iterator_tag type; }; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/iterator.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/plus.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/plus.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arithmetic_op.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arithmetic_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/largest_int.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/largest_int.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename T > struct integral_rank; template<> struct integral_rank : int_<1> {}; template<> struct integral_rank : int_<2> {}; template<> struct integral_rank : int_<3> {}; template<> struct integral_rank : int_<4> {}; template<> struct integral_rank : int_<5> {}; template<> struct integral_rank : int_<6> {}; template<> struct integral_rank : int_<7> {}; template<> struct integral_rank : int_<8> {}; template<> struct integral_rank : int_<9> {}; template<> struct integral_rank : int_<10> {}; template<> struct integral_rank : int_<11> {}; template<> struct integral_rank : int_<12> {}; template<> struct integral_rank: int_<13> {}; template< typename T1, typename T2 > struct largest_int : if_c< ( integral_rank::value >= integral_rank::value ) , T1 , T2 > { }; }}} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arithmetic_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arithmetic_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/plus.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/plus.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag1 , typename Tag2 > struct plus_impl : if_c< ( Tag1::value > Tag2::value ) , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > >::type { }; template<> struct plus_impl< na,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct plus_impl< na,Tag > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct plus_impl< Tag,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename T > struct plus_tag { typedef typename T::tag type; }; template< typename N1 = na , typename N2 = na , typename N3 = na, typename N4 = na, typename N5 = na > struct plus : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> { }; template< typename N1, typename N2, typename N3, typename N4 > struct plus< N1,N2,N3,N4,na > : plus< plus< plus< N1,N2 >, N3>, N4> { }; template< typename N1, typename N2, typename N3 > struct plus< N1,N2,N3,na,na > : plus< plus< N1,N2 >, N3> { }; template< typename N1, typename N2 > struct plus< N1,N2,na,na,na > : plus_impl< typename plus_tag::type , typename plus_tag::type >::template apply< N1,N2 >::type { }; template<> struct plus< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : plus< T1 , T2 > { }; }; template< typename Tag > struct lambda< plus< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef plus< na , na > result_; typedef plus< na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct template_arity< plus< T1 , T2 , T3 , T4 , T5 > > : int_<5> { }; template<> struct template_arity< plus< na , na > > : int_<-1> { }; } }} namespace boost { namespace mpl { template<> struct plus_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply : integral_c< typename aux::largest_int< typename N1::value_type , typename N2::value_type >::type , ( N1::value + N2::value ) > { }; }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 35 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arithmetic_op.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/plus.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/iterator.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/minus.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/minus.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arithmetic_op.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arithmetic_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arithmetic_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/minus.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/minus.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag1 , typename Tag2 > struct minus_impl : if_c< ( Tag1::value > Tag2::value ) , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > >::type { }; template<> struct minus_impl< na,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct minus_impl< na,Tag > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct minus_impl< Tag,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename T > struct minus_tag { typedef typename T::tag type; }; template< typename N1 = na , typename N2 = na , typename N3 = na, typename N4 = na, typename N5 = na > struct minus : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> { }; template< typename N1, typename N2, typename N3, typename N4 > struct minus< N1,N2,N3,N4,na > : minus< minus< minus< N1,N2 >, N3>, N4> { }; template< typename N1, typename N2, typename N3 > struct minus< N1,N2,N3,na,na > : minus< minus< N1,N2 >, N3> { }; template< typename N1, typename N2 > struct minus< N1,N2,na,na,na > : minus_impl< typename minus_tag::type , typename minus_tag::type >::template apply< N1,N2 >::type { }; template<> struct minus< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : minus< T1 , T2 > { }; }; template< typename Tag > struct lambda< minus< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef minus< na , na > result_; typedef minus< na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct template_arity< minus< T1 , T2 , T3 , T4 , T5 > > : int_<5> { }; template<> struct template_arity< minus< na , na > > : int_<-1> { }; } }} namespace boost { namespace mpl { template<> struct minus_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply : integral_c< typename aux::largest_int< typename N1::value_type , typename N2::value_type >::type , ( N1::value - N2::value ) > { }; }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 35 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/arithmetic_op.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/minus.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/iterator.hpp" 2 3 4 # 30 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/iterator.hpp" 3 4 namespace boost { namespace mpl { template< typename Vector , long n_ > struct v_iter { typedef aux::v_iter_tag tag; typedef random_access_iterator_tag category; typedef typename v_at::type type; typedef Vector vector_; typedef mpl::long_ pos; # 56 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/iterator.hpp" 3 4 }; template< typename Vector , long n_ > struct next< v_iter > { typedef v_iter type; }; template< typename Vector , long n_ > struct prior< v_iter > { typedef v_iter type; }; template< typename Vector , long n_ , typename Distance > struct advance< v_iter,Distance> { typedef v_iter< Vector , (n_ + Distance::value) > type; }; template< typename Vector , long n_ , long m_ > struct distance< v_iter, v_iter > : mpl::long_<(m_ - n_)> { }; # 128 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/iterator.hpp" 3 4 }} # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/vector0.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Dummy = na > struct vector0; template<> struct vector0 { typedef aux::vector_tag tag; typedef vector0 type; typedef long_<32768> lower_bound_; typedef lower_bound_ upper_bound_; typedef long_<0> size; static aux::type_wrapper item_(...); # 48 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/vector0.hpp" 3 4 }; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/clear.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct clear_impl< aux::vector_tag > { template< typename Vector > struct apply { typedef vector0<> type; }; }; # 53 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/clear.hpp" 3 4 }} # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/O1_size.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/O1_size.hpp" 3 4 namespace boost { namespace mpl { template<> struct O1_size_impl< aux::vector_tag > { template< typename Vector > struct apply : Vector::size { }; }; # 54 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/O1_size.hpp" 3 4 }} # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/size.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/size.hpp" 3 4 namespace boost { namespace mpl { template<> struct size_impl< aux::vector_tag > : O1_size_impl< aux::vector_tag > { }; # 47 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/size.hpp" 3 4 }} # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/empty.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/empty.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/empty_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/empty_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct empty_impl; template< typename Sequence > struct empty; }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/empty.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct empty_impl< aux::vector_tag > { template< typename Vector > struct apply : is_same< typename Vector::lower_bound_ , typename Vector::upper_bound_ > { }; }; # 66 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/empty.hpp" 3 4 }} # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/begin_end.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/begin_end.hpp" 3 4 namespace boost { namespace mpl { template<> struct begin_impl< aux::vector_tag > { template< typename Vector > struct apply { typedef v_iter type; }; }; template<> struct end_impl< aux::vector_tag > { template< typename Vector > struct apply { typedef v_iter type; }; }; }} # 32 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector0.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector10.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector10.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/include_preprocessed.hpp" 1 3 4 # 49 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp" 3 4 namespace boost { namespace mpl { template< typename T0 > struct vector1 : v_item< T0 , vector0< > > { typedef vector1 type; }; template< typename T0, typename T1 > struct vector2 : v_item< T1 , vector1 > { typedef vector2 type; }; template< typename T0, typename T1, typename T2 > struct vector3 : v_item< T2 , vector2< T0,T1 > > { typedef vector3 type; }; template< typename T0, typename T1, typename T2, typename T3 > struct vector4 : v_item< T3 , vector3< T0,T1,T2 > > { typedef vector4 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 > struct vector5 : v_item< T4 , vector4< T0,T1,T2,T3 > > { typedef vector5 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5 > struct vector6 : v_item< T5 , vector5< T0,T1,T2,T3,T4 > > { typedef vector6 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6 > struct vector7 : v_item< T6 , vector6< T0,T1,T2,T3,T4,T5 > > { typedef vector7 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7 > struct vector8 : v_item< T7 , vector7< T0,T1,T2,T3,T4,T5,T6 > > { typedef vector8 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8 > struct vector9 : v_item< T8 , vector8< T0,T1,T2,T3,T4,T5,T6,T7 > > { typedef vector9 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 > struct vector10 : v_item< T9 , vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > > { typedef vector10 type; }; }} # 50 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/include_preprocessed.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector10.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector20.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector20.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/include_preprocessed.hpp" 1 3 4 # 49 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp" 3 4 namespace boost { namespace mpl { template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10 > struct vector11 : v_item< T10 , vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > > { typedef vector11 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11 > struct vector12 : v_item< T11 , vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > > { typedef vector12 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12 > struct vector13 : v_item< T12 , vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > > { typedef vector13 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13 > struct vector14 : v_item< T13 , vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > > { typedef vector14 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13, typename T14 > struct vector15 : v_item< T14 , vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > > { typedef vector15 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13, typename T14 , typename T15 > struct vector16 : v_item< T15 , vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > > { typedef vector16 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13, typename T14 , typename T15, typename T16 > struct vector17 : v_item< T16 , vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > > { typedef vector17 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13, typename T14 , typename T15, typename T16, typename T17 > struct vector18 : v_item< T17 , vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > > { typedef vector18 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13, typename T14 , typename T15, typename T16, typename T17, typename T18 > struct vector19 : v_item< T18 , vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > > { typedef vector19 type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13, typename T14 , typename T15, typename T16, typename T17, typename T18, typename T19 > struct vector20 : v_item< T19 , vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > > { typedef vector20 type; }; }} # 50 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/aux_/include_preprocessed.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector/vector20.hpp" 2 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector.hpp" 2 3 4 # 46 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/vector.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/vector.hpp" 3 4 namespace boost { namespace mpl { template< typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na , typename T12 = na, typename T13 = na, typename T14 = na , typename T15 = na, typename T16 = na, typename T17 = na , typename T18 = na, typename T19 = na > struct vector; template< > struct vector< na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na , na, na, na > : vector0< > { typedef vector0< >::type type; }; template< typename T0 > struct vector< T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na , na, na, na > : vector1 { typedef typename vector1::type type; }; template< typename T0, typename T1 > struct vector< T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na , na, na, na > : vector2< T0,T1 > { typedef typename vector2< T0,T1 >::type type; }; template< typename T0, typename T1, typename T2 > struct vector< T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na , na, na, na > : vector3< T0,T1,T2 > { typedef typename vector3< T0,T1,T2 >::type type; }; template< typename T0, typename T1, typename T2, typename T3 > struct vector< T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na , na, na, na > : vector4< T0,T1,T2,T3 > { typedef typename vector4< T0,T1,T2,T3 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 > struct vector< T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na , na, na, na > : vector5< T0,T1,T2,T3,T4 > { typedef typename vector5< T0,T1,T2,T3,T4 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5 > struct vector< T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na , na, na, na > : vector6< T0,T1,T2,T3,T4,T5 > { typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6 > struct vector< T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na , na, na, na > : vector7< T0,T1,T2,T3,T4,T5,T6 > { typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7 > struct vector< T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na , na, na, na > : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > { typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8 > struct vector< T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na , na, na, na > : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > { typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 > struct vector< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na , na, na, na > : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > { typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10 > struct vector< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na , na, na, na > : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > { typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11 > struct vector< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na , na, na, na, na > : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > { typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12 > struct vector< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na , na, na, na, na > : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > { typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13 > struct vector< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na , na, na, na, na > : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > { typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13, typename T14 > struct vector< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na , na, na, na, na > : vector15< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 > { typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13, typename T14 , typename T15 > struct vector< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 , T15, na, na, na, na > : vector16< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 , T15 > { typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13, typename T14 , typename T15, typename T16 > struct vector< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 , T15, T16, na, na, na > : vector17< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 , T15, T16 > { typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13, typename T14 , typename T15, typename T16, typename T17 > struct vector< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 , T15, T16, T17, na, na > : vector18< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 , T15, T16, T17 > { typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13, typename T14 , typename T15, typename T16, typename T17, typename T18 > struct vector< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 , T15, T16, T17, T18, na > : vector19< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 , T15, T16, T17, T18 > { typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 , typename T10, typename T11, typename T12, typename T13, typename T14 , typename T15, typename T16, typename T17, typename T18, typename T19 > struct vector : vector20< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 , T15, T16, T17, T18, T19 > { typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 47 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/vector.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/indexed_by.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/control/expr_if.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/indexed_by.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/enum.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/enum.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/enum.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/indexed_by.hpp" 2 3 4 # 51 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/indexed_by.hpp" 3 4 namespace boost{ namespace multi_index{ template< typename T0 , typename T1 =mpl::na , typename T2 =mpl::na , typename T3 =mpl::na , typename T4 =mpl::na , typename T5 =mpl::na , typename T6 =mpl::na , typename T7 =mpl::na , typename T8 =mpl::na , typename T9 =mpl::na , typename T10 =mpl::na , typename T11 =mpl::na , typename T12 =mpl::na , typename T13 =mpl::na , typename T14 =mpl::na , typename T15 =mpl::na , typename T16 =mpl::na , typename T17 =mpl::na , typename T18 =mpl::na , typename T19 =mpl::na > struct indexed_by: mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> { }; } } # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container_fwd.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index_fwd.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index_fwd.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/ord_index_args.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/ord_index_args.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/tag.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/tag.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/no_duplicate_tags.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/no_duplicate_tags.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/fold.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/fold.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/fold_impl.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/fold_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/fold_impl.hpp" 2 3 4 # 34 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/fold_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< int N , typename First , typename Last , typename State , typename ForwardOp > struct fold_impl; template< typename First , typename Last , typename State , typename ForwardOp > struct fold_impl< 0,First,Last,State,ForwardOp > { typedef First iter0; typedef State state0; typedef state0 state; typedef iter0 iterator; }; template< typename First , typename Last , typename State , typename ForwardOp > struct fold_impl< 1,First,Last,State,ForwardOp > { typedef First iter0; typedef State state0; typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; typedef typename mpl::next::type iter1; typedef state1 state; typedef iter1 iterator; }; template< typename First , typename Last , typename State , typename ForwardOp > struct fold_impl< 2,First,Last,State,ForwardOp > { typedef First iter0; typedef State state0; typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; typedef typename mpl::next::type iter2; typedef state2 state; typedef iter2 iterator; }; template< typename First , typename Last , typename State , typename ForwardOp > struct fold_impl< 3,First,Last,State,ForwardOp > { typedef First iter0; typedef State state0; typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; typedef typename mpl::next::type iter2; typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; typedef typename mpl::next::type iter3; typedef state3 state; typedef iter3 iterator; }; template< typename First , typename Last , typename State , typename ForwardOp > struct fold_impl< 4,First,Last,State,ForwardOp > { typedef First iter0; typedef State state0; typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; typedef typename mpl::next::type iter2; typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; typedef typename mpl::next::type iter3; typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; typedef typename mpl::next::type iter4; typedef state4 state; typedef iter4 iterator; }; template< int N , typename First , typename Last , typename State , typename ForwardOp > struct fold_impl { typedef fold_impl< 4 , First , Last , State , ForwardOp > chunk_; typedef fold_impl< ( (N - 4) < 0 ? 0 : N - 4 ) , typename chunk_::iterator , Last , typename chunk_::state , ForwardOp > res_; typedef typename res_::state state; typedef typename res_::iterator iterator; }; template< typename First , typename Last , typename State , typename ForwardOp > struct fold_impl< -1,First,Last,State,ForwardOp > : fold_impl< -1 , typename mpl::next::type , Last , typename apply2::type>::type , ForwardOp > { }; template< typename Last , typename State , typename ForwardOp > struct fold_impl< -1,Last,Last,State,ForwardOp > { typedef State state; typedef Last iterator; }; }}} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 35 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/fold_impl.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/fold.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na , typename State = na , typename ForwardOp = na > struct fold { typedef typename aux::fold_impl< ::boost::mpl::O1_size::value , typename begin::type , typename end::type , State , ForwardOp >::state type; }; template<> struct fold< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : fold< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< fold< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef fold< na , na , na > result_; typedef fold< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< fold< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< fold< na , na , na > > : int_<-1> { }; } }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/no_duplicate_tags.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/set0.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/set0.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/at_impl.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/at_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/has_key_impl.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/has_key_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/tag.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/tag.hpp" 3 4 namespace boost { namespace mpl { namespace aux { struct set_tag; }}} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/has_key_impl.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/has_key_fwd.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/has_key_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct has_key_impl; template< typename AssociativeSequence, typename Key > struct has_key; }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/has_key_impl.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/overload_names.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/overload_names.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/ptr_to_ref.hpp" 1 3 4 # 40 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/ptr_to_ref.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< typename T > static T const& ptr_to_ref(T*); }}} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/overload_names.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/config/operators.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/overload_names.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/has_key_impl.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct has_key_impl< aux::set_tag > { template< typename Set, typename T > struct apply # 47 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/has_key_impl.hpp" 3 4 : bool_< ( sizeof( Set::is_masked_( aux::ptr_to_ref(static_cast(0)), static_cast*>(0) ) ) == sizeof(aux::no_tag) ) > { }; }; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/at_impl.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct at_impl< aux::set_tag > { template< typename Set, typename T > struct apply { typedef typename if_< has_key_impl::apply , T , void_ >::type type; }; }; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/set0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/clear_impl.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/clear_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/set0.hpp" 1 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/set0.hpp" 3 4 namespace boost { namespace mpl { # 53 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/set0.hpp" 3 4 template< typename Dummy = na > struct set0 { typedef set0<> item_; typedef item_ type; typedef aux::set_tag tag; typedef void_ last_masked_; typedef void_ item_type_; typedef long_<0> size; typedef long_<1> order; static aux::no_tag order_by_key_(set0<> const&, void const volatile*); static aux::yes_tag is_masked_(set0<> const&, void const volatile*); }; }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/clear_impl.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct clear_impl< aux::set_tag > { template< typename Set > struct apply { typedef set0<> type; }; }; }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/set0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/size_impl.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/size_impl.hpp" 3 4 namespace boost { namespace mpl { template<> struct size_impl< aux::set_tag > { template< typename Set > struct apply : Set::size { }; }; }} # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/set0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/empty_impl.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/empty_impl.hpp" 3 4 namespace boost { namespace mpl { template<> struct empty_impl< aux::set_tag > { template< typename Set > struct apply : not_< typename Set::size > { }; }; }} # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/set0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/insert_impl.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/insert_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/insert_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/insert_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct insert_impl; template< typename Sequence, typename Pos_or_T, typename T > struct insert; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/insert_impl.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/item.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/item.hpp" 3 4 namespace boost { namespace mpl { template< typename T, typename Base > struct s_item : Base { typedef s_item item_; typedef void_ last_masked_; typedef T item_type_; typedef Base base; typedef typename next< typename Base::size >::type size; typedef typename next< typename Base::order >::type order; typedef char (&order_tag_)[order::value]; static order_tag_ order_by_key_(s_item const&, aux::type_wrapper*); using Base::order_by_key_; static aux::no_tag is_masked_(s_item const&, aux::type_wrapper*); using Base::is_masked_; }; template< typename T, typename Base > struct s_mask : Base { typedef s_mask item_; typedef T last_masked_; typedef void_ item_type_; typedef Base base; typedef typename prior< typename Base::size >::type size; static aux::yes_tag is_masked_(s_mask const&, aux::type_wrapper*); using Base::is_masked_; }; template< typename T, typename Base > struct s_unmask : Base { typedef s_unmask item_; typedef void_ last_masked_; typedef T item_type_; typedef Base base; typedef typename next< typename Base::size >::type size; static aux::no_tag is_masked_(s_unmask const&, aux::type_wrapper*); using Base::is_masked_; }; }} # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/insert_impl.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/base.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/base.hpp" 3 4 namespace boost { namespace mpl { template< typename T = na > struct base { typedef typename T::base type; }; template<> struct base< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : base< T1 > { }; }; template< typename Tag > struct lambda< base< na > , Tag , int_<-1> > { typedef false_ is_le; typedef base< na > result_; typedef base< na > type; }; namespace aux { template< typename T1 > struct template_arity< base< T1 > > : int_<1> { }; template<> struct template_arity< base< na > > : int_<-1> { }; } }} # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/insert_impl.hpp" 2 3 4 namespace boost { namespace mpl { namespace aux { template< typename Set, typename T > struct set_insert_impl : eval_if< has_key_impl::apply , identity , eval_if< is_same< T,typename Set::last_masked_ > , base , identity< s_item > > > { }; } template<> struct insert_impl< aux::set_tag > { template< typename Set , typename PosOrKey , typename KeyOrNA > struct apply : aux::set_insert_impl< Set , typename if_na::type > { }; }; }} # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/set0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/erase_impl.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/erase_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/erase_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/erase_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct erase_impl; template< typename Sequence, typename First, typename Last > struct erase; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/erase_impl.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/erase_key_impl.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/erase_key_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/erase_key_fwd.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/erase_key_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct erase_key_impl; template< typename Sequence, typename Key > struct erase_key; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/erase_key_impl.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/erase_key_impl.hpp" 3 4 namespace boost { namespace mpl { template<> struct erase_key_impl< aux::set_tag > { template< typename Set , typename T > struct apply : eval_if< has_key_impl::apply , eval_if< is_same< T,typename Set::item_type_ > , base , identity< s_mask > > , identity > { }; }; }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/erase_impl.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct erase_impl< aux::set_tag > { template< typename Set , typename Pos , typename unused_ > struct apply : erase_key_impl ::apply { }; }; }} # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/set0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/key_type_impl.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/key_type_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/key_type_fwd.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/key_type_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct key_type_impl; template< typename AssociativeSequence, typename T > struct key_type; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/key_type_impl.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct key_type_impl< aux::set_tag > { template< typename Set, typename T > struct apply { typedef T type; }; }; }} # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/set0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/value_type_impl.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/value_type_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/value_type_fwd.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/value_type_fwd.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct value_type_impl; template< typename AssociativeSequence, typename T > struct value_type; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/value_type_impl.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct value_type_impl< aux::set_tag > { template< typename Set, typename T > struct apply { typedef T type; }; }; }} # 29 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/set0.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/begin_end_impl.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/begin_end_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/iterator.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/iterator.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/has_key.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/has_key.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_key_impl.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/has_key_impl.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct has_key_impl { template< typename AssociativeSequence, typename Key > struct apply; }; template<> struct has_key_impl {}; }} # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/has_key.hpp" 2 3 4 namespace boost { namespace mpl { template< typename AssociativeSequence = na , typename Key = na > struct has_key : has_key_impl< typename sequence_tag::type > ::template apply { }; template<> struct has_key< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : has_key< T1 , T2 > { }; }; template< typename Tag > struct lambda< has_key< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef has_key< na , na > result_; typedef has_key< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< has_key< T1 , T2 > > : int_<2> { }; template<> struct template_arity< has_key< na , na > > : int_<-1> { }; } }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/iterator.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Set, typename Tail > struct s_iter; template< typename Set, typename Tail > struct s_iter_get : eval_if< has_key< Set,typename Tail::item_type_ > , identity< s_iter > , next< s_iter > > { }; template< typename Set, typename Tail > struct s_iter_impl { typedef Tail tail_; typedef forward_iterator_tag category; typedef typename Tail::item_type_ type; }; template< typename Set, typename Tail > struct next< s_iter > : s_iter_get< Set,typename Tail::base > { }; template< typename Set > struct next< s_iter > > { typedef s_iter > type; }; template< typename Set, typename Tail > struct s_iter : s_iter_impl { }; template< typename Set > struct s_iter > { typedef forward_iterator_tag category; }; # 96 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/iterator.hpp" 3 4 }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/aux_/begin_end_impl.hpp" 2 3 4 namespace boost { namespace mpl { template<> struct begin_impl< aux::set_tag > { template< typename Set > struct apply : s_iter_get { }; }; template<> struct end_impl< aux::set_tag > { template< typename Set > struct apply { typedef s_iter< Set,set0<> > type; }; }; }} # 30 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/set/set0.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/no_duplicate_tags.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 36 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/no_duplicate_tags.hpp" 3 4 struct duplicate_tag_mark{}; struct duplicate_tag_marker { template struct apply { typedef mpl::s_item< typename mpl::if_,duplicate_tag_mark,Tag>::type, MplSet > type; }; }; template struct no_duplicate_tags { typedef typename mpl::fold< TagList, mpl::set0<>, duplicate_tag_marker >::type aux; static const bool value=!(mpl::has_key::value) ; }; struct duplicate_tag_list_marker { template struct apply:mpl::fold< typename Index::tag_list, MplSet, duplicate_tag_marker> { }; }; template struct no_duplicate_tags_in_index_list { typedef typename mpl::fold< IndexList, mpl::set0<>, duplicate_tag_list_marker >::type aux; static const bool value=!(mpl::has_key::value) ; }; } } } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/tag.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/transform.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/transform.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/reverse_fold.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/reverse_fold.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/reverse_fold.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/reverse_fold_impl.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/reverse_fold_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/reverse_fold_impl.hpp" 2 3 4 # 35 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/reverse_fold_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< long N , typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_fold_impl; template< typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > { typedef First iter0; typedef State fwd_state0; typedef fwd_state0 bkwd_state0; typedef bkwd_state0 state; typedef iter0 iterator; }; template< typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > { typedef First iter0; typedef State fwd_state0; typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; typedef typename mpl::next::type iter1; typedef fwd_state1 bkwd_state1; typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; typedef bkwd_state0 state; typedef iter1 iterator; }; template< typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > { typedef First iter0; typedef State fwd_state0; typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; typedef typename mpl::next::type iter2; typedef fwd_state2 bkwd_state2; typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; typedef bkwd_state0 state; typedef iter2 iterator; }; template< typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > { typedef First iter0; typedef State fwd_state0; typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; typedef typename mpl::next::type iter2; typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; typedef typename mpl::next::type iter3; typedef fwd_state3 bkwd_state3; typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; typedef bkwd_state0 state; typedef iter3 iterator; }; template< typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > { typedef First iter0; typedef State fwd_state0; typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; typedef typename mpl::next::type iter2; typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; typedef typename mpl::next::type iter3; typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; typedef typename mpl::next::type iter4; typedef fwd_state4 bkwd_state4; typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; typedef bkwd_state0 state; typedef iter4 iterator; }; template< long N , typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_fold_impl { typedef First iter0; typedef State fwd_state0; typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; typedef typename mpl::next::type iter2; typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; typedef typename mpl::next::type iter3; typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; typedef typename mpl::next::type iter4; typedef reverse_fold_impl< ( (N - 4) < 0 ? 0 : N - 4 ) , iter4 , Last , fwd_state4 , BackwardOp , ForwardOp > nested_chunk; typedef typename nested_chunk::state bkwd_state4; typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; typedef bkwd_state0 state; typedef typename nested_chunk::iterator iterator; }; template< typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > { typedef reverse_fold_impl< -1 , typename mpl::next::type , Last , typename apply2::type>::type , BackwardOp , ForwardOp > nested_step; typedef typename apply2< BackwardOp , typename nested_step::state , typename deref::type >::type state; typedef typename nested_step::iterator iterator; }; template< typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > { typedef State state; typedef Last iterator; }; }}} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/reverse_fold_impl.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/reverse_fold.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na , typename State = na , typename BackwardOp = na , typename ForwardOp = arg<1> > struct reverse_fold { typedef typename aux::reverse_fold_impl< ::boost::mpl::O1_size::value , typename begin::type , typename end::type , State , BackwardOp , ForwardOp >::state type; }; template<> struct reverse_fold< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : reverse_fold< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< reverse_fold< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef reverse_fold< na , na , na > result_; typedef reverse_fold< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< reverse_fold< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< reverse_fold< na , na , na > > : int_<-1> { }; } }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/transform.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/pair_view.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/pair_view.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iterator_category.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/iterator_category.hpp" 3 4 namespace boost { namespace mpl { template< typename Iterator = na > struct iterator_category { typedef typename Iterator::category type; }; template<> struct iterator_category< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : iterator_category< T1 > { }; }; template< typename Tag > struct lambda< iterator_category< na > , Tag , int_<-1> > { typedef false_ is_le; typedef iterator_category< na > result_; typedef iterator_category< na > type; }; namespace aux { template< typename T1 > struct template_arity< iterator_category< T1 > > : int_<1> { }; template<> struct template_arity< iterator_category< na > > : int_<-1> { }; } }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/pair_view.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/min_max.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/min_max.hpp" 3 4 namespace boost { namespace mpl { template< typename N1 = na , typename N2 = na > struct min : if_< less,N1,N2 > { }; template< typename N1 = na , typename N2 = na > struct max : if_< less,N2,N1 > { }; template<> struct min< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : min< T1 , T2 > { }; }; template< typename Tag > struct lambda< min< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef min< na , na > result_; typedef min< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< min< T1 , T2 > > : int_<2> { }; template<> struct template_arity< min< na , na > > : int_<-1> { }; } template<> struct max< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : max< T1 , T2 > { }; }; template< typename Tag > struct lambda< max< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef max< na , na > result_; typedef max< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< max< T1 , T2 > > : int_<2> { }; template<> struct template_arity< max< na , na > > : int_<-1> { }; } }} # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/pair_view.hpp" 2 3 4 namespace boost { namespace mpl { namespace aux { struct pair_iter_tag; # 59 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/pair_view.hpp" 3 4 } template< typename Iter1 , typename Iter2 , typename Category > struct pair_iter { typedef aux::pair_iter_tag tag; typedef Category category; typedef Iter1 first; typedef Iter2 second; # 85 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/pair_view.hpp" 3 4 }; template< typename Iter1, typename Iter2, typename C > struct deref< pair_iter > { typedef pair< typename deref::type , typename deref::type > type; }; template< typename Iter1, typename Iter2, typename C > struct next< pair_iter > { typedef typename mpl::next::type i1_; typedef typename mpl::next::type i2_; typedef pair_iter type; }; template< typename Iter1, typename Iter2, typename C > struct prior< pair_iter > { typedef typename mpl::prior::type i1_; typedef typename mpl::prior::type i2_; typedef pair_iter type; }; template<> struct advance_impl { template< typename Iter, typename D > struct apply { typedef typename mpl::advance< typename Iter::first,D >::type i1_; typedef typename mpl::advance< typename Iter::second,D >::type i2_; typedef pair_iter type; }; }; template<> struct distance_impl { template< typename Iter1, typename Iter2 > struct apply { typedef typename mpl::distance< typename first::type , typename first::type >::type type; }; }; template< typename Sequence1 = na , typename Sequence2 = na > struct pair_view { typedef nested_begin_end_tag tag; typedef typename begin::type iter1_; typedef typename begin::type iter2_; typedef typename min< typename iterator_category::type , typename iterator_category::type >::type category_; typedef pair_iter begin; typedef pair_iter< typename end::type , typename end::type , category_ > end; }; template<> struct pair_view< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : pair_view< T1 , T2 > { }; }; template< typename Tag > struct lambda< pair_view< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef pair_view< na , na > result_; typedef pair_view< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< pair_view< T1 , T2 > > : int_<2> { }; template<> struct template_arity< pair_view< na , na > > : int_<-1> { }; } }} # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/transform.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/is_sequence.hpp" 1 3 4 # 40 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/is_sequence.hpp" 3 4 namespace boost { namespace mpl { # 90 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/is_sequence.hpp" 3 4 template< typename T = na > struct is_sequence : not_< is_same< typename begin::type, void_ > > { }; # 108 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/is_sequence.hpp" 3 4 template<> struct is_sequence< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : is_sequence< T1 > { }; }; template< typename Tag > struct lambda< is_sequence< na > , Tag , int_<-1> > { typedef false_ is_le; typedef is_sequence< na > result_; typedef is_sequence< na > type; }; namespace aux { template< typename T1 > struct template_arity< is_sequence< T1 > > : int_<1> { }; template<> struct template_arity< is_sequence< na > > : int_<-1> { }; } }} # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/transform.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/transform.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/inserter_algorithm.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/inserter_algorithm.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/back_inserter.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/back_inserter.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/push_back.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/push_back.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/push_back_impl.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/push_back_impl.hpp" 3 4 namespace boost { namespace mpl { struct has_push_back_arg {}; template< typename Tag > struct push_back_impl { template< typename Sequence, typename T > struct apply { struct REQUESTED_PUSH_BACK_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST; typedef struct REQUESTED_PUSH_BACK_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST44 # 40 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/push_back_impl.hpp" 3 4 : boost::mpl::assert_ { static boost::mpl::failed ************ (REQUESTED_PUSH_BACK_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST::************ assert_arg()) ( Sequence ) { return 0; } } mpl_assert_arg44 # 40 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/push_back_impl.hpp" 3 4 ; enum { mpl_assertion_in_line_44 = sizeof( boost::mpl::assertion_failed<(( boost::is_same< T, has_push_back_arg >::value ))>( mpl_assert_arg44::assert_arg() ) ) } ; }; }; template< typename Tag > struct has_push_back_impl { template< typename Seq > struct apply : aux::has_type< push_back< Seq, has_push_back_arg > > { }; }; template<> struct push_back_impl {}; template<> struct has_push_back_impl {}; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/push_back.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na , typename T = na > struct push_back : push_back_impl< typename sequence_tag::type > ::template apply< Sequence,T > { }; template< typename Sequence = na > struct has_push_back : has_push_back_impl< typename sequence_tag::type > ::template apply< Sequence > { }; template<> struct push_back< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : push_back< T1 , T2 > { }; }; template< typename Tag > struct lambda< push_back< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef push_back< na , na > result_; typedef push_back< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< push_back< T1 , T2 > > : int_<2> { }; template<> struct template_arity< push_back< na , na > > : int_<-1> { }; } template<> struct has_push_back< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : has_push_back< T1 > { }; }; template< typename Tag > struct lambda< has_push_back< na > , Tag , int_<-1> > { typedef false_ is_le; typedef has_push_back< na > result_; typedef has_push_back< na > type; }; namespace aux { template< typename T1 > struct template_arity< has_push_back< T1 > > : int_<1> { }; template<> struct template_arity< has_push_back< na > > : int_<-1> { }; } }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/back_inserter.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/inserter.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/inserter.hpp" 3 4 namespace boost { namespace mpl { template< typename Sequence , typename Operation > struct inserter { typedef Sequence state; typedef Operation operation; }; }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/back_inserter.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence > struct back_inserter : inserter< Sequence,push_back<> > { }; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/inserter_algorithm.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/front_inserter.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/front_inserter.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/push_front.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/push_front.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/push_front_impl.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/push_front_impl.hpp" 3 4 namespace boost { namespace mpl { struct has_push_front_arg {}; template< typename Tag > struct push_front_impl { template< typename Sequence, typename T > struct apply { struct REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST; typedef struct REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST45 # 41 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/push_front_impl.hpp" 3 4 : boost::mpl::assert_ { static boost::mpl::failed ************ (REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST::************ assert_arg()) ( Sequence ) { return 0; } } mpl_assert_arg45 # 41 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/push_front_impl.hpp" 3 4 ; enum { mpl_assertion_in_line_45 = sizeof( boost::mpl::assertion_failed<(( boost::is_same< T, has_push_front_arg >::value ))>( mpl_assert_arg45::assert_arg() ) ) } ; }; }; template< typename Tag > struct has_push_front_impl { template< typename Seq > struct apply : aux::has_type< push_front< Seq, has_push_front_arg > > { }; }; template<> struct push_front_impl {}; template<> struct has_push_front_impl {}; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/push_front.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na , typename T = na > struct push_front : push_front_impl< typename sequence_tag::type > ::template apply< Sequence,T > { }; template< typename Sequence = na > struct has_push_front : has_push_front_impl< typename sequence_tag::type > ::template apply< Sequence > { }; template<> struct push_front< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : push_front< T1 , T2 > { }; }; template< typename Tag > struct lambda< push_front< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef push_front< na , na > result_; typedef push_front< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< push_front< T1 , T2 > > : int_<2> { }; template<> struct template_arity< push_front< na , na > > : int_<-1> { }; } template<> struct has_push_front< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : has_push_front< T1 > { }; }; template< typename Tag > struct lambda< has_push_front< na > , Tag , int_<-1> > { typedef false_ is_le; typedef has_push_front< na > result_; typedef has_push_front< na > type; }; namespace aux { template< typename T1 > struct template_arity< has_push_front< T1 > > : int_<1> { }; template<> struct template_arity< has_push_front< na > > : int_<-1> { }; } }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/front_inserter.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence > struct front_inserter : inserter< Sequence,push_front<> > { }; }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/inserter_algorithm.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/clear.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/clear.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/clear_impl.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/clear_impl.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct clear_impl { template< typename Sequence > struct apply; }; template<> struct clear_impl {}; }} # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/clear.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na > struct clear : clear_impl< typename sequence_tag::type > ::template apply< Sequence > { }; template<> struct clear< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : clear< T1 > { }; }; template< typename Tag > struct lambda< clear< na > , Tag , int_<-1> > { typedef false_ is_le; typedef clear< na > result_; typedef clear< na > type; }; namespace aux { template< typename T1 > struct template_arity< clear< T1 > > : int_<1> { }; template<> struct template_arity< clear< na > > : int_<-1> { }; } }} # 25 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/inserter_algorithm.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessor/default_params.hpp" 1 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/inserter_algorithm.hpp" 2 3 4 # 29 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/transform.hpp" 2 3 4 namespace boost { namespace mpl { namespace aux { template< typename Seq , typename Op , typename In > struct transform1_impl : fold< Seq , typename In::state , bind2< typename lambda< typename In::operation >::type , _1 , bind1< typename lambda::type, _2> > > { }; template< typename Seq , typename Op , typename In > struct reverse_transform1_impl : reverse_fold< Seq , typename In::state , bind2< typename lambda< typename In::operation >::type , _1 , bind1< typename lambda::type, _2> > > { }; template< typename Seq1 , typename Seq2 , typename Op , typename In > struct transform2_impl : fold< pair_view , typename In::state , bind2< typename lambda< typename In::operation >::type , _1 , bind2< typename lambda::type , bind1,_2> , bind1,_2> > > > { }; template< typename Seq1 , typename Seq2 , typename Op , typename In > struct reverse_transform2_impl : reverse_fold< pair_view , typename In::state , bind2< typename lambda< typename In::operation >::type , _1 , bind2< typename lambda< Op >::type , bind1,_2> , bind1,_2> > > > { }; } template< typename P1 = na , typename P2 = na , typename P3 = na > struct transform1 : aux::transform1_impl< P1 , P2 , P3> { }; template< typename P1 , typename P2 > struct transform1< P1 , P2,na > : if_< has_push_back< typename clear::type> , aux::transform1_impl< P1 , P2 , back_inserter< typename clear::type > > , aux::reverse_transform1_impl< P1 , P2 , front_inserter< typename clear::type > > >::type { }; template< typename P1 = na , typename P2 = na , typename P3 = na > struct reverse_transform1 : aux::reverse_transform1_impl< P1 , P2 , P3> { }; template< typename P1 , typename P2 > struct reverse_transform1< P1 , P2,na > : if_< has_push_back , aux::reverse_transform1_impl< P1 , P2 , back_inserter< typename clear::type > > , aux::transform1_impl< P1 , P2 , front_inserter< typename clear::type > > >::type { }; template<> struct transform1< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : transform1< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< transform1< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef transform1< na , na , na > result_; typedef transform1< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< transform1< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< transform1< na , na , na > > : int_<-1> { }; } template<> struct reverse_transform1< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : reverse_transform1< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< reverse_transform1< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef reverse_transform1< na , na , na > result_; typedef reverse_transform1< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< reverse_transform1< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< reverse_transform1< na , na , na > > : int_<-1> { }; } template< typename P1 = na , typename P2 = na , typename P3 = na , typename P4 = na > struct transform2 : aux::transform2_impl< P1 , P2 , P3 , P4> { }; template< typename P1 , typename P2 , typename P3 > struct transform2< P1 , P2 , P3,na > : if_< has_push_back< typename clear::type> , aux::transform2_impl< P1 , P2 , P3 , back_inserter< typename clear::type > > , aux::reverse_transform2_impl< P1 , P2 , P3 , front_inserter< typename clear::type > > >::type { }; template< typename P1 = na , typename P2 = na , typename P3 = na , typename P4 = na > struct reverse_transform2 : aux::reverse_transform2_impl< P1 , P2 , P3 , P4> { }; template< typename P1 , typename P2 , typename P3 > struct reverse_transform2< P1 , P2 , P3,na > : if_< has_push_back , aux::reverse_transform2_impl< P1 , P2 , P3 , back_inserter< typename clear::type > > , aux::transform2_impl< P1 , P2 , P3 , front_inserter< typename clear::type > > >::type { }; template<> struct transform2< na , na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 =na > struct apply : transform2< T1 , T2 , T3 , T4 > { }; }; template< typename Tag > struct lambda< transform2< na , na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef transform2< na , na , na , na > result_; typedef transform2< na , na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 > struct template_arity< transform2< T1 , T2 , T3 , T4 > > : int_<4> { }; template<> struct template_arity< transform2< na , na , na , na > > : int_<-1> { }; } template<> struct reverse_transform2< na , na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 =na > struct apply : reverse_transform2< T1 , T2 , T3 , T4 > { }; }; template< typename Tag > struct lambda< reverse_transform2< na , na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef reverse_transform2< na , na , na , na > result_; typedef reverse_transform2< na , na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 > struct template_arity< reverse_transform2< T1 , T2 , T3 , T4 > > : int_<4> { }; template<> struct template_arity< reverse_transform2< na , na , na , na > > : int_<-1> { }; } # 138 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/transform.hpp" 3 4 template< typename Seq1 = na , typename Seq2OrOperation = na , typename OperationOrInserter = na , typename Inserter = na > struct transform { typedef typename eval_if< or_< is_na , is_lambda_expression< Seq2OrOperation > , not_< is_sequence > > , transform1 , transform2 >::type type; }; template<> struct transform< na , na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 =na > struct apply : transform< T1 , T2 , T3 , T4 > { }; }; template< typename Tag > struct lambda< transform< na , na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef transform< na , na , na , na > result_; typedef transform< na , na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 > struct template_arity< transform< T1 , T2 , T3 , T4 > > : int_<4> { }; template<> struct template_arity< transform< na , na , na , na > > : int_<-1> { }; } template< typename Seq1 = na , typename Seq2OrOperation = na , typename OperationOrInserter = na , typename Inserter = na > struct reverse_transform { typedef typename eval_if< or_< is_na , is_lambda_expression< Seq2OrOperation > , not_< is_sequence > > , reverse_transform1 , reverse_transform2 >::type type; }; template<> struct reverse_transform< na , na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 =na > struct apply : reverse_transform< T1 , T2 , T3 , T4 > { }; }; template< typename Tag > struct lambda< reverse_transform< na , na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef reverse_transform< na , na , na , na > result_; typedef reverse_transform< na , na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 > struct template_arity< reverse_transform< T1 , T2 , T3 , T4 > > : int_<4> { }; template<> struct template_arity< reverse_transform< na , na , na , na > > : int_<-1> { }; } }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/tag.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/facilities/intercept.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/tag.hpp" 2 3 4 # 50 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/tag.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ struct tag_marker{}; template struct is_tag { static const bool value=(is_base_and_derived::value); }; } template< typename T0 =mpl::na , typename T1 =mpl::na , typename T2 =mpl::na , typename T3 =mpl::na , typename T4 =mpl::na , typename T5 =mpl::na , typename T6 =mpl::na , typename T7 =mpl::na , typename T8 =mpl::na , typename T9 =mpl::na , typename T10 =mpl::na , typename T11 =mpl::na , typename T12 =mpl::na , typename T13 =mpl::na , typename T14 =mpl::na , typename T15 =mpl::na , typename T16 =mpl::na , typename T17 =mpl::na , typename T18 =mpl::na , typename T19 =mpl::na > struct tag:private detail::tag_marker { typedef typename mpl::transform< mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19>, mpl::identity >::type type; static_assert(detail::no_duplicate_tags::value, "detail::no_duplicate_tags::value"); }; } } # 22 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/ord_index_args.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 43 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/ord_index_args.hpp" 3 4 template struct index_args_default_compare { typedef std::less type; }; template struct ordered_index_args { typedef is_tag full_form; typedef typename mpl::if_< full_form, Arg1, tag< > >::type tag_list_type; typedef typename mpl::if_< full_form, Arg2, Arg1>::type key_from_value_type; typedef typename mpl::if_< full_form, Arg3, Arg2>::type supplied_compare_type; typedef typename mpl::eval_if< mpl::is_na, index_args_default_compare, mpl::identity >::type compare_type; static_assert(is_tag::value, "is_tag::value"); static_assert(!mpl::is_na::value, "!mpl::is_na::value"); static_assert(!mpl::is_na::value, "!mpl::is_na::value"); }; } } } # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index_fwd.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ template< typename KeyFromValue,typename Compare, typename SuperMeta,typename TagList,typename Category > class ordered_index; template< typename KeyFromValue1,typename Compare1, typename SuperMeta1,typename TagList1,typename Category1, typename KeyFromValue2,typename Compare2, typename SuperMeta2,typename TagList2,typename Category2 > bool operator==( const ordered_index< KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, const ordered_index< KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y); template< typename KeyFromValue1,typename Compare1, typename SuperMeta1,typename TagList1,typename Category1, typename KeyFromValue2,typename Compare2, typename SuperMeta2,typename TagList2,typename Category2 > bool operator<( const ordered_index< KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, const ordered_index< KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y); template< typename KeyFromValue1,typename Compare1, typename SuperMeta1,typename TagList1,typename Category1, typename KeyFromValue2,typename Compare2, typename SuperMeta2,typename TagList2,typename Category2 > bool operator!=( const ordered_index< KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, const ordered_index< KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y); template< typename KeyFromValue1,typename Compare1, typename SuperMeta1,typename TagList1,typename Category1, typename KeyFromValue2,typename Compare2, typename SuperMeta2,typename TagList2,typename Category2 > bool operator>( const ordered_index< KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, const ordered_index< KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y); template< typename KeyFromValue1,typename Compare1, typename SuperMeta1,typename TagList1,typename Category1, typename KeyFromValue2,typename Compare2, typename SuperMeta2,typename TagList2,typename Category2 > bool operator>=( const ordered_index< KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, const ordered_index< KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y); template< typename KeyFromValue1,typename Compare1, typename SuperMeta1,typename TagList1,typename Category1, typename KeyFromValue2,typename Compare2, typename SuperMeta2,typename TagList2,typename Category2 > bool operator<=( const ordered_index< KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, const ordered_index< KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y); template< typename KeyFromValue,typename Compare, typename SuperMeta,typename TagList,typename Category > void swap( ordered_index& x, ordered_index& y); } template struct ordered_unique; template struct ordered_non_unique; } } # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container_fwd.hpp" 2 3 4 namespace boost{ namespace multi_index{ template< typename Value, typename IndexSpecifierList=indexed_by > >, typename Allocator=std::allocator > class multi_index_container; template struct nth_index; template struct index; template struct nth_index_iterator; template struct nth_index_const_iterator; template struct index_iterator; template struct index_const_iterator; template< typename Value1,typename IndexSpecifierList1,typename Allocator1, typename Value2,typename IndexSpecifierList2,typename Allocator2 > bool operator==( const multi_index_container& x, const multi_index_container& y); template< typename Value1,typename IndexSpecifierList1,typename Allocator1, typename Value2,typename IndexSpecifierList2,typename Allocator2 > bool operator<( const multi_index_container& x, const multi_index_container& y); template< typename Value1,typename IndexSpecifierList1,typename Allocator1, typename Value2,typename IndexSpecifierList2,typename Allocator2 > bool operator!=( const multi_index_container& x, const multi_index_container& y); template< typename Value1,typename IndexSpecifierList1,typename Allocator1, typename Value2,typename IndexSpecifierList2,typename Allocator2 > bool operator>( const multi_index_container& x, const multi_index_container& y); template< typename Value1,typename IndexSpecifierList1,typename Allocator1, typename Value2,typename IndexSpecifierList2,typename Allocator2 > bool operator>=( const multi_index_container& x, const multi_index_container& y); template< typename Value1,typename IndexSpecifierList1,typename Allocator1, typename Value2,typename IndexSpecifierList2,typename Allocator2 > bool operator<=( const multi_index_container& x, const multi_index_container& y); template void swap( multi_index_container& x, multi_index_container& y); } using multi_index::multi_index_container; } # 31 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/access_specifier.hpp" 1 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/adl_swap.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/adl_swap.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ template void adl_swap(T& x,T& y) { using std::swap; swap(x,y); } } } } # 33 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/base_type.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/base_type.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/base_type.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_base.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_base.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/call_traits.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/call_traits.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/detail/call_traits.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/detail/call_traits.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/detail/call_traits.hpp" 2 3 4 namespace boost{ namespace detail{ template struct ct_imp2 { typedef const T& param_type; }; template struct ct_imp2 { typedef const T param_type; }; template struct ct_imp { typedef const T& param_type; }; template struct ct_imp { typedef typename ct_imp2::param_type param_type; }; template struct ct_imp { typedef const T param_type; }; } template struct call_traits { public: typedef T value_type; typedef T& reference; typedef const T& const_reference; typedef typename boost::detail::ct_imp< T, ::boost::is_pointer::value, ::boost::is_arithmetic::value >::param_type param_type; }; template struct call_traits { typedef T& value_type; typedef T& reference; typedef const T& const_reference; typedef T& param_type; }; # 135 "/home/jas/.tt/ttsetup/opt/include/boost/detail/call_traits.hpp" 3 4 template struct call_traits { private: typedef T array_type[N]; public: typedef const T* value_type; typedef array_type& reference; typedef const array_type& const_reference; typedef const T* const param_type; }; template struct call_traits { private: typedef const T array_type[N]; public: typedef const T* value_type; typedef array_type& reference; typedef const array_type& const_reference; typedef const T* const param_type; }; } # 22 "/home/jas/.tt/ttsetup/opt/include/boost/call_traits.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_base.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/copy_map.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/copy_map.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/auto_space.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/auto_space.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/prevent_eti.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/prevent_eti.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 47 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/prevent_eti.hpp" 3 4 template struct prevent_eti { typedef Construct type; }; } } } # 21 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/auto_space.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 46 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/auto_space.hpp" 3 4 template > struct auto_space:private noncopyable { typedef typename prevent_eti< Allocator, typename boost::detail::allocator::rebind_to< Allocator,T >::type >::type::pointer pointer; explicit auto_space(const Allocator& al=Allocator(),std::size_t n=1): al_(al),n_(n),data_(n_?al_.allocate(n_):pointer(0)) {} ~auto_space() { if(n_)al_.deallocate(data_,n_); } Allocator get_allocator()const{return al_;} pointer data()const{return data_;} void swap(auto_space& x) { if(al_!=x.al_)adl_swap(al_,x.al_); std::swap(n_,x.n_); std::swap(data_,x.data_); } private: typename boost::detail::allocator::rebind_to< Allocator,T>::type al_; std::size_t n_; pointer data_; }; template void swap(auto_space& x,auto_space& y) { x.swap(y); } } } } # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/copy_map.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/copy_map.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 43 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/copy_map.hpp" 3 4 template struct copy_map_entry { copy_map_entry(Node* f,Node* s):first(f),second(s){} Node* first; Node* second; bool operator<(const copy_map_entry& x)const { return std::less()(first,x.first); } }; template class copy_map:private noncopyable { public: typedef const copy_map_entry* const_iterator; copy_map( const Allocator& al,std::size_t size,Node* header_org,Node* header_cpy): al_(al),size_(size),spc(al_,size_),n(0), header_org_(header_org),header_cpy_(header_cpy),released(false) {} ~copy_map() { if(!released){ for(std::size_t i=0;isecond->value()); deallocate((spc.data()+i)->second); } } } const_iterator begin()const{return &*spc.data();} const_iterator end()const{return &*(spc.data()+n);} void clone(Node* node) { (spc.data()+n)->first=node; (spc.data()+n)->second=&*al_.allocate(1); { try{ boost::detail::allocator::construct( &(spc.data()+n)->second->value(),node->value()); } catch(...){ deallocate((spc.data()+n)->second); throw;; } } ++n; if(n==size_)std::sort(&*spc.data(),&*spc.data()+size_); } Node* find(Node* node)const { if(node==header_org_)return header_cpy_; return std::lower_bound( begin(),end(),copy_map_entry(node,0))->second; } void release() { released=true; } private: typedef typename prevent_eti< Allocator, typename boost::detail::allocator::rebind_to< Allocator,Node>::type >::type allocator_type; typedef typename allocator_type::pointer allocator_pointer; allocator_type al_; std::size_t size_; auto_space,Allocator> spc; std::size_t n; Node* header_org_; Node* header_cpy_; bool released; void deallocate(Node* node) { al_.deallocate(static_cast(node),1); } }; } } } # 21 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_base.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/node_type.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/node_type.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/bind.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/node_type.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/reverse_iter_fold.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/reverse_iter_fold.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/arg.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/reverse_iter_fold.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/reverse_iter_fold_impl.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/reverse_iter_fold_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/reverse_iter_fold_impl.hpp" 2 3 4 # 34 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/reverse_iter_fold_impl.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp" 3 4 namespace boost { namespace mpl { namespace aux { template< long N , typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_iter_fold_impl; template< typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > { typedef First iter0; typedef State fwd_state0; typedef fwd_state0 bkwd_state0; typedef bkwd_state0 state; typedef iter0 iterator; }; template< typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > { typedef First iter0; typedef State fwd_state0; typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; typedef typename mpl::next::type iter1; typedef fwd_state1 bkwd_state1; typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; typedef bkwd_state0 state; typedef iter1 iterator; }; template< typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > { typedef First iter0; typedef State fwd_state0; typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; typedef typename mpl::next::type iter2; typedef fwd_state2 bkwd_state2; typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; typedef bkwd_state0 state; typedef iter2 iterator; }; template< typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > { typedef First iter0; typedef State fwd_state0; typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; typedef typename mpl::next::type iter2; typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; typedef typename mpl::next::type iter3; typedef fwd_state3 bkwd_state3; typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; typedef bkwd_state0 state; typedef iter3 iterator; }; template< typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > { typedef First iter0; typedef State fwd_state0; typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; typedef typename mpl::next::type iter2; typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; typedef typename mpl::next::type iter3; typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; typedef typename mpl::next::type iter4; typedef fwd_state4 bkwd_state4; typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; typedef bkwd_state0 state; typedef iter4 iterator; }; template< long N , typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_iter_fold_impl { typedef First iter0; typedef State fwd_state0; typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; typedef typename mpl::next::type iter1; typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; typedef typename mpl::next::type iter2; typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; typedef typename mpl::next::type iter3; typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; typedef typename mpl::next::type iter4; typedef reverse_iter_fold_impl< ( (N - 4) < 0 ? 0 : N - 4 ) , iter4 , Last , fwd_state4 , BackwardOp , ForwardOp > nested_chunk; typedef typename nested_chunk::state bkwd_state4; typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; typedef bkwd_state0 state; typedef typename nested_chunk::iterator iterator; }; template< typename First , typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > { typedef reverse_iter_fold_impl< -1 , typename mpl::next::type , Last , typename apply2< ForwardOp,State,First >::type , BackwardOp , ForwardOp > nested_step; typedef typename apply2< BackwardOp , typename nested_step::state , First >::type state; typedef typename nested_step::iterator iterator; }; template< typename Last , typename State , typename BackwardOp , typename ForwardOp > struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > { typedef State state; typedef Last iterator; }; }}} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 35 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/reverse_iter_fold_impl.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/reverse_iter_fold.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na , typename State = na , typename BackwardOp = na , typename ForwardOp = arg<1> > struct reverse_iter_fold { typedef typename aux::reverse_iter_fold_impl< ::boost::mpl::O1_size::value , typename begin::type , typename end::type , State , typename lambda::type , typename lambda::type >::state type; }; template<> struct reverse_iter_fold< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : reverse_iter_fold< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< reverse_iter_fold< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef reverse_iter_fold< na , na , na > result_; typedef reverse_iter_fold< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< reverse_iter_fold< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< reverse_iter_fold< na , na , na > > : int_<-1> { }; } }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/node_type.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/header_holder.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/header_holder.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 32 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/header_holder.hpp" 3 4 template struct header_holder:private noncopyable { header_holder():member(final().allocate_node()){} ~header_holder(){final().deallocate_node(&*member);} NodeTypePtr member; private: Final& final(){return *static_cast(this);} }; } } } # 23 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/node_type.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_node_base.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_node_base.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/aligned_storage.hpp" 1 3 4 # 11 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/aligned_storage.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/aligned_storage.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/aligned_storage.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/aligned_storage.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/alignment_of.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/alignment_of.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/alignment_of.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/size_t_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/size_t_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/size_t_trait_def.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size_t.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size_t.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size_t_fwd.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size_t_fwd.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size_t_fwd.hpp" 2 3 4 namespace mpl_ { template< std::size_t N > struct size_t; } namespace boost { namespace mpl { using ::mpl_::size_t; } } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size_t.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 1 3 4 # 40 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 namespace mpl_ { template< std::size_t N > struct size_t { static const std::size_t value = N; typedef size_t type; typedef std::size_t value_type; typedef integral_c_tag tag; # 72 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 typedef mpl_::size_t< static_cast((value + 1)) > next; typedef mpl_::size_t< static_cast((value - 1)) > prior; operator std::size_t() const { return static_cast(this->value); } }; template< std::size_t N > std::size_t const mpl_::size_t< N >::value; } # 24 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/size_t.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/size_t_trait_def.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/size_t_trait_def.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/alignment_of.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/alignment_of.hpp" 3 4 namespace boost { template struct alignment_of; namespace detail { template struct alignment_of_hack { char c; T t; alignment_of_hack(); }; template struct alignment_logic { static const std::size_t value = A < S ? A : S; }; template< typename T > struct alignment_of_impl { # 83 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/alignment_of.hpp" 3 4 static const std::size_t value = __alignof__(T); }; } template< typename T > struct alignment_of : ::boost::integral_constant::value> { }; template struct alignment_of : alignment_of { }; # 109 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/alignment_of.hpp" 3 4 template<> struct alignment_of : ::boost::integral_constant { }; template<> struct alignment_of : ::boost::integral_constant { }; template<> struct alignment_of : ::boost::integral_constant { }; template<> struct alignment_of : ::boost::integral_constant { }; } # 125 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/alignment_of.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/size_t_trait_undef.hpp" 1 3 4 # 126 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/alignment_of.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/aligned_storage.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/for_each_i.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/for_each_i.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/for.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/for.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/for.hpp" 2 3 4 # 42 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/for.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/detail/for.hpp" 1 3 4 # 43 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/repetition/for.hpp" 2 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/for_each_i.hpp" 2 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/tuple/to_list.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/transform.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/append.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 2 3 4 namespace boost { namespace detail { class alignment_dummy; typedef void (*function_ptr)(); typedef int (alignment_dummy::*member_ptr); typedef int (alignment_dummy::*member_function_ptr)(); # 101 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 3 4 template struct lower_alignment_helper { typedef char type; enum { value = true }; }; template struct lower_alignment_helper { enum { value = (alignment_of::value == target) }; typedef typename mpl::if_c::type type; }; # 127 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 3 4 template struct has_one_T { T data; }; template union lower_alignment { enum { found0 = false }; typename lower_alignment_helper< found0,target,char >::type t0; enum { found1 = lower_alignment_helper::value }; typename lower_alignment_helper< found1,target,short >::type t1; enum { found2 = lower_alignment_helper::value }; typename lower_alignment_helper< found2,target,int >::type t2; enum { found3 = lower_alignment_helper::value }; typename lower_alignment_helper< found3,target,long >::type t3; enum { found4 = lower_alignment_helper::value }; typename lower_alignment_helper< found4,target,::boost::long_long_type >::type t4; enum { found5 = lower_alignment_helper::value }; typename lower_alignment_helper< found5,target,float >::type t5; enum { found6 = lower_alignment_helper::value }; typename lower_alignment_helper< found6,target,double >::type t6; enum { found7 = lower_alignment_helper::value }; typename lower_alignment_helper< found7,target,long double >::type t7; enum { found8 = lower_alignment_helper::value }; typename lower_alignment_helper< found8,target,void* >::type t8; enum { found9 = lower_alignment_helper::value }; typename lower_alignment_helper< found9,target,function_ptr >::type t9; enum { found10 = lower_alignment_helper::value }; typename lower_alignment_helper< found10,target,member_ptr >::type t10; enum { found11 = lower_alignment_helper::value }; typename lower_alignment_helper< found11,target,member_function_ptr >::type t11; enum { found12 = lower_alignment_helper::value }; typename lower_alignment_helper< found12,target,boost::detail::has_one_T< char > >::type t12; enum { found13 = lower_alignment_helper >::value }; typename lower_alignment_helper< found13,target,boost::detail::has_one_T< short > >::type t13; enum { found14 = lower_alignment_helper >::value }; typename lower_alignment_helper< found14,target,boost::detail::has_one_T< int > >::type t14; enum { found15 = lower_alignment_helper >::value }; typename lower_alignment_helper< found15,target,boost::detail::has_one_T< long > >::type t15; enum { found16 = lower_alignment_helper >::value }; typename lower_alignment_helper< found16,target,boost::detail::has_one_T< ::boost::long_long_type > >::type t16; enum { found17 = lower_alignment_helper >::value }; typename lower_alignment_helper< found17,target,boost::detail::has_one_T< float > >::type t17; enum { found18 = lower_alignment_helper >::value }; typename lower_alignment_helper< found18,target,boost::detail::has_one_T< double > >::type t18; enum { found19 = lower_alignment_helper >::value }; typename lower_alignment_helper< found19,target,boost::detail::has_one_T< long double > >::type t19; enum { found20 = lower_alignment_helper >::value }; typename lower_alignment_helper< found20,target,boost::detail::has_one_T< void* > >::type t20; enum { found21 = lower_alignment_helper >::value }; typename lower_alignment_helper< found21,target,boost::detail::has_one_T< function_ptr > >::type t21; enum { found22 = lower_alignment_helper >::value }; typename lower_alignment_helper< found22,target,boost::detail::has_one_T< member_ptr > >::type t22; enum { found23 = lower_alignment_helper >::value }; typename lower_alignment_helper< found23,target,boost::detail::has_one_T< member_function_ptr > >::type t23; enum { found24 = lower_alignment_helper >::value }; }; union max_align { char t0; short t1; int t2; long t3; ::boost::long_long_type t4; float t5; double t6; long double t7; void* t8; function_ptr t9; member_ptr t10; member_function_ptr t11; boost::detail::has_one_T< char > t12; boost::detail::has_one_T< short > t13; boost::detail::has_one_T< int > t14; boost::detail::has_one_T< long > t15; boost::detail::has_one_T< ::boost::long_long_type > t16; boost::detail::has_one_T< float > t17; boost::detail::has_one_T< double > t18; boost::detail::has_one_T< long double > t19; boost::detail::has_one_T< void* > t20; boost::detail::has_one_T< function_ptr > t21; boost::detail::has_one_T< member_ptr > t22; boost::detail::has_one_T< member_function_ptr > t23; }; # 161 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 3 4 template struct is_aligned { static const bool value = (TAlign >= Align) & (TAlign % Align == 0) ; }; # 180 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 3 4 } template struct is_pod< ::boost::detail::lower_alignment > { static const std::size_t value = true; }; namespace detail{ template class type_with_alignment_imp { typedef ::boost::detail::lower_alignment t1; typedef typename mpl::if_c< ::boost::detail::is_aligned< ::boost::alignment_of::value,Align >::value , t1 , ::boost::detail::max_align >::type align_t; static const std::size_t found = alignment_of::value; static_assert(found >= Align, "found >= Align"); static_assert(found % Align == 0, "found % Align == 0"); public: typedef align_t type; }; } template class type_with_alignment : public ::boost::detail::type_with_alignment_imp { }; namespace align { struct __attribute__((__aligned__(2))) a2 {}; struct __attribute__((__aligned__(4))) a4 {}; struct __attribute__((__aligned__(8))) a8 {}; struct __attribute__((__aligned__(16))) a16 {}; struct __attribute__((__aligned__(32))) a32 {}; } template<> class type_with_alignment<1> { public: typedef char type; }; template<> class type_with_alignment<2> { public: typedef align::a2 type; }; template<> class type_with_alignment<4> { public: typedef align::a4 type; }; template<> class type_with_alignment<8> { public: typedef align::a8 type; }; template<> class type_with_alignment<16> { public: typedef align::a16 type; }; template<> class type_with_alignment<32> { public: typedef align::a32 type; }; namespace detail { template<> struct is_pod_impl< ::boost::align::a2 > { static const bool value = (true); }; template<> struct is_pod_impl< ::boost::align::a4 > { static const bool value = (true); }; template<> struct is_pod_impl< ::boost::align::a8 > { static const bool value = (true); }; template<> struct is_pod_impl< ::boost::align::a16 > { static const bool value = (true); }; template<> struct is_pod_impl< ::boost::align::a32 > { static const bool value = (true); }; } # 383 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 390 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/type_with_alignment.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/aligned_storage.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/aligned_storage.hpp" 2 3 4 namespace boost { namespace detail { namespace aligned_storage { static const std::size_t alignment_of_max_align = ::boost::alignment_of::value ; template < std::size_t size_ , std::size_t alignment_ > struct aligned_storage_imp { union data_t { char buf[size_]; typename mpl::eval_if_c< alignment_ == std::size_t(-1) , mpl::identity , type_with_alignment >::type align_; } data_; void* address() const { return const_cast(this); } }; template< std::size_t alignment_ > struct aligned_storage_imp<0u,alignment_> { void* address() const { return 0; } }; }} template < std::size_t size_ , std::size_t alignment_ = std::size_t(-1) > class aligned_storage : private detail::aligned_storage::aligned_storage_imp { public: typedef detail::aligned_storage::aligned_storage_imp type; static const std::size_t size = size_ ; static const std::size_t alignment = ( alignment_ == std::size_t(-1) ? ::boost::detail::aligned_storage::alignment_of_max_align : alignment_ ) ; private: aligned_storage(const aligned_storage&); aligned_storage& operator=(const aligned_storage&); # 118 "/home/jas/.tt/ttsetup/opt/include/boost/aligned_storage.hpp" 3 4 public: aligned_storage() { } ~aligned_storage() { } public: void* address() { return static_cast(this)->address(); } const void* address() const { return static_cast(this)->address(); } }; # 168 "/home/jas/.tt/ttsetup/opt/include/boost/aligned_storage.hpp" 3 4 template struct is_pod > : ::boost::integral_constant { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 180 "/home/jas/.tt/ttsetup/opt/include/boost/aligned_storage.hpp" 2 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/aligned_storage.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_node_base.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/archive/archive_exception.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/archive/archive_exception.hpp" 3 4 # 1 "/usr/include/c++/4.5/cassert" 1 3 4 # 43 "/usr/include/c++/4.5/cassert" 3 4 # 44 "/usr/include/c++/4.5/cassert" 3 # 1 "/usr/include/assert.h" 1 3 4 # 45 "/usr/include/c++/4.5/cassert" 2 3 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/archive/archive_exception.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/decl.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/archive/archive_exception.hpp" 2 3 4 # 35 "/home/jas/.tt/ttsetup/opt/include/boost/archive/archive_exception.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/abi_prefix.hpp" 1 3 4 # 11 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/abi_prefix.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/abi_prefix.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/abi_prefix.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/archive/archive_exception.hpp" 2 3 4 namespace boost { namespace archive { class archive_exception : public virtual std::exception { public: typedef enum { no_exception, other_exception, unregistered_class, invalid_signature, unsupported_version, pointer_conflict, incompatible_native_format, array_size_too_short, input_stream_error, invalid_class_name, unregistered_cast, unsupported_class_version, multiple_code_instantiation, output_stream_error } exception_code; protected: std::string m_msg; public: exception_code code; archive_exception( exception_code c, const char * e1 = __null, const char * e2 = __null ); ~archive_exception() throw (); virtual const char *what( ) const throw(); protected: archive_exception(); }; } } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/abi_suffix.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/abi_suffix.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/abi_suffix.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/abi_suffix.hpp" 2 3 4 # 96 "/home/jas/.tt/ttsetup/opt/include/boost/archive/archive_exception.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_node_base.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/access.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/access.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/pfto.hpp" 1 3 4 # 43 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/pfto.hpp" 3 4 namespace boost { namespace serialization { template struct pfto_wrapper { const T & t; operator const T & (){ return t; } pfto_wrapper (const T & rhs) : t(rhs) {} }; template pfto_wrapper make_pfto_wrapper(const T & t, int){ return pfto_wrapper(t); } template pfto_wrapper make_pfto_wrapper(const pfto_wrapper & t, int){ return t; } } } # 22 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/access.hpp" 2 3 4 namespace boost { namespace archive { namespace detail { template class iserializer; template class oserializer; } } namespace serialization { template inline void serialize_adl(Archive &, T &, const unsigned int); namespace detail { template struct member_saver; template struct member_loader; } class access { public: template friend struct detail::member_saver; template friend struct detail::member_loader; template friend class archive::detail::iserializer; template friend class archive::detail::oserializer; template friend inline void serialize( Archive & ar, T & t, const unsigned int file_version ); template friend inline void save_construct_data( Archive & ar, const T * t, const unsigned int file_version ); template friend inline void load_construct_data( Archive & ar, T * t, const unsigned int file_version ); template static void member_save( Archive & ar, T & t, const unsigned int file_version ){ t.save(ar, file_version); } template static void member_load( Archive & ar, T & t, const unsigned int file_version ){ t.load(ar, file_version); } template static void serialize( Archive & ar, T & t, const unsigned int file_version ){ # 118 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/access.hpp" 3 4 t.serialize(ar, file_version); } template static void destroy( const T * t) { delete const_cast(t); } template static void construct(T * t){ ::new(t)T; } template static T & cast_reference(U & u){ return static_cast(u); } template static T * cast_pointer(U * u){ return static_cast(u); } }; } } # 23 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_node_base.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/throw_exception.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/throw_exception.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/exception/detail/attribute_noreturn.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/throw_exception.hpp" 2 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/throw_exception.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/exception/exception.hpp" 1 3 4 # 9 "/home/jas/.tt/ttsetup/opt/include/boost/exception/exception.hpp" 3 4 # 10 "/home/jas/.tt/ttsetup/opt/include/boost/exception/exception.hpp" 3 namespace boost { namespace exception_detail { template class refcount_ptr { public: refcount_ptr(): px_(0) { } ~refcount_ptr() { release(); } refcount_ptr( refcount_ptr const & x ): px_(x.px_) { add_ref(); } refcount_ptr & operator=( refcount_ptr const & x ) { adopt(x.px_); return *this; } void adopt( T * px ) { release(); px_=px; add_ref(); } T * get() const { return px_; } private: T * px_; void add_ref() { if( px_ ) px_->add_ref(); } void release() { if( px_ && px_->release() ) px_=0; } }; } template class error_info; typedef error_info throw_function; typedef error_info throw_file; typedef error_info throw_line; template <> class error_info { public: typedef char const * value_type; value_type v_; explicit error_info( value_type v ): v_(v) { } }; template <> class error_info { public: typedef char const * value_type; value_type v_; explicit error_info( value_type v ): v_(v) { } }; template <> class error_info { public: typedef int value_type; value_type v_; explicit error_info( value_type v ): v_(v) { } }; class exception; template class shared_ptr; namespace exception_detail { class error_info_base; struct type_info_; struct error_info_container { virtual char const * diagnostic_information( char const * ) const = 0; virtual shared_ptr get( type_info_ const & ) const = 0; virtual void set( shared_ptr const &, type_info_ const & ) = 0; virtual void add_ref() const = 0; virtual bool release() const = 0; virtual refcount_ptr clone() const = 0; protected: ~error_info_container() throw() { } }; template struct get_info; template <> struct get_info; template <> struct get_info; template <> struct get_info; char const * get_diagnostic_information( exception const &, char const * ); void copy_boost_exception( exception *, exception const * ); template E const & set_info( E const &, error_info const & ); template E const & set_info( E const &, throw_function const & ); template E const & set_info( E const &, throw_file const & ); template E const & set_info( E const &, throw_line const & ); } class exception { protected: exception(): throw_function_(0), throw_file_(0), throw_line_(-1) { } # 216 "/home/jas/.tt/ttsetup/opt/include/boost/exception/exception.hpp" 3 virtual ~exception() throw() = 0 ; private: template friend E const & exception_detail::set_info( E const &, throw_function const & ); template friend E const & exception_detail::set_info( E const &, throw_file const & ); template friend E const & exception_detail::set_info( E const &, throw_line const & ); template friend E const & exception_detail::set_info( E const &, error_info const & ); friend char const * exception_detail::get_diagnostic_information( exception const &, char const * ); template friend struct exception_detail::get_info; friend struct exception_detail::get_info; friend struct exception_detail::get_info; friend struct exception_detail::get_info; friend void exception_detail::copy_boost_exception( exception *, exception const * ); mutable exception_detail::refcount_ptr data_; mutable char const * throw_function_; mutable char const * throw_file_; mutable int throw_line_; }; inline exception:: ~exception() throw() { } namespace exception_detail { template E const & set_info( E const & x, throw_function const & y ) { x.throw_function_=y.v_; return x; } template E const & set_info( E const & x, throw_file const & y ) { x.throw_file_=y.v_; return x; } template E const & set_info( E const & x, throw_line const & y ) { x.throw_line_=y.v_; return x; } } namespace exception_detail { template struct error_info_injector: public T, public exception { explicit error_info_injector( T const & x ): T(x) { } ~error_info_injector() throw() { } }; struct large_size { char c[256]; }; large_size dispatch_boost_exception( exception const * ); struct small_size { }; small_size dispatch_boost_exception( void const * ); template struct enable_error_info_helper; template struct enable_error_info_helper { typedef T type; }; template struct enable_error_info_helper { typedef error_info_injector type; }; template struct enable_error_info_return_type { typedef typename enable_error_info_helper::type type; }; } template inline typename exception_detail::enable_error_info_return_type::type enable_error_info( T const & x ) { typedef typename exception_detail::enable_error_info_return_type::type rt; return rt(x); } namespace exception_detail { class clone_base { public: virtual clone_base const * clone() const = 0; virtual void rethrow() const = 0; virtual ~clone_base() throw() { } }; inline void copy_boost_exception( exception * a, exception const * b ) { refcount_ptr data; if( error_info_container * d=b->data_.get() ) data = d->clone(); a->throw_file_ = b->throw_file_; a->throw_line_ = b->throw_line_; a->throw_function_ = b->throw_function_; a->data_ = data; } inline void copy_boost_exception( void *, void const * ) { } template class clone_impl: public T, public clone_base { public: explicit clone_impl( T const & x ): T(x) { copy_boost_exception(this,&x); } ~clone_impl() throw() { } private: clone_base const * clone() const { return new clone_impl(*this); } void rethrow() const { throw*this; } }; } template inline exception_detail::clone_impl enable_current_exception( T const & x ) { return exception_detail::clone_impl(x); } } # 38 "/home/jas/.tt/ttsetup/opt/include/boost/throw_exception.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/current_function.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/current_function.hpp" 3 4 namespace boost { namespace detail { inline void current_function_helper() { # 61 "/home/jas/.tt/ttsetup/opt/include/boost/current_function.hpp" 3 4 } } } # 39 "/home/jas/.tt/ttsetup/opt/include/boost/throw_exception.hpp" 2 3 4 namespace boost { inline void throw_exception_assert_compatibility( std::exception const & ) { } template __attribute__((noreturn)) inline void throw_exception( E const & e ) { throw_exception_assert_compatibility(e); throw enable_current_exception(enable_error_info(e)); } namespace exception_detail { template __attribute__((noreturn)) void throw_exception_( E const & x, char const * current_function, char const * file, int line ) { boost::throw_exception( set_info( set_info( set_info( enable_error_info(x), throw_function(current_function)), throw_file(file)), throw_line(line))); } } } # 24 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_node_base.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ template struct pod_value_holder { typename aligned_storage< sizeof(Value), alignment_of::value >::type space; }; template struct index_node_base:private pod_value_holder { typedef index_node_base base_type; typedef Value value_type; typedef Allocator allocator_type; value_type& value() { return *static_cast( static_cast(&this->space)); } const value_type& value()const { return *static_cast( static_cast(&this->space)); } static index_node_base* from_value(const value_type* p) { return static_cast( reinterpret_cast*>( const_cast(p))); } private: friend class boost::serialization::access; template void serialize(Archive&,const unsigned int) { } }; template Node* node_from_value( const Value* p ) { typedef typename Node::allocator_type allocator_type; return static_cast( index_node_base::from_value(p)); } } } # 111 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_node_base.hpp" 3 4 namespace multi_index{ namespace detail{ template inline void load_construct_data( Archive&,boost::multi_index::detail::index_node_base*, const unsigned int) { throw_exception( archive::archive_exception(archive::archive_exception::other_exception)); } } } } # 24 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/node_type.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/is_index_list.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/is_index_list.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/empty.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/empty.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/empty_impl.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/empty_impl.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag > struct empty_impl { template< typename Sequence > struct apply : is_same< typename begin::type , typename end::type > { }; }; template<> struct empty_impl {}; }} # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/empty.hpp" 2 3 4 namespace boost { namespace mpl { template< typename Sequence = na > struct empty : empty_impl< typename sequence_tag::type > ::template apply< Sequence > { }; template<> struct empty< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : empty< T1 > { }; }; template< typename Tag > struct lambda< empty< na > , Tag , int_<-1> > { typedef false_ is_le; typedef empty< na > result_; typedef empty< na > type; }; namespace aux { template< typename T1 > struct template_arity< empty< T1 > > : int_<1> { }; template<> struct template_arity< empty< na > > : int_<-1> { }; } }} # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/is_index_list.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ template struct is_index_list { static const bool mpl_sequence=mpl::is_sequence::value; static const bool non_empty=!mpl::empty::value; static const bool value=mpl_sequence&&non_empty; }; } } } # 25 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/node_type.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/msvc_index_specifier.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/node_type.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 49 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/node_type.hpp" 3 4 struct index_node_applier { template struct apply { typedef typename mpl::deref::type index_specifier; typedef typename index_specifier:: template node_class::type type; }; }; template struct multi_index_node_type { static_assert(detail::is_index_list::value, "detail::is_index_list::value"); typedef typename mpl::reverse_iter_fold< IndexSpecifierList, index_node_base, mpl::bind2 >::type type; }; } } } # 22 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_base.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/tuple.hpp" 1 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/tuple.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/ref.hpp" 1 3 4 # 29 "/home/jas/.tt/ttsetup/opt/include/boost/ref.hpp" 3 4 namespace boost { template class reference_wrapper { public: typedef T type; explicit reference_wrapper(T& t): t_(boost::addressof(t)) {} operator T& () const { return *t_; } T& get() const { return *t_; } T* get_pointer() const { return t_; } private: T* t_; }; template inline reference_wrapper const ref(T & t) { return reference_wrapper(t); } template inline reference_wrapper const cref(T const & t) { return reference_wrapper(t); } template class is_reference_wrapper : public mpl::false_ { }; template class unwrap_reference { public: typedef T type; }; # 106 "/home/jas/.tt/ttsetup/opt/include/boost/ref.hpp" 3 4 template class is_reference_wrapper< reference_wrapper > : public mpl::true_ { }; template class unwrap_reference< reference_wrapper > { public: typedef T type; }; template class is_reference_wrapper< reference_wrapper const > : public mpl::true_ { }; template class unwrap_reference< reference_wrapper const > { public: typedef T type; }; template class is_reference_wrapper< reference_wrapper volatile > : public mpl::true_ { }; template class unwrap_reference< reference_wrapper volatile > { public: typedef T type; }; template class is_reference_wrapper< reference_wrapper const volatile > : public mpl::true_ { }; template class unwrap_reference< reference_wrapper const volatile > { public: typedef T type; }; # 176 "/home/jas/.tt/ttsetup/opt/include/boost/ref.hpp" 3 4 template inline typename unwrap_reference::type& unwrap_ref(T& t) { return t; } template inline T* get_pointer( reference_wrapper const & r ) { return r.get_pointer(); } } # 33 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/tuple.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/detail/tuple_basic.hpp" 1 3 4 # 38 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/detail/tuple_basic.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/cv_traits.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/cv_traits.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_volatile.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_volatile.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_volatile.hpp" 2 3 4 namespace boost { # 33 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_volatile.hpp" 3 4 template< typename T > struct add_volatile { typedef T volatile type; }; template< typename T > struct add_volatile { typedef T& type; }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4 # 46 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_volatile.hpp" 2 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/cv_traits.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_cv.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_cv.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_cv.hpp" 2 3 4 namespace boost { # 34 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_cv.hpp" 3 4 template< typename T > struct add_cv { typedef T const volatile type; }; template< typename T > struct add_cv { typedef T& type; }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4 # 47 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/add_cv.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/cv_traits.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_volatile.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_volatile.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_volatile.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_volatile.hpp" 2 3 4 namespace boost { namespace detail { template struct remove_volatile_helper { typedef T type; }; template struct remove_volatile_helper { typedef T const type; }; template struct remove_volatile_impl { typedef typename remove_volatile_helper< typename cv_traits_imp::unqualified_type , ::boost::is_const::value >::type type; }; template struct remove_volatile_impl { typedef T&& type; }; } template< typename T > struct remove_volatile { typedef typename boost::detail::remove_volatile_impl::type type; }; template< typename T > struct remove_volatile { typedef T& type; }; template< typename T, std::size_t N > struct remove_volatile { typedef T type[N]; }; template< typename T, std::size_t N > struct remove_volatile { typedef T const type[N]; }; # 84 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_volatile.hpp" 3 4 } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4 # 87 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/remove_volatile.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/cv_traits.hpp" 2 3 4 # 39 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/detail/tuple_basic.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/function_traits.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/function_traits.hpp" 3 4 namespace boost { namespace detail { template struct function_traits_helper; template struct function_traits_helper { static const unsigned arity = 0; typedef R result_type; }; template struct function_traits_helper { static const unsigned arity = 1; typedef R result_type; typedef T1 arg1_type; typedef T1 argument_type; }; template struct function_traits_helper { static const unsigned arity = 2; typedef R result_type; typedef T1 arg1_type; typedef T2 arg2_type; typedef T1 first_argument_type; typedef T2 second_argument_type; }; template struct function_traits_helper { static const unsigned arity = 3; typedef R result_type; typedef T1 arg1_type; typedef T2 arg2_type; typedef T3 arg3_type; }; template struct function_traits_helper { static const unsigned arity = 4; typedef R result_type; typedef T1 arg1_type; typedef T2 arg2_type; typedef T3 arg3_type; typedef T4 arg4_type; }; template struct function_traits_helper { static const unsigned arity = 5; typedef R result_type; typedef T1 arg1_type; typedef T2 arg2_type; typedef T3 arg3_type; typedef T4 arg4_type; typedef T5 arg5_type; }; template struct function_traits_helper { static const unsigned arity = 6; typedef R result_type; typedef T1 arg1_type; typedef T2 arg2_type; typedef T3 arg3_type; typedef T4 arg4_type; typedef T5 arg5_type; typedef T6 arg6_type; }; template struct function_traits_helper { static const unsigned arity = 7; typedef R result_type; typedef T1 arg1_type; typedef T2 arg2_type; typedef T3 arg3_type; typedef T4 arg4_type; typedef T5 arg5_type; typedef T6 arg6_type; typedef T7 arg7_type; }; template struct function_traits_helper { static const unsigned arity = 8; typedef R result_type; typedef T1 arg1_type; typedef T2 arg2_type; typedef T3 arg3_type; typedef T4 arg4_type; typedef T5 arg5_type; typedef T6 arg6_type; typedef T7 arg7_type; typedef T8 arg8_type; }; template struct function_traits_helper { static const unsigned arity = 9; typedef R result_type; typedef T1 arg1_type; typedef T2 arg2_type; typedef T3 arg3_type; typedef T4 arg4_type; typedef T5 arg5_type; typedef T6 arg6_type; typedef T7 arg7_type; typedef T8 arg8_type; typedef T9 arg9_type; }; template struct function_traits_helper { static const unsigned arity = 10; typedef R result_type; typedef T1 arg1_type; typedef T2 arg2_type; typedef T3 arg3_type; typedef T4 arg4_type; typedef T5 arg5_type; typedef T6 arg6_type; typedef T7 arg7_type; typedef T8 arg8_type; typedef T9 arg9_type; typedef T10 arg10_type; }; } template struct function_traits : public boost::detail::function_traits_helper::type> { }; # 234 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/function_traits.hpp" 3 4 } # 40 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/detail/tuple_basic.hpp" 2 3 4 namespace boost { namespace tuples { struct null_type {}; namespace detail { inline const null_type cnull() { return null_type(); } template struct IF { typedef Then RET; }; template struct IF { typedef Else RET; }; } template struct cons; template < class T0 = null_type, class T1 = null_type, class T2 = null_type, class T3 = null_type, class T4 = null_type, class T5 = null_type, class T6 = null_type, class T7 = null_type, class T8 = null_type, class T9 = null_type> class tuple; template struct length; namespace detail { template class generate_error; template< int N > struct get_class { template inline static RET get(const cons& t) { return get_class::template get(t.tail); } template inline static RET get(cons& t) { return get_class::template get(t.tail); } }; template<> struct get_class<0> { template inline static RET get(const cons& t) { return t.head; } template inline static RET get(cons& t) { return t.head; } }; } # 140 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/detail/tuple_basic.hpp" 3 4 template struct element { private: typedef typename T::tail_type Next; public: typedef typename element::type type; }; template struct element<0,T> { typedef typename T::head_type type; }; template struct element { private: typedef typename T::tail_type Next; typedef typename element::type unqualified_type; public: typedef typename boost::add_const::type type; }; template struct element<0,const T> { typedef typename boost::add_const::type type; }; # 233 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/detail/tuple_basic.hpp" 3 4 template struct access_traits { typedef const T& const_type; typedef T& non_const_type; typedef const typename boost::remove_cv::type& parameter_type; }; template struct access_traits { typedef T& const_type; typedef T& non_const_type; typedef T& parameter_type; }; template inline typename access_traits< typename element >::type >::non_const_type get(cons& c ) { return detail::get_class::template get< typename access_traits< typename element >::type >::non_const_type, HT,TT >(c); } template inline typename access_traits< typename element >::type >::const_type get(const cons& c ) { return detail::get_class::template get< typename access_traits< typename element >::type >::const_type, HT,TT >(c); } namespace detail { template class non_storeable_type { non_storeable_type(); }; template struct wrap_non_storeable_type { typedef typename IF< ::boost::is_function::value, non_storeable_type, T >::RET type; }; template <> struct wrap_non_storeable_type { typedef non_storeable_type type; }; } template struct cons { typedef HT head_type; typedef TT tail_type; typedef typename detail::wrap_non_storeable_type::type stored_head_type; stored_head_type head; tail_type tail; typename access_traits::non_const_type get_head() { return head; } typename access_traits::non_const_type get_tail() { return tail; } typename access_traits::const_type get_head() const { return head; } typename access_traits::const_type get_tail() const { return tail; } cons() : head(), tail() {} cons(typename access_traits::parameter_type h, const tail_type& t) : head (h), tail(t) {} template cons( T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8, T9& t9, T10& t10 ) : head (t1), tail (t2, t3, t4, t5, t6, t7, t8, t9, t10, detail::cnull()) {} template cons( const null_type& , T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8, T9& t9, T10& t10 ) : head (), tail (t2, t3, t4, t5, t6, t7, t8, t9, t10, detail::cnull()) {} template cons( const cons& u ) : head(u.head), tail(u.tail) {} template cons& operator=( const cons& u ) { head=u.head; tail=u.tail; return *this; } cons& operator=(const cons& u) { head = u.head; tail = u.tail; return *this; } template cons& operator=( const std::pair& u ) { static_assert(length::value == 2, "length::value == 2"); head = u.first; tail.head = u.second; return *this; } template typename access_traits< typename element >::type >::non_const_type get() { return boost::tuples::get(*this); } template typename access_traits< typename element >::type >::const_type get() const { return boost::tuples::get(*this); } }; template struct cons { typedef HT head_type; typedef null_type tail_type; typedef cons self_type; typedef typename detail::wrap_non_storeable_type::type stored_head_type; stored_head_type head; typename access_traits::non_const_type get_head() { return head; } null_type get_tail() { return null_type(); } typename access_traits::const_type get_head() const { return head; } const null_type get_tail() const { return null_type(); } cons() : head() {} cons(typename access_traits::parameter_type h, const null_type& = null_type()) : head (h) {} template cons(T1& t1, const null_type&, const null_type&, const null_type&, const null_type&, const null_type&, const null_type&, const null_type&, const null_type&, const null_type&) : head (t1) {} cons(const null_type&, const null_type&, const null_type&, const null_type&, const null_type&, const null_type&, const null_type&, const null_type&, const null_type&, const null_type&) : head () {} template cons( const cons& u ) : head(u.head) {} template cons& operator=(const cons& u ) { head = u.head; return *this; } cons& operator=(const cons& u) { head = u.head; return *this; } template typename access_traits< typename element::type >::non_const_type get() { return boost::tuples::get(*this); } template typename access_traits< typename element::type >::const_type get() const { return boost::tuples::get(*this); } }; template struct length { static const int value = 1 + length::value; }; template<> struct length > { static const int value = 0; }; template<> struct length const> { static const int value = 0; }; template<> struct length { static const int value = 0; }; template<> struct length { static const int value = 0; }; namespace detail { template struct map_tuple_to_cons { typedef cons::type > type; }; template <> struct map_tuple_to_cons { typedef null_type type; }; } template class tuple : public detail::map_tuple_to_cons::type { public: typedef typename detail::map_tuple_to_cons::type inherited; typedef typename inherited::head_type head_type; typedef typename inherited::tail_type tail_type; tuple() {} tuple(typename access_traits::parameter_type t0) : inherited(t0, detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, typename access_traits::parameter_type t1) : inherited(t0, t1, detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, typename access_traits::parameter_type t1, typename access_traits::parameter_type t2) : inherited(t0, t1, t2, detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, typename access_traits::parameter_type t1, typename access_traits::parameter_type t2, typename access_traits::parameter_type t3) : inherited(t0, t1, t2, t3, detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, typename access_traits::parameter_type t1, typename access_traits::parameter_type t2, typename access_traits::parameter_type t3, typename access_traits::parameter_type t4) : inherited(t0, t1, t2, t3, t4, detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, typename access_traits::parameter_type t1, typename access_traits::parameter_type t2, typename access_traits::parameter_type t3, typename access_traits::parameter_type t4, typename access_traits::parameter_type t5) : inherited(t0, t1, t2, t3, t4, t5, detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, typename access_traits::parameter_type t1, typename access_traits::parameter_type t2, typename access_traits::parameter_type t3, typename access_traits::parameter_type t4, typename access_traits::parameter_type t5, typename access_traits::parameter_type t6) : inherited(t0, t1, t2, t3, t4, t5, t6, detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, typename access_traits::parameter_type t1, typename access_traits::parameter_type t2, typename access_traits::parameter_type t3, typename access_traits::parameter_type t4, typename access_traits::parameter_type t5, typename access_traits::parameter_type t6, typename access_traits::parameter_type t7) : inherited(t0, t1, t2, t3, t4, t5, t6, t7, detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, typename access_traits::parameter_type t1, typename access_traits::parameter_type t2, typename access_traits::parameter_type t3, typename access_traits::parameter_type t4, typename access_traits::parameter_type t5, typename access_traits::parameter_type t6, typename access_traits::parameter_type t7, typename access_traits::parameter_type t8) : inherited(t0, t1, t2, t3, t4, t5, t6, t7, t8, detail::cnull()) {} tuple(typename access_traits::parameter_type t0, typename access_traits::parameter_type t1, typename access_traits::parameter_type t2, typename access_traits::parameter_type t3, typename access_traits::parameter_type t4, typename access_traits::parameter_type t5, typename access_traits::parameter_type t6, typename access_traits::parameter_type t7, typename access_traits::parameter_type t8, typename access_traits::parameter_type t9) : inherited(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {} template tuple(const cons& p) : inherited(p) {} template tuple& operator=(const cons& k) { inherited::operator=(k); return *this; } template tuple& operator=(const std::pair& k) { static_assert(length::value == 2, "length::value == 2"); this->head = k.first; this->tail.head = k.second; return *this; } }; template <> class tuple : public null_type { public: typedef null_type inherited; }; namespace detail { struct swallow_assign { template swallow_assign const& operator=(const T&) const { return *this; } }; } detail::swallow_assign const ignore = detail::swallow_assign(); # 696 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/detail/tuple_basic.hpp" 3 4 template struct make_tuple_traits { typedef T type; }; # 720 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/detail/tuple_basic.hpp" 3 4 template struct make_tuple_traits { typedef typename detail::generate_error:: do_not_use_with_reference_type error; }; template struct make_tuple_traits { typedef const T (&type)[n]; }; template struct make_tuple_traits { typedef const T (&type)[n]; }; template struct make_tuple_traits { typedef const volatile T (&type)[n]; }; template struct make_tuple_traits { typedef const volatile T (&type)[n]; }; template struct make_tuple_traits >{ typedef T& type; }; template struct make_tuple_traits >{ typedef T& type; }; namespace detail { template < class T0 = null_type, class T1 = null_type, class T2 = null_type, class T3 = null_type, class T4 = null_type, class T5 = null_type, class T6 = null_type, class T7 = null_type, class T8 = null_type, class T9 = null_type > struct make_tuple_mapper { typedef tuple::type, typename make_tuple_traits::type, typename make_tuple_traits::type, typename make_tuple_traits::type, typename make_tuple_traits::type, typename make_tuple_traits::type, typename make_tuple_traits::type, typename make_tuple_traits::type, typename make_tuple_traits::type, typename make_tuple_traits::type> type; }; } inline tuple<> make_tuple() { return tuple<>(); } template inline typename detail::make_tuple_mapper::type make_tuple(const T0& t0) { typedef typename detail::make_tuple_mapper::type t; return t(t0); } template inline typename detail::make_tuple_mapper::type make_tuple(const T0& t0, const T1& t1) { typedef typename detail::make_tuple_mapper::type t; return t(t0, t1); } template inline typename detail::make_tuple_mapper::type make_tuple(const T0& t0, const T1& t1, const T2& t2) { typedef typename detail::make_tuple_mapper::type t; return t(t0, t1, t2); } template inline typename detail::make_tuple_mapper::type make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3) { typedef typename detail::make_tuple_mapper::type t; return t(t0, t1, t2, t3); } template inline typename detail::make_tuple_mapper::type make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3, const T4& t4) { typedef typename detail::make_tuple_mapper::type t; return t(t0, t1, t2, t3, t4); } template inline typename detail::make_tuple_mapper::type make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5) { typedef typename detail::make_tuple_mapper::type t; return t(t0, t1, t2, t3, t4, t5); } template inline typename detail::make_tuple_mapper::type make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6) { typedef typename detail::make_tuple_mapper ::type t; return t(t0, t1, t2, t3, t4, t5, t6); } template inline typename detail::make_tuple_mapper::type make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6, const T7& t7) { typedef typename detail::make_tuple_mapper ::type t; return t(t0, t1, t2, t3, t4, t5, t6, t7); } template inline typename detail::make_tuple_mapper ::type make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6, const T7& t7, const T8& t8) { typedef typename detail::make_tuple_mapper ::type t; return t(t0, t1, t2, t3, t4, t5, t6, t7, t8); } template inline typename detail::make_tuple_mapper ::type make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6, const T7& t7, const T8& t8, const T9& t9) { typedef typename detail::make_tuple_mapper ::type t; return t(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9); } template inline tuple tie(T1& t1) { return tuple (t1); } template inline tuple tie(T1& t1, T2& t2) { return tuple (t1, t2); } template inline tuple tie(T1& t1, T2& t2, T3& t3) { return tuple (t1, t2, t3); } template inline tuple tie(T1& t1, T2& t2, T3& t3, T4& t4) { return tuple (t1, t2, t3, t4); } template inline tuple tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5) { return tuple (t1, t2, t3, t4, t5); } template inline tuple tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6) { return tuple (t1, t2, t3, t4, t5, t6); } template inline tuple tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7) { return tuple (t1, t2, t3, t4, t5, t6, t7); } template inline tuple tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8) { return tuple (t1, t2, t3, t4, t5, t6, t7, t8); } template inline tuple tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8, T9& t9) { return tuple (t1, t2, t3, t4, t5, t6, t7, t8, t9); } template inline tuple tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8, T9& t9, T10& t10) { return tuple (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } } } # 34 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/tuple.hpp" 2 3 4 namespace boost { using tuples::tuple; using tuples::make_tuple; using tuples::tie; using tuples::get; # 87 "/home/jas/.tt/ttsetup/opt/include/boost/tuple/tuple.hpp" 3 4 } # 24 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_base.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_loader.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_loader.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/nvp.hpp" 1 3 4 # 31 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/nvp.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/level.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/level.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_fundamental.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_fundamental.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_fundamental.hpp" 2 3 4 namespace boost { namespace detail { template struct is_fundamental_impl : ::boost::type_traits::ice_or< ::boost::is_arithmetic::value , ::boost::is_void::value > { }; } template< typename T > struct is_fundamental : ::boost::integral_constant::value> { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 44 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_fundamental.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/level.hpp" 2 3 4 # 34 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/level.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/level_enum.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/level_enum.hpp" 3 4 namespace boost { namespace serialization { enum level_type { not_serializable = 0, primitive_type = 1, object_serializable = 2, object_class_info = 3 }; } } # 35 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/level.hpp" 2 3 4 namespace boost { namespace serialization { struct basic_traits; template struct implementation_level_impl { template struct traits_class_level { typedef typename U::level type; }; typedef mpl::integral_c_tag tag; typedef typename mpl::eval_if< is_base_and_derived, traits_class_level, typename mpl::eval_if< is_fundamental, mpl::int_, typename mpl::eval_if< is_class, mpl::int_, typename mpl::eval_if< is_array, mpl::int_, typename mpl::eval_if< is_enum, mpl::int_, mpl::int_ > > > > >::type type; static const int value = type::value; }; template struct implementation_level : public implementation_level_impl { }; template inline bool operator>=(implementation_level t, enum level_type l) { return t.value >= (int)l; } } } # 32 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/nvp.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/tracking.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/tracking.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/equal_to.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/equal_to.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag1 , typename Tag2 > struct equal_to_impl : if_c< ( Tag1::value > Tag2::value ) , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > >::type { }; template<> struct equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct equal_to_impl< na,Tag > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct equal_to_impl< Tag,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename T > struct equal_to_tag { typedef typename T::tag type; }; template< typename N1 = na , typename N2 = na > struct equal_to : equal_to_impl< typename equal_to_tag::type , typename equal_to_tag::type >::template apply< N1,N2 >::type { }; template<> struct equal_to< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : equal_to< T1 , T2 > { }; }; template< typename Tag > struct lambda< equal_to< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef equal_to< na , na > result_; typedef equal_to< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< equal_to< T1 , T2 > > : int_<2> { }; template<> struct template_arity< equal_to< na , na > > : int_<-1> { }; } }} namespace boost { namespace mpl { template<> struct equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply : bool_< ( N1::value == N2::value ) > { }; }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/equal_to.hpp" 2 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/tracking.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/greater.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/greater.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/greater.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/greater.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag1 , typename Tag2 > struct greater_impl : if_c< ( Tag1::value > Tag2::value ) , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > >::type { }; template<> struct greater_impl< na,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct greater_impl< na,Tag > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct greater_impl< Tag,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename T > struct greater_tag { typedef typename T::tag type; }; template< typename N1 = na , typename N2 = na > struct greater : greater_impl< typename greater_tag::type , typename greater_tag::type >::template apply< N1,N2 >::type { }; template<> struct greater< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : greater< T1 , T2 > { }; }; template< typename Tag > struct lambda< greater< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef greater< na , na > result_; typedef greater< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< greater< T1 , T2 > > : int_<2> { }; template<> struct template_arity< greater< na , na > > : int_<-1> { }; } }} namespace boost { namespace mpl { template<> struct greater_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply : bool_< ( N1::value > N2::value ) > { }; }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/greater.hpp" 2 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/tracking.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/tracking_enum.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/tracking_enum.hpp" 3 4 namespace boost { namespace serialization { enum tracking_type { track_never = 0, track_selectively = 1, track_always = 2 }; } } # 32 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/tracking.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/type_info_implementation.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/type_info_implementation.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/traits.hpp" 1 3 4 # 35 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/traits.hpp" 3 4 namespace boost { namespace serialization { struct basic_traits {}; template struct extended_type_info_impl; template< class T, int Level, int Tracking, unsigned int Version = 0, class ETII = extended_type_info_impl< T >, class Wrapper = mpl::false_ > struct traits : public basic_traits { static_assert(Version == 0 || Level >= object_class_info, "Version == 0 || Level >= object_class_info"); static_assert(Tracking == track_never || Level >= object_serializable, "Tracking == track_never || Level >= object_serializable"); typedef typename mpl::int_ level; typedef typename mpl::int_ tracking; typedef typename mpl::int_ version; typedef ETII type_info_implementation; typedef Wrapper is_wrapper; }; } } # 28 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/type_info_implementation.hpp" 2 3 4 namespace boost { namespace serialization { template struct type_info_implementation { template struct traits_class_typeinfo_implementation { typedef typename U::type_info_implementation::type type; }; typedef typename mpl::eval_if< is_base_and_derived, traits_class_typeinfo_implementation, mpl::identity< typename extended_type_info_impl::type > >::type type; }; } } # 33 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/tracking.hpp" 2 3 4 namespace boost { namespace serialization { struct basic_traits; template struct tracking_level_impl { template struct traits_class_tracking { typedef typename U::tracking type; }; typedef mpl::integral_c_tag tag; typedef typename mpl::eval_if< is_base_and_derived, traits_class_tracking, typename mpl::eval_if< is_pointer, mpl::int_, typename mpl::eval_if< typename mpl::equal_to< implementation_level, mpl::int_ >, mpl::int_, mpl::int_ > > >::type type; static const int value = type::value; }; template struct tracking_level : public tracking_level_impl { }; template inline bool operator>=(tracking_level t, enum tracking_type l) { return t.value >= (int)l; } } } # 33 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/nvp.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/split_member.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/split_member.hpp" 3 4 namespace boost { namespace archive { namespace detail { template class interface_oarchive; template class interface_iarchive; } } namespace serialization { namespace detail { template struct member_saver { static void invoke( Archive & ar, const T & t, const unsigned int file_version ){ access::member_save(ar, t, file_version); } }; template struct member_loader { static void invoke( Archive & ar, T & t, const unsigned int file_version ){ access::member_load(ar, t, file_version); } }; } template inline void split_member( Archive & ar, T & t, const unsigned int file_version ){ typedef typename mpl::eval_if< typename Archive::is_saving, mpl::identity >, mpl::identity > >::type typex; typex::invoke(ar, t, file_version); } } } # 34 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/nvp.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/base_object.hpp" 1 3 4 # 34 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/base_object.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_polymorphic.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_polymorphic.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_polymorphic.hpp" 2 3 4 namespace boost{ # 106 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_polymorphic.hpp" 3 4 template< typename T > struct is_polymorphic : ::boost::integral_constant { }; } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4 # 113 "/home/jas/.tt/ttsetup/opt/include/boost/type_traits/is_polymorphic.hpp" 2 3 4 # 35 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/base_object.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/force_include.hpp" 1 3 4 # 39 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/base_object.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/void_cast_fwd.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/void_cast_fwd.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/void_cast_fwd.hpp" 2 3 4 namespace boost { namespace serialization { namespace void_cast_detail{ class void_caster; } template inline const void_cast_detail::void_caster & void_cast_register( const Derived * dnull = __null, const Base * bnull = __null ) __attribute__ ((used)); } } # 40 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/base_object.hpp" 2 3 4 namespace boost { namespace serialization { namespace detail { template struct base_cast { typedef typename mpl::if_< is_const, const B, B >::type type; static_assert(is_const::value == is_const::value, "is_const::value == is_const::value"); }; template struct base_register { struct polymorphic { static void const * invoke(){ Base const * const b = 0; Derived const * const d = 0; return & void_cast_register(d, b); } }; struct non_polymorphic { static void const * invoke(){ return 0; } }; static void const * invoke(){ typedef typename mpl::eval_if< is_polymorphic, mpl::identity, mpl::identity >::type type; return type::invoke(); } }; } # 97 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/base_object.hpp" 3 4 template typename detail::base_cast::type & base_object(Derived &d) { static_assert(( is_base_and_derived::value), "( is_base_and_derived::value)"); static_assert(! is_pointer::value, "! is_pointer::value"); typedef typename detail::base_cast::type type; detail::base_register::invoke(); return access::cast_reference(d); } } } # 35 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/nvp.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/wrapper.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/wrapper.hpp" 3 4 namespace boost { namespace serialization { template< class T, int Level = object_serializable, int Tracking = track_never, unsigned int Version = 0, class ETII = extended_type_info_impl< T > > struct wrapper_traits : public traits {}; template struct is_wrapper_impl : boost::mpl::eval_if< boost::is_base_and_derived, boost::mpl::true_, boost::mpl::false_ >::type {}; template struct is_wrapper { typedef typename is_wrapper_impl::type type; }; } } # 37 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/nvp.hpp" 2 3 4 namespace boost { namespace serialization { template struct nvp : public std::pair, public wrapper_traits > { explicit nvp(const char * name_, T & t) : std::pair(name_, (T*)(& t)) {} nvp(const nvp & rhs) : std::pair(rhs.first, (T*)rhs.second) {} const char * name() const { return this->first; } T & value() const { return *(this->second); } const T & const_value() const { return *(this->second); } template void save( Archivex & ar, const unsigned int ) const { ar.operator<<(const_value()); } template void load( Archivex & ar, const unsigned int ){ ar.operator>>(value()); } template void serialize( Archive &ar, const unsigned int file_version ){ boost::serialization::split_member(ar, *this, file_version); } }; template inline const nvp make_nvp(const char * name, T & t){ return nvp(name, t); } # 128 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/nvp.hpp" 3 4 } } # 22 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_loader.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_loader.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ template class index_loader:private noncopyable { public: index_loader(const Allocator& al,std::size_t size): spc(al,size),size_(size),n(0),sorted(false) { } template void add(Node* node,Archive& ar,const unsigned int) { ar>>serialization::make_nvp("position",*node); entries()[n++]=node; } template void add_track(Node* node,Archive& ar,const unsigned int) { ar>>serialization::make_nvp("position",*node); } template void load(Rearranger r,Archive& ar,const unsigned int)const { FinalNode* prev=unchecked_load_node(ar); if(!prev)return; if(!sorted){ std::sort(entries(),entries()+size_); sorted=true; } check_node(prev); for(;;){ for(;;){ FinalNode* node=load_node(ar); if(!node)break; if(node==prev)prev=0; r(prev,node); prev=node; } prev=load_node(ar); if(!prev)break; } } private: Node** entries()const{return &*spc.data();} template FinalNode* unchecked_load_node(Archive& ar)const { Node* node=0; ar>>serialization::make_nvp("pointer",node); return static_cast(node); } template FinalNode* load_node(Archive& ar)const { Node* node=0; ar>>serialization::make_nvp("pointer",node); check_node(node); return static_cast(node); } void check_node(Node* node)const { if(node!=0&&!std::binary_search(entries(),entries()+size_,node)){ throw_exception( archive::archive_exception( archive::archive_exception::other_exception)); } } auto_space spc; std::size_t size_; std::size_t n; mutable bool sorted; }; } } } # 28 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_base.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_saver.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_saver.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_matcher.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_matcher.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_matcher.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 58 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_matcher.hpp" 3 4 namespace index_matcher{ # 67 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_matcher.hpp" 3 4 struct entry { entry(void* node_,std::size_t pos_=0):node(node_),pos(pos_){} void* node; std::size_t pos; entry* previous; bool ordered; struct less_by_node { bool operator()( const entry& x,const entry& y)const { return std::less()(x.node,y.node); } }; std::size_t pile_top; entry* pile_top_entry; struct less_by_pile_top { bool operator()( const entry& x,const entry& y)const { return x.pile_top class algorithm_base:private noncopyable { protected: algorithm_base(const Allocator& al,std::size_t size): spc(al,size),size_(size),n(0),sorted(false) { } void add(void* node) { entries()[n]=entry(node,n); ++n; } void begin_algorithm()const { if(!sorted){ std::sort(entries(),entries()+size_,entry::less_by_node()); sorted=true; } num_piles=0; } void add_node_to_algorithm(void* node)const { entry* ent= std::lower_bound( entries(),entries()+size_, entry(node),entry::less_by_node()); ent->ordered=false; std::size_t n=ent->pos; entry dummy(0); dummy.pile_top=n; entry* pile_ent= std::lower_bound( entries(),entries()+num_piles, dummy,entry::less_by_pile_top()); pile_ent->pile_top=n; pile_ent->pile_top_entry=ent; if(pile_ent>&entries()[0]){ ent->previous=(pile_ent-1)->pile_top_entry; } if(pile_ent==&entries()[num_piles]){ ++num_piles; } } void finish_algorithm()const { if(num_piles>0){ entry* ent=entries()[num_piles-1].pile_top_entry; for(std::size_t n=num_piles;n--;){ ent->ordered=true; ent=ent->previous; } } } bool is_ordered(void * node)const { return std::lower_bound( entries(),entries()+size_, entry(node),entry::less_by_node())->ordered; } private: entry* entries()const{return &*spc.data();} auto_space spc; std::size_t size_; std::size_t n; mutable bool sorted; mutable std::size_t num_piles; }; template class algorithm:private algorithm_base { typedef algorithm_base super; public: algorithm(const Allocator& al,std::size_t size):super(al,size){} void add(Node* node) { super::add(node); } template void execute(IndexIterator first,IndexIterator last)const { super::begin_algorithm(); for(IndexIterator it=first;it!=last;++it){ add_node_to_algorithm(get_node(it)); } super::finish_algorithm(); } bool is_ordered(Node* node)const { return super::is_ordered(node); } private: void add_node_to_algorithm(Node* node)const { super::add_node_to_algorithm(node); } template static Node* get_node(IndexIterator it) { return static_cast(it.get_node()); } }; } } } } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_saver.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_saver.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 37 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_saver.hpp" 3 4 template class index_saver:private noncopyable { public: index_saver(const Allocator& al,std::size_t size):alg(al,size){} template void add(Node* node,Archive& ar,const unsigned int) { ar< void add_track(Node* node,Archive& ar,const unsigned int) { ar< void save( IndexIterator first,IndexIterator last,Archive& ar, const unsigned int)const { alg.execute(first,last); # 95 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_saver.hpp" 3 4 std::size_t last_saved=3; for(IndexIterator it=first,prev=first;it!=last;prev=it++,++last_saved){ if(!alg.is_ordered(get_node(it))){ if(last_saved>1)save_node(get_node(prev),ar); save_node(get_node(it),ar); last_saved=0; } else if(last_saved==2)save_node(null_node(),ar); } if(last_saved<=2)save_node(null_node(),ar); save_node(null_node(),ar); } private: template static Node* get_node(IndexIterator it) { return it.get_node(); } static Node* null_node(){return 0;} template static void save_node(Node* node,Archive& ar) { ar< alg; }; } } } # 29 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_base.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 45 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_base.hpp" 3 4 template class index_base { protected: typedef index_node_base node_type; typedef typename multi_index_node_type< Value,IndexSpecifierList,Allocator>::type final_node_type; typedef multi_index_container< Value,IndexSpecifierList,Allocator> final_type; typedef tuples::null_type ctor_args_list; typedef typename boost::detail::allocator::rebind_to< Allocator, typename Allocator::value_type>::type final_allocator_type; typedef mpl::vector0<> index_type_list; typedef mpl::vector0<> iterator_type_list; typedef mpl::vector0<> const_iterator_type_list; typedef copy_map< final_node_type, final_allocator_type> copy_map_type; typedef index_saver< node_type, final_allocator_type> index_saver_type; typedef index_loader< node_type, final_node_type, final_allocator_type> index_loader_type; private: typedef typename call_traits::param_type value_param_type; protected: explicit index_base(const ctor_args_list&,const Allocator&){} void copy_( const index_base&,const copy_map_type&) {} node_type* insert_(value_param_type v,node_type* x) { boost::detail::allocator::construct(&x->value(),v); return x; } node_type* insert_(value_param_type v,node_type*,node_type* x) { boost::detail::allocator::construct(&x->value(),v); return x; } void erase_(node_type* x) { boost::detail::allocator::destroy(&x->value()); } void delete_node_(node_type* x) { boost::detail::allocator::destroy(&x->value()); } void clear_(){} void swap_(index_base&){} bool replace_(value_param_type v,node_type* x) { x->value()=v; return true; } bool modify_(node_type*){return true;} bool modify_rollback_(node_type*){return true;} template void save_(Archive&,const unsigned int,const index_saver_type&)const{} template void load_(Archive&,const unsigned int,const index_loader_type&){} # 140 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/index_base.hpp" 3 4 final_type& final(){return *static_cast(this);} const final_type& final()const{return *static_cast(this);} final_node_type* final_header()const{return final().header();} bool final_empty_()const{return final().empty_();} std::size_t final_size_()const{return final().size_();} std::size_t final_max_size_()const{return final().max_size_();} std::pair final_insert_(value_param_type x) {return final().insert_(x);} std::pair final_insert_( value_param_type x,final_node_type* position) {return final().insert_(x,position);} void final_erase_(final_node_type* x){final().erase_(x);} void final_delete_node_(final_node_type* x){final().delete_node_(x);} void final_delete_all_nodes_(){final().delete_all_nodes_();} void final_clear_(){final().clear_();} void final_swap_(final_type& x){final().swap_(x);} bool final_replace_( value_param_type k,final_node_type* x) {return final().replace_(k,x);} template bool final_modify_(Modifier& mod,final_node_type* x) {return final().modify_(mod,x);} template bool final_modify_(Modifier& mod,Rollback& back,final_node_type* x) {return final().modify_(mod,back,x);} }; } } } # 22 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/base_type.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 47 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/base_type.hpp" 3 4 struct index_applier { template struct apply { typedef typename IndexSpecifierMeta::type index_specifier; typedef typename index_specifier:: template index_class::type type; }; }; template struct nth_layer { static const int length=mpl::size::value; typedef typename mpl::eval_if_c< N==length, mpl::identity >, mpl::apply2< index_applier, mpl::at_c, nth_layer > >::type type; }; template struct multi_index_base_type:nth_layer<0,Value,IndexSpecifierList,Allocator> { static_assert(detail::is_index_list::value, "detail::is_index_list::value"); }; } } } # 34 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/converter.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/converter.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ template struct converter { static const Index& index(const MultiIndexContainer& x){return x;} static Index& index(MultiIndexContainer& x){return x;} static typename Index::const_iterator const_iterator( const MultiIndexContainer& x,typename MultiIndexContainer::node_type* node) { return x.Index::make_iterator(node); } static typename Index::iterator iterator( MultiIndexContainer& x,typename MultiIndexContainer::node_type* node) { return x.Index::make_iterator(node); } }; } } } # 35 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/has_tag.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/has_tag.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ template struct has_tag { template struct apply:mpl::contains { }; }; } } } # 37 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/safe_mode.hpp" 1 3 4 # 40 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/scope_guard.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/scope_guard.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 47 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/scope_guard.hpp" 3 4 class scope_guard_impl_base { public: scope_guard_impl_base():dismissed_(false){} void dismiss()const{dismissed_=true;} void touch()const{} protected: ~scope_guard_impl_base(){} scope_guard_impl_base(const scope_guard_impl_base& other): dismissed_(other.dismissed_) { other.dismiss(); } template static void safe_execute(J& j){if(!j.dismissed_)j.execute();} mutable bool dismissed_; private: scope_guard_impl_base& operator=(const scope_guard_impl_base&); }; typedef const scope_guard_impl_base& scope_guard; template class scope_guard_impl0:public scope_guard_impl_base { public: scope_guard_impl0(F fun):fun_(fun){} ~scope_guard_impl0(){scope_guard_impl_base::safe_execute(*this);} void execute(){fun_();} protected: F fun_; }; template inline scope_guard_impl0 make_guard(F fun) { return scope_guard_impl0(fun); } template class scope_guard_impl1:public scope_guard_impl_base { public: scope_guard_impl1(F fun,P1 p1):fun_(fun),p1_(p1){} ~scope_guard_impl1(){scope_guard_impl_base::safe_execute(*this);} void execute(){fun_(p1_);} protected: F fun_; const P1 p1_; }; template inline scope_guard_impl1 make_guard(F fun,P1 p1) { return scope_guard_impl1(fun,p1); } template class scope_guard_impl2:public scope_guard_impl_base { public: scope_guard_impl2(F fun,P1 p1,P2 p2):fun_(fun),p1_(p1),p2_(p2){} ~scope_guard_impl2(){scope_guard_impl_base::safe_execute(*this);} void execute(){fun_(p1_,p2_);} protected: F fun_; const P1 p1_; const P2 p2_; }; template inline scope_guard_impl2 make_guard(F fun,P1 p1,P2 p2) { return scope_guard_impl2(fun,p1,p2); } template class scope_guard_impl3:public scope_guard_impl_base { public: scope_guard_impl3(F fun,P1 p1,P2 p2,P3 p3):fun_(fun),p1_(p1),p2_(p2),p3_(p3){} ~scope_guard_impl3(){scope_guard_impl_base::safe_execute(*this);} void execute(){fun_(p1_,p2_,p3_);} protected: F fun_; const P1 p1_; const P2 p2_; const P3 p3_; }; template inline scope_guard_impl3 make_guard(F fun,P1 p1,P2 p2,P3 p3) { return scope_guard_impl3(fun,p1,p2,p3); } template class scope_guard_impl4:public scope_guard_impl_base { public: scope_guard_impl4(F fun,P1 p1,P2 p2,P3 p3,P4 p4): fun_(fun),p1_(p1),p2_(p2),p3_(p3),p4_(p4){} ~scope_guard_impl4(){scope_guard_impl_base::safe_execute(*this);} void execute(){fun_(p1_,p2_,p3_,p4_);} protected: F fun_; const P1 p1_; const P2 p2_; const P3 p3_; const P4 p4_; }; template inline scope_guard_impl4 make_guard( F fun,P1 p1,P2 p2,P3 p3,P4 p4) { return scope_guard_impl4(fun,p1,p2,p3,p4); } template class obj_scope_guard_impl0:public scope_guard_impl_base { public: obj_scope_guard_impl0(Obj& obj,MemFun mem_fun):obj_(obj),mem_fun_(mem_fun){} ~obj_scope_guard_impl0(){scope_guard_impl_base::safe_execute(*this);} void execute(){(obj_.*mem_fun_)();} protected: Obj& obj_; MemFun mem_fun_; }; template inline obj_scope_guard_impl0 make_obj_guard(Obj& obj,MemFun mem_fun) { return obj_scope_guard_impl0(obj,mem_fun); } template class obj_scope_guard_impl1:public scope_guard_impl_base { public: obj_scope_guard_impl1(Obj& obj,MemFun mem_fun,P1 p1): obj_(obj),mem_fun_(mem_fun),p1_(p1){} ~obj_scope_guard_impl1(){scope_guard_impl_base::safe_execute(*this);} void execute(){(obj_.*mem_fun_)(p1_);} protected: Obj& obj_; MemFun mem_fun_; const P1 p1_; }; template inline obj_scope_guard_impl1 make_obj_guard( Obj& obj,MemFun mem_fun,P1 p1) { return obj_scope_guard_impl1(obj,mem_fun,p1); } template class obj_scope_guard_impl2:public scope_guard_impl_base { public: obj_scope_guard_impl2(Obj& obj,MemFun mem_fun,P1 p1,P2 p2): obj_(obj),mem_fun_(mem_fun),p1_(p1),p2_(p2) {} ~obj_scope_guard_impl2(){scope_guard_impl_base::safe_execute(*this);} void execute(){(obj_.*mem_fun_)(p1_,p2_);} protected: Obj& obj_; MemFun mem_fun_; const P1 p1_; const P2 p2_; }; template inline obj_scope_guard_impl2 make_obj_guard(Obj& obj,MemFun mem_fun,P1 p1,P2 p2) { return obj_scope_guard_impl2(obj,mem_fun,p1,p2); } template class obj_scope_guard_impl3:public scope_guard_impl_base { public: obj_scope_guard_impl3(Obj& obj,MemFun mem_fun,P1 p1,P2 p2,P3 p3): obj_(obj),mem_fun_(mem_fun),p1_(p1),p2_(p2),p3_(p3) {} ~obj_scope_guard_impl3(){scope_guard_impl_base::safe_execute(*this);} void execute(){(obj_.*mem_fun_)(p1_,p2_,p3_);} protected: Obj& obj_; MemFun mem_fun_; const P1 p1_; const P2 p2_; const P3 p3_; }; template inline obj_scope_guard_impl3 make_obj_guard(Obj& obj,MemFun mem_fun,P1 p1,P2 p2,P3 p3) { return obj_scope_guard_impl3(obj,mem_fun,p1,p2,p3); } } } } # 41 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/archive_constructed.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/archive_constructed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/serialization.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/serialization.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp" 3 4 # 1 "/usr/include/c++/4.5/cassert" 1 3 4 # 43 "/usr/include/c++/4.5/cassert" 3 4 # 44 "/usr/include/c++/4.5/cassert" 3 # 1 "/usr/include/assert.h" 1 3 4 # 45 "/usr/include/c++/4.5/cassert" 2 3 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/cstdint.hpp" 1 3 4 # 100 "/home/jas/.tt/ttsetup/opt/include/boost/cstdint.hpp" 3 4 namespace boost { using ::int8_t; using ::int_least8_t; using ::int_fast8_t; using ::uint8_t; using ::uint_least8_t; using ::uint_fast8_t; using ::int16_t; using ::int_least16_t; using ::int_fast16_t; using ::uint16_t; using ::uint_least16_t; using ::uint_fast16_t; using ::int32_t; using ::int_least32_t; using ::int_fast32_t; using ::uint32_t; using ::uint_least32_t; using ::uint_fast32_t; using ::int64_t; using ::int_least64_t; using ::int_fast64_t; using ::uint64_t; using ::uint_least64_t; using ::uint_fast64_t; using ::intmax_t; using ::uintmax_t; } # 22 "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/integer_traits.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/integer_traits.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/limits.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/integer_traits.hpp" 2 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h" 1 3 4 # 34 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h" 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h" 1 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h" 1 3 4 # 169 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h" 3 4 # 1 "/usr/include/limits.h" 1 3 4 # 145 "/usr/include/limits.h" 3 4 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4 # 157 "/usr/include/bits/posix1_lim.h" 3 4 # 1 "/usr/include/bits/local_lim.h" 1 3 4 # 39 "/usr/include/bits/local_lim.h" 3 4 # 1 "/usr/include/linux/limits.h" 1 3 4 # 40 "/usr/include/bits/local_lim.h" 2 3 4 # 158 "/usr/include/bits/posix1_lim.h" 2 3 4 # 146 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4 # 150 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4 # 34 "/usr/include/bits/xopen_lim.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 35 "/usr/include/bits/xopen_lim.h" 2 3 4 # 154 "/usr/include/limits.h" 2 3 4 # 170 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h" 2 3 4 # 8 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h" 2 3 4 # 35 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h" 2 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/integer_traits.hpp" 2 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/integer_traits.hpp" 2 3 4 # 39 "/home/jas/.tt/ttsetup/opt/include/boost/integer_traits.hpp" 3 4 # 40 "/home/jas/.tt/ttsetup/opt/include/boost/integer_traits.hpp" 3 namespace boost { template class integer_traits : public std::numeric_limits { public: static const bool is_integral = false; }; namespace detail { template class integer_traits_base { public: static const bool is_integral = true; static const T const_min = min_val; static const T const_max = max_val; }; template const bool integer_traits_base::is_integral; template const T integer_traits_base::const_min; template const T integer_traits_base::const_max; } template<> class integer_traits : public std::numeric_limits, public detail::integer_traits_base { }; template<> class integer_traits : public std::numeric_limits, public detail::integer_traits_base { }; template<> class integer_traits : public std::numeric_limits, public detail::integer_traits_base { }; template<> class integer_traits : public std::numeric_limits, public detail::integer_traits_base { }; template<> class integer_traits : public std::numeric_limits, public detail::integer_traits_base # 130 "/home/jas/.tt/ttsetup/opt/include/boost/integer_traits.hpp" 3 { }; template<> class integer_traits : public std::numeric_limits, public detail::integer_traits_base { }; template<> class integer_traits : public std::numeric_limits, public detail::integer_traits_base { }; template<> class integer_traits : public std::numeric_limits, public detail::integer_traits_base { }; template<> class integer_traits : public std::numeric_limits, public detail::integer_traits_base { }; template<> class integer_traits : public std::numeric_limits, public detail::integer_traits_base { }; template<> class integer_traits : public std::numeric_limits, public detail::integer_traits_base { }; template<> class integer_traits< ::boost::long_long_type> : public std::numeric_limits< ::boost::long_long_type>, public detail::integer_traits_base< ::boost::long_long_type, (-9223372036854775807LL -1), 9223372036854775807LL> { }; template<> class integer_traits< ::boost::ulong_long_type> : public std::numeric_limits< ::boost::ulong_long_type>, public detail::integer_traits_base< ::boost::ulong_long_type, 0, (9223372036854775807LL * 2ULL + 1)> { }; # 256 "/home/jas/.tt/ttsetup/opt/include/boost/integer_traits.hpp" 3 } # 24 "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/auto_link_archive.hpp" 1 3 4 # 45 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/auto_link_archive.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/auto_link.hpp" 1 3 4 # 46 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/auto_link_archive.hpp" 2 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/abi_prefix.hpp" 1 3 4 # 11 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/abi_prefix.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/abi_prefix.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/abi_prefix.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp" 2 3 4 namespace boost { namespace archive { # 40 "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp" 3 4 class library_version_type { private: typedef uint_least16_t base_type; base_type t; public: library_version_type(): t(0) {}; explicit library_version_type(const unsigned int & t_) : t(t_){ ((t_ <= boost::integer_traits::const_max) ? static_cast (0) : __assert_fail ("t_ <= boost::integer_traits::const_max", "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp", 47, __PRETTY_FUNCTION__)); } library_version_type(const library_version_type & t_) : t(t_.t) {} library_version_type & operator=(const library_version_type & rhs){ t = rhs.t; return *this; } operator const base_type () const { return t; } operator base_type & (){ return t; } bool operator==(const library_version_type & rhs) const { return t == rhs.t; } bool operator<(const library_version_type & rhs) const { return t < rhs.t; } }; library_version_type BOOST_ARCHIVE_VERSION(); class version_type { private: typedef uint_least32_t base_type; base_type t; public: version_type(): t(0) {}; explicit version_type(const unsigned int & t_) : t(t_){ ((t_ <= boost::integer_traits::const_max) ? static_cast (0) : __assert_fail ("t_ <= boost::integer_traits::const_max", "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp", 83, __PRETTY_FUNCTION__)); } version_type(const version_type & t_) : t(t_.t) {} version_type & operator=(const version_type & rhs){ t = rhs.t; return *this; } operator const base_type () const { return t; } operator base_type & (){ return t; } bool operator==(const version_type & rhs) const { return t == rhs.t; } bool operator<(const version_type & rhs) const { return t < rhs.t; } }; class class_id_type { private: typedef int_least16_t base_type; base_type t; public: class_id_type() : t(0) {}; explicit class_id_type(const int t_) : t(t_){ ((t_ <= boost::integer_traits::const_max) ? static_cast (0) : __assert_fail ("t_ <= boost::integer_traits::const_max", "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp", 116, __PRETTY_FUNCTION__)); } explicit class_id_type(const std::size_t t_) : t(t_){ } class_id_type(const class_id_type & t_) : t(t_.t) {} class_id_type & operator=(const class_id_type & rhs){ t = rhs.t; return *this; } operator const int () const { return t; } operator int_least16_t &() { return t; } bool operator==(const class_id_type & rhs) const { return t == rhs.t; } bool operator<(const class_id_type & rhs) const { return t < rhs.t; } }; class object_id_type { private: typedef uint_least32_t base_type; base_type t; public: object_id_type(): t(0) {}; explicit object_id_type(const unsigned int & t_) : t(t_){ ((t_ <= boost::integer_traits::const_max) ? static_cast (0) : __assert_fail ("t_ <= boost::integer_traits::const_max", "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp", 154, __PRETTY_FUNCTION__)); } object_id_type(const object_id_type & t_) : t(t_.t) {} object_id_type & operator=(const object_id_type & rhs){ t = rhs.t; return *this; } operator const uint_least32_t () const { return t; } operator uint_least32_t & () { return t; } bool operator==(const object_id_type & rhs) const { return t == rhs.t; } bool operator<(const object_id_type & rhs) const { return t < rhs.t; } }; struct tracking_type { bool t; explicit tracking_type(const bool t_ = false) : t(t_) {}; tracking_type(const tracking_type & t_) : t(t_.t) {} operator bool () const { return t; }; operator bool & () { return t; }; tracking_type & operator=(const bool t_){ t = t_; return *this; } bool operator==(const tracking_type & rhs) const { return t == rhs.t; } bool operator==(const bool & rhs) const { return t == rhs; } tracking_type & operator=(const tracking_type & rhs){ t = rhs.t; return *this; } }; struct class_name_type : private boost::noncopyable { char *t; operator const char * & () const { return const_cast(t); } operator char * () { return t; } explicit class_name_type(const char *key_) : t(const_cast(key_)){} explicit class_name_type(char *key_) : t(key_){} class_name_type & operator=(const class_name_type & rhs){ t = rhs.t; return *this; } }; enum archive_flags { no_header = 1, no_codecvt = 2, no_xml_tag_checking = 4, no_tracking = 8, flags_last = 8 }; const char * BOOST_ARCHIVE_SIGNATURE(); # 261 "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp" 3 4 class class_id_reference_type : public class_id_type { public: explicit class_id_reference_type(const class_id_type t) : class_id_type(t){} }; class class_id_optional_type : public class_id_type { public: explicit class_id_optional_type(const class_id_type t) : class_id_type(t){} }; class object_reference_type : public object_id_type { public: explicit object_reference_type(const object_id_type t) : object_id_type(t){} }; } } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/abi_suffix.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/abi_suffix.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/abi_suffix.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/archive/detail/abi_suffix.hpp" 2 3 4 # 269 "/home/jas/.tt/ttsetup/opt/include/boost/archive/basic_archive.hpp" 2 3 4 namespace boost { namespace serialization { template <> struct implementation_level_impl< const boost::archive::library_version_type > { typedef mpl::integral_c_tag tag; typedef mpl::int_< primitive_type > type; static const int value = implementation_level_impl::type::value; }; } } namespace boost { namespace serialization { template <> struct implementation_level_impl< const boost::archive::version_type > { typedef mpl::integral_c_tag tag; typedef mpl::int_< primitive_type > type; static const int value = implementation_level_impl::type::value; }; } } namespace boost { namespace serialization { template <> struct implementation_level_impl< const boost::archive::class_id_type > { typedef mpl::integral_c_tag tag; typedef mpl::int_< primitive_type > type; static const int value = implementation_level_impl::type::value; }; } } namespace boost { namespace serialization { template <> struct implementation_level_impl< const boost::archive::class_id_reference_type > { typedef mpl::integral_c_tag tag; typedef mpl::int_< primitive_type > type; static const int value = implementation_level_impl::type::value; }; } } namespace boost { namespace serialization { template <> struct implementation_level_impl< const boost::archive::class_id_optional_type > { typedef mpl::integral_c_tag tag; typedef mpl::int_< primitive_type > type; static const int value = implementation_level_impl::type::value; }; } } namespace boost { namespace serialization { template <> struct implementation_level_impl< const boost::archive::class_name_type > { typedef mpl::integral_c_tag tag; typedef mpl::int_< primitive_type > type; static const int value = implementation_level_impl::type::value; }; } } namespace boost { namespace serialization { template <> struct implementation_level_impl< const boost::archive::object_id_type > { typedef mpl::integral_c_tag tag; typedef mpl::int_< primitive_type > type; static const int value = implementation_level_impl::type::value; }; } } namespace boost { namespace serialization { template <> struct implementation_level_impl< const boost::archive::object_reference_type > { typedef mpl::integral_c_tag tag; typedef mpl::int_< primitive_type > type; static const int value = implementation_level_impl::type::value; }; } } namespace boost { namespace serialization { template <> struct implementation_level_impl< const boost::archive::tracking_type > { typedef mpl::integral_c_tag tag; typedef mpl::int_< primitive_type > type; static const int value = implementation_level_impl::type::value; }; } } # 15 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/serialization.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/strong_typedef.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/strong_typedef.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/operators.hpp" 1 3 4 # 95 "/home/jas/.tt/ttsetup/opt/include/boost/operators.hpp" 3 4 namespace boost { namespace detail { template class empty_base { }; } } # 118 "/home/jas/.tt/ttsetup/opt/include/boost/operators.hpp" 3 4 namespace boost { template > struct less_than_comparable2 : B { friend bool operator<=(const T& x, const U& y) { return !static_cast(x > y); } friend bool operator>=(const T& x, const U& y) { return !static_cast(x < y); } friend bool operator>(const U& x, const T& y) { return y < x; } friend bool operator<(const U& x, const T& y) { return y > x; } friend bool operator<=(const U& x, const T& y) { return !static_cast(y < x); } friend bool operator>=(const U& x, const T& y) { return !static_cast(y > x); } }; template > struct less_than_comparable1 : B { friend bool operator>(const T& x, const T& y) { return y < x; } friend bool operator<=(const T& x, const T& y) { return !static_cast(y < x); } friend bool operator>=(const T& x, const T& y) { return !static_cast(x < y); } }; template > struct equality_comparable2 : B { friend bool operator==(const U& y, const T& x) { return x == y; } friend bool operator!=(const U& y, const T& x) { return !static_cast(x == y); } friend bool operator!=(const T& y, const U& x) { return !static_cast(y == x); } }; template > struct equality_comparable1 : B { friend bool operator!=(const T& x, const T& y) { return !static_cast(x == y); } }; # 254 "/home/jas/.tt/ttsetup/opt/include/boost/operators.hpp" 3 4 template > struct multipliable2 : B { friend T operator *( const T& lhs, const U& rhs ) { T nrv( lhs ); nrv *= rhs; return nrv; } friend T operator *( const U& lhs, const T& rhs ) { T nrv( rhs ); nrv *= lhs; return nrv; } }; template > struct multipliable1 : B { friend T operator *( const T& lhs, const T& rhs ) { T nrv( lhs ); nrv *= rhs; return nrv; } }; template > struct addable2 : B { friend T operator +( const T& lhs, const U& rhs ) { T nrv( lhs ); nrv += rhs; return nrv; } friend T operator +( const U& lhs, const T& rhs ) { T nrv( rhs ); nrv += lhs; return nrv; } }; template > struct addable1 : B { friend T operator +( const T& lhs, const T& rhs ) { T nrv( lhs ); nrv += rhs; return nrv; } }; template > struct subtractable2 : B { friend T operator -( const T& lhs, const U& rhs ) { T nrv( lhs ); nrv -= rhs; return nrv; } }; template > struct subtractable2_left : B { friend T operator -( const U& lhs, const T& rhs ) { T nrv( lhs ); nrv -= rhs; return nrv; } }; template > struct subtractable1 : B { friend T operator -( const T& lhs, const T& rhs ) { T nrv( lhs ); nrv -= rhs; return nrv; } }; template > struct dividable2 : B { friend T operator /( const T& lhs, const U& rhs ) { T nrv( lhs ); nrv /= rhs; return nrv; } }; template > struct dividable2_left : B { friend T operator /( const U& lhs, const T& rhs ) { T nrv( lhs ); nrv /= rhs; return nrv; } }; template > struct dividable1 : B { friend T operator /( const T& lhs, const T& rhs ) { T nrv( lhs ); nrv /= rhs; return nrv; } }; template > struct modable2 : B { friend T operator %( const T& lhs, const U& rhs ) { T nrv( lhs ); nrv %= rhs; return nrv; } }; template > struct modable2_left : B { friend T operator %( const U& lhs, const T& rhs ) { T nrv( lhs ); nrv %= rhs; return nrv; } }; template > struct modable1 : B { friend T operator %( const T& lhs, const T& rhs ) { T nrv( lhs ); nrv %= rhs; return nrv; } }; template > struct xorable2 : B { friend T operator ^( const T& lhs, const U& rhs ) { T nrv( lhs ); nrv ^= rhs; return nrv; } friend T operator ^( const U& lhs, const T& rhs ) { T nrv( rhs ); nrv ^= lhs; return nrv; } }; template > struct xorable1 : B { friend T operator ^( const T& lhs, const T& rhs ) { T nrv( lhs ); nrv ^= rhs; return nrv; } }; template > struct andable2 : B { friend T operator &( const T& lhs, const U& rhs ) { T nrv( lhs ); nrv &= rhs; return nrv; } friend T operator &( const U& lhs, const T& rhs ) { T nrv( rhs ); nrv &= lhs; return nrv; } }; template > struct andable1 : B { friend T operator &( const T& lhs, const T& rhs ) { T nrv( lhs ); nrv &= rhs; return nrv; } }; template > struct orable2 : B { friend T operator |( const T& lhs, const U& rhs ) { T nrv( lhs ); nrv |= rhs; return nrv; } friend T operator |( const U& lhs, const T& rhs ) { T nrv( rhs ); nrv |= lhs; return nrv; } }; template > struct orable1 : B { friend T operator |( const T& lhs, const T& rhs ) { T nrv( lhs ); nrv |= rhs; return nrv; } }; template > struct incrementable : B { friend T operator++(T& x, int) { incrementable_type nrv(x); ++x; return nrv; } private: typedef T incrementable_type; }; template > struct decrementable : B { friend T operator--(T& x, int) { decrementable_type nrv(x); --x; return nrv; } private: typedef T decrementable_type; }; template > struct dereferenceable : B { P operator->() const { return &*static_cast(*this); } }; template > struct indexable : B { R operator[](I n) const { return *(static_cast(*this) + n); } }; # 352 "/home/jas/.tt/ttsetup/opt/include/boost/operators.hpp" 3 4 template > struct left_shiftable2 : B { friend T operator <<( const T& lhs, const U& rhs ) { T nrv( lhs ); nrv <<= rhs; return nrv; } }; template > struct left_shiftable1 : B { friend T operator <<( const T& lhs, const T& rhs ) { T nrv( lhs ); nrv <<= rhs; return nrv; } }; template > struct right_shiftable2 : B { friend T operator >>( const T& lhs, const U& rhs ) { T nrv( lhs ); nrv >>= rhs; return nrv; } }; template > struct right_shiftable1 : B { friend T operator >>( const T& lhs, const T& rhs ) { T nrv( lhs ); nrv >>= rhs; return nrv; } }; template > struct equivalent2 : B { friend bool operator==(const T& x, const U& y) { return !static_cast(x < y) && !static_cast(x > y); } }; template > struct equivalent1 : B { friend bool operator==(const T&x, const T&y) { return !static_cast(x < y) && !static_cast(y < x); } }; template > struct partially_ordered2 : B { friend bool operator<=(const T& x, const U& y) { return static_cast(x < y) || static_cast(x == y); } friend bool operator>=(const T& x, const U& y) { return static_cast(x > y) || static_cast(x == y); } friend bool operator>(const U& x, const T& y) { return y < x; } friend bool operator<(const U& x, const T& y) { return y > x; } friend bool operator<=(const U& x, const T& y) { return static_cast(y > x) || static_cast(y == x); } friend bool operator>=(const U& x, const T& y) { return static_cast(y < x) || static_cast(y == x); } }; template > struct partially_ordered1 : B { friend bool operator>(const T& x, const T& y) { return y < x; } friend bool operator<=(const T& x, const T& y) { return static_cast(x < y) || static_cast(x == y); } friend bool operator>=(const T& x, const T& y) { return static_cast(y < x) || static_cast(x == y); } }; template > struct totally_ordered2 : less_than_comparable2 > {}; template > struct totally_ordered1 : less_than_comparable1 > {}; template > struct additive2 : addable2 > {}; template > struct additive1 : addable1 > {}; template > struct multiplicative2 : multipliable2 > {}; template > struct multiplicative1 : multipliable1 > {}; template > struct integer_multiplicative2 : multiplicative2 > {}; template > struct integer_multiplicative1 : multiplicative1 > {}; template > struct arithmetic2 : additive2 > {}; template > struct arithmetic1 : additive1 > {}; template > struct integer_arithmetic2 : additive2 > {}; template > struct integer_arithmetic1 : additive1 > {}; template > struct bitwise2 : xorable2 > > {}; template > struct bitwise1 : xorable1 > > {}; template > struct unit_steppable : incrementable > {}; template > struct shiftable2 : left_shiftable2 > {}; template > struct shiftable1 : left_shiftable1 > {}; template > struct ring_operators2 : additive2 > > {}; template > struct ring_operators1 : additive1 > {}; template > struct ordered_ring_operators2 : ring_operators2 > {}; template > struct ordered_ring_operators1 : ring_operators1 > {}; template > struct field_operators2 : ring_operators2 > > {}; template > struct field_operators1 : ring_operators1 > {}; template > struct ordered_field_operators2 : field_operators2 > {}; template > struct ordered_field_operators1 : field_operators1 > {}; template > struct euclidian_ring_operators2 : ring_operators2 > > > > {}; template > struct euclidian_ring_operators1 : ring_operators1 > > {}; template > struct ordered_euclidian_ring_operators2 : totally_ordered2 > {}; template > struct ordered_euclidian_ring_operators1 : totally_ordered1 > {}; template > struct euclidean_ring_operators2 : ring_operators2 > > > > {}; template > struct euclidean_ring_operators1 : ring_operators1 > > {}; template > struct ordered_euclidean_ring_operators2 : totally_ordered2 > {}; template > struct ordered_euclidean_ring_operators1 : totally_ordered1 > {}; template > struct input_iteratable : equality_comparable1 > > {}; template > struct output_iteratable : incrementable {}; template > struct forward_iteratable : input_iteratable {}; template > struct bidirectional_iteratable : forward_iteratable > {}; template > struct random_access_iteratable : bidirectional_iteratable > > > {}; } # 718 "/home/jas/.tt/ttsetup/opt/include/boost/operators.hpp" 3 4 namespace boost { namespace detail { struct true_t {}; struct false_t {}; } template struct is_chained_base { typedef ::boost::detail::false_t value; }; } # 829 "/home/jas/.tt/ttsetup/opt/include/boost/operators.hpp" 3 4 namespace boost { template ,class O = typename is_chained_base::value > struct less_than_comparable : less_than_comparable2 {}; template struct less_than_comparable : less_than_comparable1 {}; template struct less_than_comparable : less_than_comparable1 {}; template struct is_chained_base< ::boost::less_than_comparable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::less_than_comparable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::less_than_comparable1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct equality_comparable : equality_comparable2 {}; template struct equality_comparable : equality_comparable1 {}; template struct equality_comparable : equality_comparable1 {}; template struct is_chained_base< ::boost::equality_comparable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::equality_comparable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::equality_comparable1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct multipliable : multipliable2 {}; template struct multipliable : multipliable1 {}; template struct multipliable : multipliable1 {}; template struct is_chained_base< ::boost::multipliable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::multipliable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::multipliable1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct addable : addable2 {}; template struct addable : addable1 {}; template struct addable : addable1 {}; template struct is_chained_base< ::boost::addable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::addable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::addable1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct subtractable : subtractable2 {}; template struct subtractable : subtractable1 {}; template struct subtractable : subtractable1 {}; template struct is_chained_base< ::boost::subtractable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::subtractable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::subtractable1 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::subtractable2_left > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct dividable : dividable2 {}; template struct dividable : dividable1 {}; template struct dividable : dividable1 {}; template struct is_chained_base< ::boost::dividable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::dividable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::dividable1 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::dividable2_left > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct modable : modable2 {}; template struct modable : modable1 {}; template struct modable : modable1 {}; template struct is_chained_base< ::boost::modable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::modable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::modable1 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::modable2_left > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct xorable : xorable2 {}; template struct xorable : xorable1 {}; template struct xorable : xorable1 {}; template struct is_chained_base< ::boost::xorable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::xorable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::xorable1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct andable : andable2 {}; template struct andable : andable1 {}; template struct andable : andable1 {}; template struct is_chained_base< ::boost::andable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::andable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::andable1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct orable : orable2 {}; template struct orable : orable1 {}; template struct orable : orable1 {}; template struct is_chained_base< ::boost::orable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::orable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::orable1 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::incrementable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::decrementable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::dereferenceable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::indexable > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct left_shiftable : left_shiftable2 {}; template struct left_shiftable : left_shiftable1 {}; template struct left_shiftable : left_shiftable1 {}; template struct is_chained_base< ::boost::left_shiftable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::left_shiftable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::left_shiftable1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct right_shiftable : right_shiftable2 {}; template struct right_shiftable : right_shiftable1 {}; template struct right_shiftable : right_shiftable1 {}; template struct is_chained_base< ::boost::right_shiftable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::right_shiftable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::right_shiftable1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct equivalent : equivalent2 {}; template struct equivalent : equivalent1 {}; template struct equivalent : equivalent1 {}; template struct is_chained_base< ::boost::equivalent > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::equivalent2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::equivalent1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct partially_ordered : partially_ordered2 {}; template struct partially_ordered : partially_ordered1 {}; template struct partially_ordered : partially_ordered1 {}; template struct is_chained_base< ::boost::partially_ordered > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::partially_ordered2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::partially_ordered1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct totally_ordered : totally_ordered2 {}; template struct totally_ordered : totally_ordered1 {}; template struct totally_ordered : totally_ordered1 {}; template struct is_chained_base< ::boost::totally_ordered > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::totally_ordered2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::totally_ordered1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct additive : additive2 {}; template struct additive : additive1 {}; template struct additive : additive1 {}; template struct is_chained_base< ::boost::additive > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::additive2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::additive1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct multiplicative : multiplicative2 {}; template struct multiplicative : multiplicative1 {}; template struct multiplicative : multiplicative1 {}; template struct is_chained_base< ::boost::multiplicative > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::multiplicative2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::multiplicative1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct integer_multiplicative : integer_multiplicative2 {}; template struct integer_multiplicative : integer_multiplicative1 {}; template struct integer_multiplicative : integer_multiplicative1 {}; template struct is_chained_base< ::boost::integer_multiplicative > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::integer_multiplicative2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::integer_multiplicative1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct arithmetic : arithmetic2 {}; template struct arithmetic : arithmetic1 {}; template struct arithmetic : arithmetic1 {}; template struct is_chained_base< ::boost::arithmetic > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::arithmetic2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::arithmetic1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct integer_arithmetic : integer_arithmetic2 {}; template struct integer_arithmetic : integer_arithmetic1 {}; template struct integer_arithmetic : integer_arithmetic1 {}; template struct is_chained_base< ::boost::integer_arithmetic > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::integer_arithmetic2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::integer_arithmetic1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct bitwise : bitwise2 {}; template struct bitwise : bitwise1 {}; template struct bitwise : bitwise1 {}; template struct is_chained_base< ::boost::bitwise > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::bitwise2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::bitwise1 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::unit_steppable > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct shiftable : shiftable2 {}; template struct shiftable : shiftable1 {}; template struct shiftable : shiftable1 {}; template struct is_chained_base< ::boost::shiftable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::shiftable2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::shiftable1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct ring_operators : ring_operators2 {}; template struct ring_operators : ring_operators1 {}; template struct ring_operators : ring_operators1 {}; template struct is_chained_base< ::boost::ring_operators > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::ring_operators2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::ring_operators1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct ordered_ring_operators : ordered_ring_operators2 {}; template struct ordered_ring_operators : ordered_ring_operators1 {}; template struct ordered_ring_operators : ordered_ring_operators1 {}; template struct is_chained_base< ::boost::ordered_ring_operators > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::ordered_ring_operators2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::ordered_ring_operators1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct field_operators : field_operators2 {}; template struct field_operators : field_operators1 {}; template struct field_operators : field_operators1 {}; template struct is_chained_base< ::boost::field_operators > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::field_operators2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::field_operators1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct ordered_field_operators : ordered_field_operators2 {}; template struct ordered_field_operators : ordered_field_operators1 {}; template struct ordered_field_operators : ordered_field_operators1 {}; template struct is_chained_base< ::boost::ordered_field_operators > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::ordered_field_operators2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::ordered_field_operators1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct euclidian_ring_operators : euclidian_ring_operators2 {}; template struct euclidian_ring_operators : euclidian_ring_operators1 {}; template struct euclidian_ring_operators : euclidian_ring_operators1 {}; template struct is_chained_base< ::boost::euclidian_ring_operators > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::euclidian_ring_operators2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::euclidian_ring_operators1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct ordered_euclidian_ring_operators : ordered_euclidian_ring_operators2 {}; template struct ordered_euclidian_ring_operators : ordered_euclidian_ring_operators1 {}; template struct ordered_euclidian_ring_operators : ordered_euclidian_ring_operators1 {}; template struct is_chained_base< ::boost::ordered_euclidian_ring_operators > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::ordered_euclidian_ring_operators2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::ordered_euclidian_ring_operators1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct euclidean_ring_operators : euclidean_ring_operators2 {}; template struct euclidean_ring_operators : euclidean_ring_operators1 {}; template struct euclidean_ring_operators : euclidean_ring_operators1 {}; template struct is_chained_base< ::boost::euclidean_ring_operators > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::euclidean_ring_operators2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::euclidean_ring_operators1 > { typedef ::boost::detail::true_t value; }; template ,class O = typename is_chained_base::value > struct ordered_euclidean_ring_operators : ordered_euclidean_ring_operators2 {}; template struct ordered_euclidean_ring_operators : ordered_euclidean_ring_operators1 {}; template struct ordered_euclidean_ring_operators : ordered_euclidean_ring_operators1 {}; template struct is_chained_base< ::boost::ordered_euclidean_ring_operators > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::ordered_euclidean_ring_operators2 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::ordered_euclidean_ring_operators1 > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::input_iteratable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::output_iteratable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::forward_iteratable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::bidirectional_iteratable > { typedef ::boost::detail::true_t value; }; template struct is_chained_base< ::boost::random_access_iteratable > { typedef ::boost::detail::true_t value; }; # 891 "/home/jas/.tt/ttsetup/opt/include/boost/operators.hpp" 3 4 template struct operators2 : totally_ordered2 > > {}; template struct operators : operators2 {}; template struct operators : totally_ordered > > > {}; template struct input_iterator_helper : input_iteratable > {}; template struct output_iterator_helper : output_iteratable > { T& operator*() { return static_cast(*this); } T& operator++() { return static_cast(*this); } }; template struct forward_iterator_helper : forward_iteratable > {}; template struct bidirectional_iterator_helper : bidirectional_iteratable > {}; template struct random_access_iterator_helper : random_access_iteratable > { friend D requires_difference_operator(const T& x, const T& y) { return x - y; } }; } # 27 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/strong_typedef.hpp" 2 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/serialization.hpp" 2 3 4 # 60 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/serialization.hpp" 3 4 namespace boost { namespace serialization { struct version_type : boost::totally_ordered1< version_type , boost::totally_ordered2< version_type, unsigned int > > { unsigned int t; explicit version_type(const unsigned int t_) : t(t_) {}; version_type(){}; version_type(const version_type & t_) : t(t_.t){} version_type & operator=(const version_type & rhs) { t = rhs.t; return *this;} version_type & operator=(const unsigned int & rhs) { t = rhs; return *this;} operator const unsigned int & () const {return t; } operator unsigned int & () { return t; } bool operator==(const version_type & rhs) const { return t == rhs.t; } bool operator<(const version_type & rhs) const { return t < rhs.t; } }; template inline void serialize( Archive & ar, T & t, const unsigned int file_version ){ access::serialize(ar, t, static_cast(file_version)); } template inline void save_construct_data( Archive & , const T * , const unsigned int ){ } template inline void load_construct_data( Archive & , T * t, const unsigned int ){ access::construct(t); } # 113 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/serialization.hpp" 3 4 template inline void serialize_adl( Archive & ar, T & t, const unsigned int file_version ){ # 128 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/serialization.hpp" 3 4 const version_type v(file_version); serialize(ar, t, v); } template inline void save_construct_data_adl( Archive & ar, const T * t, const unsigned int file_version ){ const version_type v(file_version); save_construct_data(ar, t, v); } template inline void load_construct_data_adl( Archive & ar, T * t, const unsigned int file_version ){ const version_type v(file_version); load_construct_data(ar, t, v); } } } # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/archive_constructed.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ template struct archive_constructed:private noncopyable { template archive_constructed(Archive& ar,const unsigned int version) { serialization::load_construct_data_adl(ar,&get(),version); { try{ ar>>get(); } catch(...){ (&get())->~T(); throw;; } } } template archive_constructed(const char* name,Archive& ar,const unsigned int version) { serialization::load_construct_data_adl(ar,&get(),version); { try{ ar>>serialization::make_nvp(name,get()); } catch(...){ (&get())->~T(); throw;; } } } ~archive_constructed() { (&get())->~T(); } T& get(){return *static_cast(static_cast(&space));} private: typename aligned_storage::value>::type space; }; } } } # 47 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/serialization_version.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/serialization_version.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/version.hpp" 1 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/version.hpp" 3 4 namespace boost { namespace serialization { struct basic_traits; template struct version { template struct traits_class_version { typedef typename U::version type; }; typedef mpl::integral_c_tag tag; typedef typename mpl::eval_if< is_base_and_derived, traits_class_version, mpl::int_<0> >::type type; static const int value = version::type::value; }; } } # 71 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/version.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/comparison.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/comparison.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/not_equal_to.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/not_equal_to.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag1 , typename Tag2 > struct not_equal_to_impl : if_c< ( Tag1::value > Tag2::value ) , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > >::type { }; template<> struct not_equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct not_equal_to_impl< na,Tag > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct not_equal_to_impl< Tag,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename T > struct not_equal_to_tag { typedef typename T::tag type; }; template< typename N1 = na , typename N2 = na > struct not_equal_to : not_equal_to_impl< typename not_equal_to_tag::type , typename not_equal_to_tag::type >::template apply< N1,N2 >::type { }; template<> struct not_equal_to< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : not_equal_to< T1 , T2 > { }; }; template< typename Tag > struct lambda< not_equal_to< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef not_equal_to< na , na > result_; typedef not_equal_to< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< not_equal_to< T1 , T2 > > : int_<2> { }; template<> struct template_arity< not_equal_to< na , na > > : int_<-1> { }; } }} namespace boost { namespace mpl { template<> struct not_equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply : bool_< ( N1::value != N2::value ) > { }; }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/not_equal_to.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/comparison.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/less_equal.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/less_equal.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag1 , typename Tag2 > struct less_equal_impl : if_c< ( Tag1::value > Tag2::value ) , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > >::type { }; template<> struct less_equal_impl< na,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct less_equal_impl< na,Tag > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct less_equal_impl< Tag,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename T > struct less_equal_tag { typedef typename T::tag type; }; template< typename N1 = na , typename N2 = na > struct less_equal : less_equal_impl< typename less_equal_tag::type , typename less_equal_tag::type >::template apply< N1,N2 >::type { }; template<> struct less_equal< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : less_equal< T1 , T2 > { }; }; template< typename Tag > struct lambda< less_equal< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef less_equal< na , na > result_; typedef less_equal< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< less_equal< T1 , T2 > > : int_<2> { }; template<> struct template_arity< less_equal< na , na > > : int_<-1> { }; } }} namespace boost { namespace mpl { template<> struct less_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply : bool_< ( N1::value <= N2::value ) > { }; }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/less_equal.hpp" 2 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/comparison.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/greater_equal.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/greater_equal.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/apply_wrap.hpp" 1 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp" 3 4 namespace boost { namespace mpl { template< typename Tag1 , typename Tag2 > struct greater_equal_impl : if_c< ( Tag1::value > Tag2::value ) , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > >::type { }; template<> struct greater_equal_impl< na,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct greater_equal_impl< na,Tag > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename Tag > struct greater_equal_impl< Tag,na > { template< typename U1, typename U2 > struct apply { typedef apply type; static const int value = 0; }; }; template< typename T > struct greater_equal_tag { typedef typename T::tag type; }; template< typename N1 = na , typename N2 = na > struct greater_equal : greater_equal_impl< typename greater_equal_tag::type , typename greater_equal_tag::type >::template apply< N1,N2 >::type { }; template<> struct greater_equal< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : greater_equal< T1 , T2 > { }; }; template< typename Tag > struct lambda< greater_equal< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef greater_equal< na , na > result_; typedef greater_equal< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< greater_equal< T1 , T2 > > : int_<2> { }; template<> struct template_arity< greater_equal< na , na > > : int_<-1> { }; } }} namespace boost { namespace mpl { template<> struct greater_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply : bool_< ( N1::value >= N2::value ) > { }; }; }} # 38 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/greater_equal.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mpl/comparison.hpp" 2 3 4 # 72 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/version.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/serialization_version.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ template struct serialization_version { serialization_version(): value(boost::serialization::version::value){} serialization_version& operator=(unsigned int x){value=x;return *this;}; operator unsigned int()const{return value;} private: friend class boost::serialization::access; template void serialize( Archive &ar, const unsigned int file_version ){ boost::serialization::split_member(ar, *this, file_version); } template void save(Archive&,const unsigned int)const{} template void load(Archive&,const unsigned int version) { this->value=version; } unsigned int value; }; } } namespace serialization { template struct version > { static const int value=version::value; }; } } # 48 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/collection_size_type.hpp" 1 3 4 # 9 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/collection_size_type.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 10 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/collection_size_type.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/split_free.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/split_free.hpp" 3 4 namespace boost { namespace archive { namespace detail { template class interface_oarchive; template class interface_iarchive; } } namespace serialization { template struct free_saver { static void invoke( Archive & ar, const T & t, const unsigned int file_version ){ const version_type v(file_version); save(ar, t, v); } }; template struct free_loader { static void invoke( Archive & ar, T & t, const unsigned int file_version ){ const version_type v(file_version); load(ar, t, v); } }; template inline void split_free( Archive & ar, T & t, const unsigned int file_version ){ typedef typename mpl::eval_if< typename Archive::is_saving, mpl::identity< free_saver >, mpl::identity< free_loader > >::type typex; typex::invoke(ar, t, file_version); } } } # 13 "/home/jas/.tt/ttsetup/opt/include/boost/serialization/collection_size_type.hpp" 2 3 4 namespace boost { namespace serialization { class collection_size_type { private: typedef std::size_t base_type; base_type t; public: collection_size_type(): t(0) {}; explicit collection_size_type(const std::size_t & t_) : t(t_) {} collection_size_type(const collection_size_type & t_) : t(t_.t) {} collection_size_type & operator=(const collection_size_type & rhs){ t = rhs.t; return *this; } collection_size_type & operator=(const unsigned int & rhs){ t = rhs; return *this; } operator const base_type () const { return t; } operator base_type & () { return t; } bool operator==(const collection_size_type & rhs) const { return t == rhs.t; } bool operator<(const collection_size_type & rhs) const { return t < rhs.t; } }; } } namespace boost { namespace serialization { template <> struct implementation_level_impl< const collection_size_type > { typedef mpl::integral_c_tag tag; typedef mpl::int_< primitive_type > type; static const int value = implementation_level_impl::type::value; }; } } # 49 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 2 3 4 # 65 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 3 4 namespace boost{ namespace multi_index{ template class multi_index_container: private ::boost::base_from_member< typename boost::detail::allocator::rebind_to< Allocator, typename detail::multi_index_node_type< Value,IndexSpecifierList,Allocator>::type >::type>, private detail::header_holder< typename detail::prevent_eti< Allocator, typename boost::detail::allocator::rebind_to< Allocator, typename detail::multi_index_node_type< Value,IndexSpecifierList,Allocator>::type >::type >::type::pointer, multi_index_container >, public detail::multi_index_base_type< Value,IndexSpecifierList,Allocator>::type { # 100 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 3 4 private: template friend class detail::index_base; template friend struct detail::header_holder; template friend struct detail::converter; typedef typename detail::multi_index_base_type< Value,IndexSpecifierList,Allocator>::type super; typedef typename boost::detail::allocator::rebind_to< Allocator, typename super::node_type >::type node_allocator; typedef ::boost::base_from_member< node_allocator> bfm_allocator; typedef detail::header_holder< typename detail::prevent_eti< Allocator, node_allocator >::type::pointer, multi_index_container> bfm_header; public: typedef typename super::ctor_args_list ctor_args_list; typedef IndexSpecifierList index_specifier_type_list; # 155 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 3 4 typedef typename super::index_type_list index_type_list; typedef typename super::iterator_type_list iterator_type_list; typedef typename super::const_iterator_type_list const_iterator_type_list; typedef typename super::value_type value_type; typedef typename super::final_allocator_type allocator_type; typedef typename super::iterator iterator; typedef typename super::const_iterator const_iterator; static_assert(detail::no_duplicate_tags_in_index_list::value, "detail::no_duplicate_tags_in_index_list::value") ; typedef typename super::node_type node_type; explicit multi_index_container( # 188 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 3 4 const ctor_args_list& args_list=ctor_args_list(), const allocator_type& al=allocator_type()): bfm_allocator(al), super(args_list,bfm_allocator::member), node_count(0) { ; } explicit multi_index_container(const allocator_type& al): bfm_allocator(al), super(ctor_args_list(),bfm_allocator::member), node_count(0) { ; } template multi_index_container( InputIterator first,InputIterator last, # 223 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 3 4 const ctor_args_list& args_list=ctor_args_list(), const allocator_type& al=allocator_type()): bfm_allocator(al), super(args_list,bfm_allocator::member), node_count(0) { ; { try{ iterator hint=super::end(); for(;first!=last;++first){ hint=super::make_iterator(insert_(*first,hint.get_node()).first); } } catch(...){ clear_(); throw;; } } } multi_index_container( const multi_index_container& x): bfm_allocator(x.bfm_allocator::member), bfm_header(), super(x), node_count(0) { copy_map_type map(bfm_allocator::member,x.size(),x.header(),header()); for(const_iterator it=x.begin(),it_end=x.end();it!=it_end;++it){ map.clone(it.get_node()); } super::copy_(x,map); map.release(); node_count=x.size(); ; } ~multi_index_container() { delete_all_nodes_(); } multi_index_container& operator=( multi_index_container x) { ; this->swap(x); return *this; } allocator_type get_allocator()const { return allocator_type(bfm_allocator::member); } template struct nth_index { static_assert(N>=0&&N::type::value, "N>=0&&N::type::value"); typedef typename mpl::at_c::type type; }; template typename nth_index::type& get() { static_assert(N>=0&&N::type::value, "N>=0&&N::type::value"); return *this; } template const typename nth_index::type& get( )const { static_assert(N>=0&&N::type::value, "N>=0&&N::type::value"); return *this; } template struct index { typedef typename mpl::find_if< index_type_list, detail::has_tag >::type iter; static const bool index_found=!(is_same::type >::value) ; static_assert(index_found, "index_found"); typedef typename mpl::deref::type type; }; template typename index::type& get() { return *this; } template const typename index::type& get( )const { return *this; } template struct nth_index_iterator { typedef typename nth_index::type::iterator type; }; template struct nth_index_const_iterator { typedef typename nth_index::type::const_iterator type; }; template typename nth_index_iterator::type project( IteratorType it ) { typedef typename nth_index::type index; static_assert((mpl::contains::value), "(mpl::contains::value)") ; ((void)0);; ((void)0); ; return index::make_iterator(static_cast(it.get_node())); } template typename nth_index_const_iterator::type project( IteratorType it )const { typedef typename nth_index::type index; static_assert(( mpl::contains::value|| mpl::contains::value), "( mpl::contains::value|| mpl::contains::value)") ; ((void)0);; ((void)0); ; return index::make_iterator(static_cast(it.get_node())); } template struct index_iterator { typedef typename index::type::iterator type; }; template struct index_const_iterator { typedef typename index::type::const_iterator type; }; template typename index_iterator::type project( IteratorType it ) { typedef typename index::type index; static_assert((mpl::contains::value), "(mpl::contains::value)") ; ((void)0);; ((void)0); ; return index::make_iterator(static_cast(it.get_node())); } template typename index_const_iterator::type project( IteratorType it )const { typedef typename index::type index; static_assert(( mpl::contains::value|| mpl::contains::value), "( mpl::contains::value|| mpl::contains::value)") ; ((void)0);; ((void)0); ; return index::make_iterator(static_cast(it.get_node())); } protected: typedef typename super::copy_map_type copy_map_type; node_type* header()const { return &*bfm_header::member; } node_type* allocate_node() { return &*bfm_allocator::member.allocate(1); } void deallocate_node(node_type* x) { typedef typename node_allocator::pointer node_pointer; bfm_allocator::member.deallocate(static_cast(x),1); } bool empty_()const { return node_count==0; } std::size_t size_()const { return node_count; } std::size_t max_size_()const { return static_cast(-1); } std::pair insert_(const Value& v) { node_type* x=allocate_node(); { try{ node_type* res=super::insert_(v,x); if(res==x){ ++node_count; return std::pair(res,true); } else{ deallocate_node(x); return std::pair(res,false); } } catch(...){ deallocate_node(x); throw;; } } } std::pair insert_(const Value& v,node_type* position) { node_type* x=allocate_node(); { try{ node_type* res=super::insert_(v,position,x); if(res==x){ ++node_count; return std::pair(res,true); } else{ deallocate_node(x); return std::pair(res,false); } } catch(...){ deallocate_node(x); throw;; } } } void erase_(node_type* x) { --node_count; super::erase_(x); deallocate_node(x); } void delete_node_(node_type* x) { super::delete_node_(x); deallocate_node(x); } void delete_all_nodes_() { super::delete_all_nodes_(); } void clear_() { delete_all_nodes_(); super::clear_(); node_count=0; } void swap_(multi_index_container& x) { if(bfm_allocator::member!=x.bfm_allocator::member){ detail::adl_swap(bfm_allocator::member,x.bfm_allocator::member); } std::swap(bfm_header::member,x.bfm_header::member); super::swap_(x); std::swap(node_count,x.node_count); } bool replace_(const Value& k,node_type* x) { return super::replace_(k,x); } template bool modify_(Modifier& mod,node_type* x) { mod(const_cast(x->value())); { try{ if(!super::modify_(x)){ deallocate_node(x); --node_count; return false; } else return true; } catch(...){ deallocate_node(x); --node_count; throw;; } } } template bool modify_(Modifier& mod,Rollback& back,node_type* x) { mod(const_cast(x->value())); bool b; { try{ b=super::modify_rollback_(x); } catch(...){ { try{ back(const_cast(x->value())); throw;; } catch(...){ this->erase_(x); throw;; } } } } { try{ if(!b){ back(const_cast(x->value())); return false; } else return true; } catch(...){ this->erase_(x); throw;; } } } friend class boost::serialization::access; template void serialize( Archive &ar, const unsigned int file_version ){ boost::serialization::split_member(ar, *this, file_version); } typedef typename super::index_saver_type index_saver_type; typedef typename super::index_loader_type index_loader_type; template void save(Archive& ar,const unsigned int version)const { const serialization::collection_size_type s(size_()); const detail::serialization_version value_version; ar< void load(Archive& ar,const unsigned int version) { ; clear_(); serialization::collection_size_type s; detail::serialization_version value_version; if(version<1){ std::size_t sz; ar>>serialization::make_nvp("count",sz); s=sz; } else{ ar>>serialization::make_nvp("count",s); } if(version<2){ value_version=0; } else{ ar>>serialization::make_nvp("value_version",value_version); } index_loader_type lm(bfm_allocator::member,s); for(std::size_t n=0;n value("item",ar,value_version); std::pair p=insert_( value.get(),super::end().get_node()); if(!p.second)throw_exception( archive::archive_exception( archive::archive_exception::other_exception)); ar.reset_object_address(&p.first->value(),&value.get()); lm.add(p.first,ar,version); } lm.add_track(header(),ar,version); super::load_(ar,version,lm); } # 722 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 3 4 private: std::size_t node_count; }; template struct nth_index { static const int M=mpl::size::type::value ; static_assert(N>=0&&N=0&&N::type type; }; template typename nth_index< multi_index_container,N>::type& get( multi_index_container& m ) { typedef multi_index_container< Value,IndexSpecifierList,Allocator> multi_index_type; typedef typename nth_index< multi_index_container< Value,IndexSpecifierList,Allocator>, N >::type index; static_assert(N>=0&& N< mpl::size< typename multi_index_type::index_type_list >::type::value, "N>=0&& N< mpl::size< BOOST_DEDUCED_TYPENAME multi_index_type::index_type_list >::type::value") ; return detail::converter::index(m); } template const typename nth_index< multi_index_container,N>::type& get( const multi_index_container& m ) { typedef multi_index_container< Value,IndexSpecifierList,Allocator> multi_index_type; typedef typename nth_index< multi_index_container< Value,IndexSpecifierList,Allocator>, N >::type index; static_assert(N>=0&& N< mpl::size< typename multi_index_type::index_type_list >::type::value, "N>=0&& N< mpl::size< BOOST_DEDUCED_TYPENAME multi_index_type::index_type_list >::type::value") ; return detail::converter::index(m); } template struct index { typedef typename MultiIndexContainer::index_type_list index_type_list; typedef typename mpl::find_if< index_type_list, detail::has_tag >::type iter; static const bool index_found=!(is_same::type >::value) ; static_assert(index_found, "index_found"); typedef typename mpl::deref::type type; }; template< typename Tag,typename Value,typename IndexSpecifierList,typename Allocator > typename ::boost::multi_index::index< multi_index_container,Tag>::type& get( multi_index_container& m ) { typedef multi_index_container< Value,IndexSpecifierList,Allocator> multi_index_type; typedef typename ::boost::multi_index::index< multi_index_container< Value,IndexSpecifierList,Allocator>, Tag >::type index; return detail::converter::index(m); } template< typename Tag,typename Value,typename IndexSpecifierList,typename Allocator > const typename ::boost::multi_index::index< multi_index_container,Tag>::type& get( const multi_index_container& m ) { typedef multi_index_container< Value,IndexSpecifierList,Allocator> multi_index_type; typedef typename ::boost::multi_index::index< multi_index_container< Value,IndexSpecifierList,Allocator>, Tag >::type index; return detail::converter::index(m); } template struct nth_index_iterator { typedef typename detail::prevent_eti< nth_index, typename nth_index::type>::type::iterator type; }; template struct nth_index_const_iterator { typedef typename detail::prevent_eti< nth_index, typename nth_index::type >::type::const_iterator type; }; template< int N,typename IteratorType, typename Value,typename IndexSpecifierList,typename Allocator> typename nth_index_iterator< multi_index_container,N>::type project( multi_index_container& m, IteratorType it ) { typedef multi_index_container< Value,IndexSpecifierList,Allocator> multi_index_type; typedef typename nth_index::type index; static_assert(( mpl::contains< typename multi_index_type::iterator_type_list, IteratorType>::value), "( mpl::contains< BOOST_DEDUCED_TYPENAME multi_index_type::iterator_type_list, IteratorType>::value)") ; ((void)0);; # 901 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 3 4 return detail::converter::iterator( m,static_cast(it.get_node())); } template< int N,typename IteratorType, typename Value,typename IndexSpecifierList,typename Allocator> typename nth_index_const_iterator< multi_index_container,N>::type project( const multi_index_container& m, IteratorType it ) { typedef multi_index_container< Value,IndexSpecifierList,Allocator> multi_index_type; typedef typename nth_index::type index; static_assert(( mpl::contains< typename multi_index_type::iterator_type_list, IteratorType>::value|| mpl::contains< typename multi_index_type::const_iterator_type_list, IteratorType>::value), "( mpl::contains< BOOST_DEDUCED_TYPENAME multi_index_type::iterator_type_list, IteratorType>::value|| mpl::contains< BOOST_DEDUCED_TYPENAME multi_index_type::const_iterator_type_list, IteratorType>::value)") ; ((void)0);; # 939 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 3 4 return detail::converter::const_iterator( m,static_cast(it.get_node())); } template struct index_iterator { typedef typename ::boost::multi_index::index< MultiIndexContainer,Tag>::type::iterator type; }; template struct index_const_iterator { typedef typename ::boost::multi_index::index< MultiIndexContainer,Tag>::type::const_iterator type; }; template< typename Tag,typename IteratorType, typename Value,typename IndexSpecifierList,typename Allocator> typename index_iterator< multi_index_container,Tag>::type project( multi_index_container& m, IteratorType it ) { typedef multi_index_container< Value,IndexSpecifierList,Allocator> multi_index_type; typedef typename ::boost::multi_index::index< multi_index_type,Tag>::type index; static_assert(( mpl::contains< typename multi_index_type::iterator_type_list, IteratorType>::value), "( mpl::contains< BOOST_DEDUCED_TYPENAME multi_index_type::iterator_type_list, IteratorType>::value)") ; ((void)0);; # 991 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 3 4 return detail::converter::iterator( m,static_cast(it.get_node())); } template< typename Tag,typename IteratorType, typename Value,typename IndexSpecifierList,typename Allocator> typename index_const_iterator< multi_index_container,Tag>::type project( const multi_index_container& m, IteratorType it ) { typedef multi_index_container< Value,IndexSpecifierList,Allocator> multi_index_type; typedef typename ::boost::multi_index::index< multi_index_type,Tag>::type index; static_assert(( mpl::contains< typename multi_index_type::iterator_type_list, IteratorType>::value|| mpl::contains< typename multi_index_type::const_iterator_type_list, IteratorType>::value), "( mpl::contains< BOOST_DEDUCED_TYPENAME multi_index_type::iterator_type_list, IteratorType>::value|| mpl::contains< BOOST_DEDUCED_TYPENAME multi_index_type::const_iterator_type_list, IteratorType>::value)") ; ((void)0);; # 1030 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 3 4 return detail::converter::const_iterator( m,static_cast(it.get_node())); } template< typename Value1,typename IndexSpecifierList1,typename Allocator1, typename Value2,typename IndexSpecifierList2,typename Allocator2 > bool operator==( const multi_index_container& x, const multi_index_container& y) { return get<0>(x)==get<0>(y); } template< typename Value1,typename IndexSpecifierList1,typename Allocator1, typename Value2,typename IndexSpecifierList2,typename Allocator2 > bool operator<( const multi_index_container& x, const multi_index_container& y) { return get<0>(x)(y); } template< typename Value1,typename IndexSpecifierList1,typename Allocator1, typename Value2,typename IndexSpecifierList2,typename Allocator2 > bool operator!=( const multi_index_container& x, const multi_index_container& y) { return get<0>(x)!=get<0>(y); } template< typename Value1,typename IndexSpecifierList1,typename Allocator1, typename Value2,typename IndexSpecifierList2,typename Allocator2 > bool operator>( const multi_index_container& x, const multi_index_container& y) { return get<0>(x)>get<0>(y); } template< typename Value1,typename IndexSpecifierList1,typename Allocator1, typename Value2,typename IndexSpecifierList2,typename Allocator2 > bool operator>=( const multi_index_container& x, const multi_index_container& y) { return get<0>(x)>=get<0>(y); } template< typename Value1,typename IndexSpecifierList1,typename Allocator1, typename Value2,typename IndexSpecifierList2,typename Allocator2 > bool operator<=( const multi_index_container& x, const multi_index_container& y) { return get<0>(x)<=get<0>(y); } template void swap( multi_index_container& x, multi_index_container& y) { x.swap(y); } } # 1121 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index_container.hpp" 3 4 namespace serialization { template struct version< boost::multi_index_container > { static const int value=2; }; } using multi_index::get; using multi_index::project; } # 12 "src/bp/bp_book.h" 2 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash_fwd.hpp" 1 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash_fwd.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash_fwd.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash_fwd.hpp" 2 3 4 namespace boost { template struct hash; template void hash_combine(std::size_t& seed, T const& v); template std::size_t hash_range(It, It); template void hash_range(std::size_t&, It, It); } # 7 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash_fwd.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/at.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/at.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/rest_n.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/preprocessor/list/at.hpp" 2 3 4 # 28 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 2 3 4 # 107 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 3 4 namespace boost{ template class reference_wrapper; namespace multi_index{ namespace detail{ template struct nth_key_from_value { typedef typename CompositeKey::key_extractor_tuple key_extractor_tuple; typedef typename prevent_eti< tuples::element, typename mpl::eval_if_c< N::value, tuples::element, mpl::identity >::type >::type type; }; # 162 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 3 4 template struct key_equal_to { typedef std::equal_to type; }; template<> struct key_equal_to { typedef tuples::null_type type; }; template struct nth_composite_key_equal_to { typedef typename nth_key_from_value::type key_from_value; typedef typename key_equal_to::type type; }; template struct key_less { typedef std::less type; }; template<> struct key_less { typedef tuples::null_type type; }; template struct nth_composite_key_less { typedef typename nth_key_from_value::type key_from_value; typedef typename key_less::type type; }; template struct key_greater { typedef std::greater type; }; template<> struct key_greater { typedef tuples::null_type type; }; template struct nth_composite_key_greater { typedef typename nth_key_from_value::type key_from_value; typedef typename key_greater::type type; }; template struct key_hash { typedef boost::hash type; }; template<> struct key_hash { typedef tuples::null_type type; }; template struct nth_composite_key_hash { typedef typename nth_key_from_value::type key_from_value; typedef typename key_hash::type type; }; struct generic_operator_equal { template bool operator()(const T& x,const Q& y)const{return x==y;} }; typedef tuple< detail::generic_operator_equal , detail::generic_operator_equal , detail::generic_operator_equal , detail::generic_operator_equal , detail::generic_operator_equal , detail::generic_operator_equal , detail::generic_operator_equal , detail::generic_operator_equal , detail::generic_operator_equal , detail::generic_operator_equal> generic_operator_equal_tuple; struct generic_operator_less { template bool operator()(const T& x,const Q& y)const{return x generic_operator_less_tuple; # 202 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 3 4 template < typename KeyCons1,typename Value1, typename KeyCons2, typename Value2, typename EqualCons > struct equal_ckey_ckey; template < typename KeyCons1,typename Value1, typename KeyCons2, typename Value2, typename EqualCons > struct equal_ckey_ckey_terminal { static bool compare( const KeyCons1&,const Value1&, const KeyCons2&,const Value2&, const EqualCons&) { return true; } }; template < typename KeyCons1,typename Value1, typename KeyCons2, typename Value2, typename EqualCons > struct equal_ckey_ckey_normal { static bool compare( const KeyCons1& c0,const Value1& v0, const KeyCons2& c1,const Value2& v1, const EqualCons& eq) { if(!eq.get_head()(c0.get_head()(v0),c1.get_head()(v1)))return false; return equal_ckey_ckey< typename KeyCons1::tail_type,Value1, typename KeyCons2::tail_type,Value2, typename EqualCons::tail_type >::compare(c0.get_tail(),v0,c1.get_tail(),v1,eq.get_tail()); } }; template < typename KeyCons1,typename Value1, typename KeyCons2, typename Value2, typename EqualCons > struct equal_ckey_ckey: mpl::if_< mpl::or_< is_same, is_same >, equal_ckey_ckey_terminal, equal_ckey_ckey_normal >::type { }; template < typename KeyCons,typename Value, typename ValCons,typename EqualCons > struct equal_ckey_cval; template < typename KeyCons,typename Value, typename ValCons,typename EqualCons > struct equal_ckey_cval_terminal { static bool compare( const KeyCons&,const Value&,const ValCons&,const EqualCons&) { return true; } static bool compare( const ValCons&,const KeyCons&,const Value&,const EqualCons&) { return true; } }; template < typename KeyCons,typename Value, typename ValCons,typename EqualCons > struct equal_ckey_cval_normal { static bool compare( const KeyCons& c,const Value& v,const ValCons& vc, const EqualCons& eq) { if(!eq.get_head()(c.get_head()(v),vc.get_head()))return false; return equal_ckey_cval< typename KeyCons::tail_type,Value, typename ValCons::tail_type, typename EqualCons::tail_type >::compare(c.get_tail(),v,vc.get_tail(),eq.get_tail()); } static bool compare( const ValCons& vc,const KeyCons& c,const Value& v, const EqualCons& eq) { if(!eq.get_head()(vc.get_head(),c.get_head()(v)))return false; return equal_ckey_cval< typename KeyCons::tail_type,Value, typename ValCons::tail_type, typename EqualCons::tail_type >::compare(vc.get_tail(),c.get_tail(),v,eq.get_tail()); } }; template < typename KeyCons,typename Value, typename ValCons,typename EqualCons > struct equal_ckey_cval: mpl::if_< mpl::or_< is_same, is_same >, equal_ckey_cval_terminal, equal_ckey_cval_normal >::type { }; template < typename KeyCons1,typename Value1, typename KeyCons2, typename Value2, typename CompareCons > struct compare_ckey_ckey; template < typename KeyCons1,typename Value1, typename KeyCons2, typename Value2, typename CompareCons > struct compare_ckey_ckey_terminal { static bool compare( const KeyCons1&,const Value1&, const KeyCons2&,const Value2&, const CompareCons&) { return false; } }; template < typename KeyCons1,typename Value1, typename KeyCons2, typename Value2, typename CompareCons > struct compare_ckey_ckey_normal { static bool compare( const KeyCons1& c0,const Value1& v0, const KeyCons2& c1,const Value2& v1, const CompareCons& comp) { if(comp.get_head()(c0.get_head()(v0),c1.get_head()(v1)))return true; if(comp.get_head()(c1.get_head()(v1),c0.get_head()(v0)))return false; return compare_ckey_ckey< typename KeyCons1::tail_type,Value1, typename KeyCons2::tail_type,Value2, typename CompareCons::tail_type >::compare(c0.get_tail(),v0,c1.get_tail(),v1,comp.get_tail()); } }; template < typename KeyCons1,typename Value1, typename KeyCons2, typename Value2, typename CompareCons > struct compare_ckey_ckey: mpl::if_< mpl::or_< is_same, is_same >, compare_ckey_ckey_terminal, compare_ckey_ckey_normal >::type { }; template < typename KeyCons,typename Value, typename ValCons,typename CompareCons > struct compare_ckey_cval; template < typename KeyCons,typename Value, typename ValCons,typename CompareCons > struct compare_ckey_cval_terminal { static bool compare( const KeyCons&,const Value&,const ValCons&,const CompareCons&) { return false; } static bool compare( const ValCons&,const KeyCons&,const Value&,const CompareCons&) { return false; } }; template < typename KeyCons,typename Value, typename ValCons,typename CompareCons > struct compare_ckey_cval_normal { static bool compare( const KeyCons& c,const Value& v,const ValCons& vc, const CompareCons& comp) { if(comp.get_head()(c.get_head()(v),vc.get_head()))return true; if(comp.get_head()(vc.get_head(),c.get_head()(v)))return false; return compare_ckey_cval< typename KeyCons::tail_type,Value, typename ValCons::tail_type, typename CompareCons::tail_type >::compare(c.get_tail(),v,vc.get_tail(),comp.get_tail()); } static bool compare( const ValCons& vc,const KeyCons& c,const Value& v, const CompareCons& comp) { if(comp.get_head()(vc.get_head(),c.get_head()(v)))return true; if(comp.get_head()(c.get_head()(v),vc.get_head()))return false; return compare_ckey_cval< typename KeyCons::tail_type,Value, typename ValCons::tail_type, typename CompareCons::tail_type >::compare(vc.get_tail(),c.get_tail(),v,comp.get_tail()); } }; template < typename KeyCons,typename Value, typename ValCons,typename CompareCons > struct compare_ckey_cval: mpl::if_< mpl::or_< is_same, is_same >, compare_ckey_cval_terminal, compare_ckey_cval_normal >::type { }; template struct hash_ckey; template struct hash_ckey_terminal { static std::size_t hash( const KeyCons&,const Value&,const HashCons&,std::size_t carry) { return carry; } }; template struct hash_ckey_normal { static std::size_t hash( const KeyCons& c,const Value& v,const HashCons& h,std::size_t carry=0) { carry^=h.get_head()(c.get_head()(v))+0x9e3779b9+(carry<<6)+(carry>>2); return hash_ckey< typename KeyCons::tail_type,Value, typename HashCons::tail_type >::hash(c.get_tail(),v,h.get_tail(),carry); } }; template struct hash_ckey: mpl::if_< is_same, hash_ckey_terminal, hash_ckey_normal >::type { }; template struct hash_cval; template struct hash_cval_terminal { static std::size_t hash(const ValCons&,const HashCons&,std::size_t carry) { return carry; } }; template struct hash_cval_normal { static std::size_t hash( const ValCons& vc,const HashCons& h,std::size_t carry=0) { carry^=h.get_head()(vc.get_head())+0x9e3779b9+(carry<<6)+(carry>>2); return hash_cval< typename ValCons::tail_type, typename HashCons::tail_type >::hash(vc.get_tail(),h.get_tail(),carry); } }; template struct hash_cval: mpl::if_< is_same, hash_cval_terminal, hash_cval_normal >::type { }; } # 571 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 3 4 template struct composite_key_result { typedef CompositeKey composite_key_type; typedef typename composite_key_type::value_type value_type; composite_key_result( const composite_key_type& composite_key_,const value_type& value_): composite_key(composite_key_),value(value_) {} const composite_key_type& composite_key; const value_type& value; }; # 602 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 3 4 template< typename Value, typename KeyFromValue0 , typename KeyFromValue1 =tuples::null_type , typename KeyFromValue2 =tuples::null_type , typename KeyFromValue3 =tuples::null_type , typename KeyFromValue4 =tuples::null_type , typename KeyFromValue5 =tuples::null_type , typename KeyFromValue6 =tuples::null_type , typename KeyFromValue7 =tuples::null_type , typename KeyFromValue8 =tuples::null_type , typename KeyFromValue9 =tuples::null_type > struct composite_key: private tuple< KeyFromValue0 , KeyFromValue1 , KeyFromValue2 , KeyFromValue3 , KeyFromValue4 , KeyFromValue5 , KeyFromValue6 , KeyFromValue7 , KeyFromValue8 , KeyFromValue9> { private: typedef tuple< KeyFromValue0 , KeyFromValue1 , KeyFromValue2 , KeyFromValue3 , KeyFromValue4 , KeyFromValue5 , KeyFromValue6 , KeyFromValue7 , KeyFromValue8 , KeyFromValue9> super; public: typedef super key_extractor_tuple; typedef Value value_type; typedef composite_key_result result_type; composite_key( const KeyFromValue0& k0 = KeyFromValue0() , const KeyFromValue1& k1 = KeyFromValue1() , const KeyFromValue2& k2 = KeyFromValue2() , const KeyFromValue3& k3 = KeyFromValue3() , const KeyFromValue4& k4 = KeyFromValue4() , const KeyFromValue5& k5 = KeyFromValue5() , const KeyFromValue6& k6 = KeyFromValue6() , const KeyFromValue7& k7 = KeyFromValue7() , const KeyFromValue8& k8 = KeyFromValue8() , const KeyFromValue9& k9 = KeyFromValue9()): super( k0 , k1 , k2 , k3 , k4 , k5 , k6 , k7 , k8 , k9) {} composite_key(const key_extractor_tuple& x):super(x){} const key_extractor_tuple& key_extractors()const{return *this;} key_extractor_tuple& key_extractors(){return *this;} template typename disable_if< is_convertible,result_type>::type operator()(const ChainedPtr& x)const { return operator()(*x); } result_type operator()(const value_type& x)const { return result_type(*this,x); } result_type operator()(const reference_wrapper& x)const { return result_type(*this,x.get()); } result_type operator()(const reference_wrapper& x,int=0)const { return result_type(*this,x.get()); } }; template inline bool operator==( const composite_key_result& x, const composite_key_result& y) { typedef typename CompositeKey1::key_extractor_tuple key_extractor_tuple1; typedef typename CompositeKey1::value_type value_type1; typedef typename CompositeKey2::key_extractor_tuple key_extractor_tuple2; typedef typename CompositeKey2::value_type value_type2; static_assert(tuples::length::value== tuples::length::value, "tuples::length::value== tuples::length::value") ; return detail::equal_ckey_ckey< key_extractor_tuple1,value_type1, key_extractor_tuple2,value_type2, detail::generic_operator_equal_tuple >::compare( x.composite_key.key_extractors(),x.value, y.composite_key.key_extractors(),y.value, detail::generic_operator_equal_tuple()); } template< typename CompositeKey, typename Value0 , typename Value1 , typename Value2 , typename Value3 , typename Value4 , typename Value5 , typename Value6 , typename Value7 , typename Value8 , typename Value9 > inline bool operator==( const composite_key_result& x, const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& y) { typedef typename CompositeKey::key_extractor_tuple key_extractor_tuple; typedef typename CompositeKey::value_type value_type; typedef tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9> key_tuple; static_assert(tuples::length::value== tuples::length::value, "tuples::length::value== tuples::length::value") ; return detail::equal_ckey_cval< key_extractor_tuple,value_type, key_tuple,detail::generic_operator_equal_tuple >::compare( x.composite_key.key_extractors(),x.value, y,detail::generic_operator_equal_tuple()); } template < typename Value0 , typename Value1 , typename Value2 , typename Value3 , typename Value4 , typename Value5 , typename Value6 , typename Value7 , typename Value8 , typename Value9, typename CompositeKey > inline bool operator==( const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& x, const composite_key_result& y) { typedef typename CompositeKey::key_extractor_tuple key_extractor_tuple; typedef typename CompositeKey::value_type value_type; typedef tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9> key_tuple; static_assert(tuples::length::value== tuples::length::value, "tuples::length::value== tuples::length::value") ; return detail::equal_ckey_cval< key_extractor_tuple,value_type, key_tuple,detail::generic_operator_equal_tuple >::compare( x,y.composite_key.key_extractors(), y.value,detail::generic_operator_equal_tuple()); } template inline bool operator<( const composite_key_result& x, const composite_key_result& y) { typedef typename CompositeKey1::key_extractor_tuple key_extractor_tuple1; typedef typename CompositeKey1::value_type value_type1; typedef typename CompositeKey2::key_extractor_tuple key_extractor_tuple2; typedef typename CompositeKey2::value_type value_type2; return detail::compare_ckey_ckey< key_extractor_tuple1,value_type1, key_extractor_tuple2,value_type2, detail::generic_operator_less_tuple >::compare( x.composite_key.key_extractors(),x.value, y.composite_key.key_extractors(),y.value, detail::generic_operator_less_tuple()); } template < typename CompositeKey, typename Value0 , typename Value1 , typename Value2 , typename Value3 , typename Value4 , typename Value5 , typename Value6 , typename Value7 , typename Value8 , typename Value9 > inline bool operator<( const composite_key_result& x, const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& y) { typedef typename CompositeKey::key_extractor_tuple key_extractor_tuple; typedef typename CompositeKey::value_type value_type; typedef tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9> key_tuple; return detail::compare_ckey_cval< key_extractor_tuple,value_type, key_tuple,detail::generic_operator_less_tuple >::compare( x.composite_key.key_extractors(),x.value, y,detail::generic_operator_less_tuple()); } template < typename Value0 , typename Value1 , typename Value2 , typename Value3 , typename Value4 , typename Value5 , typename Value6 , typename Value7 , typename Value8 , typename Value9, typename CompositeKey > inline bool operator<( const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& x, const composite_key_result& y) { typedef typename CompositeKey::key_extractor_tuple key_extractor_tuple; typedef typename CompositeKey::value_type value_type; typedef tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9> key_tuple; return detail::compare_ckey_cval< key_extractor_tuple,value_type, key_tuple,detail::generic_operator_less_tuple >::compare( x,y.composite_key.key_extractors(), y.value,detail::generic_operator_less_tuple()); } # 821 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 3 4 template inline bool operator!=(const composite_key_result& x,const composite_key_result& y) { return !(x==y); } template inline bool operator>(const composite_key_result& x,const composite_key_result& y) { return y inline bool operator>=(const composite_key_result& x,const composite_key_result& y) { return !(x inline bool operator<=(const composite_key_result& x,const composite_key_result& y) { return !(y inline bool operator!=(const composite_key_result& x,const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& y) { return !(x==y); } template inline bool operator>(const composite_key_result& x,const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& y) { return y inline bool operator>=(const composite_key_result& x,const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& y) { return !(x inline bool operator<=(const composite_key_result& x,const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& y) { return !(y inline bool operator!=(const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& x,const composite_key_result& y) { return !(x==y); } template< typename Value0 , typename Value1 , typename Value2 , typename Value3 , typename Value4 , typename Value5 , typename Value6 , typename Value7 , typename Value8 , typename Value9,typename CompositeKey> inline bool operator>(const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& x,const composite_key_result& y) { return y inline bool operator>=(const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& x,const composite_key_result& y) { return !(x inline bool operator<=(const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& x,const composite_key_result& y) { return !(y struct composite_key_equal_to: private tuple< Pred0 , Pred1 , Pred2 , Pred3 , Pred4 , Pred5 , Pred6 , Pred7 , Pred8 , Pred9> { private: typedef tuple< Pred0 , Pred1 , Pred2 , Pred3 , Pred4 , Pred5 , Pred6 , Pred7 , Pred8 , Pred9> super; public: typedef super key_eq_tuple; composite_key_equal_to( const Pred0& k0 = Pred0() , const Pred1& k1 = Pred1() , const Pred2& k2 = Pred2() , const Pred3& k3 = Pred3() , const Pred4& k4 = Pred4() , const Pred5& k5 = Pred5() , const Pred6& k6 = Pred6() , const Pred7& k7 = Pred7() , const Pred8& k8 = Pred8() , const Pred9& k9 = Pred9()): super( k0 , k1 , k2 , k3 , k4 , k5 , k6 , k7 , k8 , k9) {} composite_key_equal_to(const key_eq_tuple& x):super(x){} const key_eq_tuple& key_eqs()const{return *this;} key_eq_tuple& key_eqs(){return *this;} template bool operator()( const composite_key_result & x, const composite_key_result & y)const { typedef typename CompositeKey1::key_extractor_tuple key_extractor_tuple1; typedef typename CompositeKey1::value_type value_type1; typedef typename CompositeKey2::key_extractor_tuple key_extractor_tuple2; typedef typename CompositeKey2::value_type value_type2; static_assert(tuples::length::value<= tuples::length::value&& tuples::length::value== tuples::length::value, "tuples::length::value<= tuples::length::value&& tuples::length::value== tuples::length::value") ; return detail::equal_ckey_ckey< key_extractor_tuple1,value_type1, key_extractor_tuple2,value_type2, key_eq_tuple >::compare( x.composite_key.key_extractors(),x.value, y.composite_key.key_extractors(),y.value, key_eqs()); } template < typename CompositeKey, typename Value0 , typename Value1 , typename Value2 , typename Value3 , typename Value4 , typename Value5 , typename Value6 , typename Value7 , typename Value8 , typename Value9 > bool operator()( const composite_key_result& x, const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& y)const { typedef typename CompositeKey::key_extractor_tuple key_extractor_tuple; typedef typename CompositeKey::value_type value_type; typedef tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9> key_tuple; static_assert(tuples::length::value<= tuples::length::value&& tuples::length::value== tuples::length::value, "tuples::length::value<= tuples::length::value&& tuples::length::value== tuples::length::value") ; return detail::equal_ckey_cval< key_extractor_tuple,value_type, key_tuple,key_eq_tuple >::compare(x.composite_key.key_extractors(),x.value,y,key_eqs()); } template < typename Value0 , typename Value1 , typename Value2 , typename Value3 , typename Value4 , typename Value5 , typename Value6 , typename Value7 , typename Value8 , typename Value9, typename CompositeKey > bool operator()( const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& x, const composite_key_result& y)const { typedef typename CompositeKey::key_extractor_tuple key_extractor_tuple; typedef typename CompositeKey::value_type value_type; typedef tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9> key_tuple; static_assert(tuples::length::value<= tuples::length::value&& tuples::length::value== tuples::length::value, "tuples::length::value<= tuples::length::value&& tuples::length::value== tuples::length::value") ; return detail::equal_ckey_cval< key_extractor_tuple,value_type, key_tuple,key_eq_tuple >::compare(x,y.composite_key.key_extractors(),y.value,key_eqs()); } }; template < typename Compare0 , typename Compare1 =tuples::null_type , typename Compare2 =tuples::null_type , typename Compare3 =tuples::null_type , typename Compare4 =tuples::null_type , typename Compare5 =tuples::null_type , typename Compare6 =tuples::null_type , typename Compare7 =tuples::null_type , typename Compare8 =tuples::null_type , typename Compare9 =tuples::null_type > struct composite_key_compare: private tuple< Compare0 , Compare1 , Compare2 , Compare3 , Compare4 , Compare5 , Compare6 , Compare7 , Compare8 , Compare9> { private: typedef tuple< Compare0 , Compare1 , Compare2 , Compare3 , Compare4 , Compare5 , Compare6 , Compare7 , Compare8 , Compare9> super; public: typedef super key_comp_tuple; composite_key_compare( const Compare0& k0 = Compare0() , const Compare1& k1 = Compare1() , const Compare2& k2 = Compare2() , const Compare3& k3 = Compare3() , const Compare4& k4 = Compare4() , const Compare5& k5 = Compare5() , const Compare6& k6 = Compare6() , const Compare7& k7 = Compare7() , const Compare8& k8 = Compare8() , const Compare9& k9 = Compare9()): super( k0 , k1 , k2 , k3 , k4 , k5 , k6 , k7 , k8 , k9) {} composite_key_compare(const key_comp_tuple& x):super(x){} const key_comp_tuple& key_comps()const{return *this;} key_comp_tuple& key_comps(){return *this;} template bool operator()( const composite_key_result & x, const composite_key_result & y)const { typedef typename CompositeKey1::key_extractor_tuple key_extractor_tuple1; typedef typename CompositeKey1::value_type value_type1; typedef typename CompositeKey2::key_extractor_tuple key_extractor_tuple2; typedef typename CompositeKey2::value_type value_type2; static_assert(tuples::length::value<= tuples::length::value|| tuples::length::value<= tuples::length::value, "tuples::length::value<= tuples::length::value|| tuples::length::value<= tuples::length::value") ; return detail::compare_ckey_ckey< key_extractor_tuple1,value_type1, key_extractor_tuple2,value_type2, key_comp_tuple >::compare( x.composite_key.key_extractors(),x.value, y.composite_key.key_extractors(),y.value, key_comps()); } template bool operator()( const composite_key_result& x, const Value& y)const { return operator()(x,make_tuple(cref(y))); } template < typename CompositeKey, typename Value0 , typename Value1 , typename Value2 , typename Value3 , typename Value4 , typename Value5 , typename Value6 , typename Value7 , typename Value8 , typename Value9 > bool operator()( const composite_key_result& x, const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& y)const { typedef typename CompositeKey::key_extractor_tuple key_extractor_tuple; typedef typename CompositeKey::value_type value_type; typedef tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9> key_tuple; static_assert(tuples::length::value<= tuples::length::value|| tuples::length::value<= tuples::length::value, "tuples::length::value<= tuples::length::value|| tuples::length::value<= tuples::length::value") ; return detail::compare_ckey_cval< key_extractor_tuple,value_type, key_tuple,key_comp_tuple >::compare(x.composite_key.key_extractors(),x.value,y,key_comps()); } template bool operator()( const Value& x, const composite_key_result& y)const { return operator()(make_tuple(cref(x)),y); } template < typename Value0 , typename Value1 , typename Value2 , typename Value3 , typename Value4 , typename Value5 , typename Value6 , typename Value7 , typename Value8 , typename Value9, typename CompositeKey > bool operator()( const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& x, const composite_key_result& y)const { typedef typename CompositeKey::key_extractor_tuple key_extractor_tuple; typedef typename CompositeKey::value_type value_type; typedef tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9> key_tuple; static_assert(tuples::length::value<= tuples::length::value|| tuples::length::value<= tuples::length::value, "tuples::length::value<= tuples::length::value|| tuples::length::value<= tuples::length::value") ; return detail::compare_ckey_cval< key_extractor_tuple,value_type, key_tuple,key_comp_tuple >::compare(x,y.composite_key.key_extractors(),y.value,key_comps()); } }; template < typename Hash0 , typename Hash1 =tuples::null_type , typename Hash2 =tuples::null_type , typename Hash3 =tuples::null_type , typename Hash4 =tuples::null_type , typename Hash5 =tuples::null_type , typename Hash6 =tuples::null_type , typename Hash7 =tuples::null_type , typename Hash8 =tuples::null_type , typename Hash9 =tuples::null_type > struct composite_key_hash: private tuple< Hash0 , Hash1 , Hash2 , Hash3 , Hash4 , Hash5 , Hash6 , Hash7 , Hash8 , Hash9> { private: typedef tuple< Hash0 , Hash1 , Hash2 , Hash3 , Hash4 , Hash5 , Hash6 , Hash7 , Hash8 , Hash9> super; public: typedef super key_hasher_tuple; composite_key_hash( const Hash0& k0 = Hash0() , const Hash1& k1 = Hash1() , const Hash2& k2 = Hash2() , const Hash3& k3 = Hash3() , const Hash4& k4 = Hash4() , const Hash5& k5 = Hash5() , const Hash6& k6 = Hash6() , const Hash7& k7 = Hash7() , const Hash8& k8 = Hash8() , const Hash9& k9 = Hash9()): super( k0 , k1 , k2 , k3 , k4 , k5 , k6 , k7 , k8 , k9) {} composite_key_hash(const key_hasher_tuple& x):super(x){} const key_hasher_tuple& key_hash_functions()const{return *this;} key_hasher_tuple& key_hash_functions(){return *this;} template std::size_t operator()(const composite_key_result & x)const { typedef typename CompositeKey::key_extractor_tuple key_extractor_tuple; typedef typename CompositeKey::value_type value_type; static_assert(tuples::length::value== tuples::length::value, "tuples::length::value== tuples::length::value") ; return detail::hash_ckey< key_extractor_tuple,value_type, key_hasher_tuple >::hash(x.composite_key.key_extractors(),x.value,key_hash_functions()); } template< typename Value0 , typename Value1 , typename Value2 , typename Value3 , typename Value4 , typename Value5 , typename Value6 , typename Value7 , typename Value8 , typename Value9> std::size_t operator()( const tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9>& x)const { typedef tuple< Value0 , Value1 , Value2 , Value3 , Value4 , Value5 , Value6 , Value7 , Value8 , Value9> key_tuple; static_assert(tuples::length::value== tuples::length::value, "tuples::length::value== tuples::length::value") ; return detail::hash_cval< key_tuple,key_hasher_tuple >::hash(x,key_hash_functions()); } }; # 1140 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 3 4 template struct composite_key_result_equal_to: private composite_key_equal_to< typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,0 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,1 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,2 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,3 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,4 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,5 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,6 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,7 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,8 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,9 >::type > { private: typedef composite_key_equal_to< typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,0 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,1 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,2 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,3 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,4 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,5 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,6 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,7 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,8 >::type , typename detail::nth_composite_key_equal_to< typename CompositeKeyResult::composite_key_type,9 >::type > super; public: typedef CompositeKeyResult first_argument_type; typedef first_argument_type second_argument_type; typedef bool result_type; using super::operator(); }; # 1166 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 3 4 template struct composite_key_result_less: private composite_key_compare< typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,0 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,1 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,2 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,3 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,4 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,5 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,6 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,7 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,8 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,9 >::type > { private: typedef composite_key_compare< typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,0 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,1 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,2 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,3 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,4 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,5 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,6 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,7 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,8 >::type , typename detail::nth_composite_key_less< typename CompositeKeyResult::composite_key_type,9 >::type > super; public: typedef CompositeKeyResult first_argument_type; typedef first_argument_type second_argument_type; typedef bool result_type; using super::operator(); }; # 1192 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 3 4 template struct composite_key_result_greater: private composite_key_compare< typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,0 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,1 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,2 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,3 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,4 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,5 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,6 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,7 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,8 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,9 >::type > { private: typedef composite_key_compare< typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,0 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,1 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,2 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,3 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,4 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,5 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,6 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,7 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,8 >::type , typename detail::nth_composite_key_greater< typename CompositeKeyResult::composite_key_type,9 >::type > super; public: typedef CompositeKeyResult first_argument_type; typedef first_argument_type second_argument_type; typedef bool result_type; using super::operator(); }; # 1218 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/composite_key.hpp" 3 4 template struct composite_key_result_hash: private composite_key_hash< typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,0 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,1 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,2 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,3 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,4 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,5 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,6 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,7 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,8 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,9 >::type > { private: typedef composite_key_hash< typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,0 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,1 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,2 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,3 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,4 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,5 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,6 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,7 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,8 >::type , typename detail::nth_composite_key_hash< typename CompositeKeyResult::composite_key_type,9 >::type > super; public: typedef CompositeKeyResult argument_type; typedef std::size_t result_type; using super::operator(); }; } } namespace std{ template struct equal_to >: boost::multi_index::composite_key_result_equal_to< boost::multi_index::composite_key_result > { }; template struct less >: boost::multi_index::composite_key_result_less< boost::multi_index::composite_key_result > { }; template struct greater >: boost::multi_index::composite_key_result_greater< boost::multi_index::composite_key_result > { }; } namespace boost{ template struct hash >: boost::multi_index::composite_key_result_hash< boost::multi_index::composite_key_result > { }; } # 13 "src/bp/bp_book.h" 2 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/bucket_array.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/bucket_array.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/hash_index_node.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/hash_index_node.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ template struct hashed_index_node_impl { typedef typename prevent_eti< Allocator, typename boost::detail::allocator::rebind_to< Allocator,hashed_index_node_impl >::type >::type::pointer pointer; typedef typename prevent_eti< Allocator, typename boost::detail::allocator::rebind_to< Allocator,hashed_index_node_impl >::type >::type::const_pointer const_pointer; pointer& next(){return next_;} pointer next()const{return next_;} static void increment(pointer& x,pointer bbegin,pointer bend) { std::less_equal leq; x=x->next(); if(leq(bbegin,x)&&leq(x,bend)){ do{ ++x; }while(x->next()==x); x=x->next(); } } static void link(pointer x,pointer pos) { x->next()=pos->next(); pos->next()=x; }; static void unlink(pointer x) { pointer y=x->next(); while(y->next()!=x){y=y->next();} y->next()=x->next(); } static pointer prev(pointer x) { pointer y=x->next(); while(y->next()!=x){y=y->next();} return y; } static void unlink_next(pointer x) { x->next()=x->next()->next(); } private: pointer next_; }; template struct hashed_index_node_trampoline: prevent_eti< Super, hashed_index_node_impl< typename boost::detail::allocator::rebind_to< typename Super::allocator_type, char >::type > >::type { typedef typename prevent_eti< Super, hashed_index_node_impl< typename boost::detail::allocator::rebind_to< typename Super::allocator_type, char >::type > >::type impl_type; }; template struct hashed_index_node:Super,hashed_index_node_trampoline { private: typedef hashed_index_node_trampoline trampoline; public: typedef typename trampoline::impl_type impl_type; typedef typename trampoline::pointer impl_pointer; typedef typename trampoline::const_pointer const_impl_pointer; impl_pointer impl() { return static_cast( static_cast(static_cast(this))); } const_impl_pointer impl()const { return static_cast( static_cast(static_cast(this))); } static hashed_index_node* from_impl(impl_pointer x) { return static_cast( static_cast(&*x)); } static const hashed_index_node* from_impl(const_impl_pointer x) { return static_cast( static_cast(&*x)); } static void increment( hashed_index_node*& x,impl_pointer bbegin,impl_pointer bend) { impl_pointer xi=x->impl(); trampoline::increment(xi,bbegin,bend); x=from_impl(xi); } }; } } } # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/bucket_array.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/bucket_array.hpp" 2 3 4 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/bucket_array.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ class bucket_array_base:private noncopyable { protected: inline static std::size_t next_prime(std::size_t n) { static const std::size_t prime_list[]={ 53ul, 97ul, 193ul, 389ul, 769ul, 1543ul, 3079ul, 6151ul, 12289ul, 24593ul, 49157ul, 98317ul, 196613ul, 393241ul, 786433ul, 1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul, 50331653ul, 100663319ul, 201326611ul, 402653189ul, 805306457ul, 1610612741ul, 3221225473ul, # 62 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/bucket_array.hpp" 3 4 6442450939ul, 12884901893ul, 25769803751ul, 51539607551ul, 103079215111ul, 206158430209ul, 412316860441ul, 824633720831ul, 1649267441651ul, 3298534883309ul, 6597069766657ul, 13194139533299ul, 26388279066623ul, 52776558133303ul, 105553116266489ul, 211106232532969ul, 422212465066001ul, 844424930131963ul, 1688849860263953ul, 3377699720527861ul, 6755399441055731ul, 13510798882111483ul, 27021597764222939ul, 54043195528445957ul, 108086391056891903ul, 216172782113783843ul, 432345564227567621ul, 864691128455135207ul, 1729382256910270481ul, 3458764513820540933ul, 6917529027641081903ul, 13835058055282163729ul, 18446744073709551557ul }; static const std::size_t prime_list_size= sizeof(prime_list)/sizeof(prime_list[0]); std::size_t const *bound= std::lower_bound(prime_list,prime_list+prime_list_size,n); if(bound==prime_list+prime_list_size)bound--; return *bound; } }; template class bucket_array:public bucket_array_base { typedef typename prevent_eti< Allocator, hashed_index_node_impl< typename boost::detail::allocator::rebind_to< Allocator, char >::type > >::type node_impl_type; public: typedef typename node_impl_type::pointer pointer; bucket_array(const Allocator& al,pointer end_,std::size_t size): size_(bucket_array_base::next_prime(size)), spc(al,size_+1) { clear(); end()->next()=end_; end_->next()=end(); } std::size_t size()const { return size_; } std::size_t position(std::size_t hash)const { return hash%size_; } pointer begin()const{return buckets();} pointer end()const{return buckets()+size_;} pointer at(std::size_t n)const{return buckets()+n;} std::size_t first_nonempty(std::size_t n)const { for(;;++n){ pointer x=at(n); if(x->next()!=x)return n; } } void clear() { for(pointer x=begin(),y=end();x!=y;++x)x->next()=x; } void swap(bucket_array& x) { std::swap(size_,x.size_); spc.swap(x.spc); } private: std::size_t size_; auto_space spc; pointer buckets()const { return spc.data(); } friend class boost::serialization::access; template void serialize(Archive&,const unsigned int) { } }; template void swap(bucket_array& x,bucket_array& y) { x.swap(y); } } } # 187 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/bucket_array.hpp" 3 4 namespace multi_index{ namespace detail{ template inline void load_construct_data( Archive&,boost::multi_index::detail::bucket_array*, const unsigned int) { throw_exception( archive::archive_exception(archive::archive_exception::other_exception)); } } } } # 27 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/hash_index_iterator.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/hash_index_iterator.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ template class hashed_index_iterator: public forward_iterator_helper< hashed_index_iterator, typename Node::value_type, std::ptrdiff_t, const typename Node::value_type*, const typename Node::value_type&> { public: hashed_index_iterator(){} hashed_index_iterator(Node* node_,BucketArray* buckets_): node(node_),buckets(buckets_) {} const typename Node::value_type& operator*()const { return node->value(); } hashed_index_iterator& operator++() { Node::increment(node,buckets->begin(),buckets->end()); return *this; } template void serialize( Archive &ar, const unsigned int file_version ){ boost::serialization::split_member(ar, *this, file_version); } typedef typename Node::base_type node_base_type; template void save(Archive& ar,const unsigned int)const { node_base_type* bnode=node; ar< void load(Archive& ar,const unsigned int) { node_base_type* bnode; ar>>serialization::make_nvp("pointer",bnode); node=static_cast(bnode); ar>>serialization::make_nvp("pointer",buckets); } typedef Node node_type; Node* get_node()const{return node;} private: Node* node; BucketArray* buckets; }; template bool operator==( const hashed_index_iterator& x, const hashed_index_iterator& y) { return x.get_node()==y.get_node(); } } } } # 28 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/modify_key_adaptor.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/modify_key_adaptor.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ template struct modify_key_adaptor { modify_key_adaptor(Fun f_,KeyFromValue kfv_):f(f_),kfv(kfv_){} void operator()(Value& x) { f(kfv(x)); } private: Fun f; KeyFromValue kfv; }; } } } # 30 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/safe_ctr_proxy.hpp" 1 3 4 # 31 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index_fwd.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index_fwd.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/hash_index_args.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/hash_index_args.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash.hpp" 1 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float.hpp" 1 3 4 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/float_functions.hpp" 1 3 4 # 10 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/float_functions.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/no_tr1/cmath.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/config/no_tr1/cmath.hpp" 3 4 # 1 "/usr/include/c++/4.5/cmath" 1 3 4 # 41 "/usr/include/c++/4.5/cmath" 3 4 # 42 "/usr/include/c++/4.5/cmath" 3 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/config/no_tr1/cmath.hpp" 2 3 4 # 11 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/float_functions.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/float_functions.hpp" 3 4 namespace boost { namespace hash_detail { struct not_found { inline operator float() const { return 0; } inline operator long double() const { return 0; } }; template struct is; template <> struct is { char x[10]; }; template <> struct is { char x[20]; }; template <> struct is { char x[30]; }; template <> struct is { char x[40]; }; template is float_type(T); template struct call_ldexp { typedef double float_type; inline double operator()(double a, int b) const { using namespace std; return ldexp(a, b); } }; template struct call_frexp { typedef double float_type; inline double operator()(double a, int* b) const { using namespace std; return frexp(a, b); } }; } } # 87 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/float_functions.hpp" 3 4 namespace boost_hash_detect_float_functions { template boost::hash_detail::not_found ldexp(Float, int); template boost::hash_detail::not_found frexp(Float, int*); } # 188 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/float_functions.hpp" 3 4 namespace boost_hash_detect_float_functions { template boost::hash_detail::not_found ldexpf(Float, int); } namespace boost { namespace hash_detail { namespace ldexpf_detect { using namespace std; using namespace boost_hash_detect_float_functions; struct check { static float x; static int y; static const bool cpp = sizeof(float_type(ldexp(x,y))) == sizeof(is); static const bool c99 = sizeof(float_type(ldexpf(x,y))) == sizeof(is); }; } template struct call_c99_ldexpf : boost::hash_detail::call_ldexp {}; template <> struct call_c99_ldexpf { typedef float float_type; template inline float operator()(float a, T b) const { using namespace std; return ldexpf(a, b); } }; template struct call_cpp_ldexpf : call_c99_ldexpf< ::boost::hash_detail::ldexpf_detect::check::c99 > {}; template <> struct call_cpp_ldexpf { typedef float float_type; template inline float operator()(float a, T b) const { using namespace std; return ldexp(a, b); } }; template <> struct call_ldexp : call_cpp_ldexpf< ::boost::hash_detail::ldexpf_detect::check::cpp > {}; } } namespace boost_hash_detect_float_functions { template boost::hash_detail::not_found ldexpl(Float, int); } namespace boost { namespace hash_detail { namespace ldexpl_detect { using namespace std; using namespace boost_hash_detect_float_functions; struct check { static long double x; static int y; static const bool cpp = sizeof(float_type(ldexp(x,y))) == sizeof(is); static const bool c99 = sizeof(float_type(ldexpl(x,y))) == sizeof(is); }; } template struct call_c99_ldexpl : boost::hash_detail::call_ldexp {}; template <> struct call_c99_ldexpl { typedef long double float_type; template inline long double operator()(long double a, T b) const { using namespace std; return ldexpl(a, b); } }; template struct call_cpp_ldexpl : call_c99_ldexpl< ::boost::hash_detail::ldexpl_detect::check::c99 > {}; template <> struct call_cpp_ldexpl { typedef long double float_type; template inline long double operator()(long double a, T b) const { using namespace std; return ldexp(a, b); } }; template <> struct call_ldexp : call_cpp_ldexpl< ::boost::hash_detail::ldexpl_detect::check::cpp > {}; } } namespace boost_hash_detect_float_functions { template boost::hash_detail::not_found frexpf(Float, int*); } namespace boost { namespace hash_detail { namespace frexpf_detect { using namespace std; using namespace boost_hash_detect_float_functions; struct check { static float x; static int* y; static const bool cpp = sizeof(float_type(frexp(x,y))) == sizeof(is); static const bool c99 = sizeof(float_type(frexpf(x,y))) == sizeof(is); }; } template struct call_c99_frexpf : boost::hash_detail::call_frexp {}; template <> struct call_c99_frexpf { typedef float float_type; template inline float operator()(float a, T b) const { using namespace std; return frexpf(a, b); } }; template struct call_cpp_frexpf : call_c99_frexpf< ::boost::hash_detail::frexpf_detect::check::c99 > {}; template <> struct call_cpp_frexpf { typedef float float_type; template inline float operator()(float a, T b) const { using namespace std; return frexp(a, b); } }; template <> struct call_frexp : call_cpp_frexpf< ::boost::hash_detail::frexpf_detect::check::cpp > {}; } } namespace boost_hash_detect_float_functions { template boost::hash_detail::not_found frexpl(Float, int*); } namespace boost { namespace hash_detail { namespace frexpl_detect { using namespace std; using namespace boost_hash_detect_float_functions; struct check { static long double x; static int* y; static const bool cpp = sizeof(float_type(frexp(x,y))) == sizeof(is); static const bool c99 = sizeof(float_type(frexpl(x,y))) == sizeof(is); }; } template struct call_c99_frexpl : boost::hash_detail::call_frexp {}; template <> struct call_c99_frexpl { typedef long double float_type; template inline long double operator()(long double a, T b) const { using namespace std; return frexpl(a, b); } }; template struct call_cpp_frexpl : call_c99_frexpl< ::boost::hash_detail::frexpl_detect::check::c99 > {}; template <> struct call_cpp_frexpl { typedef long double float_type; template inline long double operator()(long double a, T b) const { using namespace std; return frexp(a, b); } }; template <> struct call_frexp : call_cpp_frexpl< ::boost::hash_detail::frexpl_detect::check::cpp > {}; } } namespace boost { namespace hash_detail { template struct select_hash_type_impl { typedef double type; }; template <> struct select_hash_type_impl { typedef float type; }; template <> struct select_hash_type_impl { typedef long double type; }; template struct select_hash_type : select_hash_type_impl< typename call_ldexp::float_type, typename call_frexp::float_type > {}; } } # 15 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/limits.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/limits.hpp" 3 4 namespace boost { namespace hash_detail { template struct limits : std::numeric_limits {}; # 58 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/limits.hpp" 3 4 } } # 16 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/integer/static_log2.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/integer/static_log2.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/integer_fwd.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/integer_fwd.hpp" 3 4 # 1 "/usr/include/c++/4.5/climits" 1 3 4 # 41 "/usr/include/c++/4.5/climits" 3 4 # 42 "/usr/include/c++/4.5/climits" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h" 1 3 4 # 44 "/usr/include/c++/4.5/climits" 2 3 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/integer_fwd.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 14 "/home/jas/.tt/ttsetup/opt/include/boost/integer_fwd.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/cstdint.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/integer_fwd.hpp" 2 3 4 namespace boost { typedef boost::uintmax_t static_min_max_unsigned_type; typedef boost::intmax_t static_min_max_signed_type; typedef boost::uintmax_t static_log2_argument_type; typedef int static_log2_result_type; # 42 "/home/jas/.tt/ttsetup/opt/include/boost/integer_fwd.hpp" 3 4 template < class T > class integer_traits; template < > class integer_traits< bool >; template < > class integer_traits< char >; template < > class integer_traits< signed char >; template < > class integer_traits< unsigned char >; template < > class integer_traits< wchar_t >; template < > class integer_traits< short >; template < > class integer_traits< unsigned short >; template < > class integer_traits< int >; template < > class integer_traits< unsigned int >; template < > class integer_traits< long >; template < > class integer_traits< unsigned long >; template < > class integer_traits< ::boost::long_long_type>; template < > class integer_traits< ::boost::ulong_long_type >; # 97 "/home/jas/.tt/ttsetup/opt/include/boost/integer_fwd.hpp" 3 4 template < typename LeastInt > struct int_fast_t; template< int Bits > struct int_t; template< int Bits > struct uint_t; template< boost::long_long_type MaxValue > struct int_max_value_t; template< boost::long_long_type MinValue > struct int_min_value_t; template< boost::ulong_long_type MaxValue > struct uint_value_t; template < std::size_t Bit > struct high_bit_mask_t; template < std::size_t Bits > struct low_bits_mask_t; template < > struct low_bits_mask_t< ::std::numeric_limits::digits >; template < > struct low_bits_mask_t< ::std::numeric_limits::digits >; template < > struct low_bits_mask_t< ::std::numeric_limits::digits >; template < > struct low_bits_mask_t< ::std::numeric_limits::digits >; template struct static_log2; template <> struct static_log2<0u>; template struct static_signed_min; template struct static_signed_max; template struct static_unsigned_min; template struct static_unsigned_max; } # 20 "/home/jas/.tt/ttsetup/opt/include/boost/integer/static_log2.hpp" 2 3 4 namespace boost { namespace detail { namespace static_log2_impl { # 44 "/home/jas/.tt/ttsetup/opt/include/boost/integer/static_log2.hpp" 3 4 typedef boost::static_log2_argument_type argument_type; typedef boost::static_log2_result_type result_type; template struct choose_initial_n { static const bool c = (argument_type(1) << n << n) != 0; static const result_type value = !c*n + choose_initial_n<2*c*n>::value ; }; template <> struct choose_initial_n<0> { static const result_type value = 0; }; const result_type n_zero = 16; const result_type initial_n = choose_initial_n::value; # 84 "/home/jas/.tt/ttsetup/opt/include/boost/integer/static_log2.hpp" 3 4 template struct static_log2_impl { static const bool c = (x >> n) > 0; static const result_type value = c*n + (static_log2_impl< (x>>c*n), n/2 >::value) ; }; template <> struct static_log2_impl<1, 0> { static const result_type value = 0; }; } } template struct static_log2 { static const static_log2_result_type value = detail::static_log2_impl::static_log2_impl::value ; }; template <> struct static_log2<0> { }; } # 17 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/cstdint.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/assert.hpp" 1 3 4 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/assert.hpp" 3 4 # 1 "/usr/include/assert.h" 1 3 4 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/assert.hpp" 2 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float.hpp" 2 3 4 # 30 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float_generic.hpp" 1 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float_generic.hpp" 3 4 namespace boost { namespace hash_detail { inline void hash_float_combine(std::size_t& seed, std::size_t value) { seed ^= value + (seed<<6) + (seed>>2); } template inline std::size_t float_hash_impl2(T v) { boost::hash_detail::call_frexp frexp; boost::hash_detail::call_ldexp ldexp; int exp = 0; v = frexp(v, &exp); if(v < 0) { v = -v; exp += limits::max_exponent - limits::min_exponent; } v = ldexp(v, limits::digits); std::size_t seed = static_cast(v); v -= seed; std::size_t const length = (limits::digits * boost::static_log2::radix>::value + limits::digits - 1) / limits::digits; for(std::size_t i = 0; i != length; ++i) { v = ldexp(v, limits::digits); std::size_t part = static_cast(v); v -= part; hash_float_combine(seed, part); } hash_float_combine(seed, exp); return seed; } template inline std::size_t float_hash_impl(T v) { typedef typename select_hash_type::type type; return float_hash_impl2(static_cast(v)); } } } # 31 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float.hpp" 2 3 4 # 57 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float.hpp" 3 4 namespace boost { namespace hash_detail { template inline std::size_t float_hash_value(T v) { using namespace std; switch (fpclassify(v)) { case FP_ZERO: return 0; case FP_INFINITE: return (std::size_t)(v > 0 ? -1 : -2); case FP_NAN: return (std::size_t)(-3); case FP_NORMAL: case FP_SUBNORMAL: return float_hash_impl(v); default: ((0) ? static_cast (0) : __assert_fail ("0", "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/detail/hash_float.hpp", 76, __PRETTY_FUNCTION__)); return 0; } } } } # 16 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 2 3 4 # 34 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 3 4 namespace boost { # 48 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 3 4 std::size_t hash_value(bool); std::size_t hash_value(char); std::size_t hash_value(unsigned char); std::size_t hash_value(signed char); std::size_t hash_value(short); std::size_t hash_value(unsigned short); std::size_t hash_value(int); std::size_t hash_value(unsigned int); std::size_t hash_value(long); std::size_t hash_value(unsigned long); std::size_t hash_value(wchar_t); std::size_t hash_value(boost::long_long_type); std::size_t hash_value(boost::ulong_long_type); template std::size_t hash_value(T* const&); template< class T, unsigned N > std::size_t hash_value(const T (&x)[N]); template< class T, unsigned N > std::size_t hash_value(T (&x)[N]); std::size_t hash_value(float v); std::size_t hash_value(double v); std::size_t hash_value(long double v); template std::size_t hash_value( std::basic_string, A> const&); namespace hash_detail { template inline std::size_t hash_value_signed(T val) { const int size_t_bits = std::numeric_limits::digits; const int length = (std::numeric_limits::digits - 1) / size_t_bits; std::size_t seed = 0; T positive = val < 0 ? -1 - val : val; for(unsigned int i = length * size_t_bits; i > 0; i -= size_t_bits) { seed ^= (std::size_t) (positive >> i) + (seed<<6) + (seed>>2); } seed ^= (std::size_t) val + (seed<<6) + (seed>>2); return seed; } template inline std::size_t hash_value_unsigned(T val) { const int size_t_bits = std::numeric_limits::digits; const int length = (std::numeric_limits::digits - 1) / size_t_bits; std::size_t seed = 0; for(unsigned int i = length * size_t_bits; i > 0; i -= size_t_bits) { seed ^= (std::size_t) (val >> i) + (seed<<6) + (seed>>2); } seed ^= (std::size_t) val + (seed<<6) + (seed>>2); return seed; } } inline std::size_t hash_value(bool v) { return static_cast(v); } inline std::size_t hash_value(char v) { return static_cast(v); } inline std::size_t hash_value(unsigned char v) { return static_cast(v); } inline std::size_t hash_value(signed char v) { return static_cast(v); } inline std::size_t hash_value(short v) { return static_cast(v); } inline std::size_t hash_value(unsigned short v) { return static_cast(v); } inline std::size_t hash_value(int v) { return static_cast(v); } inline std::size_t hash_value(unsigned int v) { return static_cast(v); } inline std::size_t hash_value(long v) { return static_cast(v); } inline std::size_t hash_value(unsigned long v) { return static_cast(v); } inline std::size_t hash_value(wchar_t v) { return static_cast(v); } inline std::size_t hash_value(boost::long_long_type v) { return hash_detail::hash_value_signed(v); } inline std::size_t hash_value(boost::ulong_long_type v) { return hash_detail::hash_value_unsigned(v); } template std::size_t hash_value(T* const& v) { std::size_t x = static_cast( reinterpret_cast(v)); return x + (x >> 3); } # 232 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 3 4 template inline void hash_combine(std::size_t& seed, T const& v) { boost::hash hasher; seed ^= hasher(v) + 0x9e3779b9 + (seed<<6) + (seed>>2); } template inline std::size_t hash_range(It first, It last) { std::size_t seed = 0; for(; first != last; ++first) { hash_combine(seed, *first); } return seed; } template inline void hash_range(std::size_t& seed, It first, It last) { for(; first != last; ++first) { hash_combine(seed, *first); } } # 293 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 3 4 template< class T, unsigned N > inline std::size_t hash_value(const T (&x)[N]) { return hash_range(x, x + N); } template< class T, unsigned N > inline std::size_t hash_value(T (&x)[N]) { return hash_range(x, x + N); } template inline std::size_t hash_value( std::basic_string, A> const& v) { return hash_range(v.begin(), v.end()); } inline std::size_t hash_value(float v) { return boost::hash_detail::float_hash_value(v); } inline std::size_t hash_value(double v) { return boost::hash_detail::float_hash_value(v); } inline std::size_t hash_value(long double v) { return boost::hash_detail::float_hash_value(v); } # 404 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 3 4 template <> struct hash : public std::unary_function { std::size_t operator()(bool v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(char v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(signed char v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(unsigned char v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(wchar_t v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(short v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(unsigned short v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(int v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(unsigned int v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(long v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(unsigned long v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(float v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(double v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(long double v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(std::string const& v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(std::wstring const& v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(boost::long_long_type v) const { return boost::hash_value(v); } }; template <> struct hash : public std::unary_function { std::size_t operator()(boost::ulong_long_type v) const { return boost::hash_value(v); } }; # 439 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 3 4 template struct hash : public std::unary_function { std::size_t operator()(T* v) const { return boost::hash_value(v); } }; # 498 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 3 4 } # 510 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/extensions.hpp" 1 3 4 # 16 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/extensions.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/extensions.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/detail/container_fwd.hpp" 1 3 4 # 34 "/home/jas/.tt/ttsetup/opt/include/boost/detail/container_fwd.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 35 "/home/jas/.tt/ttsetup/opt/include/boost/detail/container_fwd.hpp" 2 3 4 # 60 "/home/jas/.tt/ttsetup/opt/include/boost/detail/container_fwd.hpp" 3 4 namespace std { template class allocator; template class basic_string; template struct char_traits; template class complex; } namespace std { template class deque; template class list; template class vector; template class map; template class multimap; template class set; template class multiset; template class bitset; template struct pair; } # 18 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/extensions.hpp" 2 3 4 # 31 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/extensions.hpp" 3 4 namespace boost { template std::size_t hash_value(std::pair const&); template std::size_t hash_value(std::vector const&); template std::size_t hash_value(std::list const& v); template std::size_t hash_value(std::deque const& v); template std::size_t hash_value(std::set const& v); template std::size_t hash_value(std::multiset const& v); template std::size_t hash_value(std::map const& v); template std::size_t hash_value(std::multimap const& v); template std::size_t hash_value(std::complex const&); template std::size_t hash_value(std::pair const& v) { std::size_t seed = 0; hash_combine(seed, v.first); hash_combine(seed, v.second); return seed; } template std::size_t hash_value(std::vector const& v) { return hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::list const& v) { return hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::deque const& v) { return hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::set const& v) { return hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::multiset const& v) { return hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::map const& v) { return hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::multimap const& v) { return hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::complex const& v) { boost::hash hasher; std::size_t seed = hasher(v.imag()); seed ^= hasher(v.real()) + (seed<<6) + (seed>>2); return seed; } # 170 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/extensions.hpp" 3 4 template struct hash : std::unary_function { std::size_t operator()(T const& val) const { return hash_value(val); } }; # 284 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/extensions.hpp" 3 4 } # 511 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash/hash.hpp" 2 3 4 # 7 "/home/jas/.tt/ttsetup/opt/include/boost/functional/hash.hpp" 2 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/hash_index_args.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/hash_index_args.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 49 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/hash_index_args.hpp" 3 4 template struct index_args_default_hash { typedef ::boost::hash type; }; template struct index_args_default_pred { typedef std::equal_to type; }; template struct hashed_index_args { typedef is_tag full_form; typedef typename mpl::if_< full_form, Arg1, tag< > >::type tag_list_type; typedef typename mpl::if_< full_form, Arg2, Arg1>::type key_from_value_type; typedef typename mpl::if_< full_form, Arg3, Arg2>::type supplied_hash_type; typedef typename mpl::eval_if< mpl::is_na, index_args_default_hash, mpl::identity >::type hash_type; typedef typename mpl::if_< full_form, Arg4, Arg3>::type supplied_pred_type; typedef typename mpl::eval_if< mpl::is_na, index_args_default_pred, mpl::identity >::type pred_type; static_assert(is_tag::value, "is_tag::value"); static_assert(!mpl::is_na::value, "!mpl::is_na::value"); static_assert(!mpl::is_na::value, "!mpl::is_na::value"); static_assert(!mpl::is_na::value, "!mpl::is_na::value"); }; } } } # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index_fwd.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ template< typename KeyFromValue,typename Hash,typename Pred, typename SuperMeta,typename TagList,typename Category > class hashed_index; template< typename KeyFromValue,typename Hash,typename Pred, typename SuperMeta,typename TagList,typename Category > void swap( hashed_index& x, hashed_index& y); } template< typename Arg1,typename Arg2=mpl::na, typename Arg3=mpl::na,typename Arg4=mpl::na > struct hashed_unique; template< typename Arg1,typename Arg2=mpl::na, typename Arg3=mpl::na,typename Arg4=mpl::na > struct hashed_non_unique; } } # 34 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 36 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 2 3 4 # 52 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 65 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 3 4 struct hashed_unique_tag{}; struct hashed_non_unique_tag{}; template< typename KeyFromValue,typename Hash,typename Pred, typename SuperMeta,typename TagList,typename Category > class hashed_index: protected SuperMeta::type # 88 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 3 4 { # 99 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 3 4 typedef typename SuperMeta::type super; protected: typedef hashed_index_node< typename super::node_type> node_type; private: typedef typename node_type::impl_type node_impl_type; typedef typename node_impl_type::pointer node_impl_pointer; typedef bucket_array< typename super::final_allocator_type> bucket_array_type; public: typedef typename KeyFromValue::result_type key_type; typedef typename node_type::value_type value_type; typedef KeyFromValue key_from_value; typedef Hash hasher; typedef Pred key_equal; typedef tuple ctor_args; typedef typename super::final_allocator_type allocator_type; typedef typename allocator_type::pointer pointer; typedef typename allocator_type::const_pointer const_pointer; typedef typename allocator_type::reference reference; typedef typename allocator_type::const_reference const_reference; typedef std::size_t size_type; typedef std::ptrdiff_t difference_type; # 144 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 3 4 typedef hashed_index_iterator< node_type,bucket_array_type> iterator; typedef iterator const_iterator; typedef iterator local_iterator; typedef const_iterator const_local_iterator; typedef TagList tag_list; protected: typedef typename super::final_node_type final_node_type; typedef tuples::cons< ctor_args, typename super::ctor_args_list> ctor_args_list; typedef typename mpl::push_front< typename super::index_type_list, hashed_index>::type index_type_list; typedef typename mpl::push_front< typename super::iterator_type_list, iterator>::type iterator_type_list; typedef typename mpl::push_front< typename super::const_iterator_type_list, const_iterator>::type const_iterator_type_list; typedef typename super::copy_map_type copy_map_type; typedef typename super::index_saver_type index_saver_type; typedef typename super::index_loader_type index_loader_type; private: # 188 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 3 4 typedef typename call_traits::param_type value_param_type; typedef typename call_traits< key_type>::param_type key_param_type; public: hashed_index& operator=( const hashed_index& x) { this->final()=x.final(); return *this; } allocator_type get_allocator()const { return this->final().get_allocator(); } bool empty()const{return this->final_empty_();} size_type size()const{return this->final_size_();} size_type max_size()const{return this->final_max_size_();} iterator begin() { return make_iterator( node_type::from_impl(buckets.at(first_bucket)->next())); } const_iterator begin()const { return make_iterator( node_type::from_impl(buckets.at(first_bucket)->next())); } iterator end(){return make_iterator(header());} const_iterator end()const{return make_iterator(header());} const_iterator cbegin()const{return begin();} const_iterator cend()const{return end();} iterator iterator_to(const value_type& x) { return make_iterator(node_from_value(&x)); } const_iterator iterator_to(const value_type& x)const { return make_iterator(node_from_value(&x)); } std::pair insert(value_param_type x) { ; std::pair p=this->final_insert_(x); return std::pair(make_iterator(p.first),p.second); } iterator insert(iterator position,value_param_type x) { ((void)0);; ((void)0);; ; std::pair p=this->final_insert_( x,static_cast(position.get_node())); return make_iterator(p.first); } template void insert(InputIterator first,InputIterator last) { ; iterator hint=end(); for(;first!=last;++first)hint=insert(hint,*first); } iterator erase(iterator position) { ((void)0);; ((void)0);; ((void)0);; ; this->final_erase_(static_cast(position++.get_node())); return position; } size_type erase(key_param_type k) { ; size_type s=0; std::size_t buc=buckets.position(hash(k)); node_impl_pointer x=buckets.at(buc); node_impl_pointer y=x->next(); while(y!=x){ if(eq(k,key(node_type::from_impl(y)->value()))){ bool b; do{ node_impl_pointer z=y->next(); b=z!=x&&eq( key(node_type::from_impl(y)->value()), key(node_type::from_impl(z)->value())); this->final_erase_( static_cast(node_type::from_impl(y))); y=z; ++s; }while(b); break; } y=y->next(); } return s; } iterator erase(iterator first,iterator last) { ((void)0);; ((void)0);; ((void)0);; ((void)0);; ((void)0);; ; while(first!=last){ first=erase(first); } return first; } bool replace(iterator position,value_param_type x) { ((void)0);; ((void)0);; ((void)0);; ; return this->final_replace_( x,static_cast(position.get_node())); } template bool modify(iterator position,Modifier mod) { ((void)0);; ((void)0);; ((void)0);; ; # 353 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 3 4 return this->final_modify_( mod,static_cast(position.get_node())); } template bool modify(iterator position,Modifier mod,Rollback back) { ((void)0);; ((void)0);; ((void)0);; ; # 374 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 3 4 return this->final_modify_( mod,back,static_cast(position.get_node())); } template bool modify_key(iterator position,Modifier mod) { ((void)0);; ((void)0);; ((void)0);; ; return modify( position,modify_key_adaptor(mod,key)); } template bool modify_key(iterator position,Modifier mod,Rollback back) { ((void)0);; ((void)0);; ((void)0);; ; return modify( position, modify_key_adaptor(mod,key), modify_key_adaptor(back,key)); } void clear() { ; this->final_clear_(); } void swap(hashed_index& x) { ; this->final_swap_(x.final()); } key_from_value key_extractor()const{return key;} hasher hash_function()const{return hash;} key_equal key_eq()const{return eq;} template iterator find(const CompatibleKey& k)const { return find(k,hash,eq); } template< typename CompatibleKey,typename CompatibleHash,typename CompatiblePred > iterator find( const CompatibleKey& k, const CompatibleHash& hash,const CompatiblePred& eq)const { std::size_t buc=buckets.position(hash(k)); node_impl_pointer x=buckets.at(buc); node_impl_pointer y=x->next(); while(y!=x){ if(eq(k,key(node_type::from_impl(y)->value()))){ return make_iterator(node_type::from_impl(y)); } y=y->next(); } return end(); } template size_type count(const CompatibleKey& k)const { return count(k,hash,eq); } template< typename CompatibleKey,typename CompatibleHash,typename CompatiblePred > size_type count( const CompatibleKey& k, const CompatibleHash& hash,const CompatiblePred& eq)const { size_type res=0; std::size_t buc=buckets.position(hash(k)); node_impl_pointer x=buckets.at(buc); node_impl_pointer y=x->next(); while(y!=x){ if(eq(k,key(node_type::from_impl(y)->value()))){ do{ ++res; y=y->next(); }while(y!=x&&eq(k,key(node_type::from_impl(y)->value()))); break; } y=y->next(); } return res; } template std::pair equal_range(const CompatibleKey& k)const { return equal_range(k,hash,eq); } template< typename CompatibleKey,typename CompatibleHash,typename CompatiblePred > std::pair equal_range( const CompatibleKey& k, const CompatibleHash& hash,const CompatiblePred& eq)const { std::size_t buc=buckets.position(hash(k)); node_impl_pointer x=buckets.at(buc); node_impl_pointer y=x->next(); while(y!=x){ if(eq(k,key(node_type::from_impl(y)->value()))){ node_impl_pointer y0=y; do{ y=y->next(); }while(y!=x&&eq(k,key(node_type::from_impl(y)->value()))); if(y==x){ do{ ++y; }while(y==y->next()); y=y->next(); } return std::pair( make_iterator(node_type::from_impl(y0)), make_iterator(node_type::from_impl(y))); } y=y->next(); } return std::pair(end(),end()); } size_type bucket_count()const{return buckets.size();} size_type max_bucket_count()const{return static_cast(-1);} size_type bucket_size(size_type n)const { size_type res=0; node_impl_pointer x=buckets.at(n); node_impl_pointer y=x->next(); while(y!=x){ ++res; y=y->next(); } return res; } size_type bucket(key_param_type k)const { return buckets.position(hash(k)); } local_iterator begin(size_type n) { return const_cast(this)->begin(n); } const_local_iterator begin(size_type n)const { node_impl_pointer x=buckets.at(n); node_impl_pointer y=x->next(); if(y==x)return end(); return make_iterator(node_type::from_impl(y)); } local_iterator end(size_type n) { return const_cast(this)->end(n); } const_local_iterator end(size_type n)const { node_impl_pointer x=buckets.at(n); if(x==x->next())return end(); do{ ++x; }while(x==x->next()); return make_iterator(node_type::from_impl(x->next())); } const_local_iterator cbegin(size_type n)const{return begin(n);} const_local_iterator cend(size_type n)const{return end(n);} local_iterator local_iterator_to(const value_type& x) { return make_iterator(node_from_value(&x)); } const_local_iterator local_iterator_to(const value_type& x)const { return make_iterator(node_from_value(&x)); } float load_factor()const{return static_cast(size())/bucket_count();} float max_load_factor()const{return mlf;} void max_load_factor(float z){mlf=z;calculate_max_load();} void rehash(size_type n) { ; if(size()::max)(); float fbc=static_cast(1+size()/mlf); if(bc>fbc){ bc=static_cast(fbc); if(bc(args_list.get_head())), hash(tuples::get<2>(args_list.get_head())), eq(tuples::get<3>(args_list.get_head())), buckets(al,header()->impl(),tuples::get<0>(args_list.get_head())), mlf(1.0), first_bucket(buckets.size()) { calculate_max_load(); } hashed_index( const hashed_index& x): super(x), key(x.key), hash(x.hash), eq(x.eq), buckets(x.get_allocator(),header()->impl(),x.buckets.size()), mlf(x.mlf), max_load(x.max_load), first_bucket(x.first_bucket) { } ~hashed_index() { } # 654 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 3 4 iterator make_iterator(node_type* node) { return iterator(node,&buckets); } const_iterator make_iterator(node_type* node)const { return const_iterator(node,&const_cast(buckets)); } void copy_( const hashed_index& x, const copy_map_type& map) { for(node_impl_pointer begin_org=x.buckets.begin(), begin_cpy=buckets.begin(), end_org=x.buckets.end(); begin_org!=end_org;++begin_org,++begin_cpy){ node_impl_pointer next_org=begin_org->next(); node_impl_pointer cpy=begin_cpy; while(next_org!=begin_org){ cpy->next()= static_cast( map.find( static_cast( node_type::from_impl(next_org))))->impl(); next_org=next_org->next(); cpy=cpy->next(); } cpy->next()=begin_cpy; } super::copy_(x,map); } node_type* insert_(value_param_type v,node_type* x) { reserve(size()+1); std::size_t buc=find_bucket(v); node_impl_pointer pos=buckets.at(buc); if(!link_point(v,pos,Category()))return node_type::from_impl(pos); node_type* res=static_cast(super::insert_(v,x)); if(res==x){ link(x,pos); if(first_bucket>buc)first_bucket=buc; } return res; } node_type* insert_(value_param_type v,node_type* position,node_type* x) { reserve(size()+1); std::size_t buc=find_bucket(v); node_impl_pointer pos=buckets.at(buc); if(!link_point(v,pos,Category()))return node_type::from_impl(pos); node_type* res=static_cast(super::insert_(v,position,x)); if(res==x){ link(x,pos); if(first_bucket>buc)first_bucket=buc; } return res; } void erase_(node_type* x) { unlink(x); first_bucket=buckets.first_nonempty(first_bucket); super::erase_(x); } void delete_all_nodes_() { for(node_impl_pointer x=buckets.begin(),x_end=buckets.end(); x!=x_end;++x){ node_impl_pointer y=x->next(); while(y!=x){ node_impl_pointer z=y->next(); this->final_delete_node_( static_cast(node_type::from_impl(y))); y=z; } } } void clear_() { super::clear_(); buckets.clear(); first_bucket=buckets.size(); } void swap_( hashed_index& x) { std::swap(key,x.key); std::swap(hash,x.hash); std::swap(eq,x.eq); buckets.swap(x.buckets); std::swap(mlf,x.mlf); std::swap(max_load,x.max_load); std::swap(first_bucket,x.first_bucket); super::swap_(x); } bool replace_(value_param_type v,node_type* x) { if(eq(key(v),key(x->value()))){ return super::replace_(v,x); } node_impl_pointer y=prev(x); unlink_next(y); { try{ std::size_t buc=find_bucket(v); node_impl_pointer pos=buckets.at(buc); if(link_point(v,pos,Category())&&super::replace_(v,x)){ link(x,pos); if(first_bucket>buc){ first_bucket=buc; } else if(first_bucketvalue()); b=in_place(x->impl(),key(x->value()),buc,Category()); } catch(...){ erase_(x); throw;; } } if(!b){ unlink(x); { try{ node_impl_pointer pos=buckets.at(buc); if(!link_point(x->value(),pos,Category())){ first_bucket=buckets.first_nonempty(first_bucket); super::erase_(x); return false; } link(x,pos); if(first_bucket>buc){ first_bucket=buc; } else if(first_bucketvalue()); if(in_place(x->impl(),key(x->value()),buc,Category())){ return super::modify_rollback_(x); } node_impl_pointer y=prev(x); unlink_next(y); { try{ node_impl_pointer pos=buckets.at(buc); if(link_point(x->value(),pos,Category())&&super::modify_rollback_(x)){ link(x,pos); if(first_bucket>buc){ first_bucket=buc; } else if(first_bucket void save_( Archive& ar,const unsigned int version,const index_saver_type& sm)const { ar< void load_(Archive& ar,const unsigned int version,const index_loader_type& lm) { ar>>serialization::make_nvp("position",buckets); super::load_(ar,version,lm); } # 969 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 3 4 private: node_type* header()const{return this->final_header();} std::size_t find_bucket(value_param_type v)const { return bucket(key(v)); } bool link_point( value_param_type v,node_impl_pointer& pos,hashed_unique_tag) { node_impl_pointer x=pos->next(); while(x!=pos){ if(eq(key(v),key(node_type::from_impl(x)->value()))){ pos=x; return false; } x=x->next(); } return true; } bool link_point( value_param_type v,node_impl_pointer& pos,hashed_non_unique_tag) { node_impl_pointer prev=pos; node_impl_pointer x=pos->next(); while(x!=pos){ if(eq(key(v),key(node_type::from_impl(x)->value()))){ pos=prev; return true; } prev=x; x=x->next(); } return true; } static void link(node_type* x,node_impl_pointer pos) { node_impl_type::link(x->impl(),pos); }; static void link(node_impl_pointer x,node_impl_pointer pos) { node_impl_type::link(x,pos); }; static void unlink(node_type* x) { node_impl_type::unlink(x->impl()); }; static node_impl_pointer prev(node_type* x) { return node_impl_type::prev(x->impl()); } static node_impl_pointer prev_from(node_type* x,node_impl_pointer y) { return node_impl_type::prev_from(x->impl(),y); } static void unlink_next(node_impl_pointer x) { node_impl_type::unlink_next(x); } void calculate_max_load() { float fml=static_cast(mlf*bucket_count()); max_load=(std::numeric_limits::max)(); if(max_load>fml)max_load=static_cast(fml); } void reserve(size_type n) { if(n>max_load){ size_type bc =(std::numeric_limits::max)(); float fbc=static_cast(1+n/mlf); if(bc>fbc)bc =static_cast(fbc); unchecked_rehash(bc); } } void unchecked_rehash(size_type n) { bucket_array_type buckets1(get_allocator(),header()->impl(),n); auto_space hashes(get_allocator(),size()); std::size_t i=0; node_impl_pointer x=buckets.begin(); node_impl_pointer x_end=buckets.end(); for(;x!=x_end;++x){ node_impl_pointer y=x->next(); while(y!=x){ hashes.data()[i++]=hash(key(node_type::from_impl(y)->value())); y=y->next(); } } i=0; x=buckets.begin(); for(;x!=x_end;++x){ node_impl_pointer y=x->next(); while(y!=x){ node_impl_pointer z=y->next(); std::size_t buc1=buckets1.position(hashes.data()[i++]); node_impl_pointer x1=buckets1.at(buc1); link(y,x1); y=z; } } buckets.swap(buckets1); calculate_max_load(); first_bucket=buckets.first_nonempty(0); } bool in_place( node_impl_pointer x,key_param_type k,std::size_t buc, hashed_unique_tag)const { std::less_equal leq; node_impl_pointer bbegin=buckets.begin(); node_impl_pointer bend=buckets.end(); node_impl_pointer pbuc=x->next(); while(!leq(bbegin,pbuc)||!leq(pbuc,bend))pbuc=pbuc->next(); if(buc!=static_cast(pbuc-bbegin))return false; node_impl_pointer y=x; while(y->next()!=x){ y=y->next(); if(y==pbuc)continue; if(eq(k,key(node_type::from_impl(y)->value())))return false; } return true; } bool in_place( node_impl_pointer x,key_param_type k,std::size_t buc, hashed_non_unique_tag)const { std::less_equal leq; node_impl_pointer bbegin=buckets.begin(); node_impl_pointer bend=buckets.end(); node_impl_pointer pbuc=x->next(); while(!leq(bbegin,pbuc)||!leq(pbuc,bend))pbuc=pbuc->next(); if(buc!=static_cast(pbuc-bbegin))return false; node_impl_pointer y=x->next(); if(y!=pbuc){ if(eq(k,key(node_type::from_impl(y)->value()))){ return true; } else{ y=y->next(); while(y!=pbuc){ if(eq(k,key(node_type::from_impl(y)->value())))return false; y=y->next(); } } } while(y->next()!=x){ y=y->next(); if(eq(k,key(node_type::from_impl(y)->value()))){ while(y->next()!=x){ y=y->next(); if(!eq(k,key(node_type::from_impl(y)->value())))return false; } return true; } } return true; } # 1158 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/hashed_index.hpp" 3 4 key_from_value key; hasher hash; key_equal eq; bucket_array_type buckets; float mlf; size_type max_load; std::size_t first_bucket; }; template< typename KeyFromValue,typename Hash,typename Pred, typename SuperMeta,typename TagList,typename Category > void swap( hashed_index& x, hashed_index& y) { x.swap(y); } } template struct hashed_unique { typedef typename detail::hashed_index_args< Arg1,Arg2,Arg3,Arg4> index_args; typedef typename index_args::tag_list_type::type tag_list_type; typedef typename index_args::key_from_value_type key_from_value_type; typedef typename index_args::hash_type hash_type; typedef typename index_args::pred_type pred_type; template struct node_class { typedef detail::hashed_index_node type; }; template struct index_class { typedef detail::hashed_index< key_from_value_type,hash_type,pred_type, SuperMeta,tag_list_type,detail::hashed_unique_tag> type; }; }; template struct hashed_non_unique { typedef typename detail::hashed_index_args< Arg1,Arg2,Arg3,Arg4> index_args; typedef typename index_args::tag_list_type::type tag_list_type; typedef typename index_args::key_from_value_type key_from_value_type; typedef typename index_args::hash_type hash_type; typedef typename index_args::pred_type pred_type; template struct node_class { typedef detail::hashed_index_node type; }; template struct index_class { typedef detail::hashed_index< key_from_value_type,hash_type,pred_type, SuperMeta,tag_list_type,detail::hashed_non_unique_tag> type; }; }; } } # 14 "src/bp/bp_book.h" 2 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/member.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/member.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/member.hpp" 2 3 4 namespace boost{ template class reference_wrapper; namespace multi_index{ namespace detail{ # 54 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/member.hpp" 3 4 template struct const_member_base { typedef Type result_type; template typename disable_if< is_convertible,Type&>::type operator()(const ChainedPtr& x)const { return operator()(*x); } Type& operator()(const Class& x)const { return x.*PtrToMember; } Type& operator()(const reference_wrapper& x)const { return operator()(x.get()); } Type& operator()(const reference_wrapper& x,int=0)const { return operator()(x.get()); } }; template struct non_const_member_base { typedef Type result_type; template typename disable_if< is_convertible,Type&>::type operator()(const ChainedPtr& x)const { return operator()(*x); } const Type& operator()(const Class& x,int=0)const { return x.*PtrToMember; } Type& operator()(Class& x)const { return x.*PtrToMember; } const Type& operator()(const reference_wrapper& x,int=0)const { return operator()(x.get()); } Type& operator()(const reference_wrapper& x)const { return operator()(x.get()); } }; } template struct member: mpl::if_c< is_const::value, detail::const_member_base, detail::non_const_member_base >::type { }; namespace detail{ # 157 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/member.hpp" 3 4 template struct const_member_offset_base { typedef Type result_type; template typename disable_if< is_convertible,Type&>::type operator()(const ChainedPtr& x)const { return operator()(*x); } Type& operator()(const Class& x)const { return *static_cast( static_cast( static_cast( static_cast(&x))+OffsetOfMember)); } Type& operator()(const reference_wrapper& x)const { return operator()(x.get()); } Type& operator()(const reference_wrapper& x,int=0)const { return operator()(x.get()); } }; template struct non_const_member_offset_base { typedef Type result_type; template typename disable_if< is_convertible,Type&>::type operator()(const ChainedPtr& x)const { return operator()(*x); } const Type& operator()(const Class& x,int=0)const { return *static_cast( static_cast( static_cast( static_cast(&x))+OffsetOfMember)); } Type& operator()(Class& x)const { return *static_cast( static_cast( static_cast(static_cast(&x))+OffsetOfMember)); } const Type& operator()(const reference_wrapper& x,int=0)const { return operator()(x.get()); } Type& operator()(const reference_wrapper& x)const { return operator()(x.get()); } }; } template struct member_offset: mpl::if_c< is_const::value, detail::const_member_offset_base, detail::non_const_member_offset_base >::type { }; # 265 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/member.hpp" 3 4 } } # 16 "src/bp/bp_book.h" 2 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 1 3 4 # 52 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/bidir_node_iterator.hpp" 1 3 4 # 24 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/bidir_node_iterator.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ template class bidir_node_iterator: public bidirectional_iterator_helper< bidir_node_iterator, typename Node::value_type, std::ptrdiff_t, const typename Node::value_type*, const typename Node::value_type&> { public: bidir_node_iterator(){} explicit bidir_node_iterator(Node* node_):node(node_){} const typename Node::value_type& operator*()const { return node->value(); } bidir_node_iterator& operator++() { Node::increment(node); return *this; } bidir_node_iterator& operator--() { Node::decrement(node); return *this; } template void serialize( Archive &ar, const unsigned int file_version ){ boost::serialization::split_member(ar, *this, file_version); } typedef typename Node::base_type node_base_type; template void save(Archive& ar,const unsigned int)const { node_base_type* bnode=node; ar< void load(Archive& ar,const unsigned int) { node_base_type* bnode; ar>>serialization::make_nvp("pointer",bnode); node=static_cast(bnode); } typedef Node node_type; Node* get_node()const{return node;} private: Node* node; }; template bool operator==( const bidir_node_iterator& x, const bidir_node_iterator& y) { return x.get_node()==y.get_node(); } } } } # 53 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/ord_index_node.hpp" 1 3 4 # 44 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/ord_index_node.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 45 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/ord_index_node.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/uintptr_type.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/uintptr_type.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 35 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/uintptr_type.hpp" 3 4 templatestruct uintptr_candidates; template<>struct uintptr_candidates<-1>{typedef unsigned int type;}; template<>struct uintptr_candidates<0> {typedef unsigned int type;}; template<>struct uintptr_candidates<1> {typedef unsigned short type;}; template<>struct uintptr_candidates<2> {typedef unsigned long type;}; template<>struct uintptr_candidates<3> {typedef boost::ulong_long_type type;}; template<>struct uintptr_candidates<4> {typedef unsigned int type;}; struct uintptr_aux { static const int index= sizeof(void*)==sizeof(uintptr_candidates<0>::type)?0: sizeof(void*)==sizeof(uintptr_candidates<1>::type)?1: sizeof(void*)==sizeof(uintptr_candidates<2>::type)?2: sizeof(void*)==sizeof(uintptr_candidates<3>::type)?3: sizeof(void*)==sizeof(uintptr_candidates<4>::type)?4:-1 ; static const bool has_uintptr_type=(index>=0); typedef uintptr_candidates::type type; }; typedef mpl::bool_ has_uintptr_type; typedef uintptr_aux::type uintptr_type; } } } # 52 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/ord_index_node.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ enum ordered_index_color{red=false,black=true}; enum ordered_index_side{to_left=false,to_right=true}; template struct ordered_index_node_impl; template struct ordered_index_node_std_base { typedef typename prevent_eti< Allocator, typename boost::detail::allocator::rebind_to< Allocator, ordered_index_node_impl >::type >::type::pointer pointer; typedef typename prevent_eti< Allocator, typename boost::detail::allocator::rebind_to< Allocator, ordered_index_node_impl >::type >::type::const_pointer const_pointer; typedef ordered_index_color& color_ref; typedef pointer& parent_ref; ordered_index_color& color(){return color_;} ordered_index_color color()const{return color_;} pointer& parent(){return parent_;} pointer parent()const{return parent_;} pointer& left(){return left_;} pointer left()const{return left_;} pointer& right(){return right_;} pointer right()const{return right_;} private: ordered_index_color color_; pointer parent_; pointer left_; pointer right_; }; # 124 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/ord_index_node.hpp" 3 4 template struct ordered_index_node_compressed_base { typedef ordered_index_node_impl* pointer; typedef const ordered_index_node_impl* const_pointer; struct color_ref { color_ref(uintptr_type* r_):r(r_){} operator ordered_index_color()const { return ordered_index_color(*r&uintptr_type(1)); } color_ref& operator=(ordered_index_color c) { *r&=~uintptr_type(1); *r|=uintptr_type(c); return *this; } color_ref& operator=(const color_ref& x) { return operator=(x.operator ordered_index_color()); } private: uintptr_type* r; }; struct parent_ref { parent_ref(uintptr_type* r_):r(r_){} operator pointer()const { return (pointer)(void*)(*r&~uintptr_type(1)); } parent_ref& operator=(pointer p) { *r=((uintptr_type)(void*)p)|(*r&uintptr_type(1)); return *this; } parent_ref& operator=(const parent_ref& x) { return operator=(x.operator pointer()); } pointer operator->()const { return operator pointer(); } private: uintptr_type* r; }; color_ref color(){return color_ref(&parentcolor_);} ordered_index_color color()const { return ordered_index_color(parentcolor_&std::size_t(1ul)); } parent_ref parent(){return parent_ref(&parentcolor_);} pointer parent()const { return (pointer)(void*)(parentcolor_&~uintptr_type(1)); } pointer& left(){return left_;} pointer left()const{return left_;} pointer& right(){return right_;} pointer right()const{return right_;} private: uintptr_type parentcolor_; pointer left_; pointer right_; }; template struct ordered_index_node_impl_base: mpl::if_c< !(has_uintptr_type::value)|| (alignment_of >::value%2)|| !(is_same< typename prevent_eti< Allocator, typename boost::detail::allocator::rebind_to< Allocator, ordered_index_node_impl >::type >::type::pointer, ordered_index_node_impl*>::value), ordered_index_node_std_base, ordered_index_node_compressed_base >::type {}; template struct ordered_index_node_impl:ordered_index_node_impl_base { private: typedef ordered_index_node_impl_base super; public: typedef typename super::color_ref color_ref; typedef typename super::parent_ref parent_ref; typedef typename super::pointer pointer; typedef typename super::const_pointer const_pointer; static void increment(pointer& x) { if(x->right()!=pointer(0)){ x=x->right(); while(x->left()!=pointer(0))x=x->left(); } else{ pointer y=x->parent(); while(x==y->right()){ x=y; y=y->parent(); } if(x->right()!=y)x=y; } } static void decrement(pointer& x) { if(x->color()==red&&x->parent()->parent()==x){ x=x->right(); } else if(x->left()!=pointer(0)){ pointer y=x->left(); while(y->right()!=pointer(0))y=y->right(); x=y; }else{ pointer y=x->parent(); while(x==y->left()){ x=y; y=y->parent(); } x=y; } } static void rotate_left(pointer x,parent_ref root) { pointer y=x->right(); x->right()=y->left(); if(y->left()!=pointer(0))y->left()->parent()=x; y->parent()=x->parent(); if(x==root) root=y; else if(x==x->parent()->left())x->parent()->left()=y; else x->parent()->right()=y; y->left()=x; x->parent()=y; } static pointer minimum(pointer x) { while(x->left()!=pointer(0))x=x->left(); return x; } static pointer maximum(pointer x) { while(x->right()!=pointer(0))x=x->right(); return x; } static void rotate_right(pointer x,parent_ref root) { pointer y=x->left(); x->left()=y->right(); if(y->right()!=pointer(0))y->right()->parent()=x; y->parent()=x->parent(); if(x==root) root=y; else if(x==x->parent()->right())x->parent()->right()=y; else x->parent()->left()=y; y->right()=x; x->parent()=y; } static void rebalance(pointer x,parent_ref root) { x->color()=red; while(x!=root&&x->parent()->color()==red){ if(x->parent()==x->parent()->parent()->left()){ pointer y=x->parent()->parent()->right(); if(y!=pointer(0)&&y->color()==red){ x->parent()->color()=black; y->color()=black; x->parent()->parent()->color()=red; x=x->parent()->parent(); } else{ if(x==x->parent()->right()){ x=x->parent(); rotate_left(x,root); } x->parent()->color()=black; x->parent()->parent()->color()=red; rotate_right(x->parent()->parent(),root); } } else{ pointer y=x->parent()->parent()->left(); if(y!=pointer(0)&&y->color()==red){ x->parent()->color()=black; y->color()=black; x->parent()->parent()->color()=red; x=x->parent()->parent(); } else{ if(x==x->parent()->left()){ x=x->parent(); rotate_right(x,root); } x->parent()->color()=black; x->parent()->parent()->color()=red; rotate_left(x->parent()->parent(),root); } } } root->color()=black; } static void link( pointer x,ordered_index_side side,pointer position,pointer header) { if(side==to_left){ position->left()=x; if(position==header){ header->parent()=x; header->right()=x; } else if(position==header->left()){ header->left()=x; } } else{ position->right()=x; if(position==header->right()){ header->right()=x; } } x->parent()=position; x->left()=pointer(0); x->right()=pointer(0); ordered_index_node_impl::rebalance(x,header->parent()); } static pointer rebalance_for_erase( pointer z,parent_ref root,pointer& leftmost,pointer& rightmost) { pointer y=z; pointer x=pointer(0); pointer x_parent=pointer(0); if(y->left()==pointer(0)){ x=y->right(); } else{ if(y->right()==pointer(0)){ x=y->left(); } else{ y=y->right(); while(y->left()!=pointer(0))y=y->left(); x=y->right(); } } if(y!=z){ z->left()->parent()=y; y->left()=z->left(); if(y!=z->right()){ x_parent=y->parent(); if(x!=pointer(0))x->parent()=y->parent(); y->parent()->left()=x; y->right()=z->right(); z->right()->parent()=y; } else{ x_parent=y; } if(root==z) root=y; else if(z->parent()->left()==z)z->parent()->left()=y; else z->parent()->right()=y; y->parent()=z->parent(); ordered_index_color c=y->color(); y->color()=z->color(); z->color()=c; y=z; } else{ x_parent=y->parent(); if(x!=pointer(0))x->parent()=y->parent(); if(root==z){ root=x; } else{ if(z->parent()->left()==z)z->parent()->left()=x; else z->parent()->right()=x; } if(leftmost==z){ if(z->right()==pointer(0)){ leftmost=z->parent(); } else{ leftmost=minimum(x); } } if(rightmost==z){ if(z->left()==pointer(0)){ rightmost=z->parent(); } else{ rightmost=maximum(x); } } } if(y->color()!=red){ while(x!=root&&(x==pointer(0)|| x->color()==black)){ if(x==x_parent->left()){ pointer w=x_parent->right(); if(w->color()==red){ w->color()=black; x_parent->color()=red; rotate_left(x_parent,root); w=x_parent->right(); } if((w->left()==pointer(0)||w->left()->color()==black) && (w->right()==pointer(0)||w->right()->color()==black)){ w->color()=red; x=x_parent; x_parent=x_parent->parent(); } else{ if(w->right()==pointer(0 ) || w->right()->color()==black){ if(w->left()!=pointer(0)) w->left()->color()=black; w->color()=red; rotate_right(w,root); w=x_parent->right(); } w->color()=x_parent->color(); x_parent->color()=black; if(w->right()!=pointer(0))w->right()->color()=black; rotate_left(x_parent,root); break; } } else{ pointer w=x_parent->left(); if(w->color()==red){ w->color()=black; x_parent->color()=red; rotate_right(x_parent,root); w=x_parent->left(); } if((w->right()==pointer(0)||w->right()->color()==black) && (w->left()==pointer(0)||w->left()->color()==black)){ w->color()=red; x=x_parent; x_parent=x_parent->parent(); } else{ if(w->left()==pointer(0)||w->left()->color()==black){ if(w->right()!=pointer(0))w->right()->color()=black; w->color()=red; rotate_left(w,root); w=x_parent->left(); } w->color()=x_parent->color(); x_parent->color()=black; if(w->left()!=pointer(0))w->left()->color()=black; rotate_right(x_parent,root); break; } } } if(x!=pointer(0))x->color()=black; } return y; } static void restore(pointer x,pointer position,pointer header) { if(position->left()==pointer(0)||position->left()==header){ link(x,to_left,position,header); } else{ decrement(position); link(x,to_right,position,header); } } # 556 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/ord_index_node.hpp" 3 4 }; template struct ordered_index_node_trampoline: prevent_eti< Super, ordered_index_node_impl< typename boost::detail::allocator::rebind_to< typename Super::allocator_type, char >::type > >::type { typedef typename prevent_eti< Super, ordered_index_node_impl< typename boost::detail::allocator::rebind_to< typename Super::allocator_type, char >::type > >::type impl_type; }; template struct ordered_index_node:Super,ordered_index_node_trampoline { private: typedef ordered_index_node_trampoline trampoline; public: typedef typename trampoline::impl_type impl_type; typedef typename trampoline::color_ref impl_color_ref; typedef typename trampoline::parent_ref impl_parent_ref; typedef typename trampoline::pointer impl_pointer; typedef typename trampoline::const_pointer const_impl_pointer; impl_color_ref color(){return trampoline::color();} ordered_index_color color()const{return trampoline::color();} impl_parent_ref parent(){return trampoline::parent();} impl_pointer parent()const{return trampoline::parent();} impl_pointer& left(){return trampoline::left();} impl_pointer left()const{return trampoline::left();} impl_pointer& right(){return trampoline::right();} impl_pointer right()const{return trampoline::right();} impl_pointer impl() { return static_cast( static_cast(static_cast(this))); } const_impl_pointer impl()const { return static_cast( static_cast(static_cast(this))); } static ordered_index_node* from_impl(impl_pointer x) { return static_cast( static_cast(&*x)); } static const ordered_index_node* from_impl(const_impl_pointer x) { return static_cast( static_cast(&*x)); } static void increment(ordered_index_node*& x) { impl_pointer xi=x->impl(); trampoline::increment(xi); x=from_impl(xi); } static void decrement(ordered_index_node*& x) { impl_pointer xi=x->impl(); trampoline::decrement(xi); x=from_impl(xi); } }; } } } # 56 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/ord_index_ops.hpp" 1 3 4 # 46 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/ord_index_ops.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ template< typename Node,typename KeyFromValue, typename CompatibleKey,typename CompatibleCompare > inline Node* ordered_index_find( Node* top,Node* y,const KeyFromValue& key,const CompatibleKey& x, const CompatibleCompare& comp) { Node* y0=y; while (top){ if(!comp(key(top->value()),x)){ y=top; top=Node::from_impl(top->left()); } else top=Node::from_impl(top->right()); } return (y==y0||comp(x,key(y->value())))?y0:y; } template< typename Node,typename KeyFromValue, typename CompatibleKey,typename CompatibleCompare > inline Node* ordered_index_lower_bound( Node* top,Node* y,const KeyFromValue& key,const CompatibleKey& x, const CompatibleCompare& comp) { while(top){ if(!comp(key(top->value()),x)){ y=top; top=Node::from_impl(top->left()); } else top=Node::from_impl(top->right()); } return y; } template< typename Node,typename KeyFromValue, typename CompatibleKey,typename CompatibleCompare > inline Node* ordered_index_upper_bound( Node* top,Node* y,const KeyFromValue& key,const CompatibleKey& x, const CompatibleCompare& comp) { while(top){ if(comp(x,key(top->value()))){ y=top; top=Node::from_impl(top->left()); } else top=Node::from_impl(top->right()); } return y; } template< typename Node,typename KeyFromValue, typename CompatibleKey,typename CompatibleCompare > inline std::pair ordered_index_equal_range( Node* top,Node* y,const KeyFromValue& key,const CompatibleKey& x, const CompatibleCompare& comp) { while(top){ if(comp(key(top->value()),x)){ top=Node::from_impl(top->right()); } else if(comp(x,key(top->value()))){ y=top; top=Node::from_impl(top->left()); } else{ return std::pair( ordered_index_lower_bound(Node::from_impl(top->left()),top,key,x,comp), ordered_index_upper_bound(Node::from_impl(top->right()),y,key,x,comp)); } } return std::pair(y,y); } } } } # 57 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/unbounded.hpp" 1 3 4 # 19 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/unbounded.hpp" 3 4 namespace boost{ namespace multi_index{ # 45 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/unbounded.hpp" 3 4 namespace detail{class unbounded_helper;} detail::unbounded_helper unbounded(detail::unbounded_helper); namespace detail{ class unbounded_helper { unbounded_helper(){} unbounded_helper(const unbounded_helper&){} friend unbounded_helper multi_index::unbounded(unbounded_helper); }; typedef unbounded_helper (*unbounded_type)(unbounded_helper); } inline detail::unbounded_helper unbounded(detail::unbounded_helper) { return detail::unbounded_helper(); } namespace detail{ struct none_unbounded_tag{}; struct lower_unbounded_tag{}; struct upper_unbounded_tag{}; struct both_unbounded_tag{}; } } } # 61 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/value_compare.hpp" 1 3 4 # 20 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/value_compare.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ template struct value_comparison:std::binary_function { value_comparison( const KeyFromValue& key_=KeyFromValue(),const Compare& comp_=Compare()): key(key_),comp(comp_) { } bool operator()( typename call_traits::param_type x, typename call_traits::param_type y)const { return comp(key(x),key(y)); } private: KeyFromValue key; Compare comp; }; } } } # 62 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 2 3 4 # 70 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/bind.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/bind.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 1 3 4 # 26 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/mem_fn.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/mem_fn.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/get_pointer.hpp" 1 3 4 # 12 "/home/jas/.tt/ttsetup/opt/include/boost/get_pointer.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/config/no_tr1/memory.hpp" 1 3 4 # 13 "/home/jas/.tt/ttsetup/opt/include/boost/get_pointer.hpp" 2 3 4 namespace boost { template T * get_pointer(T * p) { return p; } template T * get_pointer(std::auto_ptr const& p) { return p.get(); } } # 26 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn.hpp" 2 3 4 namespace boost { # 207 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn.hpp" 3 4 namespace _mfi { # 1 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn_template.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn_template.hpp" 3 4 template class mf0 { public: typedef R result_type; typedef T * argument_type; private: typedef R ( T::*F) (); F f_; template R call(U & u, T const *) const { return (u.*f_)(); } template R call(U & u, void const *) const { return (get_pointer(u)->*f_)(); } public: explicit mf0(F f): f_(f) {} R operator()(T * p) const { return (p->*f_)(); } template R operator()(U & u) const { U const * p = 0; return call(u, p); } template R operator()(U const & u) const { U const * p = 0; return call(u, p); } R operator()(T & t) const { return (t.*f_)(); } bool operator==(mf0 const & rhs) const { return f_ == rhs.f_; } bool operator!=(mf0 const & rhs) const { return f_ != rhs.f_; } }; template class cmf0 { public: typedef R result_type; typedef T const * argument_type; private: typedef R ( T::*F) () const; F f_; template R call(U & u, T const *) const { return (u.*f_)(); } template R call(U & u, void const *) const { return (get_pointer(u)->*f_)(); } public: explicit cmf0(F f): f_(f) {} template R operator()(U const & u) const { U const * p = 0; return call(u, p); } R operator()(T const & t) const { return (t.*f_)(); } bool operator==(cmf0 const & rhs) const { return f_ == rhs.f_; } bool operator!=(cmf0 const & rhs) const { return f_ != rhs.f_; } }; template class mf1 { public: typedef R result_type; typedef T * first_argument_type; typedef A1 second_argument_type; private: typedef R ( T::*F) (A1); F f_; template R call(U & u, T const *, B1 & b1) const { return (u.*f_)(b1); } template R call(U & u, void const *, B1 & b1) const { return (get_pointer(u)->*f_)(b1); } public: explicit mf1(F f): f_(f) {} R operator()(T * p, A1 a1) const { return (p->*f_)(a1); } template R operator()(U & u, A1 a1) const { U const * p = 0; return call(u, p, a1); } template R operator()(U const & u, A1 a1) const { U const * p = 0; return call(u, p, a1); } R operator()(T & t, A1 a1) const { return (t.*f_)(a1); } bool operator==(mf1 const & rhs) const { return f_ == rhs.f_; } bool operator!=(mf1 const & rhs) const { return f_ != rhs.f_; } }; template class cmf1 { public: typedef R result_type; typedef T const * first_argument_type; typedef A1 second_argument_type; private: typedef R ( T::*F) (A1) const; F f_; template R call(U & u, T const *, B1 & b1) const { return (u.*f_)(b1); } template R call(U & u, void const *, B1 & b1) const { return (get_pointer(u)->*f_)(b1); } public: explicit cmf1(F f): f_(f) {} template R operator()(U const & u, A1 a1) const { U const * p = 0; return call(u, p, a1); } R operator()(T const & t, A1 a1) const { return (t.*f_)(a1); } bool operator==(cmf1 const & rhs) const { return f_ == rhs.f_; } bool operator!=(cmf1 const & rhs) const { return f_ != rhs.f_; } }; template class mf2 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2); F f_; template R call(U & u, T const *, B1 & b1, B2 & b2) const { return (u.*f_)(b1, b2); } template R call(U & u, void const *, B1 & b1, B2 & b2) const { return (get_pointer(u)->*f_)(b1, b2); } public: explicit mf2(F f): f_(f) {} R operator()(T * p, A1 a1, A2 a2) const { return (p->*f_)(a1, a2); } template R operator()(U & u, A1 a1, A2 a2) const { U const * p = 0; return call(u, p, a1, a2); } template R operator()(U const & u, A1 a1, A2 a2) const { U const * p = 0; return call(u, p, a1, a2); } R operator()(T & t, A1 a1, A2 a2) const { return (t.*f_)(a1, a2); } bool operator==(mf2 const & rhs) const { return f_ == rhs.f_; } bool operator!=(mf2 const & rhs) const { return f_ != rhs.f_; } }; template class cmf2 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2) const; F f_; template R call(U & u, T const *, B1 & b1, B2 & b2) const { return (u.*f_)(b1, b2); } template R call(U & u, void const *, B1 & b1, B2 & b2) const { return (get_pointer(u)->*f_)(b1, b2); } public: explicit cmf2(F f): f_(f) {} template R operator()(U const & u, A1 a1, A2 a2) const { U const * p = 0; return call(u, p, a1, a2); } R operator()(T const & t, A1 a1, A2 a2) const { return (t.*f_)(a1, a2); } bool operator==(cmf2 const & rhs) const { return f_ == rhs.f_; } bool operator!=(cmf2 const & rhs) const { return f_ != rhs.f_; } }; template class mf3 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2, A3); F f_; template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const { return (u.*f_)(b1, b2, b3); } template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const { return (get_pointer(u)->*f_)(b1, b2, b3); } public: explicit mf3(F f): f_(f) {} R operator()(T * p, A1 a1, A2 a2, A3 a3) const { return (p->*f_)(a1, a2, a3); } template R operator()(U & u, A1 a1, A2 a2, A3 a3) const { U const * p = 0; return call(u, p, a1, a2, a3); } template R operator()(U const & u, A1 a1, A2 a2, A3 a3) const { U const * p = 0; return call(u, p, a1, a2, a3); } R operator()(T & t, A1 a1, A2 a2, A3 a3) const { return (t.*f_)(a1, a2, a3); } bool operator==(mf3 const & rhs) const { return f_ == rhs.f_; } bool operator!=(mf3 const & rhs) const { return f_ != rhs.f_; } }; template class cmf3 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2, A3) const; F f_; template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const { return (u.*f_)(b1, b2, b3); } template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const { return (get_pointer(u)->*f_)(b1, b2, b3); } public: explicit cmf3(F f): f_(f) {} template R operator()(U const & u, A1 a1, A2 a2, A3 a3) const { U const * p = 0; return call(u, p, a1, a2, a3); } R operator()(T const & t, A1 a1, A2 a2, A3 a3) const { return (t.*f_)(a1, a2, a3); } bool operator==(cmf3 const & rhs) const { return f_ == rhs.f_; } bool operator!=(cmf3 const & rhs) const { return f_ != rhs.f_; } }; template class mf4 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2, A3, A4); F f_; template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const { return (u.*f_)(b1, b2, b3, b4); } template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const { return (get_pointer(u)->*f_)(b1, b2, b3, b4); } public: explicit mf4(F f): f_(f) {} R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4) const { return (p->*f_)(a1, a2, a3, a4); } template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4) const { U const * p = 0; return call(u, p, a1, a2, a3, a4); } template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const { U const * p = 0; return call(u, p, a1, a2, a3, a4); } R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4) const { return (t.*f_)(a1, a2, a3, a4); } bool operator==(mf4 const & rhs) const { return f_ == rhs.f_; } bool operator!=(mf4 const & rhs) const { return f_ != rhs.f_; } }; template class cmf4 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2, A3, A4) const; F f_; template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const { return (u.*f_)(b1, b2, b3, b4); } template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const { return (get_pointer(u)->*f_)(b1, b2, b3, b4); } public: explicit cmf4(F f): f_(f) {} template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const { U const * p = 0; return call(u, p, a1, a2, a3, a4); } R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4) const { return (t.*f_)(a1, a2, a3, a4); } bool operator==(cmf4 const & rhs) const { return f_ == rhs.f_; } bool operator!=(cmf4 const & rhs) const { return f_ != rhs.f_; } }; template class mf5 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2, A3, A4, A5); F f_; template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const { return (u.*f_)(b1, b2, b3, b4, b5); } template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const { return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5); } public: explicit mf5(F f): f_(f) {} R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const { return (p->*f_)(a1, a2, a3, a4, a5); } template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const { U const * p = 0; return call(u, p, a1, a2, a3, a4, a5); } template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const { U const * p = 0; return call(u, p, a1, a2, a3, a4, a5); } R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const { return (t.*f_)(a1, a2, a3, a4, a5); } bool operator==(mf5 const & rhs) const { return f_ == rhs.f_; } bool operator!=(mf5 const & rhs) const { return f_ != rhs.f_; } }; template class cmf5 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2, A3, A4, A5) const; F f_; template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const { return (u.*f_)(b1, b2, b3, b4, b5); } template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const { return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5); } public: explicit cmf5(F f): f_(f) {} template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const { U const * p = 0; return call(u, p, a1, a2, a3, a4, a5); } R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const { return (t.*f_)(a1, a2, a3, a4, a5); } bool operator==(cmf5 const & rhs) const { return f_ == rhs.f_; } bool operator!=(cmf5 const & rhs) const { return f_ != rhs.f_; } }; template class mf6 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2, A3, A4, A5, A6); F f_; template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const { return (u.*f_)(b1, b2, b3, b4, b5, b6); } template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const { return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6); } public: explicit mf6(F f): f_(f) {} R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const { return (p->*f_)(a1, a2, a3, a4, a5, a6); } template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const { U const * p = 0; return call(u, p, a1, a2, a3, a4, a5, a6); } template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const { U const * p = 0; return call(u, p, a1, a2, a3, a4, a5, a6); } R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const { return (t.*f_)(a1, a2, a3, a4, a5, a6); } bool operator==(mf6 const & rhs) const { return f_ == rhs.f_; } bool operator!=(mf6 const & rhs) const { return f_ != rhs.f_; } }; template class cmf6 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2, A3, A4, A5, A6) const; F f_; template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const { return (u.*f_)(b1, b2, b3, b4, b5, b6); } template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const { return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6); } public: explicit cmf6(F f): f_(f) {} template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const { U const * p = 0; return call(u, p, a1, a2, a3, a4, a5, a6); } R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const { return (t.*f_)(a1, a2, a3, a4, a5, a6); } bool operator==(cmf6 const & rhs) const { return f_ == rhs.f_; } bool operator!=(cmf6 const & rhs) const { return f_ != rhs.f_; } }; template class mf7 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2, A3, A4, A5, A6, A7); F f_; template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const { return (u.*f_)(b1, b2, b3, b4, b5, b6, b7); } template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const { return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7); } public: explicit mf7(F f): f_(f) {} R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const { return (p->*f_)(a1, a2, a3, a4, a5, a6, a7); } template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const { U const * p = 0; return call(u, p, a1, a2, a3, a4, a5, a6, a7); } template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const { U const * p = 0; return call(u, p, a1, a2, a3, a4, a5, a6, a7); } R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const { return (t.*f_)(a1, a2, a3, a4, a5, a6, a7); } bool operator==(mf7 const & rhs) const { return f_ == rhs.f_; } bool operator!=(mf7 const & rhs) const { return f_ != rhs.f_; } }; template class cmf7 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2, A3, A4, A5, A6, A7) const; F f_; template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const { return (u.*f_)(b1, b2, b3, b4, b5, b6, b7); } template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const { return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7); } public: explicit cmf7(F f): f_(f) {} template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const { U const * p = 0; return call(u, p, a1, a2, a3, a4, a5, a6, a7); } R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const { return (t.*f_)(a1, a2, a3, a4, a5, a6, a7); } bool operator==(cmf7 const & rhs) const { return f_ == rhs.f_; } bool operator!=(cmf7 const & rhs) const { return f_ != rhs.f_; } }; template class mf8 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2, A3, A4, A5, A6, A7, A8); F f_; template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const { return (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8); } template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const { return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8); } public: explicit mf8(F f): f_(f) {} R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const { return (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8); } template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const { U const * p = 0; return call(u, p, a1, a2, a3, a4, a5, a6, a7, a8); } template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const { U const * p = 0; return call(u, p, a1, a2, a3, a4, a5, a6, a7, a8); } R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const { return (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8); } bool operator==(mf8 const & rhs) const { return f_ == rhs.f_; } bool operator!=(mf8 const & rhs) const { return f_ != rhs.f_; } }; template class cmf8 { public: typedef R result_type; private: typedef R ( T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const; F f_; template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const { return (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8); } template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const { return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8); } public: explicit cmf8(F f): f_(f) {} R operator()(T const * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const { return (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8); } template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const { U const * p = 0; return call(u, p, a1, a2, a3, a4, a5, a6, a7, a8); } R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const { return (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8); } bool operator==(cmf8 const & rhs) const { return f_ == rhs.f_; } bool operator!=(cmf8 const & rhs) const { return f_ != rhs.f_; } }; # 216 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn.hpp" 2 3 4 # 258 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn.hpp" 3 4 } # 268 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn_cc.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn_cc.hpp" 3 4 template _mfi::mf0 mem_fn(R ( T::*f) ()) { return _mfi::mf0(f); } template _mfi::cmf0 mem_fn(R ( T::*f) () const) { return _mfi::cmf0(f); } template _mfi::mf1 mem_fn(R ( T::*f) (A1)) { return _mfi::mf1(f); } template _mfi::cmf1 mem_fn(R ( T::*f) (A1) const) { return _mfi::cmf1(f); } template _mfi::mf2 mem_fn(R ( T::*f) (A1, A2)) { return _mfi::mf2(f); } template _mfi::cmf2 mem_fn(R ( T::*f) (A1, A2) const) { return _mfi::cmf2(f); } template _mfi::mf3 mem_fn(R ( T::*f) (A1, A2, A3)) { return _mfi::mf3(f); } template _mfi::cmf3 mem_fn(R ( T::*f) (A1, A2, A3) const) { return _mfi::cmf3(f); } template _mfi::mf4 mem_fn(R ( T::*f) (A1, A2, A3, A4)) { return _mfi::mf4(f); } template _mfi::cmf4 mem_fn(R ( T::*f) (A1, A2, A3, A4) const) { return _mfi::cmf4(f); } template _mfi::mf5 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5)) { return _mfi::mf5(f); } template _mfi::cmf5 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5) const) { return _mfi::cmf5(f); } template _mfi::mf6 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6)) { return _mfi::mf6(f); } template _mfi::cmf6 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6) const) { return _mfi::cmf6(f); } template _mfi::mf7 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6, A7)) { return _mfi::mf7(f); } template _mfi::cmf7 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6, A7) const) { return _mfi::cmf7(f); } template _mfi::mf8 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6, A7, A8)) { return _mfi::mf8(f); } template _mfi::cmf8 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const) { return _mfi::cmf8(f); } # 269 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn.hpp" 2 3 4 # 311 "/home/jas/.tt/ttsetup/opt/include/boost/bind/mem_fn.hpp" 3 4 namespace _mfi { template class dm { public: typedef R const & result_type; typedef T const * argument_type; private: typedef R (T::*F); F f_; template R const & call(U & u, T const *) const { return (u.*f_); } template R const & call(U & u, void const *) const { return (get_pointer(u)->*f_); } public: explicit dm(F f): f_(f) {} R & operator()(T * p) const { return (p->*f_); } R const & operator()(T const * p) const { return (p->*f_); } template R const & operator()(U const & u) const { return call(u, &u); } R & operator()(T & t) const { return (t.*f_); } R const & operator()(T const & t) const { return (t.*f_); } bool operator==(dm const & rhs) const { return f_ == rhs.f_; } bool operator!=(dm const & rhs) const { return f_ != rhs.f_; } }; } template _mfi::dm mem_fn(R T::*f) { return _mfi::dm(f); } } # 23 "/home/jas/.tt/ttsetup/opt/include/boost/mem_fn.hpp" 2 3 4 # 27 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/type.hpp" 1 3 4 # 9 "/home/jas/.tt/ttsetup/opt/include/boost/type.hpp" 3 4 namespace boost { template struct type {}; } # 28 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/is_placeholder.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/is_placeholder.hpp" 3 4 namespace boost { template< class T > struct is_placeholder { enum _vt { value = 0 }; }; } # 29 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/bind/arg.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/bind/arg.hpp" 3 4 namespace boost { template< int I > struct arg { arg() { } template< class T > arg( T const & ) { typedef char T_must_be_placeholder[ I == is_placeholder::value? 1: -1 ]; } }; template< int I > bool operator==( arg const &, arg const & ) { return true; } template< int I > struct is_placeholder< arg > { enum _vt { value = I }; }; template< int I > struct is_placeholder< arg (*) () > { enum _vt { value = I }; }; } # 30 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/visit_each.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/visit_each.hpp" 3 4 namespace boost { template inline void visit_each(Visitor& visitor, const T& t, long) { visitor(t); } template inline void visit_each(Visitor& visitor, const T& t) { visit_each(visitor, t, 0); } } # 32 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 2 3 4 # 41 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/bind/storage.hpp" 1 3 4 # 32 "/home/jas/.tt/ttsetup/opt/include/boost/bind/storage.hpp" 3 4 namespace boost { namespace _bi { template struct storage1 { explicit storage1( A1 a1 ): a1_( a1 ) {} template void accept(V & v) const { visit_each(v, a1_, 0); } A1 a1_; }; template struct storage1< boost::arg > { explicit storage1( boost::arg ) {} template void accept(V &) const { } static boost::arg a1_() { return boost::arg(); } }; template struct storage1< boost::arg (*) () > { explicit storage1( boost::arg (*) () ) {} template void accept(V &) const { } static boost::arg a1_() { return boost::arg(); } }; template struct storage2: public storage1 { typedef storage1 inherited; storage2( A1 a1, A2 a2 ): storage1( a1 ), a2_( a2 ) {} template void accept(V & v) const { inherited::accept(v); visit_each(v, a2_, 0); } A2 a2_; }; template struct storage2< A1, boost::arg >: public storage1 { typedef storage1 inherited; storage2( A1 a1, boost::arg ): storage1( a1 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a2_() { return boost::arg(); } }; template struct storage2< A1, boost::arg (*) () >: public storage1 { typedef storage1 inherited; storage2( A1 a1, boost::arg (*) () ): storage1( a1 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a2_() { return boost::arg(); } }; template struct storage3: public storage2< A1, A2 > { typedef storage2 inherited; storage3( A1 a1, A2 a2, A3 a3 ): storage2( a1, a2 ), a3_( a3 ) {} template void accept(V & v) const { inherited::accept(v); visit_each(v, a3_, 0); } A3 a3_; }; template struct storage3< A1, A2, boost::arg >: public storage2< A1, A2 > { typedef storage2 inherited; storage3( A1 a1, A2 a2, boost::arg ): storage2( a1, a2 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a3_() { return boost::arg(); } }; template struct storage3< A1, A2, boost::arg (*) () >: public storage2< A1, A2 > { typedef storage2 inherited; storage3( A1 a1, A2 a2, boost::arg (*) () ): storage2( a1, a2 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a3_() { return boost::arg(); } }; template struct storage4: public storage3< A1, A2, A3 > { typedef storage3 inherited; storage4( A1 a1, A2 a2, A3 a3, A4 a4 ): storage3( a1, a2, a3 ), a4_( a4 ) {} template void accept(V & v) const { inherited::accept(v); visit_each(v, a4_, 0); } A4 a4_; }; template struct storage4< A1, A2, A3, boost::arg >: public storage3< A1, A2, A3 > { typedef storage3 inherited; storage4( A1 a1, A2 a2, A3 a3, boost::arg ): storage3( a1, a2, a3 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a4_() { return boost::arg(); } }; template struct storage4< A1, A2, A3, boost::arg (*) () >: public storage3< A1, A2, A3 > { typedef storage3 inherited; storage4( A1 a1, A2 a2, A3 a3, boost::arg (*) () ): storage3( a1, a2, a3 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a4_() { return boost::arg(); } }; template struct storage5: public storage4< A1, A2, A3, A4 > { typedef storage4 inherited; storage5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): storage4( a1, a2, a3, a4 ), a5_( a5 ) {} template void accept(V & v) const { inherited::accept(v); visit_each(v, a5_, 0); } A5 a5_; }; template struct storage5< A1, A2, A3, A4, boost::arg >: public storage4< A1, A2, A3, A4 > { typedef storage4 inherited; storage5( A1 a1, A2 a2, A3 a3, A4 a4, boost::arg ): storage4( a1, a2, a3, a4 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a5_() { return boost::arg(); } }; template struct storage5< A1, A2, A3, A4, boost::arg (*) () >: public storage4< A1, A2, A3, A4 > { typedef storage4 inherited; storage5( A1 a1, A2 a2, A3 a3, A4 a4, boost::arg (*) () ): storage4( a1, a2, a3, a4 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a5_() { return boost::arg(); } }; template struct storage6: public storage5< A1, A2, A3, A4, A5 > { typedef storage5 inherited; storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): storage5( a1, a2, a3, a4, a5 ), a6_( a6 ) {} template void accept(V & v) const { inherited::accept(v); visit_each(v, a6_, 0); } A6 a6_; }; template struct storage6< A1, A2, A3, A4, A5, boost::arg >: public storage5< A1, A2, A3, A4, A5 > { typedef storage5 inherited; storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, boost::arg ): storage5( a1, a2, a3, a4, a5 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a6_() { return boost::arg(); } }; template struct storage6< A1, A2, A3, A4, A5, boost::arg (*) () >: public storage5< A1, A2, A3, A4, A5 > { typedef storage5 inherited; storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, boost::arg (*) () ): storage5( a1, a2, a3, a4, a5 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a6_() { return boost::arg(); } }; template struct storage7: public storage6< A1, A2, A3, A4, A5, A6 > { typedef storage6 inherited; storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): storage6( a1, a2, a3, a4, a5, a6 ), a7_( a7 ) {} template void accept(V & v) const { inherited::accept(v); visit_each(v, a7_, 0); } A7 a7_; }; template struct storage7< A1, A2, A3, A4, A5, A6, boost::arg >: public storage6< A1, A2, A3, A4, A5, A6 > { typedef storage6 inherited; storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, boost::arg ): storage6( a1, a2, a3, a4, a5, a6 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a7_() { return boost::arg(); } }; template struct storage7< A1, A2, A3, A4, A5, A6, boost::arg (*) () >: public storage6< A1, A2, A3, A4, A5, A6 > { typedef storage6 inherited; storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, boost::arg (*) () ): storage6( a1, a2, a3, a4, a5, a6 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a7_() { return boost::arg(); } }; template struct storage8: public storage7< A1, A2, A3, A4, A5, A6, A7 > { typedef storage7 inherited; storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): storage7( a1, a2, a3, a4, a5, a6, a7 ), a8_( a8 ) {} template void accept(V & v) const { inherited::accept(v); visit_each(v, a8_, 0); } A8 a8_; }; template struct storage8< A1, A2, A3, A4, A5, A6, A7, boost::arg >: public storage7< A1, A2, A3, A4, A5, A6, A7 > { typedef storage7 inherited; storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, boost::arg ): storage7( a1, a2, a3, a4, a5, a6, a7 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a8_() { return boost::arg(); } }; template struct storage8< A1, A2, A3, A4, A5, A6, A7, boost::arg (*) () >: public storage7< A1, A2, A3, A4, A5, A6, A7 > { typedef storage7 inherited; storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, boost::arg (*) () ): storage7( a1, a2, a3, a4, a5, a6, a7 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a8_() { return boost::arg(); } }; template struct storage9: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 > { typedef storage8 inherited; storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ), a9_( a9 ) {} template void accept(V & v) const { inherited::accept(v); visit_each(v, a9_, 0); } A9 a9_; }; template struct storage9< A1, A2, A3, A4, A5, A6, A7, A8, boost::arg >: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 > { typedef storage8 inherited; storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, boost::arg ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a9_() { return boost::arg(); } }; template struct storage9< A1, A2, A3, A4, A5, A6, A7, A8, boost::arg (*) () >: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 > { typedef storage8 inherited; storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, boost::arg (*) () ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ) {} template void accept(V & v) const { inherited::accept(v); } static boost::arg a9_() { return boost::arg(); } }; } } # 42 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 2 3 4 namespace boost { template class weak_ptr; namespace _bi { template struct result_traits { typedef R type; }; struct unspecified {}; template struct result_traits { typedef typename F::result_type type; }; template struct result_traits< unspecified, reference_wrapper > { typedef typename F::result_type type; }; template bool ref_compare( T const & a, T const & b, long ) { return a == b; } template bool ref_compare( arg const &, arg const &, int ) { return true; } template bool ref_compare( arg (*) (), arg (*) (), int ) { return true; } template bool ref_compare( reference_wrapper const & a, reference_wrapper const & b, int ) { return a.get_pointer() == b.get_pointer(); } template class bind_t; template bool ref_compare( bind_t const & a, bind_t const & b, int ) { return a.compare( b ); } template class value { public: value(T const & t): t_(t) {} T & get() { return t_; } T const & get() const { return t_; } bool operator==(value const & rhs) const { return t_ == rhs.t_; } private: T t_; }; template bool ref_compare( value< weak_ptr > const & a, value< weak_ptr > const & b, int ) { return !(a.get() < b.get()) && !(b.get() < a.get()); } template class type {}; template struct unwrapper { static inline F & unwrap( F & f, long ) { return f; } template static inline F2 & unwrap( reference_wrapper rf, int ) { return rf.get(); } template static inline _mfi::dm unwrap( R T::* pm, int ) { return _mfi::dm( pm ); } }; class list0 { public: list0() {} template T & operator[] (_bi::value & v) const { return v.get(); } template T const & operator[] (_bi::value const & v) const { return v.get(); } template T & operator[] (reference_wrapper const & v) const { return v.get(); } template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } template R operator()(type, F & f, A &, long) { return unwrapper::unwrap(f, 0)(); } template R operator()(type, F const & f, A &, long) const { return unwrapper::unwrap(f, 0)(); } template void operator()(type, F & f, A &, int) { unwrapper::unwrap(f, 0)(); } template void operator()(type, F const & f, A &, int) const { unwrapper::unwrap(f, 0)(); } template void accept(V &) const { } bool operator==(list0 const &) const { return true; } }; # 217 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 template< class A1 > class list1: private storage1< A1 > { private: typedef storage1< A1 > base_type; public: explicit list1( A1 a1 ): base_type( a1 ) {} A1 operator[] (boost::arg<1>) const { return base_type::a1_; } A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } template T & operator[] ( _bi::value & v ) const { return v.get(); } template T const & operator[] ( _bi::value const & v ) const { return v.get(); } template T & operator[] (reference_wrapper const & v) const { return v.get(); } template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } template R operator()(type, F & f, A & a, long) { return unwrapper::unwrap(f, 0)(a[base_type::a1_]); } template R operator()(type, F const & f, A & a, long) const { return unwrapper::unwrap(f, 0)(a[base_type::a1_]); } template void operator()(type, F & f, A & a, int) { unwrapper::unwrap(f, 0)(a[base_type::a1_]); } template void operator()(type, F const & f, A & a, int) const { unwrapper::unwrap(f, 0)(a[base_type::a1_]); } template void accept(V & v) const { base_type::accept(v); } bool operator==(list1 const & rhs) const { return ref_compare(base_type::a1_, rhs.a1_, 0); } }; struct logical_and; struct logical_or; template< class A1, class A2 > class list2: private storage2< A1, A2 > { private: typedef storage2< A1, A2 > base_type; public: list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {} A1 operator[] (boost::arg<1>) const { return base_type::a1_; } A2 operator[] (boost::arg<2>) const { return base_type::a2_; } A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } template T & operator[] (_bi::value & v) const { return v.get(); } template T const & operator[] (_bi::value const & v) const { return v.get(); } template T & operator[] (reference_wrapper const & v) const { return v.get(); } template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } template R operator()(type, F & f, A & a, long) { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); } template R operator()(type, F const & f, A & a, long) const { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); } template void operator()(type, F & f, A & a, int) { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); } template void operator()(type, F const & f, A & a, int) const { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); } template bool operator()( type, logical_and & , A & a, int ) { return a[ base_type::a1_ ] && a[ base_type::a2_ ]; } template bool operator()( type, logical_and const & , A & a, int ) const { return a[ base_type::a1_ ] && a[ base_type::a2_ ]; } template bool operator()( type, logical_or & , A & a, int ) { return a[ base_type::a1_ ] || a[ base_type::a2_ ]; } template bool operator()( type, logical_or const & , A & a, int ) const { return a[ base_type::a1_ ] || a[ base_type::a2_ ]; } template void accept(V & v) const { base_type::accept(v); } bool operator==(list2 const & rhs) const { return ref_compare(base_type::a1_, rhs.a1_, 0) && ref_compare(base_type::a2_, rhs.a2_, 0); } }; template< class A1, class A2, class A3 > class list3: private storage3< A1, A2, A3 > { private: typedef storage3< A1, A2, A3 > base_type; public: list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {} A1 operator[] (boost::arg<1>) const { return base_type::a1_; } A2 operator[] (boost::arg<2>) const { return base_type::a2_; } A3 operator[] (boost::arg<3>) const { return base_type::a3_; } A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } template T & operator[] (_bi::value & v) const { return v.get(); } template T const & operator[] (_bi::value const & v) const { return v.get(); } template T & operator[] (reference_wrapper const & v) const { return v.get(); } template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } template R operator()(type, F & f, A & a, long) { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); } template R operator()(type, F const & f, A & a, long) const { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); } template void operator()(type, F & f, A & a, int) { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); } template void operator()(type, F const & f, A & a, int) const { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); } template void accept(V & v) const { base_type::accept(v); } bool operator==(list3 const & rhs) const { return ref_compare( base_type::a1_, rhs.a1_, 0 ) && ref_compare( base_type::a2_, rhs.a2_, 0 ) && ref_compare( base_type::a3_, rhs.a3_, 0 ); } }; template< class A1, class A2, class A3, class A4 > class list4: private storage4< A1, A2, A3, A4 > { private: typedef storage4< A1, A2, A3, A4 > base_type; public: list4( A1 a1, A2 a2, A3 a3, A4 a4 ): base_type( a1, a2, a3, a4 ) {} A1 operator[] (boost::arg<1>) const { return base_type::a1_; } A2 operator[] (boost::arg<2>) const { return base_type::a2_; } A3 operator[] (boost::arg<3>) const { return base_type::a3_; } A4 operator[] (boost::arg<4>) const { return base_type::a4_; } A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } template T & operator[] (_bi::value & v) const { return v.get(); } template T const & operator[] (_bi::value const & v) const { return v.get(); } template T & operator[] (reference_wrapper const & v) const { return v.get(); } template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } template R operator()(type, F & f, A & a, long) { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); } template R operator()(type, F const & f, A & a, long) const { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); } template void operator()(type, F & f, A & a, int) { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); } template void operator()(type, F const & f, A & a, int) const { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); } template void accept(V & v) const { base_type::accept(v); } bool operator==(list4 const & rhs) const { return ref_compare( base_type::a1_, rhs.a1_, 0 ) && ref_compare( base_type::a2_, rhs.a2_, 0 ) && ref_compare( base_type::a3_, rhs.a3_, 0 ) && ref_compare( base_type::a4_, rhs.a4_, 0 ); } }; template< class A1, class A2, class A3, class A4, class A5 > class list5: private storage5< A1, A2, A3, A4, A5 > { private: typedef storage5< A1, A2, A3, A4, A5 > base_type; public: list5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): base_type( a1, a2, a3, a4, a5 ) {} A1 operator[] (boost::arg<1>) const { return base_type::a1_; } A2 operator[] (boost::arg<2>) const { return base_type::a2_; } A3 operator[] (boost::arg<3>) const { return base_type::a3_; } A4 operator[] (boost::arg<4>) const { return base_type::a4_; } A5 operator[] (boost::arg<5>) const { return base_type::a5_; } A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } template T & operator[] (_bi::value & v) const { return v.get(); } template T const & operator[] (_bi::value const & v) const { return v.get(); } template T & operator[] (reference_wrapper const & v) const { return v.get(); } template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } template R operator()(type, F & f, A & a, long) { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); } template R operator()(type, F const & f, A & a, long) const { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); } template void operator()(type, F & f, A & a, int) { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); } template void operator()(type, F const & f, A & a, int) const { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); } template void accept(V & v) const { base_type::accept(v); } bool operator==(list5 const & rhs) const { return ref_compare( base_type::a1_, rhs.a1_, 0 ) && ref_compare( base_type::a2_, rhs.a2_, 0 ) && ref_compare( base_type::a3_, rhs.a3_, 0 ) && ref_compare( base_type::a4_, rhs.a4_, 0 ) && ref_compare( base_type::a5_, rhs.a5_, 0 ); } }; template class list6: private storage6< A1, A2, A3, A4, A5, A6 > { private: typedef storage6< A1, A2, A3, A4, A5, A6 > base_type; public: list6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): base_type( a1, a2, a3, a4, a5, a6 ) {} A1 operator[] (boost::arg<1>) const { return base_type::a1_; } A2 operator[] (boost::arg<2>) const { return base_type::a2_; } A3 operator[] (boost::arg<3>) const { return base_type::a3_; } A4 operator[] (boost::arg<4>) const { return base_type::a4_; } A5 operator[] (boost::arg<5>) const { return base_type::a5_; } A6 operator[] (boost::arg<6>) const { return base_type::a6_; } A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } template T & operator[] (_bi::value & v) const { return v.get(); } template T const & operator[] (_bi::value const & v) const { return v.get(); } template T & operator[] (reference_wrapper const & v) const { return v.get(); } template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } template R operator()(type, F & f, A & a, long) { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); } template R operator()(type, F const & f, A & a, long) const { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); } template void operator()(type, F & f, A & a, int) { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); } template void operator()(type, F const & f, A & a, int) const { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); } template void accept(V & v) const { base_type::accept(v); } bool operator==(list6 const & rhs) const { return ref_compare( base_type::a1_, rhs.a1_, 0 ) && ref_compare( base_type::a2_, rhs.a2_, 0 ) && ref_compare( base_type::a3_, rhs.a3_, 0 ) && ref_compare( base_type::a4_, rhs.a4_, 0 ) && ref_compare( base_type::a5_, rhs.a5_, 0 ) && ref_compare( base_type::a6_, rhs.a6_, 0 ); } }; template class list7: private storage7< A1, A2, A3, A4, A5, A6, A7 > { private: typedef storage7< A1, A2, A3, A4, A5, A6, A7 > base_type; public: list7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): base_type( a1, a2, a3, a4, a5, a6, a7 ) {} A1 operator[] (boost::arg<1>) const { return base_type::a1_; } A2 operator[] (boost::arg<2>) const { return base_type::a2_; } A3 operator[] (boost::arg<3>) const { return base_type::a3_; } A4 operator[] (boost::arg<4>) const { return base_type::a4_; } A5 operator[] (boost::arg<5>) const { return base_type::a5_; } A6 operator[] (boost::arg<6>) const { return base_type::a6_; } A7 operator[] (boost::arg<7>) const { return base_type::a7_; } A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; } template T & operator[] (_bi::value & v) const { return v.get(); } template T const & operator[] (_bi::value const & v) const { return v.get(); } template T & operator[] (reference_wrapper const & v) const { return v.get(); } template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } template R operator()(type, F & f, A & a, long) { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); } template R operator()(type, F const & f, A & a, long) const { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); } template void operator()(type, F & f, A & a, int) { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); } template void operator()(type, F const & f, A & a, int) const { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); } template void accept(V & v) const { base_type::accept(v); } bool operator==(list7 const & rhs) const { return ref_compare( base_type::a1_, rhs.a1_, 0 ) && ref_compare( base_type::a2_, rhs.a2_, 0 ) && ref_compare( base_type::a3_, rhs.a3_, 0 ) && ref_compare( base_type::a4_, rhs.a4_, 0 ) && ref_compare( base_type::a5_, rhs.a5_, 0 ) && ref_compare( base_type::a6_, rhs.a6_, 0 ) && ref_compare( base_type::a7_, rhs.a7_, 0 ); } }; template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class list8: private storage8< A1, A2, A3, A4, A5, A6, A7, A8 > { private: typedef storage8< A1, A2, A3, A4, A5, A6, A7, A8 > base_type; public: list8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8 ) {} A1 operator[] (boost::arg<1>) const { return base_type::a1_; } A2 operator[] (boost::arg<2>) const { return base_type::a2_; } A3 operator[] (boost::arg<3>) const { return base_type::a3_; } A4 operator[] (boost::arg<4>) const { return base_type::a4_; } A5 operator[] (boost::arg<5>) const { return base_type::a5_; } A6 operator[] (boost::arg<6>) const { return base_type::a6_; } A7 operator[] (boost::arg<7>) const { return base_type::a7_; } A8 operator[] (boost::arg<8>) const { return base_type::a8_; } A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; } A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; } template T & operator[] (_bi::value & v) const { return v.get(); } template T const & operator[] (_bi::value const & v) const { return v.get(); } template T & operator[] (reference_wrapper const & v) const { return v.get(); } template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } template R operator()(type, F & f, A & a, long) { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); } template R operator()(type, F const & f, A & a, long) const { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); } template void operator()(type, F & f, A & a, int) { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); } template void operator()(type, F const & f, A & a, int) const { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); } template void accept(V & v) const { base_type::accept(v); } bool operator==(list8 const & rhs) const { return ref_compare( base_type::a1_, rhs.a1_, 0 ) && ref_compare( base_type::a2_, rhs.a2_, 0 ) && ref_compare( base_type::a3_, rhs.a3_, 0 ) && ref_compare( base_type::a4_, rhs.a4_, 0 ) && ref_compare( base_type::a5_, rhs.a5_, 0 ) && ref_compare( base_type::a6_, rhs.a6_, 0 ) && ref_compare( base_type::a7_, rhs.a7_, 0 ) && ref_compare( base_type::a8_, rhs.a8_, 0 ); } }; template class list9: private storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > { private: typedef storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > base_type; public: list9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) {} A1 operator[] (boost::arg<1>) const { return base_type::a1_; } A2 operator[] (boost::arg<2>) const { return base_type::a2_; } A3 operator[] (boost::arg<3>) const { return base_type::a3_; } A4 operator[] (boost::arg<4>) const { return base_type::a4_; } A5 operator[] (boost::arg<5>) const { return base_type::a5_; } A6 operator[] (boost::arg<6>) const { return base_type::a6_; } A7 operator[] (boost::arg<7>) const { return base_type::a7_; } A8 operator[] (boost::arg<8>) const { return base_type::a8_; } A9 operator[] (boost::arg<9>) const { return base_type::a9_; } A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; } A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; } A9 operator[] (boost::arg<9> (*) ()) const { return base_type::a9_; } template T & operator[] (_bi::value & v) const { return v.get(); } template T const & operator[] (_bi::value const & v) const { return v.get(); } template T & operator[] (reference_wrapper const & v) const { return v.get(); } template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } template R operator()(type, F & f, A & a, long) { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); } template R operator()(type, F const & f, A & a, long) const { return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); } template void operator()(type, F & f, A & a, int) { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); } template void operator()(type, F const & f, A & a, int) const { unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); } template void accept(V & v) const { base_type::accept(v); } bool operator==(list9 const & rhs) const { return ref_compare( base_type::a1_, rhs.a1_, 0 ) && ref_compare( base_type::a2_, rhs.a2_, 0 ) && ref_compare( base_type::a3_, rhs.a3_, 0 ) && ref_compare( base_type::a4_, rhs.a4_, 0 ) && ref_compare( base_type::a5_, rhs.a5_, 0 ) && ref_compare( base_type::a6_, rhs.a6_, 0 ) && ref_compare( base_type::a7_, rhs.a7_, 0 ) && ref_compare( base_type::a8_, rhs.a8_, 0 ) && ref_compare( base_type::a9_, rhs.a9_, 0 ); } }; # 864 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 template class bind_t { public: typedef bind_t this_type; bind_t(F f, L const & l): f_(f), l_(l) {} # 1 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind_template.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind_template.hpp" 3 4 typedef typename result_traits::type result_type; result_type operator()() { list0 a; return l_(type(), f_, a, 0); } result_type operator()() const { list0 a; return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1) { list1 a(a1); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1) const { list1 a(a1); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1) { list1 a(a1); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1) const { list1 a(a1); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2) { list2 a(a1, a2); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2) const { list2 a(a1, a2); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 & a2) { list2 a(a1, a2); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 & a2) const { list2 a(a1, a2); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 const & a2) { list2 a(a1, a2); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 const & a2) const { list2 a(a1, a2); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2) { list2 a(a1, a2); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2) const { list2 a(a1, a2); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3) { list3 a(a1, a2, a3); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3) const { list3 a(a1, a2, a3); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) { list3 a(a1, a2, a3); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) const { list3 a(a1, a2, a3); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) { list4 a(a1, a2, a3, a4); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) const { list4 a(a1, a2, a3, a4); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) { list4 a(a1, a2, a3, a4); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) const { list4 a(a1, a2, a3, a4); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) { list5 a(a1, a2, a3, a4, a5); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const { list5 a(a1, a2, a3, a4, a5); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) { list5 a(a1, a2, a3, a4, a5); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) const { list5 a(a1, a2, a3, a4, a5); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) { list6 a(a1, a2, a3, a4, a5, a6); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const { list6 a(a1, a2, a3, a4, a5, a6); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) { list6 a(a1, a2, a3, a4, a5, a6); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) const { list6 a(a1, a2, a3, a4, a5, a6); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) { list7 a(a1, a2, a3, a4, a5, a6, a7); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const { list7 a(a1, a2, a3, a4, a5, a6, a7); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) { list7 a(a1, a2, a3, a4, a5, a6, a7); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) const { list7 a(a1, a2, a3, a4, a5, a6, a7); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) { list8 a(a1, a2, a3, a4, a5, a6, a7, a8); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const { list8 a(a1, a2, a3, a4, a5, a6, a7, a8); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) { list8 a(a1, a2, a3, a4, a5, a6, a7, a8); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) const { list8 a(a1, a2, a3, a4, a5, a6, a7, a8); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) { list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); return l_(type(), f_, a, 0); } template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const { list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) { list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); return l_(type(), f_, a, 0); } template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) const { list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); return l_(type(), f_, a, 0); } template result_type eval(A & a) { return l_(type(), f_, a, 0); } template result_type eval(A & a) const { return l_(type(), f_, a, 0); } template void accept(V & v) const { using boost::visit_each; visit_each(v, f_, 0); l_.accept(v); } bool compare(this_type const & rhs) const { return ref_compare(f_, rhs.f_, 0) && l_ == rhs.l_; } private: F f_; L l_; # 874 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 2 3 4 }; # 940 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 template bool function_equal( bind_t const & a, bind_t const & b ) { return a.compare(b); } # 994 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 template< class T, int I > struct add_value_2 { typedef boost::arg type; }; template< class T > struct add_value_2< T, 0 > { typedef _bi::value< T > type; }; template struct add_value { typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type type; }; template struct add_value< value > { typedef _bi::value type; }; template struct add_value< reference_wrapper > { typedef reference_wrapper type; }; template struct add_value< arg > { typedef boost::arg type; }; template struct add_value< arg (*) () > { typedef boost::arg (*type) (); }; template struct add_value< bind_t > { typedef bind_t type; }; # 1077 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 template struct list_av_1 { typedef typename add_value::type B1; typedef list1 type; }; template struct list_av_2 { typedef typename add_value::type B1; typedef typename add_value::type B2; typedef list2 type; }; template struct list_av_3 { typedef typename add_value::type B1; typedef typename add_value::type B2; typedef typename add_value::type B3; typedef list3 type; }; template struct list_av_4 { typedef typename add_value::type B1; typedef typename add_value::type B2; typedef typename add_value::type B3; typedef typename add_value::type B4; typedef list4 type; }; template struct list_av_5 { typedef typename add_value::type B1; typedef typename add_value::type B2; typedef typename add_value::type B3; typedef typename add_value::type B4; typedef typename add_value::type B5; typedef list5 type; }; template struct list_av_6 { typedef typename add_value::type B1; typedef typename add_value::type B2; typedef typename add_value::type B3; typedef typename add_value::type B4; typedef typename add_value::type B5; typedef typename add_value::type B6; typedef list6 type; }; template struct list_av_7 { typedef typename add_value::type B1; typedef typename add_value::type B2; typedef typename add_value::type B3; typedef typename add_value::type B4; typedef typename add_value::type B5; typedef typename add_value::type B6; typedef typename add_value::type B7; typedef list7 type; }; template struct list_av_8 { typedef typename add_value::type B1; typedef typename add_value::type B2; typedef typename add_value::type B3; typedef typename add_value::type B4; typedef typename add_value::type B5; typedef typename add_value::type B6; typedef typename add_value::type B7; typedef typename add_value::type B8; typedef list8 type; }; template struct list_av_9 { typedef typename add_value::type B1; typedef typename add_value::type B2; typedef typename add_value::type B3; typedef typename add_value::type B4; typedef typename add_value::type B5; typedef typename add_value::type B6; typedef typename add_value::type B7; typedef typename add_value::type B8; typedef typename add_value::type B9; typedef list9 type; }; struct logical_not { template bool operator()(V const & v) const { return !v; } }; template bind_t< bool, logical_not, list1< bind_t > > operator! (bind_t const & f) { typedef list1< bind_t > list_type; return bind_t ( logical_not(), list_type(f) ); } # 1200 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 struct equal { template bool operator()(V const & v, W const & w) const { return v == w; } }; template bind_t< bool, equal, list2< bind_t, typename add_value::type > > operator == (bind_t const & f, A2 a2) { typedef typename add_value::type B2; typedef list2< bind_t, B2> list_type; return bind_t ( equal(), list_type(f, a2) ); } struct not_equal { template bool operator()(V const & v, W const & w) const { return v != w; } }; template bind_t< bool, not_equal, list2< bind_t, typename add_value::type > > operator != (bind_t const & f, A2 a2) { typedef typename add_value::type B2; typedef list2< bind_t, B2> list_type; return bind_t ( not_equal(), list_type(f, a2) ); } struct less { template bool operator()(V const & v, W const & w) const { return v < w; } }; template bind_t< bool, less, list2< bind_t, typename add_value::type > > operator < (bind_t const & f, A2 a2) { typedef typename add_value::type B2; typedef list2< bind_t, B2> list_type; return bind_t ( less(), list_type(f, a2) ); } struct less_equal { template bool operator()(V const & v, W const & w) const { return v <= w; } }; template bind_t< bool, less_equal, list2< bind_t, typename add_value::type > > operator <= (bind_t const & f, A2 a2) { typedef typename add_value::type B2; typedef list2< bind_t, B2> list_type; return bind_t ( less_equal(), list_type(f, a2) ); } struct greater { template bool operator()(V const & v, W const & w) const { return v > w; } }; template bind_t< bool, greater, list2< bind_t, typename add_value::type > > operator > (bind_t const & f, A2 a2) { typedef typename add_value::type B2; typedef list2< bind_t, B2> list_type; return bind_t ( greater(), list_type(f, a2) ); } struct greater_equal { template bool operator()(V const & v, W const & w) const { return v >= w; } }; template bind_t< bool, greater_equal, list2< bind_t, typename add_value::type > > operator >= (bind_t const & f, A2 a2) { typedef typename add_value::type B2; typedef list2< bind_t, B2> list_type; return bind_t ( greater_equal(), list_type(f, a2) ); } struct logical_and { template bool operator()(V const & v, W const & w) const { return v && w; } }; template bind_t< bool, logical_and, list2< bind_t, typename add_value::type > > operator && (bind_t const & f, A2 a2) { typedef typename add_value::type B2; typedef list2< bind_t, B2> list_type; return bind_t ( logical_and(), list_type(f, a2) ); } struct logical_or { template bool operator()(V const & v, W const & w) const { return v || w; } }; template bind_t< bool, logical_or, list2< bind_t, typename add_value::type > > operator || (bind_t const & f, A2 a2) { typedef typename add_value::type B2; typedef list2< bind_t, B2> list_type; return bind_t ( logical_or(), list_type(f, a2) ); } # 1240 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 template void visit_each( V & v, value const & t, int ) { using boost::visit_each; visit_each( v, t.get(), 0 ); } template void visit_each( V & v, bind_t const & t, int ) { t.accept( v ); } } # 1274 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 template< class T > struct is_bind_expression { enum _vt { value = 0 }; }; template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > > { enum _vt { value = 1 }; }; # 1296 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 template _bi::bind_t bind(F f) { typedef _bi::list0 list_type; return _bi::bind_t (f, list_type()); } template _bi::bind_t::type> bind(F f, A1 a1) { typedef typename _bi::list_av_1::type list_type; return _bi::bind_t (f, list_type(a1)); } template _bi::bind_t::type> bind(F f, A1 a1, A2 a2) { typedef typename _bi::list_av_2::type list_type; return _bi::bind_t (f, list_type(a1, a2)); } template _bi::bind_t::type> bind(F f, A1 a1, A2 a2, A3 a3) { typedef typename _bi::list_av_3::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3)); } template _bi::bind_t::type> bind(F f, A1 a1, A2 a2, A3 a3, A4 a4) { typedef typename _bi::list_av_4::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4)); } template _bi::bind_t::type> bind(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { typedef typename _bi::list_av_5::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5)); } template _bi::bind_t::type> bind(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { typedef typename _bi::list_av_6::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6)); } template _bi::bind_t::type> bind(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { typedef typename _bi::list_av_7::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7)); } template _bi::bind_t::type> bind(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { typedef typename _bi::list_av_8::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); } template _bi::bind_t::type> bind(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) { typedef typename _bi::list_av_9::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); } template _bi::bind_t bind(boost::type, F f) { typedef _bi::list0 list_type; return _bi::bind_t (f, list_type()); } template _bi::bind_t::type> bind(boost::type, F f, A1 a1) { typedef typename _bi::list_av_1::type list_type; return _bi::bind_t (f, list_type(a1)); } template _bi::bind_t::type> bind(boost::type, F f, A1 a1, A2 a2) { typedef typename _bi::list_av_2::type list_type; return _bi::bind_t (f, list_type(a1, a2)); } template _bi::bind_t::type> bind(boost::type, F f, A1 a1, A2 a2, A3 a3) { typedef typename _bi::list_av_3::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3)); } template _bi::bind_t::type> bind(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4) { typedef typename _bi::list_av_4::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4)); } template _bi::bind_t::type> bind(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { typedef typename _bi::list_av_5::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5)); } template _bi::bind_t::type> bind(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { typedef typename _bi::list_av_6::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6)); } template _bi::bind_t::type> bind(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { typedef typename _bi::list_av_7::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7)); } template _bi::bind_t::type> bind(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { typedef typename _bi::list_av_8::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); } template _bi::bind_t::type> bind(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) { typedef typename _bi::list_av_9::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); } template _bi::bind_t<_bi::unspecified, F, _bi::list0> bind(F f) { typedef _bi::list0 list_type; return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type()); } template _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_1::type> bind(F f, A1 a1) { typedef typename _bi::list_av_1::type list_type; return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1)); } template _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_2::type> bind(F f, A1 a1, A2 a2) { typedef typename _bi::list_av_2::type list_type; return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1, a2)); } template _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_3::type> bind(F f, A1 a1, A2 a2, A3 a3) { typedef typename _bi::list_av_3::type list_type; return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3)); } template _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_4::type> bind(F f, A1 a1, A2 a2, A3 a3, A4 a4) { typedef typename _bi::list_av_4::type list_type; return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4)); } template _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_5::type> bind(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { typedef typename _bi::list_av_5::type list_type; return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5)); } template _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_6::type> bind(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { typedef typename _bi::list_av_6::type list_type; return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6)); } template _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_7::type> bind(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { typedef typename _bi::list_av_7::type list_type; return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7)); } template _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_8::type> bind(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { typedef typename _bi::list_av_8::type list_type; return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); } template _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_9::type> bind(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) { typedef typename _bi::list_av_9::type list_type; return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); } # 1549 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind_cc.hpp" 1 3 4 # 15 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind_cc.hpp" 3 4 template _bi::bind_t bind( R ( *f) ()) { typedef R ( *F) (); typedef _bi::list0 list_type; return _bi::bind_t (f, list_type()); } template _bi::bind_t::type> bind( R ( *f) (B1), A1 a1) { typedef R ( *F) (B1); typedef typename _bi::list_av_1::type list_type; return _bi::bind_t (f, list_type(a1)); } template _bi::bind_t::type> bind( R ( *f) (B1, B2), A1 a1, A2 a2) { typedef R ( *F) (B1, B2); typedef typename _bi::list_av_2::type list_type; return _bi::bind_t (f, list_type(a1, a2)); } template _bi::bind_t::type> bind( R ( *f) (B1, B2, B3), A1 a1, A2 a2, A3 a3) { typedef R ( *F) (B1, B2, B3); typedef typename _bi::list_av_3::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3)); } template _bi::bind_t::type> bind( R ( *f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4) { typedef R ( *F) (B1, B2, B3, B4); typedef typename _bi::list_av_4::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4)); } template _bi::bind_t::type> bind( R ( *f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { typedef R ( *F) (B1, B2, B3, B4, B5); typedef typename _bi::list_av_5::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5)); } template _bi::bind_t::type> bind( R ( *f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { typedef R ( *F) (B1, B2, B3, B4, B5, B6); typedef typename _bi::list_av_6::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6)); } template _bi::bind_t::type> bind( R ( *f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { typedef R ( *F) (B1, B2, B3, B4, B5, B6, B7); typedef typename _bi::list_av_7::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7)); } template _bi::bind_t::type> bind( R ( *f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { typedef R ( *F) (B1, B2, B3, B4, B5, B6, B7, B8); typedef typename _bi::list_av_8::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); } template _bi::bind_t::type> bind( R ( *f) (B1, B2, B3, B4, B5, B6, B7, B8, B9), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) { typedef R ( *F) (B1, B2, B3, B4, B5, B6, B7, B8, B9); typedef typename _bi::list_av_9::type list_type; return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); } # 1550 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 2 3 4 # 1595 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind_mf_cc.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind_mf_cc.hpp" 3 4 template _bi::bind_t, typename _bi::list_av_1::type> bind(R ( T::*f) (), A1 a1) { typedef _mfi::mf0 F; typedef typename _bi::list_av_1::type list_type; return _bi::bind_t(F(f), list_type(a1)); } template _bi::bind_t, typename _bi::list_av_1::type> bind(R ( T::*f) () const, A1 a1) { typedef _mfi::cmf0 F; typedef typename _bi::list_av_1::type list_type; return _bi::bind_t(F(f), list_type(a1)); } template _bi::bind_t, typename _bi::list_av_2::type> bind(R ( T::*f) (B1), A1 a1, A2 a2) { typedef _mfi::mf1 F; typedef typename _bi::list_av_2::type list_type; return _bi::bind_t(F(f), list_type(a1, a2)); } template _bi::bind_t, typename _bi::list_av_2::type> bind(R ( T::*f) (B1) const, A1 a1, A2 a2) { typedef _mfi::cmf1 F; typedef typename _bi::list_av_2::type list_type; return _bi::bind_t(F(f), list_type(a1, a2)); } template _bi::bind_t, typename _bi::list_av_3::type> bind(R ( T::*f) (B1, B2), A1 a1, A2 a2, A3 a3) { typedef _mfi::mf2 F; typedef typename _bi::list_av_3::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3)); } template _bi::bind_t, typename _bi::list_av_3::type> bind(R ( T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3) { typedef _mfi::cmf2 F; typedef typename _bi::list_av_3::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3)); } template _bi::bind_t, typename _bi::list_av_4::type> bind(R ( T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4) { typedef _mfi::mf3 F; typedef typename _bi::list_av_4::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); } template _bi::bind_t, typename _bi::list_av_4::type> bind(R ( T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4) { typedef _mfi::cmf3 F; typedef typename _bi::list_av_4::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); } template _bi::bind_t, typename _bi::list_av_5::type> bind(R ( T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { typedef _mfi::mf4 F; typedef typename _bi::list_av_5::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); } template _bi::bind_t, typename _bi::list_av_5::type> bind(R ( T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { typedef _mfi::cmf4 F; typedef typename _bi::list_av_5::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); } template _bi::bind_t, typename _bi::list_av_6::type> bind(R ( T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { typedef _mfi::mf5 F; typedef typename _bi::list_av_6::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); } template _bi::bind_t, typename _bi::list_av_6::type> bind(R ( T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { typedef _mfi::cmf5 F; typedef typename _bi::list_av_6::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); } template _bi::bind_t, typename _bi::list_av_7::type> bind(R ( T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { typedef _mfi::mf6 F; typedef typename _bi::list_av_7::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); } template _bi::bind_t, typename _bi::list_av_7::type> bind(R ( T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { typedef _mfi::cmf6 F; typedef typename _bi::list_av_7::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); } template _bi::bind_t, typename _bi::list_av_8::type> bind(R ( T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { typedef _mfi::mf7 F; typedef typename _bi::list_av_8::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); } template _bi::bind_t, typename _bi::list_av_8::type> bind(R ( T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { typedef _mfi::cmf7 F; typedef typename _bi::list_av_8::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); } template _bi::bind_t, typename _bi::list_av_9::type> bind(R ( T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) { typedef _mfi::mf8 F; typedef typename _bi::list_av_9::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); } template _bi::bind_t, typename _bi::list_av_9::type> bind(R ( T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) { typedef _mfi::cmf8 F; typedef typename _bi::list_av_9::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); } # 1596 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind_mf2_cc.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind_mf2_cc.hpp" 3 4 template _bi::bind_t, typename _bi::list_av_1::type> bind(boost::type, R ( T::*f) (), A1 a1) { typedef _mfi::mf0 F; typedef typename _bi::list_av_1::type list_type; return _bi::bind_t(F(f), list_type(a1)); } template _bi::bind_t, typename _bi::list_av_1::type> bind(boost::type, R ( T::*f) () const, A1 a1) { typedef _mfi::cmf0 F; typedef typename _bi::list_av_1::type list_type; return _bi::bind_t(F(f), list_type(a1)); } template _bi::bind_t, typename _bi::list_av_2::type> bind(boost::type, R ( T::*f) (B1), A1 a1, A2 a2) { typedef _mfi::mf1 F; typedef typename _bi::list_av_2::type list_type; return _bi::bind_t(F(f), list_type(a1, a2)); } template _bi::bind_t, typename _bi::list_av_2::type> bind(boost::type, R ( T::*f) (B1) const, A1 a1, A2 a2) { typedef _mfi::cmf1 F; typedef typename _bi::list_av_2::type list_type; return _bi::bind_t(F(f), list_type(a1, a2)); } template _bi::bind_t, typename _bi::list_av_3::type> bind(boost::type, R ( T::*f) (B1, B2), A1 a1, A2 a2, A3 a3) { typedef _mfi::mf2 F; typedef typename _bi::list_av_3::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3)); } template _bi::bind_t, typename _bi::list_av_3::type> bind(boost::type, R ( T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3) { typedef _mfi::cmf2 F; typedef typename _bi::list_av_3::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3)); } template _bi::bind_t, typename _bi::list_av_4::type> bind(boost::type, R ( T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4) { typedef _mfi::mf3 F; typedef typename _bi::list_av_4::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); } template _bi::bind_t, typename _bi::list_av_4::type> bind(boost::type, R ( T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4) { typedef _mfi::cmf3 F; typedef typename _bi::list_av_4::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); } template _bi::bind_t, typename _bi::list_av_5::type> bind(boost::type, R ( T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { typedef _mfi::mf4 F; typedef typename _bi::list_av_5::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); } template _bi::bind_t, typename _bi::list_av_5::type> bind(boost::type, R ( T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { typedef _mfi::cmf4 F; typedef typename _bi::list_av_5::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); } template _bi::bind_t, typename _bi::list_av_6::type> bind(boost::type, R ( T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { typedef _mfi::mf5 F; typedef typename _bi::list_av_6::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); } template _bi::bind_t, typename _bi::list_av_6::type> bind(boost::type, R ( T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { typedef _mfi::cmf5 F; typedef typename _bi::list_av_6::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); } template _bi::bind_t, typename _bi::list_av_7::type> bind(boost::type, R ( T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { typedef _mfi::mf6 F; typedef typename _bi::list_av_7::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); } template _bi::bind_t, typename _bi::list_av_7::type> bind(boost::type, R ( T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { typedef _mfi::cmf6 F; typedef typename _bi::list_av_7::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); } template _bi::bind_t, typename _bi::list_av_8::type> bind(boost::type, R ( T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { typedef _mfi::mf7 F; typedef typename _bi::list_av_8::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); } template _bi::bind_t, typename _bi::list_av_8::type> bind(boost::type, R ( T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { typedef _mfi::cmf7 F; typedef typename _bi::list_av_8::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); } template _bi::bind_t, typename _bi::list_av_9::type> bind(boost::type, R ( T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) { typedef _mfi::mf8 F; typedef typename _bi::list_av_9::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); } template _bi::bind_t, typename _bi::list_av_9::type> bind(boost::type, R ( T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) { typedef _mfi::cmf8 F; typedef typename _bi::list_av_9::type list_type; return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); } # 1597 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 2 3 4 # 1656 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 3 4 namespace _bi { template< class Pm, int I > struct add_cref; template< class M, class T > struct add_cref< M T::*, 0 > { typedef M type; }; template< class M, class T > struct add_cref< M T::*, 1 > { typedef M const & type; }; template< class R, class T > struct add_cref< R (T::*) (), 1 > { typedef void type; }; template< class R, class T > struct add_cref< R (T::*) () const, 1 > { typedef void type; }; template struct isref { enum value_type { value = 0 }; }; template struct isref< R& > { enum value_type { value = 1 }; }; template struct isref< R* > { enum value_type { value = 1 }; }; template struct dm_result { typedef typename add_cref< Pm, 1 >::type type; }; template struct dm_result< Pm, bind_t > { typedef typename bind_t::result_type result_type; typedef typename add_cref< Pm, isref< result_type >::value >::type type; }; } template< class A1, class M, class T > _bi::bind_t< typename _bi::dm_result< M T::*, A1 >::type, _mfi::dm, typename _bi::list_av_1::type > bind( M T::*f, A1 a1 ) { typedef typename _bi::dm_result< M T::*, A1 >::type result_type; typedef _mfi::dm F; typedef typename _bi::list_av_1::type list_type; return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) ); } } # 1 "/home/jas/.tt/ttsetup/opt/include/boost/bind/placeholders.hpp" 1 3 4 # 25 "/home/jas/.tt/ttsetup/opt/include/boost/bind/placeholders.hpp" 3 4 namespace { # 55 "/home/jas/.tt/ttsetup/opt/include/boost/bind/placeholders.hpp" 3 4 boost::arg<1> _1; boost::arg<2> _2; boost::arg<3> _3; boost::arg<4> _4; boost::arg<5> _5; boost::arg<6> _6; boost::arg<7> _7; boost::arg<8> _8; boost::arg<9> _9; } # 1743 "/home/jas/.tt/ttsetup/opt/include/boost/bind/bind.hpp" 2 3 4 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/bind.hpp" 2 3 4 # 71 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/duplicates_iterator.hpp" 1 3 4 # 17 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/duplicates_iterator.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/duplicates_iterator.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ template class duplicates_iterator { public: typedef typename Node::value_type value_type; typedef std::ptrdiff_t difference_type; typedef const typename Node::value_type* pointer; typedef const typename Node::value_type& reference; typedef std::forward_iterator_tag iterator_category; duplicates_iterator(Node* node_,Node* end_,Predicate pred_): node(node_),begin_chunk(0),end(end_),pred(pred_) { advance(); } duplicates_iterator(Node* end_,Predicate pred_): node(end_),begin_chunk(end_),end(end_),pred(pred_) { } reference operator*()const { return node->value(); } pointer operator->()const { return &node->value(); } duplicates_iterator& operator++() { Node::increment(node); sync(); return *this; } duplicates_iterator operator++(int) { duplicates_iterator tmp(*this); ++(*this); return tmp; } Node* get_node()const{return node;} private: void sync() { if(node!=end&&pred(begin_chunk->value(),node->value()))advance(); } void advance() { for(Node* node2=node;node!=end;node=node2){ Node::increment(node2); if(node2!=end&&!pred(node->value(),node2->value()))break; } begin_chunk=node; } Node* node; Node* begin_chunk; Node* end; Predicate pred; }; template bool operator==( const duplicates_iterator& x, const duplicates_iterator& y) { return x.get_node()==y.get_node(); } template bool operator!=( const duplicates_iterator& x, const duplicates_iterator& y) { return !(x==y); } } } } # 72 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 2 3 4 # 84 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ # 97 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 3 4 struct ordered_unique_tag{}; struct ordered_non_unique_tag{}; template< typename KeyFromValue,typename Compare, typename SuperMeta,typename TagList,typename Category > class ordered_index: protected SuperMeta::type # 119 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 3 4 { # 130 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 3 4 typedef typename SuperMeta::type super; protected: typedef ordered_index_node< typename super::node_type> node_type; private: typedef typename node_type::impl_type node_impl_type; typedef typename node_impl_type::pointer node_impl_pointer; public: typedef typename KeyFromValue::result_type key_type; typedef typename node_type::value_type value_type; typedef KeyFromValue key_from_value; typedef Compare key_compare; typedef value_comparison< value_type,KeyFromValue,Compare> value_compare; typedef tuple ctor_args; typedef typename super::final_allocator_type allocator_type; typedef typename allocator_type::reference reference; typedef typename allocator_type::const_reference const_reference; # 166 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 3 4 typedef bidir_node_iterator iterator; typedef iterator const_iterator; typedef std::size_t size_type; typedef std::ptrdiff_t difference_type; typedef typename allocator_type::pointer pointer; typedef typename allocator_type::const_pointer const_pointer; typedef typename boost::reverse_iterator reverse_iterator; typedef typename boost::reverse_iterator const_reverse_iterator; typedef TagList tag_list; protected: typedef typename super::final_node_type final_node_type; typedef tuples::cons< ctor_args, typename super::ctor_args_list> ctor_args_list; typedef typename mpl::push_front< typename super::index_type_list, ordered_index>::type index_type_list; typedef typename mpl::push_front< typename super::iterator_type_list, iterator>::type iterator_type_list; typedef typename mpl::push_front< typename super::const_iterator_type_list, const_iterator>::type const_iterator_type_list; typedef typename super::copy_map_type copy_map_type; typedef typename super::index_saver_type index_saver_type; typedef typename super::index_loader_type index_loader_type; private: # 213 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 3 4 typedef typename call_traits< value_type>::param_type value_param_type; typedef typename call_traits< key_type>::param_type key_param_type; public: ordered_index& operator=( const ordered_index& x) { this->final()=x.final(); return *this; } allocator_type get_allocator()const { return this->final().get_allocator(); } iterator begin(){return make_iterator(leftmost());} const_iterator begin()const{return make_iterator(leftmost());} iterator end(){return make_iterator(header());} const_iterator end()const{return make_iterator(header());} reverse_iterator rbegin(){return make_reverse_iterator(end());} const_reverse_iterator rbegin()const{return make_reverse_iterator(end());} reverse_iterator rend(){return make_reverse_iterator(begin());} const_reverse_iterator rend()const{return make_reverse_iterator(begin());} const_iterator cbegin()const{return begin();} const_iterator cend()const{return end();} const_reverse_iterator crbegin()const{return rbegin();} const_reverse_iterator crend()const{return rend();} iterator iterator_to(const value_type& x) { return make_iterator(node_from_value(&x)); } const_iterator iterator_to(const value_type& x)const { return make_iterator(node_from_value(&x)); } bool empty()const{return this->final_empty_();} size_type size()const{return this->final_size_();} size_type max_size()const{return this->final_max_size_();} std::pair insert(value_param_type x) { ; std::pair p=this->final_insert_(x); return std::pair(make_iterator(p.first),p.second); } iterator insert(iterator position,value_param_type x) { ((void)0);; ((void)0);; ; std::pair p=this->final_insert_( x,static_cast(position.get_node())); return make_iterator(p.first); } template void insert(InputIterator first,InputIterator last) { ; iterator hint=end(); for(;first!=last;++first)hint=insert(hint,*first); } iterator erase(iterator position) { ((void)0);; ((void)0);; ((void)0);; ; this->final_erase_(static_cast(position++.get_node())); return position; } size_type erase(key_param_type x) { ; std::pair p=equal_range(x); size_type s=0; while(p.first!=p.second){ p.first=erase(p.first); ++s; } return s; } iterator erase(iterator first,iterator last) { ((void)0);; ((void)0);; ((void)0);; ((void)0);; ((void)0);; ; while(first!=last){ first=erase(first); } return first; } bool replace(iterator position,value_param_type x) { ((void)0);; ((void)0);; ((void)0);; ; return this->final_replace_( x,static_cast(position.get_node())); } template bool modify(iterator position,Modifier mod) { ((void)0);; ((void)0);; ((void)0);; ; # 358 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 3 4 return this->final_modify_( mod,static_cast(position.get_node())); } template bool modify(iterator position,Modifier mod,Rollback back) { ((void)0);; ((void)0);; ((void)0);; ; # 379 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 3 4 return this->final_modify_( mod,back,static_cast(position.get_node())); } template bool modify_key(iterator position,Modifier mod) { ((void)0);; ((void)0);; ((void)0);; ; return modify( position,modify_key_adaptor(mod,key)); } template bool modify_key(iterator position,Modifier mod,Rollback back) { ((void)0);; ((void)0);; ((void)0);; ; return modify( position, modify_key_adaptor(mod,key), modify_key_adaptor(back,key)); } void swap(ordered_index& x) { ; this->final_swap_(x.final()); } void clear() { ; this->final_clear_(); } key_from_value key_extractor()const{return key;} key_compare key_comp()const{return comp;} value_compare value_comp()const{return value_compare(key,comp);} template iterator find(const CompatibleKey& x)const { return make_iterator(ordered_index_find(root(),header(),key,x,comp)); } template iterator find( const CompatibleKey& x,const CompatibleCompare& comp)const { return make_iterator(ordered_index_find(root(),header(),key,x,comp)); } template size_type count(const CompatibleKey& x)const { return count(x,comp); } template size_type count(const CompatibleKey& x,const CompatibleCompare& comp)const { std::pair p=equal_range(x,comp); size_type n=std::distance(p.first,p.second); return n; } template iterator lower_bound(const CompatibleKey& x)const { return make_iterator( ordered_index_lower_bound(root(),header(),key,x,comp)); } template iterator lower_bound( const CompatibleKey& x,const CompatibleCompare& comp)const { return make_iterator( ordered_index_lower_bound(root(),header(),key,x,comp)); } template iterator upper_bound(const CompatibleKey& x)const { return make_iterator( ordered_index_upper_bound(root(),header(),key,x,comp)); } template iterator upper_bound( const CompatibleKey& x,const CompatibleCompare& comp)const { return make_iterator( ordered_index_upper_bound(root(),header(),key,x,comp)); } template std::pair equal_range( const CompatibleKey& x)const { std::pair p= ordered_index_equal_range(root(),header(),key,x,comp); return std::pair( make_iterator(p.first),make_iterator(p.second)); } template std::pair equal_range( const CompatibleKey& x,const CompatibleCompare& comp)const { std::pair p= ordered_index_equal_range(root(),header(),key,x,comp); return std::pair( make_iterator(p.first),make_iterator(p.second)); } template std::pair range(LowerBounder lower,UpperBounder upper)const { typedef typename mpl::if_< is_same, typename mpl::if_< is_same, both_unbounded_tag, lower_unbounded_tag >::type, typename mpl::if_< is_same, upper_unbounded_tag, none_unbounded_tag >::type >::type dispatch; return range(lower,upper,dispatch()); } protected: ordered_index(const ctor_args_list& args_list,const allocator_type& al): super(args_list.get_tail(),al), key(tuples::get<0>(args_list.get_head())), comp(tuples::get<1>(args_list.get_head())) { empty_initialize(); } ordered_index( const ordered_index& x): super(x), key(x.key), comp(x.comp) { } ~ordered_index() { } iterator make_iterator(node_type* node){return iterator(node);} const_iterator make_iterator(node_type* node)const {return const_iterator(node);} void copy_( const ordered_index& x, const copy_map_type& map) { if(!x.root()){ empty_initialize(); } else{ header()->color()=x.header()->color(); node_type* root_cpy=map.find(static_cast(x.root())); header()->parent()=root_cpy->impl(); node_type* leftmost_cpy=map.find( static_cast(x.leftmost())); header()->left()=leftmost_cpy->impl(); node_type* rightmost_cpy=map.find( static_cast(x.rightmost())); header()->right()=rightmost_cpy->impl(); typedef typename copy_map_type::const_iterator copy_map_iterator; for(copy_map_iterator it=map.begin(),it_end=map.end();it!=it_end;++it){ node_type* org=it->first; node_type* cpy=it->second; cpy->color()=org->color(); node_impl_pointer parent_org=org->parent(); if(parent_org==node_impl_pointer(0))cpy->parent()=node_impl_pointer(0); else{ node_type* parent_cpy=map.find( static_cast(node_type::from_impl(parent_org))); cpy->parent()=parent_cpy->impl(); if(parent_org->left()==org->impl()){ parent_cpy->left()=cpy->impl(); } else if(parent_org->right()==org->impl()){ parent_cpy->right()=cpy->impl(); } } if(org->left()==node_impl_pointer(0)) cpy->left()=node_impl_pointer(0); if(org->right()==node_impl_pointer(0)) cpy->right()=node_impl_pointer(0); } } super::copy_(x,map); } node_type* insert_(value_param_type v,node_type* x) { link_info inf; if(!link_point(key(v),inf,Category())){ return node_type::from_impl(inf.pos); } node_type* res=static_cast(super::insert_(v,x)); if(res==x){ node_impl_type::link(x->impl(),inf.side,inf.pos,header()->impl()); } return res; } node_type* insert_(value_param_type v,node_type* position,node_type* x) { link_info inf; if(!hinted_link_point(key(v),position,inf,Category())){ return node_type::from_impl(inf.pos); } node_type* res=static_cast(super::insert_(v,position,x)); if(res==x){ node_impl_type::link(x->impl(),inf.side,inf.pos,header()->impl()); } return res; } void erase_(node_type* x) { node_impl_type::rebalance_for_erase( x->impl(),header()->parent(),header()->left(),header()->right()); super::erase_(x); } void delete_all_nodes_() { delete_all_nodes(root()); } void clear_() { super::clear_(); empty_initialize(); } void swap_(ordered_index& x) { std::swap(key,x.key); std::swap(comp,x.comp); super::swap_(x); } bool replace_(value_param_type v,node_type* x) { if(in_place(v,x,Category())){ return super::replace_(v,x); } node_type* next=x; node_type::increment(next); node_impl_type::rebalance_for_erase( x->impl(),header()->parent(),header()->left(),header()->right()); { try{ link_info inf; if(link_point(key(v),inf,Category())&&super::replace_(v,x)){ node_impl_type::link(x->impl(),inf.side,inf.pos,header()->impl()); return true; } node_impl_type::restore(x->impl(),next->impl(),header()->impl()); return false; } catch(...){ node_impl_type::restore(x->impl(),next->impl(),header()->impl()); throw;; } } } bool modify_(node_type* x) { bool b; { try{ b=in_place(x->value(),x,Category()); } catch(...){ erase_(x); throw;; } } if(!b){ node_impl_type::rebalance_for_erase( x->impl(),header()->parent(),header()->left(),header()->right()); { try{ link_info inf; if(!link_point(key(x->value()),inf,Category())){ super::erase_(x); return false; } node_impl_type::link(x->impl(),inf.side,inf.pos,header()->impl()); } catch(...){ super::erase_(x); throw;; } } } { try{ if(!super::modify_(x)){ node_impl_type::rebalance_for_erase( x->impl(),header()->parent(),header()->left(),header()->right()); return false; } else return true; } catch(...){ node_impl_type::rebalance_for_erase( x->impl(),header()->parent(),header()->left(),header()->right()); throw;; } } } bool modify_rollback_(node_type* x) { if(in_place(x->value(),x,Category())){ return super::modify_rollback_(x); } node_type* next=x; node_type::increment(next); node_impl_type::rebalance_for_erase( x->impl(),header()->parent(),header()->left(),header()->right()); { try{ link_info inf; if(link_point(key(x->value()),inf,Category())&& super::modify_rollback_(x)){ node_impl_type::link(x->impl(),inf.side,inf.pos,header()->impl()); return true; } node_impl_type::restore(x->impl(),next->impl(),header()->impl()); return false; } catch(...){ node_impl_type::restore(x->impl(),next->impl(),header()->impl()); throw;; } } } template void save_( Archive& ar,const unsigned int version,const index_saver_type& sm)const { save_(ar,version,sm,Category()); } template void load_(Archive& ar,const unsigned int version,const index_loader_type& lm) { load_(ar,version,lm,Category()); } # 877 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 3 4 private: node_type* header()const{return this->final_header();} node_type* root()const{return node_type::from_impl(header()->parent());} node_type* leftmost()const{return node_type::from_impl(header()->left());} node_type* rightmost()const{return node_type::from_impl(header()->right());} void empty_initialize() { header()->color()=red; header()->parent()=node_impl_pointer(0); header()->left()=header()->impl(); header()->right()=header()->impl(); } struct link_info { link_info():side(to_left){} ordered_index_side side; node_impl_pointer pos; }; bool link_point(key_param_type k,link_info& inf,ordered_unique_tag) { node_type* y=header(); node_type* x=root(); bool c=true; while(x){ y=x; c=comp(k,key(x->value())); x=node_type::from_impl(c?x->left():x->right()); } node_type* yy=y; if(c){ if(yy==leftmost()){ inf.side=to_left; inf.pos=y->impl(); return true; } else node_type::decrement(yy); } if(comp(key(yy->value()),k)){ inf.side=c?to_left:to_right; inf.pos=y->impl(); return true; } else{ inf.pos=yy->impl(); return false; } } bool link_point(key_param_type k,link_info& inf,ordered_non_unique_tag) { node_type* y=header(); node_type* x=root(); bool c=true; while (x){ y=x; c=comp(k,key(x->value())); x=node_type::from_impl(c?x->left():x->right()); } inf.side=c?to_left:to_right; inf.pos=y->impl(); return true; } bool lower_link_point(key_param_type k,link_info& inf,ordered_non_unique_tag) { node_type* y=header(); node_type* x=root(); bool c=false; while (x){ y=x; c=comp(key(x->value()),k); x=node_type::from_impl(c?x->right():x->left()); } inf.side=c?to_right:to_left; inf.pos=y->impl(); return true; } bool hinted_link_point( key_param_type k,node_type* position,link_info& inf,ordered_unique_tag) { if(position->impl()==header()->left()){ if(size()>0&&comp(k,key(position->value()))){ inf.side=to_left; inf.pos=position->impl(); return true; } else return link_point(k,inf,ordered_unique_tag()); } else if(position==header()){ if(comp(key(rightmost()->value()),k)){ inf.side=to_right; inf.pos=rightmost()->impl(); return true; } else return link_point(k,inf,ordered_unique_tag()); } else{ node_type* before=position; node_type::decrement(before); if(comp(key(before->value()),k)&&comp(k,key(position->value()))){ if(before->right()==node_impl_pointer(0)){ inf.side=to_right; inf.pos=before->impl(); return true; } else{ inf.side=to_left; inf.pos=position->impl(); return true; } } else return link_point(k,inf,ordered_unique_tag()); } } bool hinted_link_point( key_param_type k,node_type* position,link_info& inf,ordered_non_unique_tag) { if(position->impl()==header()->left()){ if(size()>0&&!comp(key(position->value()),k)){ inf.side=to_left; inf.pos=position->impl(); return true; } else return lower_link_point(k,inf,ordered_non_unique_tag()); } else if(position==header()){ if(!comp(k,key(rightmost()->value()))){ inf.side=to_right; inf.pos=rightmost()->impl(); return true; } else return link_point(k,inf,ordered_non_unique_tag()); } else{ node_type* before=position; node_type::decrement(before); if(!comp(k,key(before->value()))){ if(!comp(key(position->value()),k)){ if(before->right()==node_impl_pointer(0)){ inf.side=to_right; inf.pos=before->impl(); return true; } else{ inf.side=to_left; inf.pos=position->impl(); return true; } } else return lower_link_point(k,inf,ordered_non_unique_tag()); } else return link_point(k,inf,ordered_non_unique_tag()); } } void delete_all_nodes(node_type* x) { if(!x)return; delete_all_nodes(node_type::from_impl(x->left())); delete_all_nodes(node_type::from_impl(x->right())); this->final_delete_node_(static_cast(x)); } bool in_place(value_param_type v,node_type* x,ordered_unique_tag) { node_type* y; if(x!=leftmost()){ y=x; node_type::decrement(y); if(!comp(key(y->value()),key(v)))return false; } y=x; node_type::increment(y); return y==header()||comp(key(v),key(y->value())); } bool in_place(value_param_type v,node_type* x,ordered_non_unique_tag) { node_type* y; if(x!=leftmost()){ y=x; node_type::decrement(y); if(comp(key(v),key(y->value())))return false; } y=x; node_type::increment(y); return y==header()||!comp(key(y->value()),key(v)); } # 1086 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/ordered_index.hpp" 3 4 template std::pair range(LowerBounder lower,UpperBounder upper,none_unbounded_tag)const { node_type* y=header(); node_type* z=root(); while(z){ if(!lower(key(z->value()))){ z=node_type::from_impl(z->right()); } else if(!upper(key(z->value()))){ y=z; z=node_type::from_impl(z->left()); } else{ return std::pair( make_iterator( lower_range(node_type::from_impl(z->left()),z,lower)), make_iterator( upper_range(node_type::from_impl(z->right()),y,upper))); } } return std::pair(make_iterator(y),make_iterator(y)); } template std::pair range(LowerBounder,UpperBounder upper,lower_unbounded_tag)const { return std::pair( begin(), make_iterator(upper_range(root(),header(),upper))); } template std::pair range(LowerBounder lower,UpperBounder,upper_unbounded_tag)const { return std::pair( make_iterator(lower_range(root(),header(),lower)), end()); } template std::pair range(LowerBounder,UpperBounder,both_unbounded_tag)const { return std::pair(begin(),end()); } template node_type * lower_range(node_type* top,node_type* y,LowerBounder lower)const { while(top){ if(lower(key(top->value()))){ y=top; top=node_type::from_impl(top->left()); } else top=node_type::from_impl(top->right()); } return y; } template node_type * upper_range(node_type* top,node_type* y,UpperBounder upper)const { while(top){ if(!upper(key(top->value()))){ y=top; top=node_type::from_impl(top->left()); } else top=node_type::from_impl(top->right()); } return y; } template void save_( Archive& ar,const unsigned int version,const index_saver_type& sm, ordered_unique_tag)const { super::save_(ar,version,sm); } template void load_( Archive& ar,const unsigned int version,const index_loader_type& lm, ordered_unique_tag) { super::load_(ar,version,lm); } template void save_( Archive& ar,const unsigned int version,const index_saver_type& sm, ordered_non_unique_tag)const { typedef duplicates_iterator dup_iterator; sm.save( dup_iterator(begin().get_node(),end().get_node(),value_comp()), dup_iterator(end().get_node(),value_comp()), ar,version); super::save_(ar,version,sm); } template void load_( Archive& ar,const unsigned int version,const index_loader_type& lm, ordered_non_unique_tag) { lm.load( ::boost::bind(&ordered_index::rearranger,this,_1,_2), ar,version); super::load_(ar,version,lm); } void rearranger(node_type* position,node_type *x) { if(!position||comp(key(position->value()),key(x->value()))){ position=lower_bound(key(x->value())).get_node(); } else if(comp(key(x->value()),key(position->value()))){ throw_exception( archive::archive_exception( archive::archive_exception::other_exception)); } else node_type::increment(position); if(position!=x){ node_impl_type::rebalance_for_erase( x->impl(),header()->parent(),header()->left(),header()->right()); node_impl_type::restore( x->impl(),position->impl(),header()->impl()); } } key_from_value key; key_compare comp; }; template< typename KeyFromValue1,typename Compare1, typename SuperMeta1,typename TagList1,typename Category1, typename KeyFromValue2,typename Compare2, typename SuperMeta2,typename TagList2,typename Category2 > bool operator==( const ordered_index& x, const ordered_index& y) { return x.size()==y.size()&&std::equal(x.begin(),x.end(),y.begin()); } template< typename KeyFromValue1,typename Compare1, typename SuperMeta1,typename TagList1,typename Category1, typename KeyFromValue2,typename Compare2, typename SuperMeta2,typename TagList2,typename Category2 > bool operator<( const ordered_index& x, const ordered_index& y) { return std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end()); } template< typename KeyFromValue1,typename Compare1, typename SuperMeta1,typename TagList1,typename Category1, typename KeyFromValue2,typename Compare2, typename SuperMeta2,typename TagList2,typename Category2 > bool operator!=( const ordered_index& x, const ordered_index& y) { return !(x==y); } template< typename KeyFromValue1,typename Compare1, typename SuperMeta1,typename TagList1,typename Category1, typename KeyFromValue2,typename Compare2, typename SuperMeta2,typename TagList2,typename Category2 > bool operator>( const ordered_index& x, const ordered_index& y) { return y bool operator>=( const ordered_index& x, const ordered_index& y) { return !(x bool operator<=( const ordered_index& x, const ordered_index& y) { return !(x>y); } template< typename KeyFromValue,typename Compare, typename SuperMeta,typename TagList,typename Category > void swap( ordered_index& x, ordered_index& y) { x.swap(y); } } template struct ordered_unique { typedef typename detail::ordered_index_args< Arg1,Arg2,Arg3> index_args; typedef typename index_args::tag_list_type::type tag_list_type; typedef typename index_args::key_from_value_type key_from_value_type; typedef typename index_args::compare_type compare_type; template struct node_class { typedef detail::ordered_index_node type; }; template struct index_class { typedef detail::ordered_index< key_from_value_type,compare_type, SuperMeta,tag_list_type,detail::ordered_unique_tag> type; }; }; template struct ordered_non_unique { typedef detail::ordered_index_args< Arg1,Arg2,Arg3> index_args; typedef typename index_args::tag_list_type::type tag_list_type; typedef typename index_args::key_from_value_type key_from_value_type; typedef typename index_args::compare_type compare_type; template struct node_class { typedef detail::ordered_index_node type; }; template struct index_class { typedef detail::ordered_index< key_from_value_type,compare_type, SuperMeta,tag_list_type,detail::ordered_non_unique_tag> type; }; }; } } # 17 "src/bp/bp_book.h" 2 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 1 3 4 # 31 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/seq_index_node.hpp" 1 3 4 # 21 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/seq_index_node.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ template struct sequenced_index_node_impl { typedef typename prevent_eti< Allocator, typename boost::detail::allocator::rebind_to< Allocator,sequenced_index_node_impl >::type >::type::pointer pointer; typedef typename prevent_eti< Allocator, typename boost::detail::allocator::rebind_to< Allocator,sequenced_index_node_impl >::type >::type::const_pointer const_pointer; pointer& prior(){return prior_;} pointer prior()const{return prior_;} pointer& next(){return next_;} pointer next()const{return next_;} static void increment(pointer& x){x=x->next();} static void decrement(pointer& x){x=x->prior();} static void link(pointer x,pointer header) { x->prior()=header->prior(); x->next()=header; x->prior()->next()=x->next()->prior()=x; }; static void unlink(pointer x) { x->prior()->next()=x->next(); x->next()->prior()=x->prior(); } static void relink(pointer position,pointer x) { unlink(x); x->prior()=position->prior(); x->next()=position; x->prior()->next()=x->next()->prior()=x; } static void relink(pointer position,pointer x,pointer y) { if(x!=y){ pointer z=y->prior(); x->prior()->next()=y; y->prior()=x->prior(); x->prior()=position->prior(); z->next()=position; x->prior()->next()=x; z->next()->prior()=z; } } static void reverse(pointer header) { pointer x=header; do{ pointer y=x->next(); std::swap(x->prior(),x->next()); x=y; }while(x!=header); } static void swap(pointer x,pointer y) { if(x->next()!=x){ if(y->next()!=y){ std::swap(x->next(),y->next()); std::swap(x->prior(),y->prior()); x->next()->prior()=x->prior()->next()=x; y->next()->prior()=y->prior()->next()=y; } else{ y->next()=x->next(); y->prior()=x->prior(); x->next()=x->prior()=x; y->next()->prior()=y->prior()->next()=y; } } else if(y->next()!=y){ x->next()=y->next(); x->prior()=y->prior(); y->next()=y->prior()=y; x->next()->prior()=x->prior()->next()=x; } } private: pointer prior_; pointer next_; }; template struct sequenced_index_node_trampoline: prevent_eti< Super, sequenced_index_node_impl< typename boost::detail::allocator::rebind_to< typename Super::allocator_type, char >::type > >::type { typedef typename prevent_eti< Super, sequenced_index_node_impl< typename boost::detail::allocator::rebind_to< typename Super::allocator_type, char >::type > >::type impl_type; }; template struct sequenced_index_node:Super,sequenced_index_node_trampoline { private: typedef sequenced_index_node_trampoline trampoline; public: typedef typename trampoline::impl_type impl_type; typedef typename trampoline::pointer impl_pointer; typedef typename trampoline::const_pointer const_impl_pointer; impl_pointer& prior(){return trampoline::prior();} impl_pointer prior()const{return trampoline::prior();} impl_pointer& next(){return trampoline::next();} impl_pointer next()const{return trampoline::next();} impl_pointer impl() { return static_cast( static_cast(static_cast(this))); } const_impl_pointer impl()const { return static_cast( static_cast(static_cast(this))); } static sequenced_index_node* from_impl(impl_pointer x) { return static_cast( static_cast(&*x)); } static const sequenced_index_node* from_impl(const_impl_pointer x) { return static_cast( static_cast(&*x)); } static void increment(sequenced_index_node*& x) { impl_pointer xi=x->impl(); trampoline::increment(xi); x=from_impl(xi); } static void decrement(sequenced_index_node*& x) { impl_pointer xi=x->impl(); trampoline::decrement(xi); x=from_impl(xi); } }; } } } # 32 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/seq_index_ops.hpp" 1 3 4 # 22 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/seq_index_ops.hpp" 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 23 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/seq_index_ops.hpp" 2 3 4 namespace boost{ namespace multi_index{ namespace detail{ template void sequenced_index_remove(SequencedIndex& x,Predicate pred) { typedef typename SequencedIndex::iterator iterator; iterator first=x.begin(),last=x.end(); while(first!=last){ if(pred(*first))x.erase(first++); else ++first; } } template void sequenced_index_unique(SequencedIndex& x,BinaryPredicate binary_pred) { typedef typename SequencedIndex::iterator iterator; iterator first=x.begin(); iterator last=x.end(); if(first!=last){ for(iterator middle=first;++middle!=last;middle=first){ if(binary_pred(*middle,*first))x.erase(middle); else first=middle; } } } template void sequenced_index_merge(SequencedIndex& x,SequencedIndex& y,Compare comp) { typedef typename SequencedIndex::iterator iterator; if(&x!=&y){ iterator first0=x.begin(),last0=x.end(); iterator first1=y.begin(),last1=y.end(); while(first0!=last0&&first1!=last1){ if(comp(*first1,*first0))x.splice(first0,y,first1++); else ++first0; } x.splice(last0,y,first1,last1); } } template void sequenced_index_collate( typename Node::impl_type* x, typename Node::impl_type* y, Compare comp ) { typedef typename Node::impl_type impl_type; typedef typename Node::impl_pointer impl_pointer; impl_pointer first0=x->next(); impl_pointer last0=x; impl_pointer first1=y->next(); impl_pointer last1=y; while(first0!=last0&&first1!=last1){ if(comp( Node::from_impl(first1)->value(),Node::from_impl(first0)->value())){ impl_pointer tmp=first1->next(); impl_type::relink(first0,first1); first1=tmp; } else first0=first0->next(); } impl_type::relink(last0,first1,last1); } static const std::size_t sequenced_index_sort_max_fill= (std::size_t)std::numeric_limits::digits+1 ; template void sequenced_index_sort(Node* header,Compare comp) { # 127 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/detail/seq_index_ops.hpp" 3 4 if(header->next()==header->impl()|| header->next()->next()==header->impl())return; typedef typename Node::impl_type impl_type; typedef typename Node::impl_pointer impl_pointer; typedef typename aligned_storage< sizeof(impl_type), alignment_of::value >::type carry_spc_type; carry_spc_type carry_spc; impl_type& carry= *static_cast(static_cast(&carry_spc)); typedef typename aligned_storage< sizeof( impl_type [sequenced_index_sort_max_fill]), alignment_of< impl_type [sequenced_index_sort_max_fill] >::value >::type counter_spc_type; counter_spc_type counter_spc; impl_type* counter= static_cast(static_cast(&counter_spc)); std::size_t fill=0; carry.prior()=carry.next()=static_cast(&carry); counter[0].prior()=counter[0].next()=static_cast(&counter[0]); { try{ while(header->next()!=header->impl()){ impl_type::relink(carry.next(),header->next()); std::size_t i=0; while(i(&counter[i])){ sequenced_index_collate(&carry,&counter[i++],comp); } impl_type::swap( static_cast(&carry), static_cast(&counter[i])); if(i==fill){ ++fill; counter[fill].prior()=counter[fill].next()= static_cast(&counter[fill]); } } for(std::size_t i=1;i(&counter[i],&counter[i-1],comp); } impl_type::swap( header->impl(),static_cast(&counter[fill-1])); } catch(...) { impl_type::relink( header->impl(),carry.next(),static_cast(&carry)); for(std::size_t i=0;i<=fill;++i){ impl_type::relink( header->impl(),counter[i].next(), static_cast(&counter[i])); } throw;; } } } } } } # 33 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 2 3 4 # 1 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index_fwd.hpp" 1 3 4 # 18 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index_fwd.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ template class sequenced_index; template< typename SuperMeta1,typename TagList1, typename SuperMeta2,typename TagList2 > bool operator==( const sequenced_index& x, const sequenced_index& y); template< typename SuperMeta1,typename TagList1, typename SuperMeta2,typename TagList2 > bool operator<( const sequenced_index& x, const sequenced_index& y); template< typename SuperMeta1,typename TagList1, typename SuperMeta2,typename TagList2 > bool operator!=( const sequenced_index& x, const sequenced_index& y); template< typename SuperMeta1,typename TagList1, typename SuperMeta2,typename TagList2 > bool operator>( const sequenced_index& x, const sequenced_index& y); template< typename SuperMeta1,typename TagList1, typename SuperMeta2,typename TagList2 > bool operator>=( const sequenced_index& x, const sequenced_index& y); template< typename SuperMeta1,typename TagList1, typename SuperMeta2,typename TagList2 > bool operator<=( const sequenced_index& x, const sequenced_index& y); template void swap( sequenced_index& x, sequenced_index& y); } template > struct sequenced; } } # 34 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 2 3 4 # 1 "/usr/include/c++/4.5/cstddef" 1 3 4 # 41 "/usr/include/c++/4.5/cstddef" 3 4 # 42 "/usr/include/c++/4.5/cstddef" 3 # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4 # 45 "/usr/include/c++/4.5/cstddef" 2 3 # 37 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 2 3 4 # 53 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 3 4 namespace boost{ namespace multi_index{ namespace detail{ template class sequenced_index: protected SuperMeta::type # 77 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 3 4 { # 88 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 3 4 typedef typename SuperMeta::type super; protected: typedef sequenced_index_node< typename super::node_type> node_type; private: typedef typename node_type::impl_type node_impl_type; public: typedef typename node_type::value_type value_type; typedef tuples::null_type ctor_args; typedef typename super::final_allocator_type allocator_type; typedef typename allocator_type::reference reference; typedef typename allocator_type::const_reference const_reference; # 118 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 3 4 typedef bidir_node_iterator iterator; typedef iterator const_iterator; typedef std::size_t size_type; typedef std::ptrdiff_t difference_type; typedef typename allocator_type::pointer pointer; typedef typename allocator_type::const_pointer const_pointer; typedef typename boost::reverse_iterator reverse_iterator; typedef typename boost::reverse_iterator const_reverse_iterator; typedef TagList tag_list; protected: typedef typename super::final_node_type final_node_type; typedef tuples::cons< ctor_args, typename super::ctor_args_list> ctor_args_list; typedef typename mpl::push_front< typename super::index_type_list, sequenced_index>::type index_type_list; typedef typename mpl::push_front< typename super::iterator_type_list, iterator>::type iterator_type_list; typedef typename mpl::push_front< typename super::const_iterator_type_list, const_iterator>::type const_iterator_type_list; typedef typename super::copy_map_type copy_map_type; typedef typename super::index_saver_type index_saver_type; typedef typename super::index_loader_type index_loader_type; private: # 166 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 3 4 typedef typename call_traits::param_type value_param_type; public: sequenced_index& operator=( const sequenced_index& x) { this->final()=x.final(); return *this; } template void assign(InputIterator first,InputIterator last) { assign_iter(first,last,mpl::not_ >()); } void assign(size_type n,value_param_type value) { ; clear(); for(size_type i=0;ifinal().get_allocator(); } iterator begin() {return make_iterator(node_type::from_impl(header()->next()));} const_iterator begin()const {return make_iterator(node_type::from_impl(header()->next()));} iterator end(){return make_iterator(header());} const_iterator end()const{return make_iterator(header());} reverse_iterator rbegin(){return make_reverse_iterator(end());} const_reverse_iterator rbegin()const{return make_reverse_iterator(end());} reverse_iterator rend(){return make_reverse_iterator(begin());} const_reverse_iterator rend()const{return make_reverse_iterator(begin());} const_iterator cbegin()const{return begin();} const_iterator cend()const{return end();} const_reverse_iterator crbegin()const{return rbegin();} const_reverse_iterator crend()const{return rend();} iterator iterator_to(const value_type& x) { return make_iterator(node_from_value(&x)); } const_iterator iterator_to(const value_type& x)const { return make_iterator(node_from_value(&x)); } bool empty()const{return this->final_empty_();} size_type size()const{return this->final_size_();} size_type max_size()const{return this->final_max_size_();} void resize(size_type n,value_param_type x=value_type()) { ; if(n>size())insert(end(),n-size(),x); else if(n push_front(value_param_type x) {return insert(begin(),x);} void pop_front(){erase(begin());} std::pair push_back(value_param_type x) {return insert(end(),x);} void pop_back(){erase(--end());} std::pair insert(iterator position,value_param_type x) { ((void)0);; ((void)0);; ; std::pair p=this->final_insert_(x); if(p.second&&position.get_node()!=header()){ relink(position.get_node(),p.first); } return std::pair(make_iterator(p.first),p.second); } void insert(iterator position,size_type n,value_param_type x) { ((void)0);; ((void)0);; ; for(size_type i=0;i void insert(iterator position,InputIterator first,InputIterator last) { insert_iter(position,first,last,mpl::not_ >()); } iterator erase(iterator position) { ((void)0);; ((void)0);; ((void)0);; ; this->final_erase_(static_cast(position++.get_node())); return position; } iterator erase(iterator first,iterator last) { ((void)0);; ((void)0);; ((void)0);; ((void)0);; ((void)0);; ; while(first!=last){ first=erase(first); } return first; } bool replace(iterator position,value_param_type x) { ((void)0);; ((void)0);; ((void)0);; ; return this->final_replace_( x,static_cast(position.get_node())); } template bool modify(iterator position,Modifier mod) { ((void)0);; ((void)0);; ((void)0);; ; # 344 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 3 4 return this->final_modify_( mod,static_cast(position.get_node())); } template bool modify(iterator position,Modifier mod,Rollback back) { ((void)0);; ((void)0);; ((void)0);; ; # 365 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 3 4 return this->final_modify_( mod,back,static_cast(position.get_node())); } void swap(sequenced_index& x) { ; this->final_swap_(x.final()); } void clear() { ; this->final_clear_(); } void splice(iterator position,sequenced_index& x) { ((void)0);; ((void)0);; ((void)0);; ; iterator first=x.begin(),last=x.end(); while(first!=last){ if(insert(position,*first).second)first=x.erase(first); else ++first; } } void splice(iterator position,sequenced_index& x,iterator i) { ((void)0);; ((void)0);; ((void)0);; ((void)0);; ((void)0);; ; if(&x==this){ if(position!=i)relink(position.get_node(),i.get_node()); } else{ if(insert(position,*i).second){ # 418 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 3 4 x.erase(i); } } } void splice( iterator position,sequenced_index& x, iterator first,iterator last) { ((void)0);; ((void)0);; ((void)0);; ((void)0);; ((void)0);; ((void)0);; ((void)0);; ; if(&x==this){ ((void)0);; if(position!=last)relink( position.get_node(),first.get_node(),last.get_node()); } else{ while(first!=last){ if(insert(position,*first).second)first=x.erase(first); else ++first; } } } void remove(value_param_type value) { sequenced_index_remove( *this,std::bind2nd(std::equal_to(),value)); } template void remove_if(Predicate pred) { sequenced_index_remove(*this,pred); } void unique() { sequenced_index_unique(*this,std::equal_to()); } template void unique(BinaryPredicate binary_pred) { sequenced_index_unique(*this,binary_pred); } void merge(sequenced_index& x) { sequenced_index_merge(*this,x,std::less()); } template void merge(sequenced_index& x,Compare comp) { sequenced_index_merge(*this,x,comp); } void sort() { ; sequenced_index_sort(header(),std::less()); } template void sort(Compare comp) { ; sequenced_index_sort(header(),comp); } void reverse() { ; node_impl_type::reverse(header()->impl()); } void relocate(iterator position,iterator i) { ((void)0);; ((void)0);; ((void)0);; ((void)0);; ((void)0);; ; if(position!=i)relink(position.get_node(),i.get_node()); } void relocate(iterator position,iterator first,iterator last) { ((void)0);; ((void)0);; ((void)0);; ((void)0);; ((void)0);; ((void)0);; ((void)0);; ((void)0);; ; if(position!=last)relink( position.get_node(),first.get_node(),last.get_node()); } template void rearrange(InputIterator first) { ; node_type* pos=header(); for(size_type s=size();s--;){ const value_type& v=*first++; relink(pos,node_from_value(&v)); } } protected: sequenced_index(const ctor_args_list& args_list,const allocator_type& al): super(args_list.get_tail(),al) { empty_initialize(); } sequenced_index(const sequenced_index& x): super(x) { } ~sequenced_index() { } iterator make_iterator(node_type* node){return iterator(node);} const_iterator make_iterator(node_type* node)const {return const_iterator(node);} void copy_( const sequenced_index& x,const copy_map_type& map) { node_type* org=x.header(); node_type* cpy=header(); do{ node_type* next_org=node_type::from_impl(org->next()); node_type* next_cpy=map.find(static_cast(next_org)); cpy->next()=next_cpy->impl(); next_cpy->prior()=cpy->impl(); org=next_org; cpy=next_cpy; }while(org!=x.header()); super::copy_(x,map); } node_type* insert_(value_param_type v,node_type* x) { node_type* res=static_cast(super::insert_(v,x)); if(res==x)link(x); return res; } node_type* insert_(value_param_type v,node_type* position,node_type* x) { node_type* res=static_cast(super::insert_(v,position,x)); if(res==x)link(x); return res; } void erase_(node_type* x) { unlink(x); super::erase_(x); } void delete_all_nodes_() { for(node_type* x=node_type::from_impl(header()->next());x!=header();){ node_type* y=node_type::from_impl(x->next()); this->final_delete_node_(static_cast(x)); x=y; } } void clear_() { super::clear_(); empty_initialize(); } void swap_(sequenced_index& x) { super::swap_(x); } bool replace_(value_param_type v,node_type* x) { return super::replace_(v,x); } bool modify_(node_type* x) { { try{ if(!super::modify_(x)){ unlink(x); return false; } else return true; } catch(...){ unlink(x); throw;; } } } bool modify_rollback_(node_type* x) { return super::modify_rollback_(x); } template void save_( Archive& ar,const unsigned int version,const index_saver_type& sm)const { sm.save(begin(),end(),ar,version); super::save_(ar,version,sm); } template void load_( Archive& ar,const unsigned int version,const index_loader_type& lm) { lm.load( ::boost::bind(&sequenced_index::rearranger,this,_1,_2), ar,version); super::load_(ar,version,lm); } # 732 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 3 4 private: node_type* header()const{return this->final_header();} void empty_initialize() { header()->prior()=header()->next()=header()->impl(); } void link(node_type* x) { node_impl_type::link(x->impl(),header()->impl()); }; static void unlink(node_type* x) { node_impl_type::unlink(x->impl()); } static void relink(node_type* position,node_type* x) { node_impl_type::relink(position->impl(),x->impl()); } static void relink(node_type* position,node_type* first,node_type* last) { node_impl_type::relink( position->impl(),first->impl(),last->impl()); } void rearranger(node_type* position,node_type *x) { if(!position)position=header(); node_type::increment(position); if(position!=x)relink(position,x); } # 778 "/home/jas/.tt/ttsetup/opt/include/boost/multi_index/sequenced_index.hpp" 3 4 template void assign_iter(InputIterator first,InputIterator last,mpl::true_) { ; clear(); for(;first!=last;++first)push_back(*first); } void assign_iter(size_type n,value_param_type value,mpl::false_) { ; clear(); for(size_type i=0;i void insert_iter( iterator position,InputIterator first,InputIterator last,mpl::true_) { ; for(;first!=last;++first)insert(position,*first); } void insert_iter( iterator position,size_type n,value_param_type x,mpl::false_) { ((void)0);; ((void)0);; ; for(size_type i=0;i bool operator==( const sequenced_index& x, const sequenced_index& y) { return x.size()==y.size()&&std::equal(x.begin(),x.end(),y.begin()); } template< typename SuperMeta1,typename TagList1, typename SuperMeta2,typename TagList2 > bool operator<( const sequenced_index& x, const sequenced_index& y) { return std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end()); } template< typename SuperMeta1,typename TagList1, typename SuperMeta2,typename TagList2 > bool operator!=( const sequenced_index& x, const sequenced_index& y) { return !(x==y); } template< typename SuperMeta1,typename TagList1, typename SuperMeta2,typename TagList2 > bool operator>( const sequenced_index& x, const sequenced_index& y) { return y bool operator>=( const sequenced_index& x, const sequenced_index& y) { return !(x bool operator<=( const sequenced_index& x, const sequenced_index& y) { return !(x>y); } template void swap( sequenced_index& x, sequenced_index& y) { x.swap(y); } } template struct sequenced { static_assert(detail::is_tag::value, "detail::is_tag::value"); template struct node_class { typedef detail::sequenced_index_node type; }; template struct index_class { typedef detail::sequenced_index type; }; }; } } # 18 "src/bp/bp_book.h" 2 using namespace boost; using namespace boost::multi_index; struct PriceTimeKey: composite_key, multi_index::member > { } ; struct bid_sequence: composite_key_compare< std::greater, std::less > { }; struct ask_sequence: composite_key_compare< std::less, std::less > { }; template class SideMap { public: struct TagOrderId { }; struct TagPriceTime { }; typedef multi_index_container< ob_rec*, indexed_by< ordered_non_unique< tag, PriceTimeKey, BID_OR_ASK_COMPARE_T >, hashed_unique< tag, multi_index::member > > > ordermap; typedef typename ordermap::const_iterator iter; typedef typename SideMap::ordermap::template index::type ordersById; typedef typename SideMap::ordermap::template index::type ordersByPriceTime; typedef typename ordersById::iterator hash_iter; typedef typename ordersByPriceTime::iterator list_iter; bool insert(ob_rec* obrec) { return orders.insert(obrec).second; } size_t size() { return orders.size(); } ob_rec* top() const { if (__builtin_expect(!!(orders.empty()), 0)) return __null; return *orders.begin(); } # 98 "src/bp/bp_book.h" void top_all(std::vector& orders_out) const { if (__builtin_expect(!!(orders.empty()), 0)) return; list_iter i = orders.begin(); const list_iter iend = orders.end(); const unsigned long long topprice = (*i)->price; orders_out.push_back(*i); while(++i != iend && (*i)->price == topprice) orders_out.push_back(*i); } void top_one(std::vector& orders_out) const { if (__builtin_expect(!!(orders.empty()), 0)) return; orders_out.push_back(*orders.begin()); } void copy(std::vector& orders_out) const { orders_out.assign(orders.begin(), orders.end()); } ordersById& hash_index() { return orders.get(); } ordersByPriceTime& list_index() { return orders.get(); } hash_iter find_by_id_ex(unsigned char xcode, unsigned long long xid) { orderid_t thisKey = {xcode, xid}; return hash_index().find(thisKey); } ob_rec* find_by_id(unsigned char xcode, unsigned long long xid) { orderid_t thisKey = {xcode, xid}; hash_iter p = hash_index().find(thisKey); return p == hash_index().end()? __null: *p; } list_iter get_for_index_ex(const int index) { return list_index()[index]; } ob_rec* get_for_index(const int index) { list_iter p = list_index()[index]; return p == list_index().end()? __null: *p; } ob_rec* remove(orderid_t& key) { ordersById& hash = hash_index(); ob_rec* outrec = __null; hash_iter p = hash.find(key); if (hash.end() != p) { outrec = *p; hash.erase(p); } return outrec; } void clear() { if (orders.empty()) return; if (boost::foreach_detail_::auto_any_t _foreach_col168 = boost::foreach_detail_::contain( (orders) , (true ? 0 : boost::foreach_detail_::or_( boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost::foreach_detail_::is_array_(orders)) , (true ? 0 : boost::foreach_detail_::is_rvalue_( (true ? boost::foreach_detail_::make_probe(orders) : (orders)), 0))) , boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost_foreach_is_noncopyable( boost::foreach_detail_::to_ptr(orders) , boost_foreach_argument_dependent_lookup_hack_value)) , boost_foreach_is_lightweight_proxy( boost::foreach_detail_::to_ptr(orders) , boost_foreach_argument_dependent_lookup_hack_value)))))) {} else if (boost::foreach_detail_::auto_any_t _foreach_cur168 = boost::foreach_detail_::begin( _foreach_col168 , (true ? 0 : boost::foreach_detail_::encode_type(orders, boost::foreach_detail_::is_const_(orders))) , (true ? 0 : boost::foreach_detail_::or_( boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost::foreach_detail_::is_array_(orders)) , (true ? 0 : boost::foreach_detail_::is_rvalue_( (true ? boost::foreach_detail_::make_probe(orders) : (orders)), 0))) , boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost_foreach_is_noncopyable( boost::foreach_detail_::to_ptr(orders) , boost_foreach_argument_dependent_lookup_hack_value)) , boost_foreach_is_lightweight_proxy( boost::foreach_detail_::to_ptr(orders) , boost_foreach_argument_dependent_lookup_hack_value)))))) {} else if (boost::foreach_detail_::auto_any_t _foreach_end168 = boost::foreach_detail_::end( _foreach_col168 , (true ? 0 : boost::foreach_detail_::encode_type(orders, boost::foreach_detail_::is_const_(orders))) , (true ? 0 : boost::foreach_detail_::or_( boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost::foreach_detail_::is_array_(orders)) , (true ? 0 : boost::foreach_detail_::is_rvalue_( (true ? boost::foreach_detail_::make_probe(orders) : (orders)), 0))) , boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost_foreach_is_noncopyable( boost::foreach_detail_::to_ptr(orders) , boost_foreach_argument_dependent_lookup_hack_value)) , boost_foreach_is_lightweight_proxy( boost::foreach_detail_::to_ptr(orders) , boost_foreach_argument_dependent_lookup_hack_value)))))) {} else for (bool _foreach_continue168 = true; _foreach_continue168 && !boost::foreach_detail_::done( _foreach_cur168 , _foreach_end168 , (true ? 0 : boost::foreach_detail_::encode_type(orders, boost::foreach_detail_::is_const_(orders)))); _foreach_continue168 ? boost::foreach_detail_::next( _foreach_cur168 , (true ? 0 : boost::foreach_detail_::encode_type(orders, boost::foreach_detail_::is_const_(orders)))) : (void)0) if (boost::foreach_detail_::set_false(_foreach_continue168)) {} else for (ob_rec* obrec = boost::foreach_detail_::deref( _foreach_cur168 , (true ? 0 : boost::foreach_detail_::encode_type(orders, boost::foreach_detail_::is_const_(orders)))); !_foreach_continue168; _foreach_continue168 = true) { delete obrec; } orders.clear(); } ordermap& map() { return orders; } SideMap() { } virtual ~SideMap() { clear(); } ordermap orders; }; struct StockTops { unsigned long long bestBidPrice; unsigned long long bestAskPrice; unsigned int lastBidSize; unsigned int lastAskSize; unsigned int totalBidSize; unsigned int totalAskSize; unsigned int reserved4; unsigned char venue; unsigned char side; unsigned char subcount; unsigned char has_bookdata; }; class OrderBook { public: enum { MAX_SYMBOL_SIZE = 15 }; char symbol [MAX_SYMBOL_SIZE + 1]; enum { SIDE_BID = 1, SIDE_ASK = 2, }; SideMap bids; SideMap asks; struct BookTop { unsigned long long price; unsigned long long xorderid; unsigned int size; unsigned char isThisOrderSameAsTop; unsigned char flags; unsigned char exchange; unsigned char simcount; }; BookTop lastTopBid; BookTop lastTopAsk; bp_psevents* events; inline bool isTopChange(BookTop&, ob_rec*) __attribute__ ((hot)) ; inline bool tryAddOrder(ob_rec*) __attribute__ ((hot)) ; bool monitorTopOfBook(const int side, StockTops*) __attribute__ ((hot)) ; ob_rec* addOrder(t3_add_order_msg*, const unsigned long long, const int fid=0) __attribute__ ((malloc)); ob_rec* addOrder(t3_add_order_long_msg*, const unsigned long long, const int fid=0) __attribute__ ((malloc)); ob_rec* replaceOrder(t3_replace_order_msg*, const unsigned long long) ; ob_rec* replaceOrder(t3_replace_order_long_msg*, const unsigned long long) ; ob_rec* reduceOrderSize(t3_reduce_size_msg*) ; ob_rec* reduceOrderSize(t3_reduce_size_long_msg*) ; ob_rec* modifyOrder(t3_modify_order_msg*, const unsigned long long) ; ob_rec* modifyOrder(t3_modify_order_long_msg*, const unsigned long long) ; ob_rec* deleteOrder(t3_delete_order_msg*) ; ob_rec* deleteOrder(ob_rec*) ; ob_rec* executeOrder(t3_order_executed_msg*) ; ob_rec* executeOrder(t3_order_executed_at_msg*, const unsigned long long) ; ob_rec* lookup(const unsigned char msgflag, const unsigned char, const unsigned long long) __attribute__ ((hot)) ; ob_rec* lookup(t3_xmsghdr*); ob_rec* toporder(const int side) { switch(side) { case ob_rec::SIDE_BID: return bids.top(); case ob_rec::SIDE_ASK: return asks.top(); } return __null; } static void clearLastTop(BookTop& bt) { memset(&bt, 0, sizeof(BookTop)-3); } OrderBook(const char* sym, const unsigned short symlen, const unsigned char xcode); ~OrderBook() { delete events; } enum flagbits { IS_SUB_TOP = 1, IS_SUB_TRADE=2, IS_SUB_NOII=4, IS_SUB_BOOK=8, }; enum { ANYSUB = IS_SUB_TOP | IS_SUB_TRADE | IS_SUB_NOII | IS_SUB_BOOK }; unsigned char flags() { return lastTopBid.flags; } void setflag(const unsigned char bits) { lastTopBid.flags |= bits; } void clrflag(const unsigned char bits) { lastTopBid.flags &= ~bits; } bool qryflag(const unsigned char bits) { return !!(lastTopBid.flags & bits); } bool is_subscribed_any() { return qryflag(ANYSUB); } static unsigned char flag_for_evtype(const int t) { return 1 << (t - bp_event::EVOBJ_TOP); } unsigned char exchange() { return lastTopBid.exchange; } void setxchg(unsigned char x) { lastTopBid.exchange = x; } bool empty() { return bids.orders.empty() && asks.orders.empty(); } bool match_simorder(ob_rec*, std::pair& out); void query_simorder(t3_xmsghdr*, const int); void query_simorder(t3_xmsghdr*, ob_rec*, const int); void query_simtrade(t3_xmsghdr*, ob_rec*); void query_noiievent(t3_xmsghdr*, t3_symbol_t&); void debug_showtop (t3_xmsghdr*, t3_symbol_t&, const int); void debug_showtrade(t3_xmsghdr*, t3_symbol_t&, const unsigned long long); void check_locked_crossed(const int side) __attribute__ ((hot)); void uncross(const int, const unsigned long long, const unsigned long long); void dump(const int side=0, const int numlvls=0) __attribute__ ((cold)); private: OrderBook() { } unsigned long long times[3]; enum { CROSSTIME=0, LAST_BID=1, LAST_ASK=2 }; }; template struct SymbolInfo { OrderBook* books[NUMXCHGCODES]; StockTops tops; pthread_mutex_t* symlock; symbol_events events_nbbo; SymbolInfo() { memset(books, 0, sizeof(void*) * NUMXCHGCODES); memset(&tops, 0, sizeof(StockTops)); tops.bestAskPrice = 9999999900; events_nbbo.reserve(2); symlock = __null; } int incr_subcount() { return (int) ++tops.subcount; } int decr_subcount() { ((tops.subcount) ? static_cast (0) : __assert_fail ("tops.subcount", "src/bp/bp_book.h", 322, __PRETTY_FUNCTION__)); return (int) --tops.subcount; } void mark_book() { tops.has_bookdata = true; } bool is_bookstock() { return tops.has_bookdata; } }; # 337 "src/bp/bp_book.h" template struct OrderBooks { int symcount; int xchgcount; int current_xchgndx; unsigned char codes[NUMCODES+1]; unsigned char observed_venues[NUMCODES+1]; SymbolInfo* xbooks; OrderBooks(): symcount(0), xchgcount(NUMCODES), xbooks(__null) { memcpy(this->codes, XCHGCODES, NUMCODES+1); memset(this->observed_venues, 0, NUMCODES+1); }; SymbolInfo* symbol_info(const unsigned short symndx) { ((symndx && (symndx <= symcount)) ? static_cast (0) : __assert_fail ("symndx && (symndx <= symcount)", "src/bp/bp_book.h", 357, __PRETTY_FUNCTION__)); return &xbooks[symndx]; } # 368 "src/bp/bp_book.h" OrderBook** get_book_slot(const unsigned short symndx, const unsigned char xchgcode) { ((symndx && (symndx <= symcount)) ? static_cast (0) : __assert_fail ("symndx && (symndx <= symcount)", "src/bp/bp_book.h", 370, __PRETTY_FUNCTION__)); unsigned char thiscode = 0; current_xchgndx = -1; while((thiscode != xchgcode) && (current_xchgndx < (NUMCODES-1))) thiscode = codes[++current_xchgndx]; ((xchgcode == thiscode) ? static_cast (0) : __assert_fail ("xchgcode == thiscode", "src/bp/bp_book.h", 376, __PRETTY_FUNCTION__)); SymbolInfo& symbooks = xbooks[symndx]; OrderBook** xchgbook_slot = &symbooks.books[current_xchgndx]; return xchgbook_slot; } OrderBook* get_book(const unsigned short symndx, const unsigned char xchgcode) { return *(get_book_slot(symndx, xchgcode)); } OrderBook** get_book_vector(const unsigned short symndx, int* outcount) { if (outcount) *outcount = xchgcount; return xbooks[symndx].books; } void mark_venue() { this->observed_venues[this->current_xchgndx] = true; } bool is_observed_book_venue() { return this->observed_venues[this->current_xchgndx]; } void create(const int num_symbols) { this->symcount = num_symbols; memset(this->observed_venues, 0, sizeof(observed_venues)); xbooks = new SymbolInfo[num_symbols]; } void destroy() { for(int i=0; i < (const int) this->symcount; i++) { SymbolInfo& syminfo = xbooks[i]; for(int j=0; j < NUMCODES; j++) { OrderBook* book = syminfo.books[j]; delete book; } } delete[] xbooks; xbooks = __null; } virtual ~OrderBooks() { } }; namespace { extern const char XCODES[] = {'A','B','C','D','F','I','J','K','M','N','P','Q','W','X','Y','Z', 0x0, }; extern const int NUMCODES = sizeof(XCODES)-1; } # 24 "src/bp/bp_b.cc" 2 # 1 "src/core/stocks_hash.h" 1 # 27 "src/bp/bp_b.cc" 2 const char* evtyperrfmt = "unsub event has unrecognized event type %d\n"; const char* urierrfmt = "bp input uri missing or invalid for feed %zu\n"; const char* schemeefmt = "scheme %s not recognized\n"; const char* bpfileempty = "bp input %s missing or empty\n"; const char* bpnosymbols = "bp input %s has no symbols\n"; const char* bpcantopen = "bp could not open %s\n"; int g_is_clock_event_registered, g_is_clock_stopped; unsigned g_second_tick, g_prior_tick, g_start_tick; bp_event_registry* g_registry; bp_event_registry* get_registry() { return g_registry; } tt_bookprxor* thisx; void g_alarm_handler (const int signum) { if (g_is_clock_stopped) return; ++g_second_tick; ::signal(14, g_alarm_handler); ::alarm(1); } bool monitor_sysclock() { const unsigned current_second = g_second_tick; if (current_second == g_prior_tick) return false; ((g_registry->event_clock) ? static_cast (0) : __assert_fail ("g_registry->event_clock", "src/bp/bp_b.cc", 59, __PRETTY_FUNCTION__)); bp_event_clock* ev = g_registry->event_clock; bp_event::bp_time& t = bp_event::bptime; ev->systick_second = g_prior_tick = t.clock_second = current_second; (*(ev))(); if (__builtin_expect(!!(thisx->maxsecs), 0)) if((current_second - g_start_tick) >= thisx->maxsecs) thisx->is_quit_requested = true; return true; } bool tt_bookprxor::monitor_simclock(t3_clock_msg* t3clock) { static unsigned prior_second, ticks; ++counts.clocks; if (t3clock->seconds == prior_second) return false; ++ticks; bp_event::bp_time& t = bp_event::bptime; t.clock_second = t.venue_second = prior_second = t3clock->seconds; t.clock_second_us = t.venue_second_us = ((unsigned long long) t.clock_second) * (1000000); if (this->maxsecs && (ticks >= this->maxsecs)) this->is_quit_requested = true; if (!g_is_clock_event_registered) return false; bp_event_clock* ev = g_registry->event_clock; ev->systick_second = t.clock_second; (*(ev))(); return true; } void tt_bookprxor::register_globaltime(t3_clock_msg* t3clock) { ++counts.clocks; bp_event::bp_time& t = bp_event::bptime; t.venue_second = t3clock->seconds; t.venue_second_us = ((unsigned long long) t.venue_second) * (1000000); t.clock_second_us = ((unsigned long long) t.clock_second) * (1000000); } int tt_bookprxor::subscribe(bp_event* evt) { if ((!!(((bp_event*)evt)->flags() & bp_event::EVFLAG_SINGLE))) return this->subscribe_symbol((bp_symbol_event*) evt); ::thisx = this; auto apply_event = [&](bp_event* x) { if (x && x->is_abandoned()) delete x; evt->refcount_ = 1; } ; switch(evt->evtype()) { case bp_event::EVOBJ_CLOCK: apply_event(events.event_clock); events.event_clock = (bp_event_clock*) evt; events.is_subscribed_clock= true; g_is_clock_event_registered = true; if (g_is_clock_stopped || 0 == g_second_tick) ::sync_and_start_bpclock(); break; case bp_event::EVOBJ_TOP: switch(((bp_event_top*)evt)->is_nbbo_event()) { case true: apply_event(events.event_nbbo); events.event_nbbo = (bp_event_nbbo*) evt; events.is_subscribed_global_nbbo = true; break; case false: apply_event(events.event_top); events.event_top = (bp_event_top*) evt; events.is_subscribed_global_top = true; break; } break; case bp_event::EVOBJ_TRADE: apply_event(events.event_trade); events.event_trade = (bp_event_trade*) evt; events.is_subscribed_global_trade = true; break; case bp_event::EVOBJ_NOII: apply_event(events.event_noii); events.event_noii = (bp_event_noii*) evt; events.is_subscribed_global_noii = true; break; case bp_event::EVOBJ_EXIT: apply_event(events.event_exit); events.event_exit = (bp_event_exit*) evt; events.is_subscribed_exit = true; break; case bp_event::EVOBJ_EXCP: apply_event(events.event_excp); events.event_excp = (bp_event_excp*) evt; events.is_subscribed_excp = true; break; default: log->log(BP,'E',evtyperrfmt,evt->evtype()); events.fire_excp((char*)"src/bp/bp_b.cc",176,EXCPTYPE_CODE,EXCPSEV_CRITICAL,2); } if (0 == evt->id()) evt->set_id(tt_bookprxor::new_subid()); return 0; } int tt_bookprxor::unsubscribe(bp_event* evt) { if ((!!(((bp_event*)evt)->flags() & bp_event::EVFLAG_SINGLE))) return this->unsubscribe_symbol((bp_symbol_event*) evt); const unsigned int evtype = evt->evtype(); bp_event* this_event = __null; switch(evtype) { case bp_event::EVOBJ_CLOCK: if (!events.is_subscribed_clock) break; this_event = events.event_clock; events.event_clock = new bp_event_clock(); events.is_subscribed_clock = false; g_is_clock_event_registered = 0; break; case bp_event::EVOBJ_TOP: switch(((bp_event_top*)evt)->is_nbbo_event()) { case true: if (!events.is_subscribed_global_nbbo) break; this_event = events.event_nbbo; events.event_nbbo = new bp_event_nbbo(); events.is_subscribed_global_nbbo = false; break; case false: if (!events.is_subscribed_global_top) break; this_event = events.event_top; events.event_top = new bp_event_top(); events.is_subscribed_global_top = false; break; } break; case bp_event::EVOBJ_TRADE: if (!events.is_subscribed_global_trade) break; this_event = events.event_trade; events.event_trade = new bp_event_trade(); events.is_subscribed_global_trade = false; break; case bp_event::EVOBJ_NOII: if (!events.is_subscribed_global_noii) break; this_event = events.event_noii; events.event_noii = new bp_event_noii(); events.is_subscribed_global_noii = false; break; case bp_event::EVOBJ_EXIT: if (!events.is_subscribed_exit) break; this_event = events.event_exit; events.event_exit = new bp_event_exit(); events.is_subscribed_exit = false; break; case bp_event::EVOBJ_EXCP: if (!events.is_subscribed_excp) break; this_event = events.event_excp; events.event_excp = new bp_event_excp(); events.is_subscribed_excp = false; break; default: log->log(BP,'E',evtyperrfmt,evtype); events.fire_excp((char*)"src/bp/bp_b.cc",254,EXCPTYPE_CODE,EXCPSEV_CRITICAL,2); } if (this_event && this_event->is_abandoned() && --this_event->refcount_ < 1) delete this_event; return 0; } unsigned int tt_bookprxor::get_index_for(const char* s) { ((s) ? static_cast (0) : __assert_fail ("s", "src/bp/bp_b.cc", 270, __PRETTY_FUNCTION__)); if (__null == s) return 0; t3_symbol_t ss; memset(&ss,0,sizeof(t3_symbol_t)); ss.length = strlen(s); memcpy(ss.symbol,s,ss.length); return this->get_index_for(ss); } unsigned int tt_bookprxor::get_index_for(const t3_symbol_t& s) { const char* sym = s.symbol; const int symlen = s.length; char* term = ((char*)sym) + symlen; const char csave = *term; *term = '\0'; const tt::symbol_entry* entry = tt::lookup_stock(sym, symlen); *term = csave; return entry? entry->id: 0; } bool tt_bookprxor::verify_symbol_index(const unsigned int ndx, const t3_symbol_t& s) const { if (ndx < 1 || ndx > this->symcount) return false; const t3_symbol_t& table_entry = this->symtable[ndx]; return ((table_entry.length == s.length) && (0 == memcmp(table_entry.symbol, s.symbol, s.length))); } # 308 "src/bp/bp_b.cc" void tt_bookprxor::verify_nbbo_info(void* stocktops, bp_nbbo_info* out) { bp_nbbo_side_info& best_bid = out->best_bid; bp_nbbo_side_info& best_ask = out->best_ask; StockTops* tops = (StockTops*) stocktops; if (tops->lastBidSize && (0 == best_bid.venue_count_with_price)) { best_bid.venue_count_with_price = 1; bp_venue_size_pair& venue_total_bid = best_bid.venues[0]; venue_total_bid.venue = tops->venue; best_bid.total_size_at_price = best_bid.max_size_at_price = venue_total_bid.total_size_at_price = tops->lastBidSize; } if (tops->lastAskSize && (0 == best_ask.venue_count_with_price)) { best_ask.venue_count_with_price = 1; bp_venue_size_pair& venue_total_ask = best_ask.venues[0]; venue_total_ask.venue = tops->venue; best_ask.total_size_at_price = best_ask.max_size_at_price = venue_total_ask.total_size_at_price = tops->lastAskSize; } } # 338 "src/bp/bp_b.cc" int tt_bookprxor::get_nbbo_for_venue_i(void* book, const int i, bp_nbbo_info* out) { OrderBook* thisbook = (OrderBook*) book; const unsigned long long bestBidPrice = out->best_bid.price; const unsigned long long bestAskPrice = out->best_ask.price; const unsigned int MAX_VENUES = bp_nbbo_side_info::MAX_VENUES_WITH_PRICE; std::vector orders; ob_rec* order = thisbook->bids.top(); if (order && (order->price == bestBidPrice)) { bp_nbbo_side_info* bestBid = &out->best_bid; if (__builtin_expect(!!(bestBid->venue_count_with_price < MAX_VENUES), 1)) { bp_venue_size_pair* venue_total = &bestBid->venues[bestBid->venue_count_with_price++]; venue_total->venue = thisbook->exchange(); thisbook->bids.top_all(orders); const int order_count_at_price = orders.size(); for(int j=0; j < (const int) order_count_at_price; j++) { if (__null == (order = orders[j])) continue; const unsigned long long thissize = order->quantity; bestBid->total_size_at_price += thissize; venue_total->total_size_at_price += thissize; if (thissize > bestBid->max_size_at_price) bestBid->max_size_at_price = thissize; } } else events.fire_excp((char*)"src/bp/bp_b.cc",370,EXCPTYPE_CODE,EXCPSEV_HIGH,3); } order = thisbook->asks.top(); if (order && (order->price == bestAskPrice)) { bp_nbbo_side_info* bestAsk = &out->best_ask; if (__builtin_expect(!!(bestAsk->venue_count_with_price < MAX_VENUES), 1)) { bp_venue_size_pair* venue_total = &bestAsk->venues[bestAsk->venue_count_with_price++]; venue_total->venue = thisbook->exchange(); orders.clear(); thisbook->asks.top_all(orders); const int order_count_at_price = orders.size(); for(int j=0; j < (const int) order_count_at_price; j++) { if (__null == (order = orders[j])) continue; const unsigned long long thissize = order->quantity; bestAsk->total_size_at_price += thissize; venue_total->total_size_at_price += thissize; if (thissize > bestAsk->max_size_at_price) bestAsk->max_size_at_price = thissize; } } else events.fire_excp((char*)"src/bp/bp_b.cc",399,EXCPTYPE_CODE,EXCPSEV_HIGH,3); } return 0; } bool bp_nbbo_side_info::operator==(const bp_nbbo_side_info& that) { unsigned errs = 0, i; errs += (this->price != that.price); errs += (this->total_size_at_price != that.total_size_at_price); errs += (this->venue_count_with_price != that.venue_count_with_price); for(i=0; i < venue_count_with_price; i++) errs += (this->venues[i].venue != that.venues[i].venue); return errs == 0; } size_t tt_bookprxor::filesize(const char* path) { struct stat x; return (-1 == stat(path, &x))? 0: x.st_size; } void tt_bookprxor::show_symtable() { for (int i = 1; i < (const int) this->symcount; i++) printf("symbol %01d %s\n", i, symtable[i].symbol); } void tt_bookprxor::stats(bp_stats& stats) { memcpy(&stats, &counts, sizeof(bp_stats)); stats.incount = incount; stats.handled = handled; stats.msgerrors = msgerrors; } void tt_bookprxor::close() { if (!this->is_open) return; ::stop_bpclock(); if (this->feedspecs.size()) std::for_each(feedspecs.begin(), feedspecs.end(), [&](feedspec& fs) { fs.feed->close(); } ); else switch(this->input_source) { case INSOURCE_FILE: if (this->infile) t3_close(this->infile); this->infile = __null; break; case INSOURCE_INET: netfeed.close(); } this->is_open = false; this->events.close(); this->end_of_day_reconcile(); this->destroy_booktable(); if (this->msgerrors) log->log(BP,'E',"rejected %llu of %llu messages\n",msgerrors, incount); if (this->tlogger) tlogger->close(); } bool is_file_input(std::vector& uris) { const int feedcount = uris.size(); ((feedcount) ? static_cast (0) : __assert_fail ("feedcount", "src/bp/bp_b.cc", 484, __PRETTY_FUNCTION__)); if (1 != feedcount) return false; bp_uri uri(uris[0]); ((uri.good) ? static_cast (0) : __assert_fail ("uri.good", "src/bp/bp_b.cc", 486, __PRETTY_FUNCTION__)); return uri.scheme == "t3file"; } int tt_bookprxor::open() { this->verify_logger(); if (this->is_open) return 0; if (0 == paths.size()) { log->log(BP,'E',urierrfmt,0); return -1; } auto is_file_input = [&]()->bool { if (1 != paths.size()) return false; bp_uri uri(paths[0]); if (!uri.good) log->log(BP,'E',urierrfmt,0); return uri.scheme == "t3file"; } ; const int rc = is_file_input()? open_file(): open_newfeeds(); if (0 != rc) { this->close(); log->log(BP,'E',"%s\n","open failure"); return -1; } this->create_booktable(this->symcount); ::thisx = this; this->set_sessiondate(); ::sync_and_start_bpclock(); this->is_open = true; return 0; } int tt_bookprxor::open_newfeeds() { const int URICOUNT = this->paths.size(); struct x2feed { unsigned char venue; circlist* emitlist; }; x2feed* x2feeds = new x2feed[URICOUNT], *x2feed_i = 0; int venuecount = 0; auto insert_feed = [&](unsigned char venue, tt::feedhdlr* newfeed) { for(int i=0, x2feed_i = x2feeds; i < (const int) venuecount; i++, x2feed_i++) if (x2feed_i->venue == venue) return x2feeds_i->emitlist.insert(newfeed); circlist newlist; newlist.insert(newfeed); feedgroups.insert(newlist); x2feed_i->venue = venue; x2feed_i->emitlist = newfeed; ++venuecount; } ; for(int i=0; i < URICOUNT; i++) { auto feed = tt::feedhdlr::new_feedhdlr(paths[i].c_str(), log, symfilter); if (__null == feed) return -1; feeds.push_back(feed); } delete x2feeds; return feeds.size(); } int tt_bookprxor::open_singlefeed() { int result = -1; bp_uri uri(this->paths[0]); if (!uri.good) log->log(BP,'E',urierrfmt,0); else if (uri.scheme == "lspeed") result = open_inet(uri, &this->netfeed); else if (uri.scheme == "t3file") result = open_file(); else log->log(BP,'E',schemeefmt,uri.scheme.c_str()); return result; } int tt_bookprxor::open_multifeed() { for(size_t i=0; i < feedspecs.size(); i++) { int result = -1; feedspec& thisfeed = feedspecs[i]; bp_uri uri(thisfeed.uri); if (!uri.good) log->log(BP,'E',urierrfmt,i); else if (uri.scheme == "lspeed") result = open_inet(uri, thisfeed.feed); else log->log(BP,'E',schemeefmt,uri.scheme.c_str()); if (0 != result) return -1; } return 0; } int tt_bookprxor::open_file() { bp_uri uri(paths[0]); const char* path = uri.path.c_str(); size_t infile_size = tt_bookprxor::filesize(path); if (0 == infile_size) { log->log(BP,'E',bpfileempty,path); return -1; } if (__null == (this->infile = t3_open(path, true))) { log->log(BP,'E',bpcantopen,path); return -1; } this->input_source = INSOURCE_FILE; return 0; } int tt_bookprxor::open_inet(bp_uri& uri, netfeed_t* feed) { feed->set_logger(this->log); int port = atoi(uri.port.c_str()); const char* host = uri.host.c_str(), *pfeed = uri.feed.c_str(); if (0 != feed->open(pfeed, host, port)) { log->log(BP,'E',"could not connect to %s %s:%d\n",pfeed, host, port); return -1; } const char* user = uri.user.c_str(), *pass = uri.pass.c_str(); if (feed->validate(user, pass)) { log->log(BP,'E',"authentication failure for %s %s\n",user, pass); return -1; } this->input_source = INSOURCE_INET; return 0; } int tt_bookprxor::suspend() { int numblockers = -1; pthread_mutex_lock(&suslock); const bool is_legal = (this->input_source == INSOURCE_FILE); if (is_legal && (1 == (numblockers = ++stallcount))) { pthread_mutex_lock(&toplock); at_suspend_barrier = 0; pthread_mutex_lock(&hotlock); } pthread_mutex_unlock(&suslock); return numblockers; } int tt_bookprxor::resume() { int numblockers = -1; pthread_mutex_lock(&suslock); const bool is_legal = (stallcount && (this->input_source == INSOURCE_FILE)); if (is_legal && (0 == (numblockers = --stallcount))) { pthread_mutex_unlock(&toplock); pthread_mutex_unlock(&hotlock); } pthread_mutex_unlock(&suslock); return numblockers; } int tt_bookprxor::suspend_count() { return stallcount; } # 723 "src/bp/bp_b.cc" unsigned long long tt_bookprxor::advance(const unsigned long long howmany_us, bp_advancedata* out) { auto p = (t3_xmsghdr*)(-1); if (out) { out->first_message_us = out->final_message_us = bp_event::bptime.venue_msgtime_us; out->advanced_count = 0; } if (stallcount < 1) return (unsigned long long)(-1); const auto NEG1 = (t3_xmsghdr*)(-1); const unsigned long long start_count = incount; const unsigned long long target_msgtime = bp_event::bptime.venue_msgtime_us + howmany_us; pthread_mutex_unlock(&toplock); const bool needsleep = 0 == at_suspend_barrier; unsigned long long spun = 0; if (needsleep) { while(!at_suspend_barrier && spun++ < 20) { usleep(16); } } while(bp_event::bptime.venue_msgtime_us < target_msgtime) { if (NEG1 != (p = (t3_xmsghdr*) t3_peek_msg(this->infile))) { const unsigned long long next_msgtime = (T3_MSGTYPE_CLOCK == p->msgtype)? (bp_event::bptime.venue_second_us + (1000000)): (bp_event::bptime.venue_second_us + p->timeoff); if (next_msgtime > target_msgtime) break; } p = (t3_xmsghdr*) t3_get_msg(this->infile); if (__null == p) break; if (NEG1 == p) continue; if (T3_MSGTYPE_CLOCK == p->msgtype) { this->monitor_simclock((t3_clock_msg*) p); continue; } ++incount; switch(this->dispatch_msg(p)) { case 1: ++this->handled; case 0: break; default: ++this->msgerrors; } } if (out) { out->final_message_us = bp_event::bptime.venue_msgtime_us; out->advanced_count = (int) (incount - start_count); } log->log(BP,'D',"advanced %llu\n",incount - start_count); return p? bp_event::bptime.venue_msgtime_us: 0; } unsigned long long current_sub_id; unsigned long long tt_bookprxor::new_subid() { return __sync_add_and_fetch(¤t_sub_id, 1); } void tt_bookprxor::init_() { is_quit_requested = is_open = is_created = false; input_source = current_feedid = disregard_feedids = stallcount = 0; incount = handled = msgerrors = 0; memset(&counts, 0, sizeof(bp_stats)); maxsecs = symcount = mpidcount = 0; at_suspend_barrier = 1; current_sub_id = 0; g_registry = &events; mpidtable = __null; tlogger = __null; symtable = tt::get_stock_symbol_table(); symcount = tt::get_stock_symbol_count(); ((symtable && symcount) ? static_cast (0) : __assert_fail ("symtable && symcount", "src/bp/bp_b.cc", 820, __PRETTY_FUNCTION__)); pthread_mutex_init(&sublock,__null); tt::feedhdlr::init(); pthread_mutex_init(&hotlock, __null); pthread_mutex_init(&suslock, __null); pthread_mutex_init(&toplock, __null); } tt_bookprxor::tt_bookprxor(std::vector& inpaths, logger* syslog): infile(__null), log(syslog), paths(inpaths) { ((inpaths.size()) ? static_cast (0) : __assert_fail ("inpaths.size()", "src/bp/bp_b.cc", 835, __PRETTY_FUNCTION__)); if (0 == inpaths.size()) asm("int $3"); init_(); } tt_bookprxor::tt_bookprxor(std::vector& specs, logger* syslog): feedspecs(specs), infile(__null), log(syslog) { ((feedspecs.size()) ? static_cast (0) : __assert_fail ("feedspecs.size()", "src/bp/bp_b.cc", 845, __PRETTY_FUNCTION__)); if (0 == feedspecs.size()) asm("int $3"); paths.reserve(feedspecs.size()); init_(); for(size_t i=0; i < feedspecs.size(); i++) { feedspec& thisfeed = feedspecs[i]; ((thisfeed.feed) ? static_cast (0) : __assert_fail ("thisfeed.feed", "src/bp/bp_b.cc", 851, __PRETTY_FUNCTION__)); if (__null == thisfeed.feed) asm("int $3"); thisfeed.feed_idbit = 0x1 << i; if (thisfeed.is_disregard_nonunique_venues) this->disregard_feedids |= thisfeed.feed_idbit; paths.push_back(thisfeed.uri); } } tt_bookprxor::~tt_bookprxor() { close(); if (this->tlogger) delete tlogger; } void sync_and_start_bpclock() { ::signal(14, g_alarm_handler); g_is_clock_stopped = 0; ::timeval tv; gettimeofday(&tv,0); const suseconds_t start_usec = tv.tv_usec; while(tv.tv_usec && tv.tv_usec >= start_usec) gettimeofday(&tv,0); ::alarm(1); struct ::tm* t = localtime(&tv.tv_sec); g_second_tick = g_prior_tick = g_start_tick = (t->tm_hour*60*60) + (t->tm_min*60) + t->tm_sec; } void stop_bpclock() { g_is_clock_stopped = true; ::alarm(0); ::signal(14, ((__sighandler_t) 0)); } unsigned int bp_get_start_clocksec() { return g_start_tick; }; unsigned int bp_get_current_clocksec() { return g_second_tick; } logger* glog; logger* bplog() { return glog; } void tt_bookprxor::verify_logger() { if (this->log) { glog = this->log; return; } ::remove("bptest.log"); tlogger = new flogger("bptest.log", "bplogfile"); tlogger->open(false); log = glog = tlogger->get_logger(); ((log) ? static_cast (0) : __assert_fail ("log", "src/bp/bp_b.cc", 910, __PRETTY_FUNCTION__)); } timespec g_ts_start, g_ts_end; void tt_bookprxor::clock_mark() { ::clock_gettime(0, &g_ts_start); } unsigned long long tt_bookprxor::clockns_mark () { ::clock_gettime(0, &g_ts_start); return ((1000000000) * (unsigned long long) g_ts_start.tv_sec) + g_ts_start.tv_nsec; } unsigned long long tt_bookprxor::clockns_delta () { timespec x; ::clock_gettime(0, &g_ts_end); const long long diffns = g_ts_end.tv_nsec - g_ts_start.tv_nsec; if (diffns < 0) { x.tv_sec = g_ts_end.tv_sec - g_ts_start.tv_sec - 1; x.tv_nsec = (1000000000) + diffns; } else { x.tv_sec = g_ts_end.tv_sec - g_ts_start.tv_sec; x.tv_nsec = diffns; } return ((1000000000) * (unsigned long long) x.tv_sec) + x.tv_nsec; } void makesym(t3_symbol_t& s, const char* str) { memset(&s, 0, sizeof(t3_symbol_t)); s.length = strlen(str); memcpy(s.symbol, str, s.length); }; void tt_bookprxor::set_sessiondate() { if(this->input_source == INSOURCE_FILE) { t3_meta* meta = (t3_meta*) this->infile->metadata; this->cur_session_date = meta->session_date; } else { time_t t = time(__null); struct tm* t_bits = localtime(&t); this->cur_session_date = (t_bits->tm_year + 1900) * 10000 + (t_bits->tm_mon + 1) * 100 + t_bits->tm_mday; } } # 990 "src/bp/bp_b.cc" int tt_bookprxor::open_t3_internal() { this->verify_logger(); if (this->is_open) return 0; int result = -1; do { bp_uri uri(this->paths[0]); if (!uri.good) { fprintf(stderr, "bp input uri missing or invalid\n"); break; } if (uri.scheme != "t3file") break; const char* path = uri.path.c_str(); size_t infile_size = tt_bookprxor::filesize(path); if (0 == infile_size) { fprintf(stderr, bpfileempty, path); break; } if (__null == (this->infile = t3_open(path))) { fprintf(stderr, bpcantopen, path); break; } if(__null == (this->symtable = t3_get_symtable (this->infile))) { fprintf(stderr,"bp input %s not a t3 file or is corrupt\n", path); break; } this->symcount = t3_get_symbol_count (this->infile); if (this->symcount <= 1) { fprintf(stderr, bpnosymbols, path); break; } this->input_source = INSOURCE_FILE; this->create_booktable(this->symcount); ::thisx = this; ::sync_and_start_bpclock(); result = 0; } while(0); if (0 == result) this->is_open = true; else this->close(); return result; }