SHARE
TWEET

Untitled

a guest Apr 2nd, 2018 2,995 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # 1 "driver.cpp"
  2. # 1 "<built-in>"
  3. # 1 "<command-line>"
  4. # 1 "/usr/include/stdc-predef.h" 1 3 4
  5. # 1 "<command-line>" 2
  6. # 1 "driver.cpp"
  7. # 1 "/usr/include/c++/5/iostream" 1 3
  8. # 36 "/usr/include/c++/5/iostream" 3
  9.        
  10. # 37 "/usr/include/c++/5/iostream" 3
  11.  
  12. # 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 1 3
  13. # 194 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 3
  14.  
  15. # 194 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 3
  16. namespace std
  17. {
  18.   typedef long unsigned int size_t;
  19.   typedef long int ptrdiff_t;
  20.  
  21.  
  22.  
  23.  
  24. }
  25. # 216 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 3
  26. namespace std
  27. {
  28.   inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
  29. }
  30. namespace __gnu_cxx
  31. {
  32.   inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
  33. }
  34. # 482 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 3
  35. # 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h" 1 3
  36. # 39 "/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h" 3
  37. # 1 "/usr/include/features.h" 1 3 4
  38. # 367 "/usr/include/features.h" 3 4
  39. # 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4
  40. # 410 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  41. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  42. # 411 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4
  43. # 368 "/usr/include/features.h" 2 3 4
  44. # 391 "/usr/include/features.h" 3 4
  45. # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4
  46. # 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
  47. # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4
  48. # 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4
  49. # 392 "/usr/include/features.h" 2 3 4
  50. # 40 "/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h" 2 3
  51. # 483 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 2 3
  52.  
  53.  
  54. # 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h" 1 3
  55. # 486 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h" 2 3
  56. # 39 "/usr/include/c++/5/iostream" 2 3
  57. # 1 "/usr/include/c++/5/ostream" 1 3
  58. # 36 "/usr/include/c++/5/ostream" 3
  59.        
  60. # 37 "/usr/include/c++/5/ostream" 3
  61.  
  62. # 1 "/usr/include/c++/5/ios" 1 3
  63. # 36 "/usr/include/c++/5/ios" 3
  64.        
  65. # 37 "/usr/include/c++/5/ios" 3
  66.  
  67. # 1 "/usr/include/c++/5/iosfwd" 1 3
  68. # 36 "/usr/include/c++/5/iosfwd" 3
  69.        
  70. # 37 "/usr/include/c++/5/iosfwd" 3
  71.  
  72.  
  73. # 1 "/usr/include/c++/5/bits/stringfwd.h" 1 3
  74. # 37 "/usr/include/c++/5/bits/stringfwd.h" 3
  75.        
  76. # 38 "/usr/include/c++/5/bits/stringfwd.h" 3
  77.  
  78.  
  79. # 1 "/usr/include/c++/5/bits/memoryfwd.h" 1 3
  80. # 46 "/usr/include/c++/5/bits/memoryfwd.h" 3
  81.        
  82. # 47 "/usr/include/c++/5/bits/memoryfwd.h" 3
  83.  
  84.  
  85.  
  86. namespace std __attribute__ ((__visibility__ ("default")))
  87. {
  88.  
  89. # 63 "/usr/include/c++/5/bits/memoryfwd.h" 3
  90.   template<typename>
  91.     class allocator;
  92.  
  93.   template<>
  94.     class allocator<void>;
  95.  
  96.  
  97.   template<typename, typename>
  98.     struct uses_allocator;
  99.  
  100.  
  101.  
  102.  
  103. }
  104. # 41 "/usr/include/c++/5/bits/stringfwd.h" 2 3
  105.  
  106. namespace std __attribute__ ((__visibility__ ("default")))
  107. {
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.   template<class _CharT>
  117.     struct char_traits;
  118.  
  119.   template<> struct char_traits<char>;
  120.  
  121.  
  122.   template<> struct char_traits<wchar_t>;
  123. # 67 "/usr/include/c++/5/bits/stringfwd.h" 3
  124. namespace __cxx11 {
  125.  
  126.   template<typename _CharT, typename _Traits = char_traits<_CharT>,
  127.            typename _Alloc = allocator<_CharT> >
  128.     class basic_string;
  129.  
  130.  
  131.   typedef basic_string<char> string;
  132.  
  133.  
  134.  
  135.   typedef basic_string<wchar_t> wstring;
  136. # 90 "/usr/include/c++/5/bits/stringfwd.h" 3
  137. }
  138.  
  139.  
  140.  
  141.  
  142. }
  143. # 40 "/usr/include/c++/5/iosfwd" 2 3
  144. # 1 "/usr/include/c++/5/bits/postypes.h" 1 3
  145. # 38 "/usr/include/c++/5/bits/postypes.h" 3
  146.        
  147. # 39 "/usr/include/c++/5/bits/postypes.h" 3
  148.  
  149. # 1 "/usr/include/c++/5/cwchar" 1 3
  150. # 39 "/usr/include/c++/5/cwchar" 3
  151.        
  152. # 40 "/usr/include/c++/5/cwchar" 3
  153.  
  154.  
  155.  
  156.  
  157. # 1 "/usr/include/wchar.h" 1 3 4
  158. # 36 "/usr/include/wchar.h" 3 4
  159. # 1 "/usr/include/stdio.h" 1 3 4
  160. # 44 "/usr/include/stdio.h" 3 4
  161. struct _IO_FILE;
  162.  
  163.  
  164.  
  165. typedef struct _IO_FILE FILE;
  166.  
  167.  
  168.  
  169.  
  170.  
  171. # 64 "/usr/include/stdio.h" 3 4
  172. typedef struct _IO_FILE __FILE;
  173. # 37 "/usr/include/wchar.h" 2 3 4
  174.  
  175.  
  176. # 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 1 3 4
  177. # 40 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h" 3 4
  178. typedef __builtin_va_list __gnuc_va_list;
  179. # 40 "/usr/include/wchar.h" 2 3 4
  180.  
  181. # 1 "/usr/include/x86_64-linux-gnu/bits/wchar.h" 1 3 4
  182. # 42 "/usr/include/wchar.h" 2 3 4
  183. # 51 "/usr/include/wchar.h" 3 4
  184. # 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
  185. # 216 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
  186. typedef long unsigned int size_t;
  187. # 357 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 3 4
  188. typedef unsigned int wint_t;
  189. # 52 "/usr/include/wchar.h" 2 3 4
  190. # 82 "/usr/include/wchar.h" 3 4
  191. typedef struct
  192. {
  193.   int __count;
  194.   union
  195.   {
  196.  
  197.     unsigned int __wch;
  198.  
  199.  
  200.  
  201.     char __wchb[4];
  202.   } __value;
  203. } __mbstate_t;
  204. # 104 "/usr/include/wchar.h" 3 4
  205.  
  206.  
  207. typedef __mbstate_t mbstate_t;
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214. # 132 "/usr/include/wchar.h" 3 4
  215. extern "C" {
  216.  
  217.  
  218.  
  219.  
  220. struct tm;
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230. extern wchar_t *wcscpy (wchar_t *__restrict __dest,
  231.    const wchar_t *__restrict __src)
  232.      throw () __attribute__ ((__nonnull__ (1, 2)));
  233.  
  234.  
  235. extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
  236.     const wchar_t *__restrict __src, size_t __n)
  237.      throw () __attribute__ ((__nonnull__ (1, 2)));
  238.  
  239.  
  240. extern wchar_t *wcscat (wchar_t *__restrict __dest,
  241.    const wchar_t *__restrict __src)
  242.      throw () __attribute__ ((__nonnull__ (1, 2)));
  243.  
  244. extern wchar_t *wcsncat (wchar_t *__restrict __dest,
  245.     const wchar_t *__restrict __src, size_t __n)
  246.      throw () __attribute__ ((__nonnull__ (1, 2)));
  247.  
  248.  
  249. extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2)
  250.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  251.  
  252. extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
  253.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  254.  
  255.  
  256.  
  257.  
  258. extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw ();
  259.  
  260.  
  261. extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
  262.    size_t __n) throw ();
  263.  
  264.  
  265.  
  266. # 1 "/usr/include/xlocale.h" 1 3 4
  267. # 27 "/usr/include/xlocale.h" 3 4
  268. typedef struct __locale_struct
  269. {
  270.  
  271.   struct __locale_data *__locales[13];
  272.  
  273.  
  274.   const unsigned short int *__ctype_b;
  275.   const int *__ctype_tolower;
  276.   const int *__ctype_toupper;
  277.  
  278.  
  279.   const char *__names[13];
  280. } *__locale_t;
  281.  
  282.  
  283. typedef __locale_t locale_t;
  284. # 184 "/usr/include/wchar.h" 2 3 4
  285.  
  286. extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
  287.     __locale_t __loc) throw ();
  288.  
  289. extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
  290.      size_t __n, __locale_t __loc) throw ();
  291.  
  292.  
  293.  
  294.  
  295.  
  296. extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw ();
  297.  
  298.  
  299.  
  300. extern size_t wcsxfrm (wchar_t *__restrict __s1,
  301.          const wchar_t *__restrict __s2, size_t __n) throw ();
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310. extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2,
  311.         __locale_t __loc) throw ();
  312.  
  313.  
  314.  
  315.  
  316. extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
  317.     size_t __n, __locale_t __loc) throw ();
  318.  
  319.  
  320. extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__));
  321.  
  322.  
  323.  
  324.  
  325.  
  326. extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc)
  327.      throw () __asm ("wcschr") __attribute__ ((__pure__));
  328. extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc)
  329.      throw () __asm ("wcschr") __attribute__ ((__pure__));
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336. extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc)
  337.      throw () __asm ("wcsrchr") __attribute__ ((__pure__));
  338. extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc)
  339.      throw () __asm ("wcsrchr") __attribute__ ((__pure__));
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349. extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc)
  350.      throw () __attribute__ ((__pure__));
  351.  
  352.  
  353.  
  354.  
  355.  
  356. extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject)
  357.      throw () __attribute__ ((__pure__));
  358.  
  359.  
  360. extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept)
  361.      throw () __attribute__ ((__pure__));
  362.  
  363.  
  364. extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept)
  365.      throw () __asm ("wcspbrk") __attribute__ ((__pure__));
  366. extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs,
  367.          const wchar_t *__accept)
  368.      throw () __asm ("wcspbrk") __attribute__ ((__pure__));
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375. extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle)
  376.      throw () __asm ("wcsstr") __attribute__ ((__pure__));
  377. extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack,
  378.         const wchar_t *__needle)
  379.      throw () __asm ("wcsstr") __attribute__ ((__pure__));
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386. extern wchar_t *wcstok (wchar_t *__restrict __s,
  387.    const wchar_t *__restrict __delim,
  388.    wchar_t **__restrict __ptr) throw ();
  389.  
  390.  
  391. extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__));
  392.  
  393.  
  394.  
  395.  
  396.  
  397. extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle)
  398.      throw () __asm ("wcswcs") __attribute__ ((__pure__));
  399. extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack,
  400.         const wchar_t *__needle)
  401.      throw () __asm ("wcswcs") __attribute__ ((__pure__));
  402. # 309 "/usr/include/wchar.h" 3 4
  403. extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen)
  404.      throw () __attribute__ ((__pure__));
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411. extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n)
  412.      throw () __asm ("wmemchr") __attribute__ ((__pure__));
  413. extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c,
  414.          size_t __n)
  415.      throw () __asm ("wmemchr") __attribute__ ((__pure__));
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422. extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
  423.      throw () __attribute__ ((__pure__));
  424.  
  425.  
  426. extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
  427.     const wchar_t *__restrict __s2, size_t __n) throw ();
  428.  
  429.  
  430.  
  431. extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n)
  432.      throw ();
  433.  
  434.  
  435. extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
  436.  
  437.  
  438.  
  439.  
  440.  
  441. extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
  442.      const wchar_t *__restrict __s2, size_t __n)
  443.      throw ();
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. extern wint_t btowc (int __c) throw ();
  451.  
  452.  
  453.  
  454. extern int wctob (wint_t __c) throw ();
  455.  
  456.  
  457.  
  458. extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__));
  459.  
  460.  
  461.  
  462. extern size_t mbrtowc (wchar_t *__restrict __pwc,
  463.          const char *__restrict __s, size_t __n,
  464.          mbstate_t *__restrict __p) throw ();
  465.  
  466.  
  467. extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
  468.          mbstate_t *__restrict __ps) throw ();
  469.  
  470.  
  471. extern size_t __mbrlen (const char *__restrict __s, size_t __n,
  472.    mbstate_t *__restrict __ps) throw ();
  473. extern size_t mbrlen (const char *__restrict __s, size_t __n,
  474.         mbstate_t *__restrict __ps) throw ();
  475.  
  476. # 408 "/usr/include/wchar.h" 3 4
  477.  
  478.  
  479.  
  480. extern size_t mbsrtowcs (wchar_t *__restrict __dst,
  481.     const char **__restrict __src, size_t __len,
  482.     mbstate_t *__restrict __ps) throw ();
  483.  
  484.  
  485.  
  486. extern size_t wcsrtombs (char *__restrict __dst,
  487.     const wchar_t **__restrict __src, size_t __len,
  488.     mbstate_t *__restrict __ps) throw ();
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495. extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
  496.      const char **__restrict __src, size_t __nmc,
  497.      size_t __len, mbstate_t *__restrict __ps) throw ();
  498.  
  499.  
  500.  
  501. extern size_t wcsnrtombs (char *__restrict __dst,
  502.      const wchar_t **__restrict __src,
  503.      size_t __nwc, size_t __len,
  504.      mbstate_t *__restrict __ps) throw ();
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511. extern int wcwidth (wchar_t __c) throw ();
  512.  
  513.  
  514.  
  515. extern int wcswidth (const wchar_t *__s, size_t __n) throw ();
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522. extern double wcstod (const wchar_t *__restrict __nptr,
  523.         wchar_t **__restrict __endptr) throw ();
  524.  
  525.  
  526.  
  527.  
  528.  
  529. extern float wcstof (const wchar_t *__restrict __nptr,
  530.        wchar_t **__restrict __endptr) throw ();
  531. extern long double wcstold (const wchar_t *__restrict __nptr,
  532.        wchar_t **__restrict __endptr) throw ();
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540. extern long int wcstol (const wchar_t *__restrict __nptr,
  541.    wchar_t **__restrict __endptr, int __base) throw ();
  542.  
  543.  
  544.  
  545. extern unsigned long int wcstoul (const wchar_t *__restrict __nptr,
  546.       wchar_t **__restrict __endptr, int __base)
  547.      throw ();
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554. __extension__
  555. extern long long int wcstoll (const wchar_t *__restrict __nptr,
  556.          wchar_t **__restrict __endptr, int __base)
  557.      throw ();
  558.  
  559.  
  560.  
  561. __extension__
  562. extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr,
  563.      wchar_t **__restrict __endptr,
  564.      int __base) throw ();
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571. __extension__
  572. extern long long int wcstoq (const wchar_t *__restrict __nptr,
  573.         wchar_t **__restrict __endptr, int __base)
  574.      throw ();
  575.  
  576.  
  577.  
  578. __extension__
  579. extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr,
  580.            wchar_t **__restrict __endptr,
  581.            int __base) throw ();
  582. # 533 "/usr/include/wchar.h" 3 4
  583. extern long int wcstol_l (const wchar_t *__restrict __nptr,
  584.      wchar_t **__restrict __endptr, int __base,
  585.      __locale_t __loc) throw ();
  586.  
  587. extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr,
  588.         wchar_t **__restrict __endptr,
  589.         int __base, __locale_t __loc) throw ();
  590.  
  591. __extension__
  592. extern long long int wcstoll_l (const wchar_t *__restrict __nptr,
  593.     wchar_t **__restrict __endptr,
  594.     int __base, __locale_t __loc) throw ();
  595.  
  596. __extension__
  597. extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr,
  598.        wchar_t **__restrict __endptr,
  599.        int __base, __locale_t __loc)
  600.      throw ();
  601.  
  602. extern double wcstod_l (const wchar_t *__restrict __nptr,
  603.    wchar_t **__restrict __endptr, __locale_t __loc)
  604.      throw ();
  605.  
  606. extern float wcstof_l (const wchar_t *__restrict __nptr,
  607.          wchar_t **__restrict __endptr, __locale_t __loc)
  608.      throw ();
  609.  
  610. extern long double wcstold_l (const wchar_t *__restrict __nptr,
  611.          wchar_t **__restrict __endptr,
  612.          __locale_t __loc) throw ();
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619. extern wchar_t *wcpcpy (wchar_t *__restrict __dest,
  620.    const wchar_t *__restrict __src) throw ();
  621.  
  622.  
  623.  
  624. extern wchar_t *wcpncpy (wchar_t *__restrict __dest,
  625.     const wchar_t *__restrict __src, size_t __n)
  626.      throw ();
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633. extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw ();
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640. extern int fwide (__FILE *__fp, int __mode) throw ();
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647. extern int fwprintf (__FILE *__restrict __stream,
  648.        const wchar_t *__restrict __format, ...)
  649.                                                            ;
  650.  
  651.  
  652.  
  653.  
  654. extern int wprintf (const wchar_t *__restrict __format, ...)
  655.                                                            ;
  656.  
  657. extern int swprintf (wchar_t *__restrict __s, size_t __n,
  658.        const wchar_t *__restrict __format, ...)
  659.      throw () ;
  660.  
  661.  
  662.  
  663.  
  664.  
  665. extern int vfwprintf (__FILE *__restrict __s,
  666.         const wchar_t *__restrict __format,
  667.         __gnuc_va_list __arg)
  668.                                                            ;
  669.  
  670.  
  671.  
  672.  
  673. extern int vwprintf (const wchar_t *__restrict __format,
  674.        __gnuc_va_list __arg)
  675.                                                            ;
  676.  
  677.  
  678. extern int vswprintf (wchar_t *__restrict __s, size_t __n,
  679.         const wchar_t *__restrict __format,
  680.         __gnuc_va_list __arg)
  681.      throw () ;
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688. extern int fwscanf (__FILE *__restrict __stream,
  689.       const wchar_t *__restrict __format, ...)
  690.                                                           ;
  691.  
  692.  
  693.  
  694.  
  695. extern int wscanf (const wchar_t *__restrict __format, ...)
  696.                                                           ;
  697.  
  698. extern int swscanf (const wchar_t *__restrict __s,
  699.       const wchar_t *__restrict __format, ...)
  700.      throw () ;
  701. # 683 "/usr/include/wchar.h" 3 4
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711. extern int vfwscanf (__FILE *__restrict __s,
  712.        const wchar_t *__restrict __format,
  713.        __gnuc_va_list __arg)
  714.                                                           ;
  715.  
  716.  
  717.  
  718.  
  719. extern int vwscanf (const wchar_t *__restrict __format,
  720.       __gnuc_va_list __arg)
  721.                                                           ;
  722.  
  723. extern int vswscanf (const wchar_t *__restrict __s,
  724.        const wchar_t *__restrict __format,
  725.        __gnuc_va_list __arg)
  726.      throw () ;
  727. # 739 "/usr/include/wchar.h" 3 4
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737. extern wint_t fgetwc (__FILE *__stream);
  738. extern wint_t getwc (__FILE *__stream);
  739.  
  740.  
  741.  
  742.  
  743.  
  744. extern wint_t getwchar (void);
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751. extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
  752. extern wint_t putwc (wchar_t __wc, __FILE *__stream);
  753.  
  754.  
  755.  
  756.  
  757.  
  758. extern wint_t putwchar (wchar_t __wc);
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766. extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
  767.    __FILE *__restrict __stream);
  768.  
  769.  
  770.  
  771.  
  772.  
  773. extern int fputws (const wchar_t *__restrict __ws,
  774.      __FILE *__restrict __stream);
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781. extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
  782.  
  783. # 804 "/usr/include/wchar.h" 3 4
  784. extern wint_t getwc_unlocked (__FILE *__stream);
  785. extern wint_t getwchar_unlocked (void);
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793. extern wint_t fgetwc_unlocked (__FILE *__stream);
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801. extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
  802. # 830 "/usr/include/wchar.h" 3 4
  803. extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
  804. extern wint_t putwchar_unlocked (wchar_t __wc);
  805. # 840 "/usr/include/wchar.h" 3 4
  806. extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
  807.      __FILE *__restrict __stream);
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815. extern int fputws_unlocked (const wchar_t *__restrict __ws,
  816.        __FILE *__restrict __stream);
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824. extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
  825.    const wchar_t *__restrict __format,
  826.    const struct tm *__restrict __tp) throw ();
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834. extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
  835.      const wchar_t *__restrict __format,
  836.      const struct tm *__restrict __tp,
  837.      __locale_t __loc) throw ();
  838. # 894 "/usr/include/wchar.h" 3 4
  839. }
  840. # 45 "/usr/include/c++/5/cwchar" 2 3
  841. # 62 "/usr/include/c++/5/cwchar" 3
  842. namespace std
  843. {
  844.   using ::mbstate_t;
  845. }
  846. # 135 "/usr/include/c++/5/cwchar" 3
  847. namespace std __attribute__ ((__visibility__ ("default")))
  848. {
  849.  
  850.  
  851.   using ::wint_t;
  852.  
  853.   using ::btowc;
  854.   using ::fgetwc;
  855.   using ::fgetws;
  856.   using ::fputwc;
  857.   using ::fputws;
  858.   using ::fwide;
  859.   using ::fwprintf;
  860.   using ::fwscanf;
  861.   using ::getwc;
  862.   using ::getwchar;
  863.   using ::mbrlen;
  864.   using ::mbrtowc;
  865.   using ::mbsinit;
  866.   using ::mbsrtowcs;
  867.   using ::putwc;
  868.   using ::putwchar;
  869.  
  870.   using ::swprintf;
  871.  
  872.   using ::swscanf;
  873.   using ::ungetwc;
  874.   using ::vfwprintf;
  875.  
  876.   using ::vfwscanf;
  877.  
  878.  
  879.   using ::vswprintf;
  880.  
  881.  
  882.   using ::vswscanf;
  883.  
  884.   using ::vwprintf;
  885.  
  886.   using ::vwscanf;
  887.  
  888.   using ::wcrtomb;
  889.   using ::wcscat;
  890.   using ::wcscmp;
  891.   using ::wcscoll;
  892.   using ::wcscpy;
  893.   using ::wcscspn;
  894.   using ::wcsftime;
  895.   using ::wcslen;
  896.   using ::wcsncat;
  897.   using ::wcsncmp;
  898.   using ::wcsncpy;
  899.   using ::wcsrtombs;
  900.   using ::wcsspn;
  901.   using ::wcstod;
  902.  
  903.   using ::wcstof;
  904.  
  905.   using ::wcstok;
  906.   using ::wcstol;
  907.   using ::wcstoul;
  908.   using ::wcsxfrm;
  909.   using ::wctob;
  910.   using ::wmemcmp;
  911.   using ::wmemcpy;
  912.   using ::wmemmove;
  913.   using ::wmemset;
  914.   using ::wprintf;
  915.   using ::wscanf;
  916.   using ::wcschr;
  917.   using ::wcspbrk;
  918.   using ::wcsrchr;
  919.   using ::wcsstr;
  920.   using ::wmemchr;
  921. # 232 "/usr/include/c++/5/cwchar" 3
  922.  
  923. }
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931. namespace __gnu_cxx
  932. {
  933.  
  934.  
  935.  
  936.  
  937.  
  938.   using ::wcstold;
  939. # 257 "/usr/include/c++/5/cwchar" 3
  940.   using ::wcstoll;
  941.   using ::wcstoull;
  942.  
  943. }
  944.  
  945. namespace std
  946. {
  947.   using ::__gnu_cxx::wcstold;
  948.   using ::__gnu_cxx::wcstoll;
  949.   using ::__gnu_cxx::wcstoull;
  950. }
  951. # 41 "/usr/include/c++/5/bits/postypes.h" 2 3
  952. # 68 "/usr/include/c++/5/bits/postypes.h" 3
  953. namespace std __attribute__ ((__visibility__ ("default")))
  954. {
  955.  
  956. # 88 "/usr/include/c++/5/bits/postypes.h" 3
  957.   typedef long streamoff;
  958. # 98 "/usr/include/c++/5/bits/postypes.h" 3
  959.   typedef ptrdiff_t streamsize;
  960. # 111 "/usr/include/c++/5/bits/postypes.h" 3
  961.   template<typename _StateT>
  962.     class fpos
  963.     {
  964.     private:
  965.       streamoff _M_off;
  966.       _StateT _M_state;
  967.  
  968.     public:
  969.  
  970.  
  971.  
  972.  
  973.       fpos()
  974.       : _M_off(0), _M_state() { }
  975. # 133 "/usr/include/c++/5/bits/postypes.h" 3
  976.       fpos(streamoff __off)
  977.       : _M_off(__off), _M_state() { }
  978.  
  979.  
  980.       operator streamoff() const { return _M_off; }
  981.  
  982.  
  983.       void
  984.       state(_StateT __st)
  985.       { _M_state = __st; }
  986.  
  987.  
  988.       _StateT
  989.       state() const
  990.       { return _M_state; }
  991.  
  992.  
  993.  
  994.  
  995.  
  996.       fpos&
  997.       operator+=(streamoff __off)
  998.       {
  999.  _M_off += __off;
  1000.  return *this;
  1001.       }
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.       fpos&
  1008.       operator-=(streamoff __off)
  1009.       {
  1010.  _M_off -= __off;
  1011.  return *this;
  1012.       }
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.       fpos
  1021.       operator+(streamoff __off) const
  1022.       {
  1023.  fpos __pos(*this);
  1024.  __pos += __off;
  1025.  return __pos;
  1026.       }
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.       fpos
  1035.       operator-(streamoff __off) const
  1036.       {
  1037.  fpos __pos(*this);
  1038.  __pos -= __off;
  1039.  return __pos;
  1040.       }
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.       streamoff
  1048.       operator-(const fpos& __other) const
  1049.       { return _M_off - __other._M_off; }
  1050.     };
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.   template<typename _StateT>
  1058.     inline bool
  1059.     operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
  1060.     { return streamoff(__lhs) == streamoff(__rhs); }
  1061.  
  1062.   template<typename _StateT>
  1063.     inline bool
  1064.     operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
  1065.     { return streamoff(__lhs) != streamoff(__rhs); }
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.   typedef fpos<mbstate_t> streampos;
  1072.  
  1073.   typedef fpos<mbstate_t> wstreampos;
  1074. # 239 "/usr/include/c++/5/bits/postypes.h" 3
  1075.  
  1076. }
  1077. # 41 "/usr/include/c++/5/iosfwd" 2 3
  1078.  
  1079. namespace std __attribute__ ((__visibility__ ("default")))
  1080. {
  1081.  
  1082. # 74 "/usr/include/c++/5/iosfwd" 3
  1083.   class ios_base;
  1084.  
  1085.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1086.     class basic_ios;
  1087.  
  1088.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1089.     class basic_streambuf;
  1090.  
  1091.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1092.     class basic_istream;
  1093.  
  1094.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1095.     class basic_ostream;
  1096.  
  1097.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1098.     class basic_iostream;
  1099.  
  1100.  
  1101. namespace __cxx11 {
  1102.  
  1103.   template<typename _CharT, typename _Traits = char_traits<_CharT>,
  1104.      typename _Alloc = allocator<_CharT> >
  1105.     class basic_stringbuf;
  1106.  
  1107.   template<typename _CharT, typename _Traits = char_traits<_CharT>,
  1108.     typename _Alloc = allocator<_CharT> >
  1109.     class basic_istringstream;
  1110.  
  1111.   template<typename _CharT, typename _Traits = char_traits<_CharT>,
  1112.     typename _Alloc = allocator<_CharT> >
  1113.     class basic_ostringstream;
  1114.  
  1115.   template<typename _CharT, typename _Traits = char_traits<_CharT>,
  1116.     typename _Alloc = allocator<_CharT> >
  1117.     class basic_stringstream;
  1118.  
  1119. }
  1120.  
  1121.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1122.     class basic_filebuf;
  1123.  
  1124.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1125.     class basic_ifstream;
  1126.  
  1127.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1128.     class basic_ofstream;
  1129.  
  1130.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1131.     class basic_fstream;
  1132.  
  1133.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1134.     class istreambuf_iterator;
  1135.  
  1136.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1137.     class ostreambuf_iterator;
  1138.  
  1139.  
  1140.  
  1141.   typedef basic_ios<char> ios;
  1142.  
  1143.  
  1144.   typedef basic_streambuf<char> streambuf;
  1145.  
  1146.  
  1147.   typedef basic_istream<char> istream;
  1148.  
  1149.  
  1150.   typedef basic_ostream<char> ostream;
  1151.  
  1152.  
  1153.   typedef basic_iostream<char> iostream;
  1154.  
  1155.  
  1156.   typedef basic_stringbuf<char> stringbuf;
  1157.  
  1158.  
  1159.   typedef basic_istringstream<char> istringstream;
  1160.  
  1161.  
  1162.   typedef basic_ostringstream<char> ostringstream;
  1163.  
  1164.  
  1165.   typedef basic_stringstream<char> stringstream;
  1166.  
  1167.  
  1168.   typedef basic_filebuf<char> filebuf;
  1169.  
  1170.  
  1171.   typedef basic_ifstream<char> ifstream;
  1172.  
  1173.  
  1174.   typedef basic_ofstream<char> ofstream;
  1175.  
  1176.  
  1177.   typedef basic_fstream<char> fstream;
  1178.  
  1179.  
  1180.  
  1181.   typedef basic_ios<wchar_t> wios;
  1182.  
  1183.  
  1184.   typedef basic_streambuf<wchar_t> wstreambuf;
  1185.  
  1186.  
  1187.   typedef basic_istream<wchar_t> wistream;
  1188.  
  1189.  
  1190.   typedef basic_ostream<wchar_t> wostream;
  1191.  
  1192.  
  1193.   typedef basic_iostream<wchar_t> wiostream;
  1194.  
  1195.  
  1196.   typedef basic_stringbuf<wchar_t> wstringbuf;
  1197.  
  1198.  
  1199.   typedef basic_istringstream<wchar_t> wistringstream;
  1200.  
  1201.  
  1202.   typedef basic_ostringstream<wchar_t> wostringstream;
  1203.  
  1204.  
  1205.   typedef basic_stringstream<wchar_t> wstringstream;
  1206.  
  1207.  
  1208.   typedef basic_filebuf<wchar_t> wfilebuf;
  1209.  
  1210.  
  1211.   typedef basic_ifstream<wchar_t> wifstream;
  1212.  
  1213.  
  1214.   typedef basic_ofstream<wchar_t> wofstream;
  1215.  
  1216.  
  1217.   typedef basic_fstream<wchar_t> wfstream;
  1218.  
  1219.  
  1220.  
  1221.  
  1222. }
  1223. # 39 "/usr/include/c++/5/ios" 2 3
  1224. # 1 "/usr/include/c++/5/exception" 1 3
  1225. # 33 "/usr/include/c++/5/exception" 3
  1226.        
  1227. # 34 "/usr/include/c++/5/exception" 3
  1228.  
  1229. #pragma GCC visibility push(default)
  1230.  
  1231.  
  1232. # 1 "/usr/include/c++/5/bits/atomic_lockfree_defines.h" 1 3
  1233. # 33 "/usr/include/c++/5/bits/atomic_lockfree_defines.h" 3
  1234.        
  1235. # 34 "/usr/include/c++/5/bits/atomic_lockfree_defines.h" 3
  1236. # 39 "/usr/include/c++/5/exception" 2 3
  1237.  
  1238. extern "C++" {
  1239.  
  1240. namespace std
  1241. {
  1242. # 60 "/usr/include/c++/5/exception" 3
  1243.   class exception
  1244.   {
  1245.   public:
  1246.     exception() throw() { }
  1247.     virtual ~exception() throw();
  1248.  
  1249.  
  1250.  
  1251.     virtual const char* what() const throw();
  1252.   };
  1253.  
  1254.  
  1255.  
  1256.   class bad_exception : public exception
  1257.   {
  1258.   public:
  1259.     bad_exception() throw() { }
  1260.  
  1261.  
  1262.  
  1263.     virtual ~bad_exception() throw();
  1264.  
  1265.  
  1266.     virtual const char* what() const throw();
  1267.   };
  1268.  
  1269.  
  1270.   typedef void (*terminate_handler) ();
  1271.  
  1272.  
  1273.   typedef void (*unexpected_handler) ();
  1274.  
  1275.  
  1276.   terminate_handler set_terminate(terminate_handler) throw();
  1277. # 102 "/usr/include/c++/5/exception" 3
  1278.   void terminate() throw() __attribute__ ((__noreturn__));
  1279.  
  1280.  
  1281.   unexpected_handler set_unexpected(unexpected_handler) throw();
  1282. # 114 "/usr/include/c++/5/exception" 3
  1283.   void unexpected() __attribute__ ((__noreturn__));
  1284. # 127 "/usr/include/c++/5/exception" 3
  1285.   bool uncaught_exception() throw() __attribute__ ((__pure__));
  1286.  
  1287.  
  1288. }
  1289.  
  1290. namespace __gnu_cxx
  1291. {
  1292.  
  1293. # 152 "/usr/include/c++/5/exception" 3
  1294.   void __verbose_terminate_handler();
  1295.  
  1296.  
  1297. }
  1298.  
  1299. }
  1300.  
  1301. #pragma GCC visibility pop
  1302. # 40 "/usr/include/c++/5/ios" 2 3
  1303. # 1 "/usr/include/c++/5/bits/char_traits.h" 1 3
  1304. # 37 "/usr/include/c++/5/bits/char_traits.h" 3
  1305.        
  1306. # 38 "/usr/include/c++/5/bits/char_traits.h" 3
  1307.  
  1308. # 1 "/usr/include/c++/5/bits/stl_algobase.h" 1 3
  1309. # 60 "/usr/include/c++/5/bits/stl_algobase.h" 3
  1310. # 1 "/usr/include/c++/5/bits/functexcept.h" 1 3
  1311. # 40 "/usr/include/c++/5/bits/functexcept.h" 3
  1312. # 1 "/usr/include/c++/5/bits/exception_defines.h" 1 3
  1313. # 41 "/usr/include/c++/5/bits/functexcept.h" 2 3
  1314.  
  1315. namespace std __attribute__ ((__visibility__ ("default")))
  1316. {
  1317.  
  1318.  
  1319.  
  1320.   void
  1321.   __throw_bad_exception(void) __attribute__((__noreturn__));
  1322.  
  1323.  
  1324.   void
  1325.   __throw_bad_alloc(void) __attribute__((__noreturn__));
  1326.  
  1327.  
  1328.   void
  1329.   __throw_bad_cast(void) __attribute__((__noreturn__));
  1330.  
  1331.   void
  1332.   __throw_bad_typeid(void) __attribute__((__noreturn__));
  1333.  
  1334.  
  1335.   void
  1336.   __throw_logic_error(const char*) __attribute__((__noreturn__));
  1337.  
  1338.   void
  1339.   __throw_domain_error(const char*) __attribute__((__noreturn__));
  1340.  
  1341.   void
  1342.   __throw_invalid_argument(const char*) __attribute__((__noreturn__));
  1343.  
  1344.   void
  1345.   __throw_length_error(const char*) __attribute__((__noreturn__));
  1346.  
  1347.   void
  1348.   __throw_out_of_range(const char*) __attribute__((__noreturn__));
  1349.  
  1350.   void
  1351.   __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__))
  1352.     __attribute__((__format__(__gnu_printf__, 1, 2)));
  1353.  
  1354.   void
  1355.   __throw_runtime_error(const char*) __attribute__((__noreturn__));
  1356.  
  1357.   void
  1358.   __throw_range_error(const char*) __attribute__((__noreturn__));
  1359.  
  1360.   void
  1361.   __throw_overflow_error(const char*) __attribute__((__noreturn__));
  1362.  
  1363.   void
  1364.   __throw_underflow_error(const char*) __attribute__((__noreturn__));
  1365.  
  1366.  
  1367.   void
  1368.   __throw_ios_failure(const char*) __attribute__((__noreturn__));
  1369.  
  1370.   void
  1371.   __throw_system_error(int) __attribute__((__noreturn__));
  1372.  
  1373.   void
  1374.   __throw_future_error(int) __attribute__((__noreturn__));
  1375.  
  1376.  
  1377.   void
  1378.   __throw_bad_function_call() __attribute__((__noreturn__));
  1379.  
  1380.  
  1381. }
  1382. # 61 "/usr/include/c++/5/bits/stl_algobase.h" 2 3
  1383. # 1 "/usr/include/c++/5/bits/cpp_type_traits.h" 1 3
  1384. # 35 "/usr/include/c++/5/bits/cpp_type_traits.h" 3
  1385.        
  1386. # 36 "/usr/include/c++/5/bits/cpp_type_traits.h" 3
  1387. # 68 "/usr/include/c++/5/bits/cpp_type_traits.h" 3
  1388. namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
  1389. {
  1390.  
  1391.  
  1392.   template<typename _Iterator, typename _Container>
  1393.     class __normal_iterator;
  1394.  
  1395.  
  1396. }
  1397.  
  1398. namespace std __attribute__ ((__visibility__ ("default")))
  1399. {
  1400.  
  1401.  
  1402.   struct __true_type { };
  1403.   struct __false_type { };
  1404.  
  1405.   template<bool>
  1406.     struct __truth_type
  1407.     { typedef __false_type __type; };
  1408.  
  1409.   template<>
  1410.     struct __truth_type<true>
  1411.     { typedef __true_type __type; };
  1412.  
  1413.  
  1414.  
  1415.   template<class _Sp, class _Tp>
  1416.     struct __traitor
  1417.     {
  1418.       enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
  1419.       typedef typename __truth_type<__value>::__type __type;
  1420.     };
  1421.  
  1422.  
  1423.   template<typename, typename>
  1424.     struct __are_same
  1425.     {
  1426.       enum { __value = 0 };
  1427.       typedef __false_type __type;
  1428.     };
  1429.  
  1430.   template<typename _Tp>
  1431.     struct __are_same<_Tp, _Tp>
  1432.     {
  1433.       enum { __value = 1 };
  1434.       typedef __true_type __type;
  1435.     };
  1436.  
  1437.  
  1438.   template<typename _Tp>
  1439.     struct __is_void
  1440.     {
  1441.       enum { __value = 0 };
  1442.       typedef __false_type __type;
  1443.     };
  1444.  
  1445.   template<>
  1446.     struct __is_void<void>
  1447.     {
  1448.       enum { __value = 1 };
  1449.       typedef __true_type __type;
  1450.     };
  1451.  
  1452.  
  1453.  
  1454.  
  1455.   template<typename _Tp>
  1456.     struct __is_integer
  1457.     {
  1458.       enum { __value = 0 };
  1459.       typedef __false_type __type;
  1460.     };
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.   template<>
  1467.     struct __is_integer<bool>
  1468.     {
  1469.       enum { __value = 1 };
  1470.       typedef __true_type __type;
  1471.     };
  1472.  
  1473.   template<>
  1474.     struct __is_integer<char>
  1475.     {
  1476.       enum { __value = 1 };
  1477.       typedef __true_type __type;
  1478.     };
  1479.  
  1480.   template<>
  1481.     struct __is_integer<signed char>
  1482.     {
  1483.       enum { __value = 1 };
  1484.       typedef __true_type __type;
  1485.     };
  1486.  
  1487.   template<>
  1488.     struct __is_integer<unsigned char>
  1489.     {
  1490.       enum { __value = 1 };
  1491.       typedef __true_type __type;
  1492.     };
  1493.  
  1494.  
  1495.   template<>
  1496.     struct __is_integer<wchar_t>
  1497.     {
  1498.       enum { __value = 1 };
  1499.       typedef __true_type __type;
  1500.     };
  1501. # 199 "/usr/include/c++/5/bits/cpp_type_traits.h" 3
  1502.   template<>
  1503.     struct __is_integer<short>
  1504.     {
  1505.       enum { __value = 1 };
  1506.       typedef __true_type __type;
  1507.     };
  1508.  
  1509.   template<>
  1510.     struct __is_integer<unsigned short>
  1511.     {
  1512.       enum { __value = 1 };
  1513.       typedef __true_type __type;
  1514.     };
  1515.  
  1516.   template<>
  1517.     struct __is_integer<int>
  1518.     {
  1519.       enum { __value = 1 };
  1520.       typedef __true_type __type;
  1521.     };
  1522.  
  1523.   template<>
  1524.     struct __is_integer<unsigned int>
  1525.     {
  1526.       enum { __value = 1 };
  1527.       typedef __true_type __type;
  1528.     };
  1529.  
  1530.   template<>
  1531.     struct __is_integer<long>
  1532.     {
  1533.       enum { __value = 1 };
  1534.       typedef __true_type __type;
  1535.     };
  1536.  
  1537.   template<>
  1538.     struct __is_integer<unsigned long>
  1539.     {
  1540.       enum { __value = 1 };
  1541.       typedef __true_type __type;
  1542.     };
  1543.  
  1544.   template<>
  1545.     struct __is_integer<long long>
  1546.     {
  1547.       enum { __value = 1 };
  1548.       typedef __true_type __type;
  1549.     };
  1550.  
  1551.   template<>
  1552.     struct __is_integer<unsigned long long>
  1553.     {
  1554.       enum { __value = 1 };
  1555.       typedef __true_type __type;
  1556.     };
  1557. # 270 "/usr/include/c++/5/bits/cpp_type_traits.h" 3
  1558. template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer<unsigned __int128> { enum { __value = 1 }; typedef __true_type __type; };
  1559. # 287 "/usr/include/c++/5/bits/cpp_type_traits.h" 3
  1560.   template<typename _Tp>
  1561.     struct __is_floating
  1562.     {
  1563.       enum { __value = 0 };
  1564.       typedef __false_type __type;
  1565.     };
  1566.  
  1567.  
  1568.   template<>
  1569.     struct __is_floating<float>
  1570.     {
  1571.       enum { __value = 1 };
  1572.       typedef __true_type __type;
  1573.     };
  1574.  
  1575.   template<>
  1576.     struct __is_floating<double>
  1577.     {
  1578.       enum { __value = 1 };
  1579.       typedef __true_type __type;
  1580.     };
  1581.  
  1582.   template<>
  1583.     struct __is_floating<long double>
  1584.     {
  1585.       enum { __value = 1 };
  1586.       typedef __true_type __type;
  1587.     };
  1588.  
  1589.  
  1590.  
  1591.  
  1592.   template<typename _Tp>
  1593.     struct __is_pointer
  1594.     {
  1595.       enum { __value = 0 };
  1596.       typedef __false_type __type;
  1597.     };
  1598.  
  1599.   template<typename _Tp>
  1600.     struct __is_pointer<_Tp*>
  1601.     {
  1602.       enum { __value = 1 };
  1603.       typedef __true_type __type;
  1604.     };
  1605.  
  1606.  
  1607.  
  1608.  
  1609.   template<typename _Tp>
  1610.     struct __is_normal_iterator
  1611.     {
  1612.       enum { __value = 0 };
  1613.       typedef __false_type __type;
  1614.     };
  1615.  
  1616.   template<typename _Iterator, typename _Container>
  1617.     struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
  1618.              _Container> >
  1619.     {
  1620.       enum { __value = 1 };
  1621.       typedef __true_type __type;
  1622.     };
  1623.  
  1624.  
  1625.  
  1626.  
  1627.   template<typename _Tp>
  1628.     struct __is_arithmetic
  1629.     : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
  1630.     { };
  1631.  
  1632.  
  1633.  
  1634.  
  1635.   template<typename _Tp>
  1636.     struct __is_scalar
  1637.     : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
  1638.     { };
  1639.  
  1640.  
  1641.  
  1642.  
  1643.   template<typename _Tp>
  1644.     struct __is_char
  1645.     {
  1646.       enum { __value = 0 };
  1647.       typedef __false_type __type;
  1648.     };
  1649.  
  1650.   template<>
  1651.     struct __is_char<char>
  1652.     {
  1653.       enum { __value = 1 };
  1654.       typedef __true_type __type;
  1655.     };
  1656.  
  1657.  
  1658.   template<>
  1659.     struct __is_char<wchar_t>
  1660.     {
  1661.       enum { __value = 1 };
  1662.       typedef __true_type __type;
  1663.     };
  1664.  
  1665.  
  1666.   template<typename _Tp>
  1667.     struct __is_byte
  1668.     {
  1669.       enum { __value = 0 };
  1670.       typedef __false_type __type;
  1671.     };
  1672.  
  1673.   template<>
  1674.     struct __is_byte<char>
  1675.     {
  1676.       enum { __value = 1 };
  1677.       typedef __true_type __type;
  1678.     };
  1679.  
  1680.   template<>
  1681.     struct __is_byte<signed char>
  1682.     {
  1683.       enum { __value = 1 };
  1684.       typedef __true_type __type;
  1685.     };
  1686.  
  1687.   template<>
  1688.     struct __is_byte<unsigned char>
  1689.     {
  1690.       enum { __value = 1 };
  1691.       typedef __true_type __type;
  1692.     };
  1693.  
  1694.  
  1695.  
  1696.  
  1697.   template<typename _Tp>
  1698.     struct __is_move_iterator
  1699.     {
  1700.       enum { __value = 0 };
  1701.       typedef __false_type __type;
  1702.     };
  1703. # 443 "/usr/include/c++/5/bits/cpp_type_traits.h" 3
  1704.  
  1705. }
  1706. # 62 "/usr/include/c++/5/bits/stl_algobase.h" 2 3
  1707. # 1 "/usr/include/c++/5/ext/type_traits.h" 1 3
  1708. # 32 "/usr/include/c++/5/ext/type_traits.h" 3
  1709.        
  1710. # 33 "/usr/include/c++/5/ext/type_traits.h" 3
  1711.  
  1712.  
  1713.  
  1714.  
  1715. namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
  1716. {
  1717.  
  1718.  
  1719.  
  1720.   template<bool, typename>
  1721.     struct __enable_if
  1722.     { };
  1723.  
  1724.   template<typename _Tp>
  1725.     struct __enable_if<true, _Tp>
  1726.     { typedef _Tp __type; };
  1727.  
  1728.  
  1729.  
  1730.   template<bool _Cond, typename _Iftrue, typename _Iffalse>
  1731.     struct __conditional_type
  1732.     { typedef _Iftrue __type; };
  1733.  
  1734.   template<typename _Iftrue, typename _Iffalse>
  1735.     struct __conditional_type<false, _Iftrue, _Iffalse>
  1736.     { typedef _Iffalse __type; };
  1737.  
  1738.  
  1739.  
  1740.   template<typename _Tp>
  1741.     struct __add_unsigned
  1742.     {
  1743.     private:
  1744.       typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
  1745.  
  1746.     public:
  1747.       typedef typename __if_type::__type __type;
  1748.     };
  1749.  
  1750.   template<>
  1751.     struct __add_unsigned<char>
  1752.     { typedef unsigned char __type; };
  1753.  
  1754.   template<>
  1755.     struct __add_unsigned<signed char>
  1756.     { typedef unsigned char __type; };
  1757.  
  1758.   template<>
  1759.     struct __add_unsigned<short>
  1760.     { typedef unsigned short __type; };
  1761.  
  1762.   template<>
  1763.     struct __add_unsigned<int>
  1764.     { typedef unsigned int __type; };
  1765.  
  1766.   template<>
  1767.     struct __add_unsigned<long>
  1768.     { typedef unsigned long __type; };
  1769.  
  1770.   template<>
  1771.     struct __add_unsigned<long long>
  1772.     { typedef unsigned long long __type; };
  1773.  
  1774.  
  1775.   template<>
  1776.     struct __add_unsigned<bool>;
  1777.  
  1778.   template<>
  1779.     struct __add_unsigned<wchar_t>;
  1780.  
  1781.  
  1782.  
  1783.   template<typename _Tp>
  1784.     struct __remove_unsigned
  1785.     {
  1786.     private:
  1787.       typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
  1788.  
  1789.     public:
  1790.       typedef typename __if_type::__type __type;
  1791.     };
  1792.  
  1793.   template<>
  1794.     struct __remove_unsigned<char>
  1795.     { typedef signed char __type; };
  1796.  
  1797.   template<>
  1798.     struct __remove_unsigned<unsigned char>
  1799.     { typedef signed char __type; };
  1800.  
  1801.   template<>
  1802.     struct __remove_unsigned<unsigned short>
  1803.     { typedef short __type; };
  1804.  
  1805.   template<>
  1806.     struct __remove_unsigned<unsigned int>
  1807.     { typedef int __type; };
  1808.  
  1809.   template<>
  1810.     struct __remove_unsigned<unsigned long>
  1811.     { typedef long __type; };
  1812.  
  1813.   template<>
  1814.     struct __remove_unsigned<unsigned long long>
  1815.     { typedef long long __type; };
  1816.  
  1817.  
  1818.   template<>
  1819.     struct __remove_unsigned<bool>;
  1820.  
  1821.   template<>
  1822.     struct __remove_unsigned<wchar_t>;
  1823.  
  1824.  
  1825.  
  1826.   template<typename _Type>
  1827.     inline bool
  1828.     __is_null_pointer(_Type* __ptr)
  1829.     { return __ptr == 0; }
  1830.  
  1831.   template<typename _Type>
  1832.     inline bool
  1833.     __is_null_pointer(_Type)
  1834.     { return false; }
  1835. # 165 "/usr/include/c++/5/ext/type_traits.h" 3
  1836.   template<typename _Tp, bool = std::__is_integer<_Tp>::__value>
  1837.     struct __promote
  1838.     { typedef double __type; };
  1839.  
  1840.  
  1841.  
  1842.  
  1843.   template<typename _Tp>
  1844.     struct __promote<_Tp, false>
  1845.     { };
  1846.  
  1847.   template<>
  1848.     struct __promote<long double>
  1849.     { typedef long double __type; };
  1850.  
  1851.   template<>
  1852.     struct __promote<double>
  1853.     { typedef double __type; };
  1854.  
  1855.   template<>
  1856.     struct __promote<float>
  1857.     { typedef float __type; };
  1858.  
  1859.   template<typename _Tp, typename _Up,
  1860.            typename _Tp2 = typename __promote<_Tp>::__type,
  1861.            typename _Up2 = typename __promote<_Up>::__type>
  1862.     struct __promote_2
  1863.     {
  1864.       typedef __typeof__(_Tp2() + _Up2()) __type;
  1865.     };
  1866.  
  1867.   template<typename _Tp, typename _Up, typename _Vp,
  1868.            typename _Tp2 = typename __promote<_Tp>::__type,
  1869.            typename _Up2 = typename __promote<_Up>::__type,
  1870.            typename _Vp2 = typename __promote<_Vp>::__type>
  1871.     struct __promote_3
  1872.     {
  1873.       typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type;
  1874.     };
  1875.  
  1876.   template<typename _Tp, typename _Up, typename _Vp, typename _Wp,
  1877.            typename _Tp2 = typename __promote<_Tp>::__type,
  1878.            typename _Up2 = typename __promote<_Up>::__type,
  1879.            typename _Vp2 = typename __promote<_Vp>::__type,
  1880.            typename _Wp2 = typename __promote<_Wp>::__type>
  1881.     struct __promote_4
  1882.     {
  1883.       typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type;
  1884.     };
  1885.  
  1886.  
  1887. }
  1888. # 63 "/usr/include/c++/5/bits/stl_algobase.h" 2 3
  1889. # 1 "/usr/include/c++/5/ext/numeric_traits.h" 1 3
  1890. # 32 "/usr/include/c++/5/ext/numeric_traits.h" 3
  1891.        
  1892. # 33 "/usr/include/c++/5/ext/numeric_traits.h" 3
  1893.  
  1894.  
  1895.  
  1896.  
  1897. namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
  1898. {
  1899.  
  1900. # 54 "/usr/include/c++/5/ext/numeric_traits.h" 3
  1901.   template<typename _Value>
  1902.     struct __numeric_traits_integer
  1903.     {
  1904.  
  1905.       static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0);
  1906.       static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0);
  1907.  
  1908.  
  1909.  
  1910.       static const bool __is_signed = ((_Value)(-1) < 0);
  1911.       static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0));
  1912.     };
  1913.  
  1914.   template<typename _Value>
  1915.     const _Value __numeric_traits_integer<_Value>::__min;
  1916.  
  1917.   template<typename _Value>
  1918.     const _Value __numeric_traits_integer<_Value>::__max;
  1919.  
  1920.   template<typename _Value>
  1921.     const bool __numeric_traits_integer<_Value>::__is_signed;
  1922.  
  1923.   template<typename _Value>
  1924.     const int __numeric_traits_integer<_Value>::__digits;
  1925. # 99 "/usr/include/c++/5/ext/numeric_traits.h" 3
  1926.   template<typename _Value>
  1927.     struct __numeric_traits_floating
  1928.     {
  1929.  
  1930.       static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136);
  1931.  
  1932.  
  1933.       static const bool __is_signed = true;
  1934.       static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18);
  1935.       static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932);
  1936.     };
  1937.  
  1938.   template<typename _Value>
  1939.     const int __numeric_traits_floating<_Value>::__max_digits10;
  1940.  
  1941.   template<typename _Value>
  1942.     const bool __numeric_traits_floating<_Value>::__is_signed;
  1943.  
  1944.   template<typename _Value>
  1945.     const int __numeric_traits_floating<_Value>::__digits10;
  1946.  
  1947.   template<typename _Value>
  1948.     const int __numeric_traits_floating<_Value>::__max_exponent10;
  1949.  
  1950.   template<typename _Value>
  1951.     struct __numeric_traits
  1952.     : public __conditional_type<std::__is_integer<_Value>::__value,
  1953.     __numeric_traits_integer<_Value>,
  1954.     __numeric_traits_floating<_Value> >::__type
  1955.     { };
  1956.  
  1957.  
  1958. }
  1959. # 64 "/usr/include/c++/5/bits/stl_algobase.h" 2 3
  1960. # 1 "/usr/include/c++/5/bits/stl_pair.h" 1 3
  1961. # 59 "/usr/include/c++/5/bits/stl_pair.h" 3
  1962. # 1 "/usr/include/c++/5/bits/move.h" 1 3
  1963. # 34 "/usr/include/c++/5/bits/move.h" 3
  1964. # 1 "/usr/include/c++/5/bits/concept_check.h" 1 3
  1965. # 33 "/usr/include/c++/5/bits/concept_check.h" 3
  1966.        
  1967. # 34 "/usr/include/c++/5/bits/concept_check.h" 3
  1968. # 35 "/usr/include/c++/5/bits/move.h" 2 3
  1969.  
  1970. namespace std __attribute__ ((__visibility__ ("default")))
  1971. {
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.   template<typename _Tp>
  1980.     inline _Tp*
  1981.     __addressof(_Tp& __r)
  1982.     {
  1983.       return reinterpret_cast<_Tp*>
  1984.  (&const_cast<char&>(reinterpret_cast<const volatile char&>(__r)));
  1985.     }
  1986.  
  1987.  
  1988. }
  1989. # 159 "/usr/include/c++/5/bits/move.h" 3
  1990. namespace std __attribute__ ((__visibility__ ("default")))
  1991. {
  1992.  
  1993. # 174 "/usr/include/c++/5/bits/move.h" 3
  1994.   template<typename _Tp>
  1995.     inline void
  1996.     swap(_Tp& __a, _Tp& __b)
  1997.  
  1998.  
  1999.  
  2000.  
  2001.     {
  2002.  
  2003.      
  2004.  
  2005.       _Tp __tmp = (__a);
  2006.       __a = (__b);
  2007.       __b = (__tmp);
  2008.     }
  2009.  
  2010.  
  2011.  
  2012.  
  2013.   template<typename _Tp, size_t _Nm>
  2014.     inline void
  2015.     swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
  2016.  
  2017.  
  2018.  
  2019.     {
  2020.       for (size_t __n = 0; __n < _Nm; ++__n)
  2021.  swap(__a[__n], __b[__n]);
  2022.     }
  2023.  
  2024.  
  2025.  
  2026. }
  2027. # 60 "/usr/include/c++/5/bits/stl_pair.h" 2 3
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033. namespace std __attribute__ ((__visibility__ ("default")))
  2034. {
  2035.  
  2036. # 95 "/usr/include/c++/5/bits/stl_pair.h" 3
  2037.   template<class _T1, class _T2>
  2038.     struct pair
  2039.     {
  2040.       typedef _T1 first_type;
  2041.       typedef _T2 second_type;
  2042.  
  2043.       _T1 first;
  2044.       _T2 second;
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.       pair()
  2051.       : first(), second() { }
  2052.  
  2053.  
  2054.       pair(const _T1& __a, const _T2& __b)
  2055.       : first(__a), second(__b) { }
  2056.  
  2057.  
  2058.  
  2059.       template<class _U1, class _U2>
  2060.  pair(const pair<_U1, _U2>& __p)
  2061.  : first(__p.first), second(__p.second) { }
  2062. # 209 "/usr/include/c++/5/bits/stl_pair.h" 3
  2063.     };
  2064.  
  2065.  
  2066.   template<class _T1, class _T2>
  2067.     inline bool
  2068.     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  2069.     { return __x.first == __y.first && __x.second == __y.second; }
  2070.  
  2071.  
  2072.   template<class _T1, class _T2>
  2073.     inline bool
  2074.     operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  2075.     { return __x.first < __y.first
  2076.       || (!(__y.first < __x.first) && __x.second < __y.second); }
  2077.  
  2078.  
  2079.   template<class _T1, class _T2>
  2080.     inline bool
  2081.     operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  2082.     { return !(__x == __y); }
  2083.  
  2084.  
  2085.   template<class _T1, class _T2>
  2086.     inline bool
  2087.     operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  2088.     { return __y < __x; }
  2089.  
  2090.  
  2091.   template<class _T1, class _T2>
  2092.     inline bool
  2093.     operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  2094.     { return !(__y < __x); }
  2095.  
  2096.  
  2097.   template<class _T1, class _T2>
  2098.     inline bool
  2099.     operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  2100.     { return !(__x < __y); }
  2101. # 284 "/usr/include/c++/5/bits/stl_pair.h" 3
  2102.   template<class _T1, class _T2>
  2103.     inline pair<_T1, _T2>
  2104.     make_pair(_T1 __x, _T2 __y)
  2105.     { return pair<_T1, _T2>(__x, __y); }
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111. }
  2112. # 65 "/usr/include/c++/5/bits/stl_algobase.h" 2 3
  2113. # 1 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 1 3
  2114. # 62 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 3
  2115.        
  2116. # 63 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 3
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.  
  2124. namespace std __attribute__ ((__visibility__ ("default")))
  2125. {
  2126.  
  2127. # 89 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 3
  2128.   struct input_iterator_tag { };
  2129.  
  2130.  
  2131.   struct output_iterator_tag { };
  2132.  
  2133.  
  2134.   struct forward_iterator_tag : public input_iterator_tag { };
  2135.  
  2136.  
  2137.  
  2138.   struct bidirectional_iterator_tag : public forward_iterator_tag { };
  2139.  
  2140.  
  2141.  
  2142.   struct random_access_iterator_tag : public bidirectional_iterator_tag { };
  2143. # 116 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 3
  2144.   template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
  2145.            typename _Pointer = _Tp*, typename _Reference = _Tp&>
  2146.     struct iterator
  2147.     {
  2148.  
  2149.       typedef _Category iterator_category;
  2150.  
  2151.       typedef _Tp value_type;
  2152.  
  2153.       typedef _Distance difference_type;
  2154.  
  2155.       typedef _Pointer pointer;
  2156.  
  2157.       typedef _Reference reference;
  2158.     };
  2159. # 165 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 3
  2160.   template<typename _Iterator>
  2161.     struct iterator_traits
  2162.     {
  2163.       typedef typename _Iterator::iterator_category iterator_category;
  2164.       typedef typename _Iterator::value_type value_type;
  2165.       typedef typename _Iterator::difference_type difference_type;
  2166.       typedef typename _Iterator::pointer pointer;
  2167.       typedef typename _Iterator::reference reference;
  2168.     };
  2169.  
  2170.  
  2171.  
  2172.   template<typename _Tp>
  2173.     struct iterator_traits<_Tp*>
  2174.     {
  2175.       typedef random_access_iterator_tag iterator_category;
  2176.       typedef _Tp value_type;
  2177.       typedef ptrdiff_t difference_type;
  2178.       typedef _Tp* pointer;
  2179.       typedef _Tp& reference;
  2180.     };
  2181.  
  2182.  
  2183.   template<typename _Tp>
  2184.     struct iterator_traits<const _Tp*>
  2185.     {
  2186.       typedef random_access_iterator_tag iterator_category;
  2187.       typedef _Tp value_type;
  2188.       typedef ptrdiff_t difference_type;
  2189.       typedef const _Tp* pointer;
  2190.       typedef const _Tp& reference;
  2191.     };
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.   template<typename _Iter>
  2198.     inline typename iterator_traits<_Iter>::iterator_category
  2199.     __iterator_category(const _Iter&)
  2200.     { return typename iterator_traits<_Iter>::iterator_category(); }
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.   template<typename _Iterator, bool _HasBase>
  2207.     struct _Iter_base
  2208.     {
  2209.       typedef _Iterator iterator_type;
  2210.       static iterator_type _S_base(_Iterator __it)
  2211.       { return __it; }
  2212.     };
  2213.  
  2214.   template<typename _Iterator>
  2215.     struct _Iter_base<_Iterator, true>
  2216.     {
  2217.       typedef typename _Iterator::iterator_type iterator_type;
  2218.       static iterator_type _S_base(_Iterator __it)
  2219.       { return __it.base(); }
  2220.     };
  2221. # 235 "/usr/include/c++/5/bits/stl_iterator_base_types.h" 3
  2222.  
  2223. }
  2224. # 66 "/usr/include/c++/5/bits/stl_algobase.h" 2 3
  2225. # 1 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 1 3
  2226. # 62 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 3
  2227.        
  2228. # 63 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 3
  2229.  
  2230.  
  2231. # 1 "/usr/include/c++/5/debug/debug.h" 1 3
  2232. # 46 "/usr/include/c++/5/debug/debug.h" 3
  2233. namespace std
  2234. {
  2235.   namespace __debug { }
  2236. }
  2237.  
  2238.  
  2239.  
  2240.  
  2241. namespace __gnu_debug
  2242. {
  2243.   using namespace std::__debug;
  2244. }
  2245. # 66 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 2 3
  2246.  
  2247. namespace std __attribute__ ((__visibility__ ("default")))
  2248. {
  2249.  
  2250.  
  2251.   template<typename _InputIterator>
  2252.     inline typename iterator_traits<_InputIterator>::difference_type
  2253.     __distance(_InputIterator __first, _InputIterator __last,
  2254.                input_iterator_tag)
  2255.     {
  2256.  
  2257.      
  2258.  
  2259.       typename iterator_traits<_InputIterator>::difference_type __n = 0;
  2260.       while (__first != __last)
  2261.  {
  2262.    ++__first;
  2263.    ++__n;
  2264.  }
  2265.       return __n;
  2266.     }
  2267.  
  2268.   template<typename _RandomAccessIterator>
  2269.     inline typename iterator_traits<_RandomAccessIterator>::difference_type
  2270.     __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
  2271.                random_access_iterator_tag)
  2272.     {
  2273.  
  2274.      
  2275.  
  2276.       return __last - __first;
  2277.     }
  2278. # 112 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 3
  2279.   template<typename _InputIterator>
  2280.     inline typename iterator_traits<_InputIterator>::difference_type
  2281.     distance(_InputIterator __first, _InputIterator __last)
  2282.     {
  2283.  
  2284.       return std::__distance(__first, __last,
  2285.         std::__iterator_category(__first));
  2286.     }
  2287.  
  2288.   template<typename _InputIterator, typename _Distance>
  2289.     inline void
  2290.     __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
  2291.     {
  2292.  
  2293.      
  2294.       ;
  2295.       while (__n--)
  2296.  ++__i;
  2297.     }
  2298.  
  2299.   template<typename _BidirectionalIterator, typename _Distance>
  2300.     inline void
  2301.     __advance(_BidirectionalIterator& __i, _Distance __n,
  2302.        bidirectional_iterator_tag)
  2303.     {
  2304.  
  2305.      
  2306.  
  2307.       if (__n > 0)
  2308.         while (__n--)
  2309.    ++__i;
  2310.       else
  2311.         while (__n++)
  2312.    --__i;
  2313.     }
  2314.  
  2315.   template<typename _RandomAccessIterator, typename _Distance>
  2316.     inline void
  2317.     __advance(_RandomAccessIterator& __i, _Distance __n,
  2318.               random_access_iterator_tag)
  2319.     {
  2320.  
  2321.      
  2322.  
  2323.       __i += __n;
  2324.     }
  2325. # 171 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 3
  2326.   template<typename _InputIterator, typename _Distance>
  2327.     inline void
  2328.     advance(_InputIterator& __i, _Distance __n)
  2329.     {
  2330.  
  2331.       typename iterator_traits<_InputIterator>::difference_type __d = __n;
  2332.       std::__advance(__i, __d, std::__iterator_category(__i));
  2333.     }
  2334. # 202 "/usr/include/c++/5/bits/stl_iterator_base_funcs.h" 3
  2335.  
  2336. }
  2337. # 67 "/usr/include/c++/5/bits/stl_algobase.h" 2 3
  2338. # 1 "/usr/include/c++/5/bits/stl_iterator.h" 1 3
  2339. # 66 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2340. # 1 "/usr/include/c++/5/bits/ptr_traits.h" 1 3
  2341. # 67 "/usr/include/c++/5/bits/stl_iterator.h" 2 3
  2342.  
  2343. namespace std __attribute__ ((__visibility__ ("default")))
  2344. {
  2345.  
  2346. # 96 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2347.   template<typename _Iterator>
  2348.     class reverse_iterator
  2349.     : public iterator<typename iterator_traits<_Iterator>::iterator_category,
  2350.         typename iterator_traits<_Iterator>::value_type,
  2351.         typename iterator_traits<_Iterator>::difference_type,
  2352.         typename iterator_traits<_Iterator>::pointer,
  2353.                       typename iterator_traits<_Iterator>::reference>
  2354.     {
  2355.     protected:
  2356.       _Iterator current;
  2357.  
  2358.       typedef iterator_traits<_Iterator> __traits_type;
  2359.  
  2360.     public:
  2361.       typedef _Iterator iterator_type;
  2362.       typedef typename __traits_type::difference_type difference_type;
  2363.       typedef typename __traits_type::pointer pointer;
  2364.       typedef typename __traits_type::reference reference;
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.       reverse_iterator() : current() { }
  2373.  
  2374.  
  2375.  
  2376.  
  2377.       explicit
  2378.       reverse_iterator(iterator_type __x) : current(__x) { }
  2379.  
  2380.  
  2381.  
  2382.  
  2383.       reverse_iterator(const reverse_iterator& __x)
  2384.       : current(__x.current) { }
  2385.  
  2386.  
  2387.  
  2388.  
  2389.  
  2390.       template<typename _Iter>
  2391.         reverse_iterator(const reverse_iterator<_Iter>& __x)
  2392.  : current(__x.base()) { }
  2393.  
  2394.  
  2395.  
  2396.  
  2397.       iterator_type
  2398.       base() const
  2399.       { return current; }
  2400. # 160 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2401.       reference
  2402.       operator*() const
  2403.       {
  2404.  _Iterator __tmp = current;
  2405.  return *--__tmp;
  2406.       }
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.       pointer
  2414.       operator->() const
  2415.       { return &(operator*()); }
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.       reverse_iterator&
  2423.       operator++()
  2424.       {
  2425.  --current;
  2426.  return *this;
  2427.       }
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.       reverse_iterator
  2435.       operator++(int)
  2436.       {
  2437.  reverse_iterator __tmp = *this;
  2438.  --current;
  2439.  return __tmp;
  2440.       }
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.       reverse_iterator&
  2448.       operator--()
  2449.       {
  2450.  ++current;
  2451.  return *this;
  2452.       }
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.       reverse_iterator
  2460.       operator--(int)
  2461.       {
  2462.  reverse_iterator __tmp = *this;
  2463.  ++current;
  2464.  return __tmp;
  2465.       }
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.       reverse_iterator
  2473.       operator+(difference_type __n) const
  2474.       { return reverse_iterator(current - __n); }
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.       reverse_iterator&
  2483.       operator+=(difference_type __n)
  2484.       {
  2485.  current -= __n;
  2486.  return *this;
  2487.       }
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.       reverse_iterator
  2495.       operator-(difference_type __n) const
  2496.       { return reverse_iterator(current + __n); }
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.       reverse_iterator&
  2505.       operator-=(difference_type __n)
  2506.       {
  2507.  current += __n;
  2508.  return *this;
  2509.       }
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.       reference
  2517.       operator[](difference_type __n) const
  2518.       { return *(*this + __n); }
  2519.     };
  2520. # 290 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2521.   template<typename _Iterator>
  2522.     inline bool
  2523.     operator==(const reverse_iterator<_Iterator>& __x,
  2524.         const reverse_iterator<_Iterator>& __y)
  2525.     { return __x.base() == __y.base(); }
  2526.  
  2527.   template<typename _Iterator>
  2528.     inline bool
  2529.     operator<(const reverse_iterator<_Iterator>& __x,
  2530.        const reverse_iterator<_Iterator>& __y)
  2531.     { return __y.base() < __x.base(); }
  2532.  
  2533.   template<typename _Iterator>
  2534.     inline bool
  2535.     operator!=(const reverse_iterator<_Iterator>& __x,
  2536.         const reverse_iterator<_Iterator>& __y)
  2537.     { return !(__x == __y); }
  2538.  
  2539.   template<typename _Iterator>
  2540.     inline bool
  2541.     operator>(const reverse_iterator<_Iterator>& __x,
  2542.        const reverse_iterator<_Iterator>& __y)
  2543.     { return __y < __x; }
  2544.  
  2545.   template<typename _Iterator>
  2546.     inline bool
  2547.     operator<=(const reverse_iterator<_Iterator>& __x,
  2548.         const reverse_iterator<_Iterator>& __y)
  2549.     { return !(__y < __x); }
  2550.  
  2551.   template<typename _Iterator>
  2552.     inline bool
  2553.     operator>=(const reverse_iterator<_Iterator>& __x,
  2554.         const reverse_iterator<_Iterator>& __y)
  2555.     { return !(__x < __y); }
  2556.  
  2557.   template<typename _Iterator>
  2558.     inline typename reverse_iterator<_Iterator>::difference_type
  2559.     operator-(const reverse_iterator<_Iterator>& __x,
  2560.        const reverse_iterator<_Iterator>& __y)
  2561.     { return __y.base() - __x.base(); }
  2562.  
  2563.   template<typename _Iterator>
  2564.     inline reverse_iterator<_Iterator>
  2565.     operator+(typename reverse_iterator<_Iterator>::difference_type __n,
  2566.        const reverse_iterator<_Iterator>& __x)
  2567.     { return reverse_iterator<_Iterator>(__x.base() - __n); }
  2568.  
  2569.  
  2570.  
  2571.   template<typename _IteratorL, typename _IteratorR>
  2572.     inline bool
  2573.     operator==(const reverse_iterator<_IteratorL>& __x,
  2574.         const reverse_iterator<_IteratorR>& __y)
  2575.     { return __x.base() == __y.base(); }
  2576.  
  2577.   template<typename _IteratorL, typename _IteratorR>
  2578.     inline bool
  2579.     operator<(const reverse_iterator<_IteratorL>& __x,
  2580.        const reverse_iterator<_IteratorR>& __y)
  2581.     { return __y.base() < __x.base(); }
  2582.  
  2583.   template<typename _IteratorL, typename _IteratorR>
  2584.     inline bool
  2585.     operator!=(const reverse_iterator<_IteratorL>& __x,
  2586.         const reverse_iterator<_IteratorR>& __y)
  2587.     { return !(__x == __y); }
  2588.  
  2589.   template<typename _IteratorL, typename _IteratorR>
  2590.     inline bool
  2591.     operator>(const reverse_iterator<_IteratorL>& __x,
  2592.        const reverse_iterator<_IteratorR>& __y)
  2593.     { return __y < __x; }
  2594.  
  2595.   template<typename _IteratorL, typename _IteratorR>
  2596.     inline bool
  2597.     operator<=(const reverse_iterator<_IteratorL>& __x,
  2598.         const reverse_iterator<_IteratorR>& __y)
  2599.     { return !(__y < __x); }
  2600.  
  2601.   template<typename _IteratorL, typename _IteratorR>
  2602.     inline bool
  2603.     operator>=(const reverse_iterator<_IteratorL>& __x,
  2604.         const reverse_iterator<_IteratorR>& __y)
  2605.     { return !(__x < __y); }
  2606.  
  2607.   template<typename _IteratorL, typename _IteratorR>
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.     inline typename reverse_iterator<_IteratorL>::difference_type
  2616.     operator-(const reverse_iterator<_IteratorL>& __x,
  2617.        const reverse_iterator<_IteratorR>& __y)
  2618.  
  2619.     { return __y.base() - __x.base(); }
  2620. # 414 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2621.   template<typename _Container>
  2622.     class back_insert_iterator
  2623.     : public iterator<output_iterator_tag, void, void, void, void>
  2624.     {
  2625.     protected:
  2626.       _Container* container;
  2627.  
  2628.     public:
  2629.  
  2630.       typedef _Container container_type;
  2631.  
  2632.  
  2633.       explicit
  2634.       back_insert_iterator(_Container& __x) : container(&__x) { }
  2635. # 441 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2636.       back_insert_iterator&
  2637.       operator=(typename _Container::const_reference __value)
  2638.       {
  2639.  container->push_back(__value);
  2640.  return *this;
  2641.       }
  2642. # 464 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2643.       back_insert_iterator&
  2644.       operator*()
  2645.       { return *this; }
  2646.  
  2647.  
  2648.       back_insert_iterator&
  2649.       operator++()
  2650.       { return *this; }
  2651.  
  2652.  
  2653.       back_insert_iterator
  2654.       operator++(int)
  2655.       { return *this; }
  2656.     };
  2657. # 490 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2658.   template<typename _Container>
  2659.     inline back_insert_iterator<_Container>
  2660.     back_inserter(_Container& __x)
  2661.     { return back_insert_iterator<_Container>(__x); }
  2662. # 505 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2663.   template<typename _Container>
  2664.     class front_insert_iterator
  2665.     : public iterator<output_iterator_tag, void, void, void, void>
  2666.     {
  2667.     protected:
  2668.       _Container* container;
  2669.  
  2670.     public:
  2671.  
  2672.       typedef _Container container_type;
  2673.  
  2674.  
  2675.       explicit front_insert_iterator(_Container& __x) : container(&__x) { }
  2676. # 531 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2677.       front_insert_iterator&
  2678.       operator=(typename _Container::const_reference __value)
  2679.       {
  2680.  container->push_front(__value);
  2681.  return *this;
  2682.       }
  2683. # 554 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2684.       front_insert_iterator&
  2685.       operator*()
  2686.       { return *this; }
  2687.  
  2688.  
  2689.       front_insert_iterator&
  2690.       operator++()
  2691.       { return *this; }
  2692.  
  2693.  
  2694.       front_insert_iterator
  2695.       operator++(int)
  2696.       { return *this; }
  2697.     };
  2698. # 580 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2699.   template<typename _Container>
  2700.     inline front_insert_iterator<_Container>
  2701.     front_inserter(_Container& __x)
  2702.     { return front_insert_iterator<_Container>(__x); }
  2703. # 599 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2704.   template<typename _Container>
  2705.     class insert_iterator
  2706.     : public iterator<output_iterator_tag, void, void, void, void>
  2707.     {
  2708.     protected:
  2709.       _Container* container;
  2710.       typename _Container::iterator iter;
  2711.  
  2712.     public:
  2713.  
  2714.       typedef _Container container_type;
  2715.  
  2716.  
  2717.  
  2718.  
  2719.  
  2720.       insert_iterator(_Container& __x, typename _Container::iterator __i)
  2721.       : container(&__x), iter(__i) {}
  2722. # 642 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2723.       insert_iterator&
  2724.       operator=(typename _Container::const_reference __value)
  2725.       {
  2726.  iter = container->insert(iter, __value);
  2727.  ++iter;
  2728.  return *this;
  2729.       }
  2730. # 668 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2731.       insert_iterator&
  2732.       operator*()
  2733.       { return *this; }
  2734.  
  2735.  
  2736.       insert_iterator&
  2737.       operator++()
  2738.       { return *this; }
  2739.  
  2740.  
  2741.       insert_iterator&
  2742.       operator++(int)
  2743.       { return *this; }
  2744.     };
  2745. # 694 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2746.   template<typename _Container, typename _Iterator>
  2747.     inline insert_iterator<_Container>
  2748.     inserter(_Container& __x, _Iterator __i)
  2749.     {
  2750.       return insert_iterator<_Container>(__x,
  2751.       typename _Container::iterator(__i));
  2752.     }
  2753.  
  2754.  
  2755.  
  2756.  
  2757. }
  2758.  
  2759. namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
  2760. {
  2761.  
  2762. # 718 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2763.   using std::iterator_traits;
  2764.   using std::iterator;
  2765.   template<typename _Iterator, typename _Container>
  2766.     class __normal_iterator
  2767.     {
  2768.     protected:
  2769.       _Iterator _M_current;
  2770.  
  2771.       typedef iterator_traits<_Iterator> __traits_type;
  2772.  
  2773.     public:
  2774.       typedef _Iterator iterator_type;
  2775.       typedef typename __traits_type::iterator_category iterator_category;
  2776.       typedef typename __traits_type::value_type value_type;
  2777.       typedef typename __traits_type::difference_type difference_type;
  2778.       typedef typename __traits_type::reference reference;
  2779.       typedef typename __traits_type::pointer pointer;
  2780.  
  2781.       __normal_iterator()
  2782.       : _M_current(_Iterator()) { }
  2783.  
  2784.       explicit
  2785.       __normal_iterator(const _Iterator& __i)
  2786.       : _M_current(__i) { }
  2787.  
  2788.  
  2789.       template<typename _Iter>
  2790.         __normal_iterator(const __normal_iterator<_Iter,
  2791.      typename __enable_if<
  2792.               (std::__are_same<_Iter, typename _Container::pointer>::__value),
  2793.         _Container>::__type>& __i)
  2794.         : _M_current(__i.base()) { }
  2795.  
  2796.  
  2797.       reference
  2798.       operator*() const
  2799.       { return *_M_current; }
  2800.  
  2801.       pointer
  2802.       operator->() const
  2803.       { return _M_current; }
  2804.  
  2805.       __normal_iterator&
  2806.       operator++()
  2807.       {
  2808.  ++_M_current;
  2809.  return *this;
  2810.       }
  2811.  
  2812.       __normal_iterator
  2813.       operator++(int)
  2814.       { return __normal_iterator(_M_current++); }
  2815.  
  2816.  
  2817.       __normal_iterator&
  2818.       operator--()
  2819.       {
  2820.  --_M_current;
  2821.  return *this;
  2822.       }
  2823.  
  2824.       __normal_iterator
  2825.       operator--(int)
  2826.       { return __normal_iterator(_M_current--); }
  2827.  
  2828.  
  2829.       reference
  2830.       operator[](difference_type __n) const
  2831.       { return _M_current[__n]; }
  2832.  
  2833.       __normal_iterator&
  2834.       operator+=(difference_type __n)
  2835.       { _M_current += __n; return *this; }
  2836.  
  2837.       __normal_iterator
  2838.       operator+(difference_type __n) const
  2839.       { return __normal_iterator(_M_current + __n); }
  2840.  
  2841.       __normal_iterator&
  2842.       operator-=(difference_type __n)
  2843.       { _M_current -= __n; return *this; }
  2844.  
  2845.       __normal_iterator
  2846.       operator-(difference_type __n) const
  2847.       { return __normal_iterator(_M_current - __n); }
  2848.  
  2849.       const _Iterator&
  2850.       base() const
  2851.       { return _M_current; }
  2852.     };
  2853. # 818 "/usr/include/c++/5/bits/stl_iterator.h" 3
  2854.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2855.     inline bool
  2856.     operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2857.         const __normal_iterator<_IteratorR, _Container>& __rhs)
  2858.    
  2859.     { return __lhs.base() == __rhs.base(); }
  2860.  
  2861.   template<typename _Iterator, typename _Container>
  2862.     inline bool
  2863.     operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
  2864.         const __normal_iterator<_Iterator, _Container>& __rhs)
  2865.    
  2866.     { return __lhs.base() == __rhs.base(); }
  2867.  
  2868.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2869.     inline bool
  2870.     operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2871.         const __normal_iterator<_IteratorR, _Container>& __rhs)
  2872.    
  2873.     { return __lhs.base() != __rhs.base(); }
  2874.  
  2875.   template<typename _Iterator, typename _Container>
  2876.     inline bool
  2877.     operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
  2878.         const __normal_iterator<_Iterator, _Container>& __rhs)
  2879.    
  2880.     { return __lhs.base() != __rhs.base(); }
  2881.  
  2882.  
  2883.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2884.     inline bool
  2885.     operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2886.        const __normal_iterator<_IteratorR, _Container>& __rhs)
  2887.    
  2888.     { return __lhs.base() < __rhs.base(); }
  2889.  
  2890.   template<typename _Iterator, typename _Container>
  2891.     inline bool
  2892.     operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
  2893.        const __normal_iterator<_Iterator, _Container>& __rhs)
  2894.    
  2895.     { return __lhs.base() < __rhs.base(); }
  2896.  
  2897.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2898.     inline bool
  2899.     operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2900.        const __normal_iterator<_IteratorR, _Container>& __rhs)
  2901.    
  2902.     { return __lhs.base() > __rhs.base(); }
  2903.  
  2904.   template<typename _Iterator, typename _Container>
  2905.     inline bool
  2906.     operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
  2907.        const __normal_iterator<_Iterator, _Container>& __rhs)
  2908.    
  2909.     { return __lhs.base() > __rhs.base(); }
  2910.  
  2911.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2912.     inline bool
  2913.     operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2914.         const __normal_iterator<_IteratorR, _Container>& __rhs)
  2915.    
  2916.     { return __lhs.base() <= __rhs.base(); }
  2917.  
  2918.   template<typename _Iterator, typename _Container>
  2919.     inline bool
  2920.     operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
  2921.         const __normal_iterator<_Iterator, _Container>& __rhs)
  2922.    
  2923.     { return __lhs.base() <= __rhs.base(); }
  2924.  
  2925.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2926.     inline bool
  2927.     operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2928.         const __normal_iterator<_IteratorR, _Container>& __rhs)
  2929.    
  2930.     { return __lhs.base() >= __rhs.base(); }
  2931.  
  2932.   template<typename _Iterator, typename _Container>
  2933.     inline bool
  2934.     operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
  2935.         const __normal_iterator<_Iterator, _Container>& __rhs)
  2936.    
  2937.     { return __lhs.base() >= __rhs.base(); }
  2938.  
  2939.  
  2940.  
  2941.  
  2942.  
  2943.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.     inline typename __normal_iterator<_IteratorL, _Container>::difference_type
  2952.     operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2953.        const __normal_iterator<_IteratorR, _Container>& __rhs)
  2954.  
  2955.     { return __lhs.base() - __rhs.base(); }
  2956.  
  2957.   template<typename _Iterator, typename _Container>
  2958.     inline typename __normal_iterator<_Iterator, _Container>::difference_type
  2959.     operator-(const __normal_iterator<_Iterator, _Container>& __lhs,
  2960.        const __normal_iterator<_Iterator, _Container>& __rhs)
  2961.    
  2962.     { return __lhs.base() - __rhs.base(); }
  2963.  
  2964.   template<typename _Iterator, typename _Container>
  2965.     inline __normal_iterator<_Iterator, _Container>
  2966.     operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
  2967.        __n, const __normal_iterator<_Iterator, _Container>& __i)
  2968.    
  2969.     { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
  2970.  
  2971.  
  2972. }
  2973. # 68 "/usr/include/c++/5/bits/stl_algobase.h" 2 3
  2974.  
  2975.  
  2976.  
  2977. # 1 "/usr/include/c++/5/bits/predefined_ops.h" 1 3
  2978. # 33 "/usr/include/c++/5/bits/predefined_ops.h" 3
  2979. namespace __gnu_cxx
  2980. {
  2981. namespace __ops
  2982. {
  2983.   struct _Iter_less_iter
  2984.   {
  2985.     template<typename _Iterator1, typename _Iterator2>
  2986.      
  2987.       bool
  2988.       operator()(_Iterator1 __it1, _Iterator2 __it2) const
  2989.       { return *__it1 < *__it2; }
  2990.   };
  2991.  
  2992.   inline _Iter_less_iter
  2993.   __iter_less_iter()
  2994.   { return _Iter_less_iter(); }
  2995.  
  2996.   struct _Iter_less_val
  2997.   {
  2998.     template<typename _Iterator, typename _Value>
  2999.       bool
  3000.       operator()(_Iterator __it, _Value& __val) const
  3001.       { return *__it < __val; }
  3002.     };
  3003.  
  3004.   inline _Iter_less_val
  3005.   __iter_less_val()
  3006.   { return _Iter_less_val(); }
  3007.  
  3008.   inline _Iter_less_val
  3009.   __iter_comp_val(_Iter_less_iter)
  3010.   { return _Iter_less_val(); }
  3011.  
  3012.   struct _Val_less_iter
  3013.   {
  3014.     template<typename _Value, typename _Iterator>
  3015.       bool
  3016.       operator()(_Value& __val, _Iterator __it) const
  3017.       { return __val < *__it; }
  3018.     };
  3019.  
  3020.   inline _Val_less_iter
  3021.   __val_less_iter()
  3022.   { return _Val_less_iter(); }
  3023.  
  3024.   inline _Val_less_iter
  3025.   __val_comp_iter(_Iter_less_iter)
  3026.   { return _Val_less_iter(); }
  3027.  
  3028.   struct _Iter_equal_to_iter
  3029.   {
  3030.     template<typename _Iterator1, typename _Iterator2>
  3031.       bool
  3032.       operator()(_Iterator1 __it1, _Iterator2 __it2) const
  3033.       { return *__it1 == *__it2; }
  3034.     };
  3035.  
  3036.   inline _Iter_equal_to_iter
  3037.   __iter_equal_to_iter()
  3038.   { return _Iter_equal_to_iter(); }
  3039.  
  3040.   struct _Iter_equal_to_val
  3041.   {
  3042.     template<typename _Iterator, typename _Value>
  3043.       bool
  3044.       operator()(_Iterator __it, _Value& __val) const
  3045.       { return *__it == __val; }
  3046.     };
  3047.  
  3048.   inline _Iter_equal_to_val
  3049.   __iter_equal_to_val()
  3050.   { return _Iter_equal_to_val(); }
  3051.  
  3052.   inline _Iter_equal_to_val
  3053.   __iter_comp_val(_Iter_equal_to_iter)
  3054.   { return _Iter_equal_to_val(); }
  3055.  
  3056.   template<typename _Compare>
  3057.     struct _Iter_comp_iter
  3058.     {
  3059.       _Compare _M_comp;
  3060.      
  3061.       _Iter_comp_iter(_Compare __comp)
  3062.  : _M_comp(__comp)
  3063.       { }
  3064.  
  3065.       template<typename _Iterator1, typename _Iterator2>
  3066.        
  3067.         bool
  3068.         operator()(_Iterator1 __it1, _Iterator2 __it2)
  3069.         { return bool(_M_comp(*__it1, *__it2)); }
  3070.     };
  3071.  
  3072.   template<typename _Compare>
  3073.    
  3074.     inline _Iter_comp_iter<_Compare>
  3075.     __iter_comp_iter(_Compare __comp)
  3076.     { return _Iter_comp_iter<_Compare>(__comp); }
  3077.  
  3078.   template<typename _Compare>
  3079.     struct _Iter_comp_val
  3080.     {
  3081.       _Compare _M_comp;
  3082.  
  3083.       _Iter_comp_val(_Compare __comp)
  3084.  : _M_comp(__comp)
  3085.       { }
  3086.  
  3087.       template<typename _Iterator, typename _Value>
  3088.  bool
  3089.  operator()(_Iterator __it, _Value& __val)
  3090.  { return bool(_M_comp(*__it, __val)); }
  3091.     };
  3092.  
  3093.   template<typename _Compare>
  3094.    inline _Iter_comp_val<_Compare>
  3095.     __iter_comp_val(_Compare __comp)
  3096.     { return _Iter_comp_val<_Compare>(__comp); }
  3097.  
  3098.   template<typename _Compare>
  3099.     inline _Iter_comp_val<_Compare>
  3100.     __iter_comp_val(_Iter_comp_iter<_Compare> __comp)
  3101.     { return _Iter_comp_val<_Compare>(__comp._M_comp); }
  3102.  
  3103.   template<typename _Compare>
  3104.     struct _Val_comp_iter
  3105.     {
  3106.       _Compare _M_comp;
  3107.  
  3108.       _Val_comp_iter(_Compare __comp)
  3109.  : _M_comp(__comp)
  3110.       { }
  3111.  
  3112.       template<typename _Value, typename _Iterator>
  3113.  bool
  3114.  operator()(_Value& __val, _Iterator __it)
  3115.  { return bool(_M_comp(__val, *__it)); }
  3116.     };
  3117.  
  3118.   template<typename _Compare>
  3119.     inline _Val_comp_iter<_Compare>
  3120.     __val_comp_iter(_Compare __comp)
  3121.     { return _Val_comp_iter<_Compare>(__comp); }
  3122.  
  3123.   template<typename _Compare>
  3124.     inline _Val_comp_iter<_Compare>
  3125.     __val_comp_iter(_Iter_comp_iter<_Compare> __comp)
  3126.     { return _Val_comp_iter<_Compare>(__comp._M_comp); }
  3127.  
  3128.   template<typename _Value>
  3129.     struct _Iter_equals_val
  3130.     {
  3131.       _Value& _M_value;
  3132.  
  3133.       _Iter_equals_val(_Value& __value)
  3134.  : _M_value(__value)
  3135.       { }
  3136.  
  3137.       template<typename _Iterator>
  3138.  bool
  3139.  operator()(_Iterator __it)
  3140.  { return *__it == _M_value; }
  3141.     };
  3142.  
  3143.   template<typename _Value>
  3144.     inline _Iter_equals_val<_Value>
  3145.     __iter_equals_val(_Value& __val)
  3146.     { return _Iter_equals_val<_Value>(__val); }
  3147.  
  3148.   template<typename _Iterator1>
  3149.     struct _Iter_equals_iter
  3150.     {
  3151.       typename std::iterator_traits<_Iterator1>::reference _M_ref;
  3152.  
  3153.       _Iter_equals_iter(_Iterator1 __it1)
  3154.  : _M_ref(*__it1)
  3155.       { }
  3156.  
  3157.       template<typename _Iterator2>
  3158.  bool
  3159.  operator()(_Iterator2 __it2)
  3160.  { return *__it2 == _M_ref; }
  3161.     };
  3162.  
  3163.   template<typename _Iterator>
  3164.     inline _Iter_equals_iter<_Iterator>
  3165.     __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it)
  3166.     { return _Iter_equals_iter<_Iterator>(__it); }
  3167.  
  3168.   template<typename _Predicate>
  3169.     struct _Iter_pred
  3170.     {
  3171.       _Predicate _M_pred;
  3172.  
  3173.       _Iter_pred(_Predicate __pred)
  3174.  : _M_pred(__pred)
  3175.       { }
  3176.  
  3177.       template<typename _Iterator>
  3178.  bool
  3179.  operator()(_Iterator __it)
  3180.  { return bool(_M_pred(*__it)); }
  3181.     };
  3182.  
  3183.   template<typename _Predicate>
  3184.     inline _Iter_pred<_Predicate>
  3185.     __pred_iter(_Predicate __pred)
  3186.     { return _Iter_pred<_Predicate>(__pred); }
  3187.  
  3188.   template<typename _Compare, typename _Value>
  3189.     struct _Iter_comp_to_val
  3190.     {
  3191.       _Compare _M_comp;
  3192.       _Value& _M_value;
  3193.  
  3194.       _Iter_comp_to_val(_Compare __comp, _Value& __value)
  3195.  : _M_comp(__comp), _M_value(__value)
  3196.       { }
  3197.  
  3198.       template<typename _Iterator>
  3199.  bool
  3200.  operator()(_Iterator __it)
  3201.  { return bool(_M_comp(*__it, _M_value)); }
  3202.     };
  3203.  
  3204.   template<typename _Compare, typename _Value>
  3205.     _Iter_comp_to_val<_Compare, _Value>
  3206.     __iter_comp_val(_Compare __comp, _Value &__val)
  3207.     { return _Iter_comp_to_val<_Compare, _Value>(__comp, __val); }
  3208.  
  3209.   template<typename _Compare, typename _Iterator1>
  3210.     struct _Iter_comp_to_iter
  3211.     {
  3212.       _Compare _M_comp;
  3213.       typename std::iterator_traits<_Iterator1>::reference _M_ref;
  3214.  
  3215.       _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1)
  3216.  : _M_comp(__comp), _M_ref(*__it1)
  3217.       { }
  3218.  
  3219.       template<typename _Iterator2>
  3220.  bool
  3221.  operator()(_Iterator2 __it2)
  3222.  { return bool(_M_comp(*__it2, _M_ref)); }
  3223.     };
  3224.  
  3225.   template<typename _Compare, typename _Iterator>
  3226.     inline _Iter_comp_to_iter<_Compare, _Iterator>
  3227.     __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it)
  3228.     { return _Iter_comp_to_iter<_Compare, _Iterator>(__comp._M_comp, __it); }
  3229.  
  3230.   template<typename _Predicate>
  3231.     struct _Iter_negate
  3232.     {
  3233.       _Predicate _M_pred;
  3234.  
  3235.       _Iter_negate(_Predicate __pred)
  3236.  : _M_pred(__pred)
  3237.       { }
  3238.  
  3239.       template<typename _Iterator>
  3240.  bool
  3241.  operator()(_Iterator __it)
  3242.  { return !bool(_M_pred(*__it)); }
  3243.     };
  3244.  
  3245.   template<typename _Predicate>
  3246.     inline _Iter_negate<_Predicate>
  3247.     __negate(_Iter_pred<_Predicate> __pred)
  3248.     { return _Iter_negate<_Predicate>(__pred._M_pred); }
  3249.  
  3250. }
  3251. }
  3252. # 72 "/usr/include/c++/5/bits/stl_algobase.h" 2 3
  3253.  
  3254. namespace std __attribute__ ((__visibility__ ("default")))
  3255. {
  3256.  
  3257.  
  3258.  
  3259.  
  3260.  
  3261.  
  3262.   template<bool _BoolType>
  3263.     struct __iter_swap
  3264.     {
  3265.       template<typename _ForwardIterator1, typename _ForwardIterator2>
  3266.         static void
  3267.         iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
  3268.         {
  3269.           typedef typename iterator_traits<_ForwardIterator1>::value_type
  3270.             _ValueType1;
  3271.           _ValueType1 __tmp = (*__a);
  3272.           *__a = (*__b);
  3273.           *__b = (__tmp);
  3274.  }
  3275.     };
  3276.  
  3277.   template<>
  3278.     struct __iter_swap<true>
  3279.     {
  3280.       template<typename _ForwardIterator1, typename _ForwardIterator2>
  3281.         static void
  3282.         iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
  3283.         {
  3284.           swap(*__a, *__b);
  3285.         }
  3286.     };
  3287. # 118 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3288.   template<typename _ForwardIterator1, typename _ForwardIterator2>
  3289.     inline void
  3290.     iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
  3291.     {
  3292.  
  3293.      
  3294.  
  3295.      
  3296.  
  3297.  
  3298.  
  3299.       typedef typename iterator_traits<_ForwardIterator1>::value_type
  3300.  _ValueType1;
  3301.       typedef typename iterator_traits<_ForwardIterator2>::value_type
  3302.  _ValueType2;
  3303.  
  3304.      
  3305.  
  3306.      
  3307.  
  3308.  
  3309.       typedef typename iterator_traits<_ForwardIterator1>::reference
  3310.  _ReferenceType1;
  3311.       typedef typename iterator_traits<_ForwardIterator2>::reference
  3312.  _ReferenceType2;
  3313.       std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value
  3314.  && __are_same<_ValueType1&, _ReferenceType1>::__value
  3315.  && __are_same<_ValueType2&, _ReferenceType2>::__value>::
  3316.  iter_swap(__a, __b);
  3317.  
  3318.  
  3319.  
  3320.     }
  3321. # 164 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3322.   template<typename _ForwardIterator1, typename _ForwardIterator2>
  3323.     _ForwardIterator2
  3324.     swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
  3325.   _ForwardIterator2 __first2)
  3326.     {
  3327.  
  3328.      
  3329.  
  3330.      
  3331.  
  3332.       ;
  3333.  
  3334.       for (; __first1 != __last1; ++__first1, ++__first2)
  3335.  std::iter_swap(__first1, __first2);
  3336.       return __first2;
  3337.     }
  3338. # 192 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3339.   template<typename _Tp>
  3340.    
  3341.     inline const _Tp&
  3342.     min(const _Tp& __a, const _Tp& __b)
  3343.     {
  3344.  
  3345.      
  3346.  
  3347.       if (__b < __a)
  3348.  return __b;
  3349.       return __a;
  3350.     }
  3351. # 216 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3352.   template<typename _Tp>
  3353.    
  3354.     inline const _Tp&
  3355.     max(const _Tp& __a, const _Tp& __b)
  3356.     {
  3357.  
  3358.      
  3359.  
  3360.       if (__a < __b)
  3361.  return __b;
  3362.       return __a;
  3363.     }
  3364. # 240 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3365.   template<typename _Tp, typename _Compare>
  3366.    
  3367.     inline const _Tp&
  3368.     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
  3369.     {
  3370.  
  3371.       if (__comp(__b, __a))
  3372.  return __b;
  3373.       return __a;
  3374.     }
  3375. # 262 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3376.   template<typename _Tp, typename _Compare>
  3377.    
  3378.     inline const _Tp&
  3379.     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
  3380.     {
  3381.  
  3382.       if (__comp(__a, __b))
  3383.  return __b;
  3384.       return __a;
  3385.     }
  3386.  
  3387.  
  3388.  
  3389.   template<typename _Iterator>
  3390.     struct _Niter_base
  3391.     : _Iter_base<_Iterator, __is_normal_iterator<_Iterator>::__value>
  3392.     { };
  3393.  
  3394.   template<typename _Iterator>
  3395.     inline typename _Niter_base<_Iterator>::iterator_type
  3396.     __niter_base(_Iterator __it)
  3397.     { return std::_Niter_base<_Iterator>::_S_base(__it); }
  3398.  
  3399.  
  3400.   template<typename _Iterator>
  3401.     struct _Miter_base
  3402.     : _Iter_base<_Iterator, __is_move_iterator<_Iterator>::__value>
  3403.     { };
  3404.  
  3405.   template<typename _Iterator>
  3406.     inline typename _Miter_base<_Iterator>::iterator_type
  3407.     __miter_base(_Iterator __it)
  3408.     { return std::_Miter_base<_Iterator>::_S_base(__it); }
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.   template<bool, bool, typename>
  3417.     struct __copy_move
  3418.     {
  3419.       template<typename _II, typename _OI>
  3420.         static _OI
  3421.         __copy_m(_II __first, _II __last, _OI __result)
  3422.         {
  3423.    for (; __first != __last; ++__result, ++__first)
  3424.      *__result = *__first;
  3425.    return __result;
  3426.  }
  3427.     };
  3428. # 330 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3429.   template<>
  3430.     struct __copy_move<false, false, random_access_iterator_tag>
  3431.     {
  3432.       template<typename _II, typename _OI>
  3433.         static _OI
  3434.         __copy_m(_II __first, _II __last, _OI __result)
  3435.         {
  3436.    typedef typename iterator_traits<_II>::difference_type _Distance;
  3437.    for(_Distance __n = __last - __first; __n > 0; --__n)
  3438.      {
  3439.        *__result = *__first;
  3440.        ++__first;
  3441.        ++__result;
  3442.      }
  3443.    return __result;
  3444.  }
  3445.     };
  3446. # 368 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3447.   template<bool _IsMove>
  3448.     struct __copy_move<_IsMove, true, random_access_iterator_tag>
  3449.     {
  3450.       template<typename _Tp>
  3451.         static _Tp*
  3452.         __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result)
  3453.         {
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.    const ptrdiff_t _Num = __last - __first;
  3462.    if (_Num)
  3463.      __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
  3464.    return __result + _Num;
  3465.  }
  3466.     };
  3467.  
  3468.   template<bool _IsMove, typename _II, typename _OI>
  3469.     inline _OI
  3470.     __copy_move_a(_II __first, _II __last, _OI __result)
  3471.     {
  3472.       typedef typename iterator_traits<_II>::value_type _ValueTypeI;
  3473.       typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
  3474.       typedef typename iterator_traits<_II>::iterator_category _Category;
  3475.       const bool __simple = (__is_trivial(_ValueTypeI)
  3476.                       && __is_pointer<_II>::__value
  3477.                       && __is_pointer<_OI>::__value
  3478.         && __are_same<_ValueTypeI, _ValueTypeO>::__value);
  3479.  
  3480.       return std::__copy_move<_IsMove, __simple,
  3481.                        _Category>::__copy_m(__first, __last, __result);
  3482.     }
  3483.  
  3484.  
  3485.  
  3486.   template<typename _CharT>
  3487.     struct char_traits;
  3488.  
  3489.   template<typename _CharT, typename _Traits>
  3490.     class istreambuf_iterator;
  3491.  
  3492.   template<typename _CharT, typename _Traits>
  3493.     class ostreambuf_iterator;
  3494.  
  3495.   template<bool _IsMove, typename _CharT>
  3496.     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
  3497.       ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
  3498.     __copy_move_a2(_CharT*, _CharT*,
  3499.      ostreambuf_iterator<_CharT, char_traits<_CharT> >);
  3500.  
  3501.   template<bool _IsMove, typename _CharT>
  3502.     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
  3503.       ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
  3504.     __copy_move_a2(const _CharT*, const _CharT*,
  3505.      ostreambuf_iterator<_CharT, char_traits<_CharT> >);
  3506.  
  3507.   template<bool _IsMove, typename _CharT>
  3508.     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
  3509.         _CharT*>::__type
  3510.     __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >,
  3511.      istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*);
  3512.  
  3513.   template<bool _IsMove, typename _II, typename _OI>
  3514.     inline _OI
  3515.     __copy_move_a2(_II __first, _II __last, _OI __result)
  3516.     {
  3517.       return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first),
  3518.           std::__niter_base(__last),
  3519.           std::__niter_base(__result)));
  3520.     }
  3521. # 460 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3522.   template<typename _II, typename _OI>
  3523.     inline _OI
  3524.     copy(_II __first, _II __last, _OI __result)
  3525.     {
  3526.  
  3527.      
  3528.      
  3529.  
  3530.       ;
  3531.  
  3532.       return (std::__copy_move_a2<__is_move_iterator<_II>::__value>
  3533.        (std::__miter_base(__first), std::__miter_base(__last),
  3534.         __result));
  3535.     }
  3536. # 512 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3537.   template<bool, bool, typename>
  3538.     struct __copy_move_backward
  3539.     {
  3540.       template<typename _BI1, typename _BI2>
  3541.         static _BI2
  3542.         __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
  3543.         {
  3544.    while (__first != __last)
  3545.      *--__result = *--__last;
  3546.    return __result;
  3547.  }
  3548.     };
  3549. # 540 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3550.   template<>
  3551.     struct __copy_move_backward<false, false, random_access_iterator_tag>
  3552.     {
  3553.       template<typename _BI1, typename _BI2>
  3554.         static _BI2
  3555.         __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
  3556.         {
  3557.    typename iterator_traits<_BI1>::difference_type __n;
  3558.    for (__n = __last - __first; __n > 0; --__n)
  3559.      *--__result = *--__last;
  3560.    return __result;
  3561.  }
  3562.     };
  3563. # 570 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3564.   template<bool _IsMove>
  3565.     struct __copy_move_backward<_IsMove, true, random_access_iterator_tag>
  3566.     {
  3567.       template<typename _Tp>
  3568.         static _Tp*
  3569.         __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
  3570.         {
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576.  
  3577.  
  3578.    const ptrdiff_t _Num = __last - __first;
  3579.    if (_Num)
  3580.      __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
  3581.    return __result - _Num;
  3582.  }
  3583.     };
  3584.  
  3585.   template<bool _IsMove, typename _BI1, typename _BI2>
  3586.     inline _BI2
  3587.     __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result)
  3588.     {
  3589.       typedef typename iterator_traits<_BI1>::value_type _ValueType1;
  3590.       typedef typename iterator_traits<_BI2>::value_type _ValueType2;
  3591.       typedef typename iterator_traits<_BI1>::iterator_category _Category;
  3592.       const bool __simple = (__is_trivial(_ValueType1)
  3593.                       && __is_pointer<_BI1>::__value
  3594.                       && __is_pointer<_BI2>::__value
  3595.         && __are_same<_ValueType1, _ValueType2>::__value);
  3596.  
  3597.       return std::__copy_move_backward<_IsMove, __simple,
  3598.                                 _Category>::__copy_move_b(__first,
  3599.          __last,
  3600.          __result);
  3601.     }
  3602.  
  3603.   template<bool _IsMove, typename _BI1, typename _BI2>
  3604.     inline _BI2
  3605.     __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result)
  3606.     {
  3607.       return _BI2(std::__copy_move_backward_a<_IsMove>
  3608.     (std::__niter_base(__first), std::__niter_base(__last),
  3609.      std::__niter_base(__result)));
  3610.     }
  3611. # 636 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3612.   template<typename _BI1, typename _BI2>
  3613.     inline _BI2
  3614.     copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
  3615.     {
  3616.  
  3617.      
  3618.      
  3619.      
  3620.  
  3621.  
  3622.       ;
  3623.  
  3624.       return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value>
  3625.        (std::__miter_base(__first), std::__miter_base(__last),
  3626.         __result));
  3627.     }
  3628. # 694 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3629.   template<typename _ForwardIterator, typename _Tp>
  3630.     inline typename
  3631.     __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, void>::__type
  3632.     __fill_a(_ForwardIterator __first, _ForwardIterator __last,
  3633.        const _Tp& __value)
  3634.     {
  3635.       for (; __first != __last; ++__first)
  3636.  *__first = __value;
  3637.     }
  3638.  
  3639.   template<typename _ForwardIterator, typename _Tp>
  3640.     inline typename
  3641.     __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type
  3642.     __fill_a(_ForwardIterator __first, _ForwardIterator __last,
  3643.       const _Tp& __value)
  3644.     {
  3645.       const _Tp __tmp = __value;
  3646.       for (; __first != __last; ++__first)
  3647.  *__first = __tmp;
  3648.     }
  3649.  
  3650.  
  3651.   template<typename _Tp>
  3652.     inline typename
  3653.     __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type
  3654.     __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c)
  3655.     {
  3656.       const _Tp __tmp = __c;
  3657.       if (const size_t __len = __last - __first)
  3658.  __builtin_memset(__first, static_cast<unsigned char>(__tmp), __len);
  3659.     }
  3660. # 738 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3661.   template<typename _ForwardIterator, typename _Tp>
  3662.     inline void
  3663.     fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
  3664.     {
  3665.  
  3666.      
  3667.  
  3668.       ;
  3669.  
  3670.       std::__fill_a(std::__niter_base(__first), std::__niter_base(__last),
  3671.       __value);
  3672.     }
  3673.  
  3674.   template<typename _OutputIterator, typename _Size, typename _Tp>
  3675.     inline typename
  3676.     __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, _OutputIterator>::__type
  3677.     __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value)
  3678.     {
  3679.       for (__decltype(__n + 0) __niter = __n;
  3680.     __niter > 0; --__niter, ++__first)
  3681.  *__first = __value;
  3682.       return __first;
  3683.     }
  3684.  
  3685.   template<typename _OutputIterator, typename _Size, typename _Tp>
  3686.     inline typename
  3687.     __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type
  3688.     __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value)
  3689.     {
  3690.       const _Tp __tmp = __value;
  3691.       for (__decltype(__n + 0) __niter = __n;
  3692.     __niter > 0; --__niter, ++__first)
  3693.  *__first = __tmp;
  3694.       return __first;
  3695.     }
  3696.  
  3697.   template<typename _Size, typename _Tp>
  3698.     inline typename
  3699.     __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type
  3700.     __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c)
  3701.     {
  3702.       std::__fill_a(__first, __first + __n, __c);
  3703.       return __first + __n;
  3704.     }
  3705. # 798 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3706.   template<typename _OI, typename _Size, typename _Tp>
  3707.     inline _OI
  3708.     fill_n(_OI __first, _Size __n, const _Tp& __value)
  3709.     {
  3710.  
  3711.      
  3712.  
  3713.       return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value));
  3714.     }
  3715.  
  3716.   template<bool _BoolType>
  3717.     struct __equal
  3718.     {
  3719.       template<typename _II1, typename _II2>
  3720.         static bool
  3721.         equal(_II1 __first1, _II1 __last1, _II2 __first2)
  3722.         {
  3723.    for (; __first1 != __last1; ++__first1, ++__first2)
  3724.      if (!(*__first1 == *__first2))
  3725.        return false;
  3726.    return true;
  3727.  }
  3728.     };
  3729.  
  3730.   template<>
  3731.     struct __equal<true>
  3732.     {
  3733.       template<typename _Tp>
  3734.         static bool
  3735.         equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2)
  3736.         {
  3737.    if (const size_t __len = (__last1 - __first1))
  3738.      return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * __len);
  3739.    return true;
  3740.  }
  3741.     };
  3742.  
  3743.   template<typename _II1, typename _II2>
  3744.     inline bool
  3745.     __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2)
  3746.     {
  3747.       typedef typename iterator_traits<_II1>::value_type _ValueType1;
  3748.       typedef typename iterator_traits<_II2>::value_type _ValueType2;
  3749.       const bool __simple = ((__is_integer<_ValueType1>::__value
  3750.          || __is_pointer<_ValueType1>::__value)
  3751.                       && __is_pointer<_II1>::__value
  3752.                       && __is_pointer<_II2>::__value
  3753.         && __are_same<_ValueType1, _ValueType2>::__value);
  3754.  
  3755.       return std::__equal<__simple>::equal(__first1, __last1, __first2);
  3756.     }
  3757.  
  3758.   template<typename, typename>
  3759.     struct __lc_rai
  3760.     {
  3761.       template<typename _II1, typename _II2>
  3762.         static _II1
  3763.         __newlast1(_II1, _II1 __last1, _II2, _II2)
  3764.         { return __last1; }
  3765.  
  3766.       template<typename _II>
  3767.         static bool
  3768.         __cnd2(_II __first, _II __last)
  3769.         { return __first != __last; }
  3770.     };
  3771.  
  3772.   template<>
  3773.     struct __lc_rai<random_access_iterator_tag, random_access_iterator_tag>
  3774.     {
  3775.       template<typename _RAI1, typename _RAI2>
  3776.         static _RAI1
  3777.         __newlast1(_RAI1 __first1, _RAI1 __last1,
  3778.      _RAI2 __first2, _RAI2 __last2)
  3779.         {
  3780.    const typename iterator_traits<_RAI1>::difference_type
  3781.      __diff1 = __last1 - __first1;
  3782.    const typename iterator_traits<_RAI2>::difference_type
  3783.      __diff2 = __last2 - __first2;
  3784.    return __diff2 < __diff1 ? __first1 + __diff2 : __last1;
  3785.  }
  3786.  
  3787.       template<typename _RAI>
  3788.         static bool
  3789.         __cnd2(_RAI, _RAI)
  3790.         { return true; }
  3791.     };
  3792.  
  3793.   template<typename _II1, typename _II2, typename _Compare>
  3794.     bool
  3795.     __lexicographical_compare_impl(_II1 __first1, _II1 __last1,
  3796.        _II2 __first2, _II2 __last2,
  3797.        _Compare __comp)
  3798.     {
  3799.       typedef typename iterator_traits<_II1>::iterator_category _Category1;
  3800.       typedef typename iterator_traits<_II2>::iterator_category _Category2;
  3801.       typedef std::__lc_rai<_Category1, _Category2> __rai_type;
  3802.  
  3803.       __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2);
  3804.       for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2);
  3805.     ++__first1, ++__first2)
  3806.  {
  3807.    if (__comp(__first1, __first2))
  3808.      return true;
  3809.    if (__comp(__first2, __first1))
  3810.      return false;
  3811.  }
  3812.       return __first1 == __last1 && __first2 != __last2;
  3813.     }
  3814.  
  3815.   template<bool _BoolType>
  3816.     struct __lexicographical_compare
  3817.     {
  3818.       template<typename _II1, typename _II2>
  3819.         static bool __lc(_II1, _II1, _II2, _II2);
  3820.     };
  3821.  
  3822.   template<bool _BoolType>
  3823.     template<typename _II1, typename _II2>
  3824.       bool
  3825.       __lexicographical_compare<_BoolType>::
  3826.       __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
  3827.       {
  3828.  return std::__lexicographical_compare_impl(__first1, __last1,
  3829.          __first2, __last2,
  3830.      __gnu_cxx::__ops::__iter_less_iter());
  3831.       }
  3832.  
  3833.   template<>
  3834.     struct __lexicographical_compare<true>
  3835.     {
  3836.       template<typename _Tp, typename _Up>
  3837.         static bool
  3838.         __lc(const _Tp* __first1, const _Tp* __last1,
  3839.       const _Up* __first2, const _Up* __last2)
  3840.  {
  3841.    const size_t __len1 = __last1 - __first1;
  3842.    const size_t __len2 = __last2 - __first2;
  3843.    if (const size_t __len = std::min(__len1, __len2))
  3844.      if (int __result = __builtin_memcmp(__first1, __first2, __len))
  3845.        return __result < 0;
  3846.    return __len1 < __len2;
  3847.  }
  3848.     };
  3849.  
  3850.   template<typename _II1, typename _II2>
  3851.     inline bool
  3852.     __lexicographical_compare_aux(_II1 __first1, _II1 __last1,
  3853.       _II2 __first2, _II2 __last2)
  3854.     {
  3855.       typedef typename iterator_traits<_II1>::value_type _ValueType1;
  3856.       typedef typename iterator_traits<_II2>::value_type _ValueType2;
  3857.       const bool __simple =
  3858.  (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value
  3859.   && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed
  3860.   && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed
  3861.   && __is_pointer<_II1>::__value
  3862.   && __is_pointer<_II2>::__value);
  3863.  
  3864.       return std::__lexicographical_compare<__simple>::__lc(__first1, __last1,
  3865.            __first2, __last2);
  3866.     }
  3867.  
  3868.   template<typename _ForwardIterator, typename _Tp, typename _Compare>
  3869.     _ForwardIterator
  3870.     __lower_bound(_ForwardIterator __first, _ForwardIterator __last,
  3871.     const _Tp& __val, _Compare __comp)
  3872.     {
  3873.       typedef typename iterator_traits<_ForwardIterator>::difference_type
  3874.  _DistanceType;
  3875.  
  3876.       _DistanceType __len = std::distance(__first, __last);
  3877.  
  3878.       while (__len > 0)
  3879.  {
  3880.    _DistanceType __half = __len >> 1;
  3881.    _ForwardIterator __middle = __first;
  3882.    std::advance(__middle, __half);
  3883.    if (__comp(__middle, __val))
  3884.      {
  3885.        __first = __middle;
  3886.        ++__first;
  3887.        __len = __len - __half - 1;
  3888.      }
  3889.    else
  3890.      __len = __half;
  3891.  }
  3892.       return __first;
  3893.     }
  3894. # 998 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3895.   template<typename _ForwardIterator, typename _Tp>
  3896.     inline _ForwardIterator
  3897.     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
  3898.   const _Tp& __val)
  3899.     {
  3900.  
  3901.      
  3902.      
  3903.  
  3904.       ;
  3905.  
  3906.       return std::__lower_bound(__first, __last, __val,
  3907.     __gnu_cxx::__ops::__iter_less_val());
  3908.     }
  3909.  
  3910.  
  3911.  
  3912.   inline int
  3913.   __lg(int __n)
  3914.   { return sizeof(int) * 8 - 1 - __builtin_clz(__n); }
  3915.  
  3916.   inline unsigned
  3917.   __lg(unsigned __n)
  3918.   { return sizeof(int) * 8 - 1 - __builtin_clz(__n); }
  3919.  
  3920.   inline long
  3921.   __lg(long __n)
  3922.   { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); }
  3923.  
  3924.   inline unsigned long
  3925.   __lg(unsigned long __n)
  3926.   { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); }
  3927.  
  3928.   inline long long
  3929.   __lg(long long __n)
  3930.   { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); }
  3931.  
  3932.   inline unsigned long long
  3933.   __lg(unsigned long long __n)
  3934.   { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); }
  3935.  
  3936.  
  3937.  
  3938.  
  3939. # 1055 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3940.   template<typename _II1, typename _II2>
  3941.     inline bool
  3942.     equal(_II1 __first1, _II1 __last1, _II2 __first2)
  3943.     {
  3944.  
  3945.      
  3946.      
  3947.      
  3948.  
  3949.  
  3950.       ;
  3951.  
  3952.       return std::__equal_aux(std::__niter_base(__first1),
  3953.          std::__niter_base(__last1),
  3954.          std::__niter_base(__first2));
  3955.     }
  3956. # 1087 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3957.   template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
  3958.     inline bool
  3959.     equal(_IIter1 __first1, _IIter1 __last1,
  3960.    _IIter2 __first2, _BinaryPredicate __binary_pred)
  3961.     {
  3962.  
  3963.      
  3964.      
  3965.       ;
  3966.  
  3967.       for (; __first1 != __last1; ++__first1, ++__first2)
  3968.  if (!bool(__binary_pred(*__first1, *__first2)))
  3969.    return false;
  3970.       return true;
  3971.     }
  3972. # 1215 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3973.   template<typename _II1, typename _II2>
  3974.     inline bool
  3975.     lexicographical_compare(_II1 __first1, _II1 __last1,
  3976.        _II2 __first2, _II2 __last2)
  3977.     {
  3978.  
  3979.  
  3980.  
  3981.  
  3982.  
  3983.      
  3984.      
  3985.      
  3986.      
  3987.       ;
  3988.       ;
  3989.  
  3990.       return std::__lexicographical_compare_aux(std::__niter_base(__first1),
  3991.       std::__niter_base(__last1),
  3992.       std::__niter_base(__first2),
  3993.       std::__niter_base(__last2));
  3994.     }
  3995. # 1251 "/usr/include/c++/5/bits/stl_algobase.h" 3
  3996.   template<typename _II1, typename _II2, typename _Compare>
  3997.     inline bool
  3998.     lexicographical_compare(_II1 __first1, _II1 __last1,
  3999.        _II2 __first2, _II2 __last2, _Compare __comp)
  4000.     {
  4001.  
  4002.      
  4003.      
  4004.       ;
  4005.       ;
  4006.  
  4007.       return std::__lexicographical_compare_impl
  4008.  (__first1, __last1, __first2, __last2,
  4009.   __gnu_cxx::__ops::__iter_comp_iter(__comp));
  4010.     }
  4011.  
  4012.   template<typename _InputIterator1, typename _InputIterator2,
  4013.     typename _BinaryPredicate>
  4014.     pair<_InputIterator1, _InputIterator2>
  4015.     __mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
  4016.         _InputIterator2 __first2, _BinaryPredicate __binary_pred)
  4017.     {
  4018.       while (__first1 != __last1 && __binary_pred(__first1, __first2))
  4019.         {
  4020.    ++__first1;
  4021.    ++__first2;
  4022.         }
  4023.       return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
  4024.     }
  4025. # 1294 "/usr/include/c++/5/bits/stl_algobase.h" 3
  4026.   template<typename _InputIterator1, typename _InputIterator2>
  4027.     inline pair<_InputIterator1, _InputIterator2>
  4028.     mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
  4029.       _InputIterator2 __first2)
  4030.     {
  4031.  
  4032.      
  4033.      
  4034.      
  4035.  
  4036.  
  4037.       ;
  4038.  
  4039.       return std::__mismatch(__first1, __last1, __first2,
  4040.         __gnu_cxx::__ops::__iter_equal_to_iter());
  4041.     }
  4042. # 1327 "/usr/include/c++/5/bits/stl_algobase.h" 3
  4043.   template<typename _InputIterator1, typename _InputIterator2,
  4044.     typename _BinaryPredicate>
  4045.     inline pair<_InputIterator1, _InputIterator2>
  4046.     mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
  4047.       _InputIterator2 __first2, _BinaryPredicate __binary_pred)
  4048.     {
  4049.  
  4050.      
  4051.      
  4052.       ;
  4053.  
  4054.       return std::__mismatch(__first1, __last1, __first2,
  4055.  __gnu_cxx::__ops::__iter_comp_iter(__binary_pred));
  4056.     }
  4057. # 1427 "/usr/include/c++/5/bits/stl_algobase.h" 3
  4058.  
  4059. }
  4060. # 40 "/usr/include/c++/5/bits/char_traits.h" 2 3
  4061.  
  4062. # 1 "/usr/include/c++/5/cwchar" 1 3
  4063. # 39 "/usr/include/c++/5/cwchar" 3
  4064.        
  4065. # 40 "/usr/include/c++/5/cwchar" 3
  4066.  
  4067.  
  4068.  
  4069.  
  4070. # 1 "/usr/include/wchar.h" 1 3 4
  4071. # 45 "/usr/include/c++/5/cwchar" 2 3
  4072. # 42 "/usr/include/c++/5/bits/char_traits.h" 2 3
  4073.  
  4074. namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
  4075. {
  4076.  
  4077. # 57 "/usr/include/c++/5/bits/char_traits.h" 3
  4078.   template<typename _CharT>
  4079.     struct _Char_types
  4080.     {
  4081.       typedef unsigned long int_type;
  4082.       typedef std::streampos pos_type;
  4083.       typedef std::streamoff off_type;
  4084.       typedef std::mbstate_t state_type;
  4085.     };
  4086. # 82 "/usr/include/c++/5/bits/char_traits.h" 3
  4087.   template<typename _CharT>
  4088.     struct char_traits
  4089.     {
  4090.       typedef _CharT char_type;
  4091.       typedef typename _Char_types<_CharT>::int_type int_type;
  4092.       typedef typename _Char_types<_CharT>::pos_type pos_type;
  4093.       typedef typename _Char_types<_CharT>::off_type off_type;
  4094.       typedef typename _Char_types<_CharT>::state_type state_type;
  4095.  
  4096.       static void
  4097.       assign(char_type& __c1, const char_type& __c2)
  4098.       { __c1 = __c2; }
  4099.  
  4100.       static bool
  4101.       eq(const char_type& __c1, const char_type& __c2)
  4102.       { return __c1 == __c2; }
  4103.  
  4104.       static bool
  4105.       lt(const char_type& __c1, const char_type& __c2)
  4106.       { return __c1 < __c2; }
  4107.  
  4108.       static int
  4109.       compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
  4110.  
  4111.       static std::size_t
  4112.       length(const char_type* __s);
  4113.  
  4114.       static const char_type*
  4115.       find(const char_type* __s, std::size_t __n, const char_type& __a);
  4116.  
  4117.       static char_type*
  4118.       move(char_type* __s1, const char_type* __s2, std::size_t __n);
  4119.  
  4120.       static char_type*
  4121.       copy(char_type* __s1, const char_type* __s2, std::size_t __n);
  4122.  
  4123.       static char_type*
  4124.       assign(char_type* __s, std::size_t __n, char_type __a);
  4125.  
  4126.       static char_type
  4127.       to_char_type(const int_type& __c)
  4128.       { return static_cast<char_type>(__c); }
  4129.  
  4130.       static int_type
  4131.       to_int_type(const char_type& __c)
  4132.       { return static_cast<int_type>(__c); }
  4133.  
  4134.       static bool
  4135.       eq_int_type(const int_type& __c1, const int_type& __c2)
  4136.       { return __c1 == __c2; }
  4137.  
  4138.       static int_type
  4139.       eof()
  4140.       { return static_cast<int_type>(-1); }
  4141.  
  4142.       static int_type
  4143.       not_eof(const int_type& __c)
  4144.       { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
  4145.     };
  4146.  
  4147.   template<typename _CharT>
  4148.     int
  4149.     char_traits<_CharT>::
  4150.     compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
  4151.     {
  4152.       for (std::size_t __i = 0; __i < __n; ++__i)
  4153.  if (lt(__s1[__i], __s2[__i]))
  4154.    return -1;
  4155.  else if (lt(__s2[__i], __s1[__i]))
  4156.    return 1;
  4157.       return 0;
  4158.     }
  4159.  
  4160.   template<typename _CharT>
  4161.     std::size_t
  4162.     char_traits<_CharT>::
  4163.     length(const char_type* __p)
  4164.     {
  4165.       std::size_t __i = 0;
  4166.       while (!eq(__p[__i], char_type()))
  4167.         ++__i;
  4168.       return __i;
  4169.     }
  4170.  
  4171.   template<typename _CharT>
  4172.     const typename char_traits<_CharT>::char_type*
  4173.     char_traits<_CharT>::
  4174.     find(const char_type* __s, std::size_t __n, const char_type& __a)
  4175.     {
  4176.       for (std::size_t __i = 0; __i < __n; ++__i)
  4177.         if (eq(__s[__i], __a))
  4178.           return __s + __i;
  4179.       return 0;
  4180.     }
  4181.  
  4182.   template<typename _CharT>
  4183.     typename char_traits<_CharT>::char_type*
  4184.     char_traits<_CharT>::
  4185.     move(char_type* __s1, const char_type* __s2, std::size_t __n)
  4186.     {
  4187.       return static_cast<_CharT*>(__builtin_memmove(__s1, __s2,
  4188.           __n * sizeof(char_type)));
  4189.     }
  4190.  
  4191.   template<typename _CharT>
  4192.     typename char_traits<_CharT>::char_type*
  4193.     char_traits<_CharT>::
  4194.     copy(char_type* __s1, const char_type* __s2, std::size_t __n)
  4195.     {
  4196.  
  4197.       std::copy(__s2, __s2 + __n, __s1);
  4198.       return __s1;
  4199.     }
  4200.  
  4201.   template<typename _CharT>
  4202.     typename char_traits<_CharT>::char_type*
  4203.     char_traits<_CharT>::
  4204.     assign(char_type* __s, std::size_t __n, char_type __a)
  4205.     {
  4206.  
  4207.       std::fill_n(__s, __n, __a);
  4208.       return __s;
  4209.     }
  4210.  
  4211.  
  4212. }
  4213.  
  4214. namespace std __attribute__ ((__visibility__ ("default")))
  4215. {
  4216.  
  4217. # 226 "/usr/include/c++/5/bits/char_traits.h" 3
  4218.   template<class _CharT>
  4219.     struct char_traits : public __gnu_cxx::char_traits<_CharT>
  4220.     { };
  4221.  
  4222.  
  4223.  
  4224.   template<>
  4225.     struct char_traits<char>
  4226.     {
  4227.       typedef char char_type;
  4228.       typedef int int_type;
  4229.       typedef streampos pos_type;
  4230.       typedef streamoff off_type;
  4231.       typedef mbstate_t state_type;
  4232.  
  4233.       static void
  4234.       assign(char_type& __c1, const char_type& __c2)
  4235.       { __c1 = __c2; }
  4236.  
  4237.       static bool
  4238.       eq(const char_type& __c1, const char_type& __c2)
  4239.       { return __c1 == __c2; }
  4240.  
  4241.       static bool
  4242.       lt(const char_type& __c1, const char_type& __c2)
  4243.       {
  4244.  
  4245.  return (static_cast<unsigned char>(__c1)
  4246.   < static_cast<unsigned char>(__c2));
  4247.       }
  4248.  
  4249.       static int
  4250.       compare(const char_type* __s1, const char_type* __s2, size_t __n)
  4251.       {
  4252.  if (__n == 0)
  4253.    return 0;
  4254.  return __builtin_memcmp(__s1, __s2, __n);
  4255.       }
  4256.  
  4257.       static size_t
  4258.       length(const char_type* __s)
  4259.       { return __builtin_strlen(__s); }
  4260.  
  4261.       static const char_type*
  4262.       find(const char_type* __s, size_t __n, const char_type& __a)
  4263.       {
  4264.  if (__n == 0)
  4265.    return 0;
  4266.  return static_cast<const char_type*>(__builtin_memchr(__s, __a, __n));
  4267.       }
  4268.  
  4269.       static char_type*
  4270.       move(char_type* __s1, const char_type* __s2, size_t __n)
  4271.       {
  4272.  if (__n == 0)
  4273.    return __s1;
  4274.  return static_cast<char_type*>(__builtin_memmove(__s1, __s2, __n));
  4275.       }
  4276.  
  4277.       static char_type*
  4278.       copy(char_type* __s1, const char_type* __s2, size_t __n)
  4279.       {
  4280.  if (__n == 0)
  4281.    return __s1;
  4282.  return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
  4283.       }
  4284.  
  4285.       static char_type*
  4286.       assign(char_type* __s, size_t __n, char_type __a)
  4287.       {
  4288.  if (__n == 0)
  4289.    return __s;
  4290.  return static_cast<char_type*>(__builtin_memset(__s, __a, __n));
  4291.       }
  4292.  
  4293.       static char_type
  4294.       to_char_type(const int_type& __c)
  4295.       { return static_cast<char_type>(__c); }
  4296.  
  4297.  
  4298.  
  4299.       static int_type
  4300.       to_int_type(const char_type& __c)
  4301.       { return static_cast<int_type>(static_cast<unsigned char>(__c)); }
  4302.  
  4303.       static bool
  4304.       eq_int_type(const int_type& __c1, const int_type& __c2)
  4305.       { return __c1 == __c2; }
  4306.  
  4307.       static int_type
  4308.       eof()
  4309.       { return static_cast<int_type>(-1); }
  4310.  
  4311.       static int_type
  4312.       not_eof(const int_type& __c)
  4313.       { return (__c == eof()) ? 0 : __c; }
  4314.   };
  4315.  
  4316.  
  4317.  
  4318.  
  4319.   template<>
  4320.     struct char_traits<wchar_t>
  4321.     {
  4322.       typedef wchar_t char_type;
  4323.       typedef wint_t int_type;
  4324.       typedef streamoff off_type;
  4325.       typedef wstreampos pos_type;
  4326.       typedef mbstate_t state_type;
  4327.  
  4328.       static void
  4329.       assign(char_type& __c1, const char_type& __c2)
  4330.       { __c1 = __c2; }
  4331.  
  4332.       static bool
  4333.       eq(const char_type& __c1, const char_type& __c2)
  4334.       { return __c1 == __c2; }
  4335.  
  4336.       static bool
  4337.       lt(const char_type& __c1, const char_type& __c2)
  4338.       { return __c1 < __c2; }
  4339.  
  4340.       static int
  4341.       compare(const char_type* __s1, const char_type* __s2, size_t __n)
  4342.       {
  4343.  if (__n == 0)
  4344.    return 0;
  4345.  return wmemcmp(__s1, __s2, __n);
  4346.       }
  4347.  
  4348.       static size_t
  4349.       length(const char_type* __s)
  4350.       { return wcslen(__s); }
  4351.  
  4352.       static const char_type*
  4353.       find(const char_type* __s, size_t __n, const char_type& __a)
  4354.       {
  4355.  if (__n == 0)
  4356.    return 0;
  4357.  return wmemchr(__s, __a, __n);
  4358.       }
  4359.  
  4360.       static char_type*
  4361.       move(char_type* __s1, const char_type* __s2, size_t __n)
  4362.       {
  4363.  if (__n == 0)
  4364.    return __s1;
  4365.  return wmemmove(__s1, __s2, __n);
  4366.       }
  4367.  
  4368.       static char_type*
  4369.       copy(char_type* __s1, const char_type* __s2, size_t __n)
  4370.       {
  4371.  if (__n == 0)
  4372.    return __s1;
  4373.  return wmemcpy(__s1, __s2, __n);
  4374.       }
  4375.  
  4376.       static char_type*
  4377.       assign(char_type* __s, size_t __n, char_type __a)
  4378.       {
  4379.  if (__n == 0)
  4380.    return __s;
  4381.  return wmemset(__s, __a, __n);
  4382.       }
  4383.  
  4384.       static char_type
  4385.       to_char_type(const int_type& __c)
  4386.       { return char_type(__c); }
  4387.  
  4388.       static int_type
  4389.       to_int_type(const char_type& __c)
  4390.       { return int_type(__c); }
  4391.  
  4392.       static bool
  4393.       eq_int_type(const int_type& __c1, const int_type& __c2)
  4394.       { return __c1 == __c2; }
  4395.  
  4396.       static int_type
  4397.       eof()
  4398.       { return static_cast<int_type>((0xffffffffu)); }
  4399.  
  4400.       static int_type
  4401.       not_eof(const int_type& __c)
  4402.       { return eq_int_type(__c, eof()) ? 0 : __c; }
  4403.   };
  4404.  
  4405.  
  4406.  
  4407. }
  4408. # 41 "/usr/include/c++/5/ios" 2 3
  4409. # 1 "/usr/include/c++/5/bits/localefwd.h" 1 3
  4410. # 37 "/usr/include/c++/5/bits/localefwd.h" 3
  4411.        
  4412. # 38 "/usr/include/c++/5/bits/localefwd.h" 3
  4413.  
  4414.  
  4415. # 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h" 1 3
  4416. # 39 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h" 3
  4417.        
  4418. # 40 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h" 3
  4419.  
  4420. # 1 "/usr/include/c++/5/clocale" 1 3
  4421. # 39 "/usr/include/c++/5/clocale" 3
  4422.        
  4423. # 40 "/usr/include/c++/5/clocale" 3
  4424.  
  4425.  
  4426. # 1 "/usr/include/locale.h" 1 3 4
  4427. # 28 "/usr/include/locale.h" 3 4
  4428. # 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
  4429. # 29 "/usr/include/locale.h" 2 3 4
  4430. # 1 "/usr/include/x86_64-linux-gnu/bits/locale.h" 1 3 4
  4431. # 30 "/usr/include/locale.h" 2 3 4
  4432.  
  4433. extern "C" {
  4434. # 50 "/usr/include/locale.h" 3 4
  4435.  
  4436.  
  4437.  
  4438. struct lconv
  4439. {
  4440.  
  4441.  
  4442.   char *decimal_point;
  4443.   char *thousands_sep;
  4444.  
  4445.  
  4446.  
  4447.  
  4448.  
  4449.   char *grouping;
  4450.  
  4451.  
  4452.  
  4453.  
  4454.  
  4455.   char *int_curr_symbol;
  4456.   char *currency_symbol;
  4457.   char *mon_decimal_point;
  4458.   char *mon_thousands_sep;
  4459.   char *mon_grouping;
  4460.   char *positive_sign;
  4461.   char *negative_sign;
  4462.   char int_frac_digits;
  4463.   char frac_digits;
  4464.  
  4465.   char p_cs_precedes;
  4466.  
  4467.   char p_sep_by_space;
  4468.  
  4469.   char n_cs_precedes;
  4470.  
  4471.   char n_sep_by_space;
  4472.  
  4473.  
  4474.  
  4475.  
  4476.  
  4477.  
  4478.   char p_sign_posn;
  4479.   char n_sign_posn;
  4480.  
  4481.  
  4482.   char int_p_cs_precedes;
  4483.  
  4484.   char int_p_sep_by_space;
  4485.  
  4486.   char int_n_cs_precedes;
  4487.  
  4488.   char int_n_sep_by_space;
  4489.  
  4490.  
  4491.  
  4492.  
  4493.  
  4494.  
  4495.   char int_p_sign_posn;
  4496.   char int_n_sign_posn;
  4497. # 120 "/usr/include/locale.h" 3 4
  4498. };
  4499.  
  4500.  
  4501.  
  4502. extern char *setlocale (int __category, const char *__locale) throw ();
  4503.  
  4504.  
  4505. extern struct lconv *localeconv (void) throw ();
  4506.  
  4507.  
  4508. # 151 "/usr/include/locale.h" 3 4
  4509. extern __locale_t newlocale (int __category_mask, const char *__locale,
  4510.         __locale_t __base) throw ();
  4511. # 186 "/usr/include/locale.h" 3 4
  4512. extern __locale_t duplocale (__locale_t __dataset) throw ();
  4513.  
  4514.  
  4515.  
  4516. extern void freelocale (__locale_t __dataset) throw ();
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523. extern __locale_t uselocale (__locale_t __dataset) throw ();
  4524.  
  4525.  
  4526.  
  4527.  
  4528.  
  4529.  
  4530.  
  4531. }
  4532. # 43 "/usr/include/c++/5/clocale" 2 3
  4533. # 51 "/usr/include/c++/5/clocale" 3
  4534. namespace std
  4535. {
  4536.   using ::lconv;
  4537.   using ::setlocale;
  4538.   using ::localeconv;
  4539. }
  4540. # 42 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h" 2 3
  4541.  
  4542.  
  4543.  
  4544.  
  4545.  
  4546.  
  4547. namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
  4548. {
  4549.  
  4550.  
  4551.   extern "C" __typeof(uselocale) __uselocale;
  4552.  
  4553.  
  4554. }
  4555.  
  4556.  
  4557. namespace std __attribute__ ((__visibility__ ("default")))
  4558. {
  4559.  
  4560.  
  4561.   typedef __locale_t __c_locale;
  4562.  
  4563.  
  4564.  
  4565.  
  4566.  
  4567.   inline int
  4568.   __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)),
  4569.      char* __out,
  4570.      const int __size __attribute__ ((__unused__)),
  4571.      const char* __fmt, ...)
  4572.   {
  4573.  
  4574.     __c_locale __old = __gnu_cxx::__uselocale(__cloc);
  4575. # 88 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h" 3
  4576.     __builtin_va_list __args;
  4577.     __builtin_va_start(__args, __fmt);
  4578.  
  4579.  
  4580.     const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
  4581.  
  4582.  
  4583.  
  4584.  
  4585.     __builtin_va_end(__args);
  4586.  
  4587.  
  4588.     __gnu_cxx::__uselocale(__old);
  4589.  
  4590.  
  4591.  
  4592.  
  4593.  
  4594.  
  4595.  
  4596.     return __ret;
  4597.   }
  4598.  
  4599.  
  4600. }
  4601. # 41 "/usr/include/c++/5/bits/localefwd.h" 2 3
  4602.  
  4603. # 1 "/usr/include/c++/5/cctype" 1 3
  4604. # 39 "/usr/include/c++/5/cctype" 3
  4605.        
  4606. # 40 "/usr/include/c++/5/cctype" 3
  4607.  
  4608.  
  4609. # 1 "/usr/include/ctype.h" 1 3 4
  4610. # 26 "/usr/include/ctype.h" 3 4
  4611. # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
  4612. # 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
  4613. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  4614. # 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
  4615.  
  4616.  
  4617. typedef unsigned char __u_char;
  4618. typedef unsigned short int __u_short;
  4619. typedef unsigned int __u_int;
  4620. typedef unsigned long int __u_long;
  4621.  
  4622.  
  4623. typedef signed char __int8_t;
  4624. typedef unsigned char __uint8_t;
  4625. typedef signed short int __int16_t;
  4626. typedef unsigned short int __uint16_t;
  4627. typedef signed int __int32_t;
  4628. typedef unsigned int __uint32_t;
  4629.  
  4630. typedef signed long int __int64_t;
  4631. typedef unsigned long int __uint64_t;
  4632.  
  4633.  
  4634.  
  4635.  
  4636.  
  4637.  
  4638.  
  4639. typedef long int __quad_t;
  4640. typedef unsigned long int __u_quad_t;
  4641. # 121 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
  4642. # 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4
  4643. # 122 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
  4644.  
  4645.  
  4646. typedef unsigned long int __dev_t;
  4647. typedef unsigned int __uid_t;
  4648. typedef unsigned int __gid_t;
  4649. typedef unsigned long int __ino_t;
  4650. typedef unsigned long int __ino64_t;
  4651. typedef unsigned int __mode_t;
  4652. typedef unsigned long int __nlink_t;
  4653. typedef long int __off_t;
  4654. typedef long int __off64_t;
  4655. typedef int __pid_t;
  4656. typedef struct { int __val[2]; } __fsid_t;
  4657. typedef long int __clock_t;
  4658. typedef unsigned long int __rlim_t;
  4659. typedef unsigned long int __rlim64_t;
  4660. typedef unsigned int __id_t;
  4661. typedef long int __time_t;
  4662. typedef unsigned int __useconds_t;
  4663. typedef long int __suseconds_t;
  4664.  
  4665. typedef int __daddr_t;
  4666. typedef int __key_t;
  4667.  
  4668.  
  4669. typedef int __clockid_t;
  4670.  
  4671.  
  4672. typedef void * __timer_t;
  4673.  
  4674.  
  4675. typedef long int __blksize_t;
  4676.  
  4677.  
  4678.  
  4679.  
  4680. typedef long int __blkcnt_t;
  4681. typedef long int __blkcnt64_t;
  4682.  
  4683.  
  4684. typedef unsigned long int __fsblkcnt_t;
  4685. typedef unsigned long int __fsblkcnt64_t;
  4686.  
  4687.  
  4688. typedef unsigned long int __fsfilcnt_t;
  4689. typedef unsigned long int __fsfilcnt64_t;
  4690.  
  4691.  
  4692. typedef long int __fsword_t;
  4693.  
  4694. typedef long int __ssize_t;
  4695.  
  4696.  
  4697. typedef long int __syscall_slong_t;
  4698.  
  4699. typedef unsigned long int __syscall_ulong_t;
  4700.  
  4701.  
  4702.  
  4703. typedef __off64_t __loff_t;
  4704. typedef __quad_t *__qaddr_t;
  4705. typedef char *__caddr_t;
  4706.  
  4707.  
  4708. typedef long int __intptr_t;
  4709.  
  4710.  
  4711. typedef unsigned int __socklen_t;
  4712. # 27 "/usr/include/ctype.h" 2 3 4
  4713.  
  4714. extern "C" {
  4715. # 39 "/usr/include/ctype.h" 3 4
  4716. # 1 "/usr/include/endian.h" 1 3 4
  4717. # 36 "/usr/include/endian.h" 3 4
  4718. # 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4
  4719. # 37 "/usr/include/endian.h" 2 3 4
  4720. # 60 "/usr/include/endian.h" 3 4
  4721. # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4
  4722. # 28 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
  4723. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  4724. # 29 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4
  4725.  
  4726.  
  4727.  
  4728.  
  4729.  
  4730.  
  4731. # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap-16.h" 1 3 4
  4732. # 36 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4
  4733. # 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
  4734. static __inline unsigned int
  4735. __bswap_32 (unsigned int __bsx)
  4736. {
  4737.   return __builtin_bswap32 (__bsx);
  4738. }
  4739. # 108 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
  4740. static __inline __uint64_t
  4741. __bswap_64 (__uint64_t __bsx)
  4742. {
  4743.   return __builtin_bswap64 (__bsx);
  4744. }
  4745. # 61 "/usr/include/endian.h" 2 3 4
  4746. # 40 "/usr/include/ctype.h" 2 3 4
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753. enum
  4754. {
  4755.   _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
  4756.   _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
  4757.   _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
  4758.   _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
  4759.   _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
  4760.   _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
  4761.   _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
  4762.   _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
  4763.   _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
  4764.   _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
  4765.   _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
  4766.   _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
  4767. };
  4768. # 79 "/usr/include/ctype.h" 3 4
  4769. extern const unsigned short int **__ctype_b_loc (void)
  4770.      throw () __attribute__ ((__const__));
  4771. extern const __int32_t **__ctype_tolower_loc (void)
  4772.      throw () __attribute__ ((__const__));
  4773. extern const __int32_t **__ctype_toupper_loc (void)
  4774.      throw () __attribute__ ((__const__));
  4775. # 104 "/usr/include/ctype.h" 3 4
  4776.  
  4777.  
  4778.  
  4779.  
  4780.  
  4781.  
  4782. extern int isalnum (int) throw ();
  4783. extern int isalpha (int) throw ();
  4784. extern int iscntrl (int) throw ();
  4785. extern int isdigit (int) throw ();
  4786. extern int islower (int) throw ();
  4787. extern int isgraph (int) throw ();
  4788. extern int isprint (int) throw ();
  4789. extern int ispunct (int) throw ();
  4790. extern int isspace (int) throw ();
  4791. extern int isupper (int) throw ();
  4792. extern int isxdigit (int) throw ();
  4793.  
  4794.  
  4795.  
  4796. extern int tolower (int __c) throw ();
  4797.  
  4798.  
  4799. extern int toupper (int __c) throw ();
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.  
  4808. extern int isblank (int) throw ();
  4809.  
  4810.  
  4811.  
  4812.  
  4813.  
  4814.  
  4815. extern int isctype (int __c, int __mask) throw ();
  4816.  
  4817.  
  4818.  
  4819.  
  4820.  
  4821.  
  4822. extern int isascii (int __c) throw ();
  4823.  
  4824.  
  4825.  
  4826. extern int toascii (int __c) throw ();
  4827.  
  4828.  
  4829.  
  4830. extern int _toupper (int) throw ();
  4831. extern int _tolower (int) throw ();
  4832. # 271 "/usr/include/ctype.h" 3 4
  4833. extern int isalnum_l (int, __locale_t) throw ();
  4834. extern int isalpha_l (int, __locale_t) throw ();
  4835. extern int iscntrl_l (int, __locale_t) throw ();
  4836. extern int isdigit_l (int, __locale_t) throw ();
  4837. extern int islower_l (int, __locale_t) throw ();
  4838. extern int isgraph_l (int, __locale_t) throw ();
  4839. extern int isprint_l (int, __locale_t) throw ();
  4840. extern int ispunct_l (int, __locale_t) throw ();
  4841. extern int isspace_l (int, __locale_t) throw ();
  4842. extern int isupper_l (int, __locale_t) throw ();
  4843. extern int isxdigit_l (int, __locale_t) throw ();
  4844.  
  4845. extern int isblank_l (int, __locale_t) throw ();
  4846.  
  4847.  
  4848.  
  4849. extern int __tolower_l (int __c, __locale_t __l) throw ();
  4850. extern int tolower_l (int __c, __locale_t __l) throw ();
  4851.  
  4852.  
  4853. extern int __toupper_l (int __c, __locale_t __l) throw ();
  4854. extern int toupper_l (int __c, __locale_t __l) throw ();
  4855. # 347 "/usr/include/ctype.h" 3 4
  4856. }
  4857. # 43 "/usr/include/c++/5/cctype" 2 3
  4858. # 62 "/usr/include/c++/5/cctype" 3
  4859. namespace std
  4860. {
  4861.   using ::isalnum;
  4862.   using ::isalpha;
  4863.   using ::iscntrl;
  4864.   using ::isdigit;
  4865.   using ::isgraph;
  4866.   using ::islower;
  4867.   using ::isprint;
  4868.   using ::ispunct;
  4869.   using ::isspace;
  4870.   using ::isupper;
  4871.   using ::isxdigit;
  4872.   using ::tolower;
  4873.   using ::toupper;
  4874. }
  4875. # 43 "/usr/include/c++/5/bits/localefwd.h" 2 3
  4876.  
  4877. namespace std __attribute__ ((__visibility__ ("default")))
  4878. {
  4879.  
  4880. # 55 "/usr/include/c++/5/bits/localefwd.h" 3
  4881.   class locale;
  4882.  
  4883.   template<typename _Facet>
  4884.     bool
  4885.     has_facet(const locale&) throw();
  4886.  
  4887.   template<typename _Facet>
  4888.     const _Facet&
  4889.     use_facet(const locale&);
  4890.  
  4891.  
  4892.   template<typename _CharT>
  4893.     bool
  4894.     isspace(_CharT, const locale&);
  4895.  
  4896.   template<typename _CharT>
  4897.     bool
  4898.     isprint(_CharT, const locale&);
  4899.  
  4900.   template<typename _CharT>
  4901.     bool
  4902.     iscntrl(_CharT, const locale&);
  4903.  
  4904.   template<typename _CharT>
  4905.     bool
  4906.     isupper(_CharT, const locale&);
  4907.  
  4908.   template<typename _CharT>
  4909.     bool
  4910.     islower(_CharT, const locale&);
  4911.  
  4912.   template<typename _CharT>
  4913.     bool
  4914.     isalpha(_CharT, const locale&);
  4915.  
  4916.   template<typename _CharT>
  4917.     bool
  4918.     isdigit(_CharT, const locale&);
  4919.  
  4920.   template<typename _CharT>
  4921.     bool
  4922.     ispunct(_CharT, const locale&);
  4923.  
  4924.   template<typename _CharT>
  4925.     bool
  4926.     isxdigit(_CharT, const locale&);
  4927.  
  4928.   template<typename _CharT>
  4929.     bool
  4930.     isalnum(_CharT, const locale&);
  4931.  
  4932.   template<typename _CharT>
  4933.     bool
  4934.     isgraph(_CharT, const locale&);
  4935.  
  4936.  
  4937.  
  4938.  
  4939.  
  4940.  
  4941.  
  4942.   template<typename _CharT>
  4943.     _CharT
  4944.     toupper(_CharT, const locale&);
  4945.  
  4946.   template<typename _CharT>
  4947.     _CharT
  4948.     tolower(_CharT, const locale&);
  4949.  
  4950.  
  4951.   class ctype_base;
  4952.   template<typename _CharT>
  4953.     class ctype;
  4954.   template<> class ctype<char>;
  4955.  
  4956.   template<> class ctype<wchar_t>;
  4957.  
  4958.   template<typename _CharT>
  4959.     class ctype_byname;
  4960.  
  4961.  
  4962.   class codecvt_base;
  4963.   template<typename _InternT, typename _ExternT, typename _StateT>
  4964.     class codecvt;
  4965.   template<> class codecvt<char, char, mbstate_t>;
  4966.  
  4967.   template<> class codecvt<wchar_t, char, mbstate_t>;
  4968.  
  4969.   template<typename _InternT, typename _ExternT, typename _StateT>
  4970.     class codecvt_byname;
  4971.  
  4972.  
  4973.  
  4974.   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
  4975.     class num_get;
  4976.   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
  4977.     class num_put;
  4978.  
  4979. namespace __cxx11 {
  4980.   template<typename _CharT> class numpunct;
  4981.   template<typename _CharT> class numpunct_byname;
  4982. }
  4983.  
  4984. namespace __cxx11 {
  4985.  
  4986.   template<typename _CharT>
  4987.     class collate;
  4988.   template<typename _CharT>
  4989.     class collate_byname;
  4990. }
  4991.  
  4992.  
  4993.   class time_base;
  4994. namespace __cxx11 {
  4995.   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
  4996.     class time_get;
  4997.   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
  4998.     class time_get_byname;
  4999. }
  5000.   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
  5001.     class time_put;
  5002.   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
  5003.     class time_put_byname;
  5004.  
  5005.  
  5006.   class money_base;
  5007. namespace __cxx11 {
  5008.   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
  5009.     class money_get;
  5010.   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
  5011.     class money_put;
  5012. }
  5013. namespace __cxx11 {
  5014.   template<typename _CharT, bool _Intl = false>
  5015.     class moneypunct;
  5016.   template<typename _CharT, bool _Intl = false>
  5017.     class moneypunct_byname;
  5018. }
  5019.  
  5020.  
  5021.   class messages_base;
  5022. namespace __cxx11 {
  5023.   template<typename _CharT>
  5024.     class messages;
  5025.   template<typename _CharT>
  5026.     class messages_byname;
  5027. }
  5028.  
  5029.  
  5030. }
  5031. # 42 "/usr/include/c++/5/ios" 2 3
  5032. # 1 "/usr/include/c++/5/bits/ios_base.h" 1 3
  5033. # 37 "/usr/include/c++/5/bits/ios_base.h" 3
  5034.        
  5035. # 38 "/usr/include/c++/5/bits/ios_base.h" 3
  5036.  
  5037. # 1 "/usr/include/c++/5/ext/atomicity.h" 1 3
  5038. # 32 "/usr/include/c++/5/ext/atomicity.h" 3
  5039.        
  5040. # 33 "/usr/include/c++/5/ext/atomicity.h" 3
  5041.  
  5042.  
  5043. # 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h" 1 3
  5044. # 30 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h" 3
  5045. #pragma GCC visibility push(default)
  5046. # 148 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h" 3
  5047. # 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 1 3
  5048. # 35 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3
  5049. # 1 "/usr/include/pthread.h" 1 3 4
  5050. # 23 "/usr/include/pthread.h" 3 4
  5051. # 1 "/usr/include/sched.h" 1 3 4
  5052. # 28 "/usr/include/sched.h" 3 4
  5053. # 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
  5054. # 29 "/usr/include/sched.h" 2 3 4
  5055.  
  5056.  
  5057.  
  5058.  
  5059.  
  5060. # 1 "/usr/include/time.h" 1 3 4
  5061. # 73 "/usr/include/time.h" 3 4
  5062.  
  5063.  
  5064. typedef __time_t time_t;
  5065.  
  5066.  
  5067.  
  5068. # 120 "/usr/include/time.h" 3 4
  5069. struct timespec
  5070.   {
  5071.     __time_t tv_sec;
  5072.     __syscall_slong_t tv_nsec;
  5073.   };
  5074. # 35 "/usr/include/sched.h" 2 3 4
  5075.  
  5076.  
  5077. typedef __pid_t pid_t;
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083. # 1 "/usr/include/x86_64-linux-gnu/bits/sched.h" 1 3 4
  5084. # 72 "/usr/include/x86_64-linux-gnu/bits/sched.h" 3 4
  5085. struct sched_param
  5086.   {
  5087.     int __sched_priority;
  5088.   };
  5089.  
  5090. extern "C" {
  5091.  
  5092.  
  5093.  
  5094. extern int clone (int (*__fn) (void *__arg), void *__child_stack,
  5095.     int __flags, void *__arg, ...) throw ();
  5096.  
  5097.  
  5098. extern int unshare (int __flags) throw ();
  5099.  
  5100.  
  5101. extern int sched_getcpu (void) throw ();
  5102.  
  5103.  
  5104. extern int setns (int __fd, int __nstype) throw ();
  5105.  
  5106.  
  5107.  
  5108. }
  5109.  
  5110.  
  5111.  
  5112.  
  5113.  
  5114.  
  5115.  
  5116. struct __sched_param
  5117.   {
  5118.     int __sched_priority;
  5119.   };
  5120. # 118 "/usr/include/x86_64-linux-gnu/bits/sched.h" 3 4
  5121. typedef unsigned long int __cpu_mask;
  5122.  
  5123.  
  5124.  
  5125.  
  5126.  
  5127.  
  5128. typedef struct
  5129. {
  5130.   __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
  5131. } cpu_set_t;
  5132. # 201 "/usr/include/x86_64-linux-gnu/bits/sched.h" 3 4
  5133. extern "C" {
  5134.  
  5135. extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
  5136.   throw ();
  5137. extern cpu_set_t *__sched_cpualloc (size_t __count) throw () ;
  5138. extern void __sched_cpufree (cpu_set_t *__set) throw ();
  5139.  
  5140. }
  5141. # 44 "/usr/include/sched.h" 2 3 4
  5142.  
  5143.  
  5144.  
  5145.  
  5146. extern "C" {
  5147.  
  5148.  
  5149. extern int sched_setparam (__pid_t __pid, const struct sched_param *__param)
  5150.      throw ();
  5151.  
  5152.  
  5153. extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw ();
  5154.  
  5155.  
  5156. extern int sched_setscheduler (__pid_t __pid, int __policy,
  5157.           const struct sched_param *__param) throw ();
  5158.  
  5159.  
  5160. extern int sched_getscheduler (__pid_t __pid) throw ();
  5161.  
  5162.  
  5163. extern int sched_yield (void) throw ();
  5164.  
  5165.  
  5166. extern int sched_get_priority_max (int __algorithm) throw ();
  5167.  
  5168.  
  5169. extern int sched_get_priority_min (int __algorithm) throw ();
  5170.  
  5171.  
  5172. extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw ();
  5173. # 118 "/usr/include/sched.h" 3 4
  5174. extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
  5175.          const cpu_set_t *__cpuset) throw ();
  5176.  
  5177.  
  5178. extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
  5179.          cpu_set_t *__cpuset) throw ();
  5180.  
  5181.  
  5182. }
  5183. # 24 "/usr/include/pthread.h" 2 3 4
  5184. # 1 "/usr/include/time.h" 1 3 4
  5185. # 29 "/usr/include/time.h" 3 4
  5186. extern "C" {
  5187.  
  5188.  
  5189.  
  5190.  
  5191.  
  5192.  
  5193.  
  5194. # 1 "/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h" 1 3 4
  5195. # 38 "/usr/include/time.h" 2 3 4
  5196.  
  5197.  
  5198.  
  5199. # 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4
  5200. # 30 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
  5201. struct timeval
  5202.   {
  5203.     __time_t tv_sec;
  5204.     __suseconds_t tv_usec;
  5205.   };
  5206. # 88 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
  5207. # 1 "/usr/include/x86_64-linux-gnu/bits/timex.h" 1 3 4
  5208. # 25 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 4
  5209. struct timex
  5210. {
  5211.   unsigned int modes;
  5212.   __syscall_slong_t offset;
  5213.   __syscall_slong_t freq;
  5214.   __syscall_slong_t maxerror;
  5215.   __syscall_slong_t esterror;
  5216.   int status;
  5217.   __syscall_slong_t constant;
  5218.   __syscall_slong_t precision;
  5219.   __syscall_slong_t tolerance;
  5220.   struct timeval time;
  5221.   __syscall_slong_t tick;
  5222.   __syscall_slong_t ppsfreq;
  5223.   __syscall_slong_t jitter;
  5224.   int shift;
  5225.   __syscall_slong_t stabil;
  5226.   __syscall_slong_t jitcnt;
  5227.   __syscall_slong_t calcnt;
  5228.   __syscall_slong_t errcnt;
  5229.   __syscall_slong_t stbcnt;
  5230.  
  5231.   int tai;
  5232.  
  5233.  
  5234.   int :32; int :32; int :32; int :32;
  5235.   int :32; int :32; int :32; int :32;
  5236.   int :32; int :32; int :32;
  5237. };
  5238. # 89 "/usr/include/x86_64-linux-gnu/bits/time.h" 2 3 4
  5239.  
  5240. extern "C" {
  5241.  
  5242.  
  5243. extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw ();
  5244.  
  5245. }
  5246. # 42 "/usr/include/time.h" 2 3 4
  5247. # 57 "/usr/include/time.h" 3 4
  5248.  
  5249.  
  5250. typedef __clock_t clock_t;
  5251.  
  5252.  
  5253.  
  5254. # 91 "/usr/include/time.h" 3 4
  5255. typedef __clockid_t clockid_t;
  5256. # 103 "/usr/include/time.h" 3 4
  5257. typedef __timer_t timer_t;
  5258. # 131 "/usr/include/time.h" 3 4
  5259.  
  5260.  
  5261. struct tm
  5262. {
  5263.   int tm_sec;
  5264.   int tm_min;
  5265.   int tm_hour;
  5266.   int tm_mday;
  5267.   int tm_mon;
  5268.   int tm_year;
  5269.   int tm_wday;
  5270.   int tm_yday;
  5271.   int tm_isdst;
  5272.  
  5273.  
  5274.   long int tm_gmtoff;
  5275.   const char *tm_zone;
  5276.  
  5277.  
  5278.  
  5279.  
  5280. };
  5281.  
  5282.  
  5283.  
  5284.  
  5285.  
  5286.  
  5287.  
  5288.  
  5289. struct itimerspec
  5290.   {
  5291.     struct timespec it_interval;
  5292.     struct timespec it_value;
  5293.   };
  5294.  
  5295.  
  5296. struct sigevent;
  5297. # 186 "/usr/include/time.h" 3 4
  5298.  
  5299.  
  5300.  
  5301. extern clock_t clock (void) throw ();
  5302.  
  5303.  
  5304. extern time_t time (time_t *__timer) throw ();
  5305.  
  5306.  
  5307. extern double difftime (time_t __time1, time_t __time0)
  5308.      throw () __attribute__ ((__const__));
  5309.  
  5310.  
  5311. extern time_t mktime (struct tm *__tp) throw ();
  5312.  
  5313.  
  5314.  
  5315.  
  5316.  
  5317. extern size_t strftime (char *__restrict __s, size_t __maxsize,
  5318.    const char *__restrict __format,
  5319.    const struct tm *__restrict __tp) throw ();
  5320.  
  5321.  
  5322.  
  5323.  
  5324.  
  5325. extern char *strptime (const char *__restrict __s,
  5326.          const char *__restrict __fmt, struct tm *__tp)
  5327.      throw ();
  5328.  
  5329.  
  5330.  
  5331.  
  5332.  
  5333.  
  5334.  
  5335. extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
  5336.      const char *__restrict __format,
  5337.      const struct tm *__restrict __tp,
  5338.      __locale_t __loc) throw ();
  5339.  
  5340.  
  5341.  
  5342. extern char *strptime_l (const char *__restrict __s,
  5343.     const char *__restrict __fmt, struct tm *__tp,
  5344.     __locale_t __loc) throw ();
  5345.  
  5346.  
  5347.  
  5348.  
  5349.  
  5350.  
  5351. extern struct tm *gmtime (const time_t *__timer) throw ();
  5352.  
  5353.  
  5354.  
  5355. extern struct tm *localtime (const time_t *__timer) throw ();
  5356.  
  5357.  
  5358.  
  5359.  
  5360.  
  5361. extern struct tm *gmtime_r (const time_t *__restrict __timer,
  5362.        struct tm *__restrict __tp) throw ();
  5363.  
  5364.  
  5365.  
  5366. extern struct tm *localtime_r (const time_t *__restrict __timer,
  5367.           struct tm *__restrict __tp) throw ();
  5368.  
  5369.  
  5370.  
  5371.  
  5372.  
  5373. extern char *asctime (const struct tm *__tp) throw ();
  5374.  
  5375.  
  5376. extern char *ctime (const time_t *__timer) throw ();
  5377.  
  5378.  
  5379.  
  5380.  
  5381.  
  5382.  
  5383.  
  5384. extern char *asctime_r (const struct tm *__restrict __tp,
  5385.    char *__restrict __buf) throw ();
  5386.  
  5387.  
  5388. extern char *ctime_r (const time_t *__restrict __timer,
  5389.         char *__restrict __buf) throw ();
  5390.  
  5391.  
  5392.  
  5393.  
  5394. extern char *__tzname[2];
  5395. extern int __daylight;
  5396. extern long int __timezone;
  5397.  
  5398.  
  5399.  
  5400.  
  5401. extern char *tzname[2];
  5402.  
  5403.  
  5404.  
  5405. extern void tzset (void) throw ();
  5406.  
  5407.  
  5408.  
  5409. extern int daylight;
  5410. extern long int timezone;
  5411.  
  5412.  
  5413.  
  5414.  
  5415.  
  5416. extern int stime (const time_t *__when) throw ();
  5417. # 319 "/usr/include/time.h" 3 4
  5418. extern time_t timegm (struct tm *__tp) throw ();
  5419.  
  5420.  
  5421. extern time_t timelocal (struct tm *__tp) throw ();
  5422.  
  5423.  
  5424. extern int dysize (int __year) throw () __attribute__ ((__const__));
  5425. # 334 "/usr/include/time.h" 3 4
  5426. extern int nanosleep (const struct timespec *__requested_time,
  5427.         struct timespec *__remaining);
  5428.  
  5429.  
  5430.  
  5431. extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
  5432.  
  5433.  
  5434. extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
  5435.  
  5436.  
  5437. extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
  5438.      throw ();
  5439.  
  5440.  
  5441.  
  5442.  
  5443.  
  5444.  
  5445. extern int clock_nanosleep (clockid_t __clock_id, int __flags,
  5446.        const struct timespec *__req,
  5447.        struct timespec *__rem);
  5448.  
  5449.  
  5450. extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw ();
  5451.  
  5452.  
  5453.  
  5454.  
  5455. extern int timer_create (clockid_t __clock_id,
  5456.     struct sigevent *__restrict __evp,
  5457.     timer_t *__restrict __timerid) throw ();
  5458.  
  5459.  
  5460. extern int timer_delete (timer_t __timerid) throw ();
  5461.  
  5462.  
  5463. extern int timer_settime (timer_t __timerid, int __flags,
  5464.      const struct itimerspec *__restrict __value,
  5465.      struct itimerspec *__restrict __ovalue) throw ();
  5466.  
  5467.  
  5468. extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
  5469.      throw ();
  5470.  
  5471.  
  5472. extern int timer_getoverrun (timer_t __timerid) throw ();
  5473.  
  5474.  
  5475.  
  5476.  
  5477.  
  5478. extern int timespec_get (struct timespec *__ts, int __base)
  5479.      throw () __attribute__ ((__nonnull__ (1)));
  5480. # 403 "/usr/include/time.h" 3 4
  5481. extern int getdate_err;
  5482. # 412 "/usr/include/time.h" 3 4
  5483. extern struct tm *getdate (const char *__string);
  5484. # 426 "/usr/include/time.h" 3 4
  5485. extern int getdate_r (const char *__restrict __string,
  5486.         struct tm *__restrict __resbufp);
  5487.  
  5488.  
  5489. }
  5490. # 25 "/usr/include/pthread.h" 2 3 4
  5491.  
  5492. # 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4
  5493. # 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  5494. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  5495. # 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4
  5496. # 60 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  5497. typedef unsigned long int pthread_t;
  5498.  
  5499.  
  5500. union pthread_attr_t
  5501. {
  5502.   char __size[56];
  5503.   long int __align;
  5504. };
  5505.  
  5506. typedef union pthread_attr_t pthread_attr_t;
  5507.  
  5508.  
  5509.  
  5510.  
  5511.  
  5512. typedef struct __pthread_internal_list
  5513. {
  5514.   struct __pthread_internal_list *__prev;
  5515.   struct __pthread_internal_list *__next;
  5516. } __pthread_list_t;
  5517. # 90 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  5518. typedef union
  5519. {
  5520.   struct __pthread_mutex_s
  5521.   {
  5522.     int __lock;
  5523.     unsigned int __count;
  5524.     int __owner;
  5525.  
  5526.     unsigned int __nusers;
  5527.  
  5528.  
  5529.  
  5530.     int __kind;
  5531.  
  5532.     short __spins;
  5533.     short __elision;
  5534.     __pthread_list_t __list;
  5535. # 125 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  5536.   } __data;
  5537.   char __size[40];
  5538.   long int __align;
  5539. } pthread_mutex_t;
  5540.  
  5541. typedef union
  5542. {
  5543.   char __size[4];
  5544.   int __align;
  5545. } pthread_mutexattr_t;
  5546.  
  5547.  
  5548.  
  5549.  
  5550. typedef union
  5551. {
  5552.   struct
  5553.   {
  5554.     int __lock;
  5555.     unsigned int __futex;
  5556.     __extension__ unsigned long long int __total_seq;
  5557.     __extension__ unsigned long long int __wakeup_seq;
  5558.     __extension__ unsigned long long int __woken_seq;
  5559.     void *__mutex;
  5560.     unsigned int __nwaiters;
  5561.     unsigned int __broadcast_seq;
  5562.   } __data;
  5563.   char __size[48];
  5564.   __extension__ long long int __align;
  5565. } pthread_cond_t;
  5566.  
  5567. typedef union
  5568. {
  5569.   char __size[4];
  5570.   int __align;
  5571. } pthread_condattr_t;
  5572.  
  5573.  
  5574.  
  5575. typedef unsigned int pthread_key_t;
  5576.  
  5577.  
  5578.  
  5579. typedef int pthread_once_t;
  5580.  
  5581.  
  5582.  
  5583.  
  5584.  
  5585. typedef union
  5586. {
  5587.  
  5588.   struct
  5589.   {
  5590.     int __lock;
  5591.     unsigned int __nr_readers;
  5592.     unsigned int __readers_wakeup;
  5593.     unsigned int __writer_wakeup;
  5594.     unsigned int __nr_readers_queued;
  5595.     unsigned int __nr_writers_queued;
  5596.     int __writer;
  5597.     int __shared;
  5598.     signed char __rwelision;
  5599.  
  5600.  
  5601.  
  5602.  
  5603.     unsigned char __pad1[7];
  5604.  
  5605.  
  5606.     unsigned long int __pad2;
  5607.  
  5608.  
  5609.     unsigned int __flags;
  5610.  
  5611.   } __data;
  5612. # 220 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  5613.   char __size[56];
  5614.   long int __align;
  5615. } pthread_rwlock_t;
  5616.  
  5617. typedef union
  5618. {
  5619.   char __size[8];
  5620.   long int __align;
  5621. } pthread_rwlockattr_t;
  5622.  
  5623.  
  5624.  
  5625.  
  5626.  
  5627. typedef volatile int pthread_spinlock_t;
  5628.  
  5629.  
  5630.  
  5631.  
  5632. typedef union
  5633. {
  5634.   char __size[32];
  5635.   long int __align;
  5636. } pthread_barrier_t;
  5637.  
  5638. typedef union
  5639. {
  5640.   char __size[4];
  5641.   int __align;
  5642. } pthread_barrierattr_t;
  5643. # 27 "/usr/include/pthread.h" 2 3 4
  5644. # 1 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 1 3 4
  5645. # 26 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 3 4
  5646. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  5647. # 27 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 2 3 4
  5648.  
  5649.  
  5650.  
  5651.  
  5652. typedef long int __jmp_buf[8];
  5653. # 28 "/usr/include/pthread.h" 2 3 4
  5654. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  5655. # 29 "/usr/include/pthread.h" 2 3 4
  5656.  
  5657.  
  5658.  
  5659. enum
  5660. {
  5661.   PTHREAD_CREATE_JOINABLE,
  5662.  
  5663.   PTHREAD_CREATE_DETACHED
  5664.  
  5665. };
  5666.  
  5667.  
  5668.  
  5669. enum
  5670. {
  5671.   PTHREAD_MUTEX_TIMED_NP,
  5672.   PTHREAD_MUTEX_RECURSIVE_NP,
  5673.   PTHREAD_MUTEX_ERRORCHECK_NP,
  5674.   PTHREAD_MUTEX_ADAPTIVE_NP
  5675.  
  5676.   ,
  5677.   PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
  5678.   PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
  5679.   PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
  5680.   PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
  5681.  
  5682.  
  5683.  
  5684.   , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
  5685.  
  5686. };
  5687.  
  5688.  
  5689.  
  5690.  
  5691. enum
  5692. {
  5693.   PTHREAD_MUTEX_STALLED,
  5694.   PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
  5695.   PTHREAD_MUTEX_ROBUST,
  5696.   PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
  5697. };
  5698.  
  5699.  
  5700.  
  5701.  
  5702.  
  5703. enum
  5704. {
  5705.   PTHREAD_PRIO_NONE,
  5706.   PTHREAD_PRIO_INHERIT,
  5707.   PTHREAD_PRIO_PROTECT
  5708. };
  5709. # 114 "/usr/include/pthread.h" 3 4
  5710. enum
  5711. {
  5712.   PTHREAD_RWLOCK_PREFER_READER_NP,
  5713.   PTHREAD_RWLOCK_PREFER_WRITER_NP,
  5714.   PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
  5715.   PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
  5716. };
  5717. # 155 "/usr/include/pthread.h" 3 4
  5718. enum
  5719. {
  5720.   PTHREAD_INHERIT_SCHED,
  5721.  
  5722.   PTHREAD_EXPLICIT_SCHED
  5723.  
  5724. };
  5725.  
  5726.  
  5727.  
  5728. enum
  5729. {
  5730.   PTHREAD_SCOPE_SYSTEM,
  5731.  
  5732.   PTHREAD_SCOPE_PROCESS
  5733.  
  5734. };
  5735.  
  5736.  
  5737.  
  5738. enum
  5739. {
  5740.   PTHREAD_PROCESS_PRIVATE,
  5741.  
  5742.   PTHREAD_PROCESS_SHARED
  5743.  
  5744. };
  5745. # 190 "/usr/include/pthread.h" 3 4
  5746. struct _pthread_cleanup_buffer
  5747. {
  5748.   void (*__routine) (void *);
  5749.   void *__arg;
  5750.   int __canceltype;
  5751.   struct _pthread_cleanup_buffer *__prev;
  5752. };
  5753.  
  5754.  
  5755. enum
  5756. {
  5757.   PTHREAD_CANCEL_ENABLE,
  5758.  
  5759.   PTHREAD_CANCEL_DISABLE
  5760.  
  5761. };
  5762. enum
  5763. {
  5764.   PTHREAD_CANCEL_DEFERRED,
  5765.  
  5766.   PTHREAD_CANCEL_ASYNCHRONOUS
  5767.  
  5768. };
  5769. # 228 "/usr/include/pthread.h" 3 4
  5770. extern "C" {
  5771.  
  5772.  
  5773.  
  5774.  
  5775. extern int pthread_create (pthread_t *__restrict __newthread,
  5776.       const pthread_attr_t *__restrict __attr,
  5777.       void *(*__start_routine) (void *),
  5778.       void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3)));
  5779.  
  5780.  
  5781.  
  5782.  
  5783.  
  5784. extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
  5785.  
  5786.  
  5787.  
  5788.  
  5789.  
  5790.  
  5791.  
  5792. extern int pthread_join (pthread_t __th, void **__thread_return);
  5793.  
  5794.  
  5795.  
  5796.  
  5797. extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw ();
  5798.  
  5799.  
  5800.  
  5801.  
  5802.  
  5803.  
  5804.  
  5805. extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
  5806.      const struct timespec *__abstime);
  5807.  
  5808.  
  5809.  
  5810.  
  5811.  
  5812.  
  5813. extern int pthread_detach (pthread_t __th) throw ();
  5814.  
  5815.  
  5816.  
  5817. extern pthread_t pthread_self (void) throw () __attribute__ ((__const__));
  5818.  
  5819.  
  5820. extern int pthread_equal (pthread_t __thread1, pthread_t __thread2)
  5821.   throw () __attribute__ ((__const__));
  5822.  
  5823.  
  5824.  
  5825.  
  5826.  
  5827.  
  5828.  
  5829. extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1)));
  5830.  
  5831.  
  5832. extern int pthread_attr_destroy (pthread_attr_t *__attr)
  5833.      throw () __attribute__ ((__nonnull__ (1)));
  5834.  
  5835.  
  5836. extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
  5837.      int *__detachstate)
  5838.      throw () __attribute__ ((__nonnull__ (1, 2)));
  5839.  
  5840.  
  5841. extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
  5842.      int __detachstate)
  5843.      throw () __attribute__ ((__nonnull__ (1)));
  5844.  
  5845.  
  5846.  
  5847. extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
  5848.           size_t *__guardsize)
  5849.      throw () __attribute__ ((__nonnull__ (1, 2)));
  5850.  
  5851.  
  5852. extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
  5853.           size_t __guardsize)
  5854.      throw () __attribute__ ((__nonnull__ (1)));
  5855.  
  5856.  
  5857.  
  5858. extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr,
  5859.            struct sched_param *__restrict __param)
  5860.      throw () __attribute__ ((__nonnull__ (1, 2)));
  5861.  
  5862.  
  5863. extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
  5864.            const struct sched_param *__restrict
  5865.            __param) throw () __attribute__ ((__nonnull__ (1, 2)));
  5866.  
  5867.  
  5868. extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
  5869.      __attr, int *__restrict __policy)
  5870.      throw () __attribute__ ((__nonnull__ (1, 2)));
  5871.  
  5872.  
  5873. extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
  5874.      throw () __attribute__ ((__nonnull__ (1)));
  5875.  
  5876.  
  5877. extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
  5878.       __attr, int *__restrict __inherit)
  5879.      throw () __attribute__ ((__nonnull__ (1, 2)));
  5880.  
  5881.  
  5882. extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
  5883.       int __inherit)
  5884.      throw () __attribute__ ((__nonnull__ (1)));
  5885.  
  5886.  
  5887.  
  5888. extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
  5889.       int *__restrict __scope)
  5890.      throw () __attribute__ ((__nonnull__ (1, 2)));
  5891.  
  5892.  
  5893. extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
  5894.      throw () __attribute__ ((__nonnull__ (1)));
  5895.  
  5896.  
  5897. extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
  5898.           __attr, void **__restrict __stackaddr)
  5899.      throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
  5900.  
  5901.  
  5902.  
  5903.  
  5904.  
  5905. extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
  5906.           void *__stackaddr)
  5907.      throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
  5908.  
  5909.  
  5910. extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
  5911.           __attr, size_t *__restrict __stacksize)
  5912.      throw () __attribute__ ((__nonnull__ (1, 2)));
  5913.  
  5914.  
  5915.  
  5916.  
  5917. extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
  5918.           size_t __stacksize)
  5919.      throw () __attribute__ ((__nonnull__ (1)));
  5920.  
  5921.  
  5922.  
  5923. extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
  5924.       void **__restrict __stackaddr,
  5925.       size_t *__restrict __stacksize)
  5926.      throw () __attribute__ ((__nonnull__ (1, 2, 3)));
  5927.  
  5928.  
  5929.  
  5930.  
  5931. extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
  5932.       size_t __stacksize) throw () __attribute__ ((__nonnull__ (1)));
  5933.  
  5934.  
  5935.  
  5936.  
  5937.  
  5938. extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
  5939.      size_t __cpusetsize,
  5940.      const cpu_set_t *__cpuset)
  5941.      throw () __attribute__ ((__nonnull__ (1, 3)));
  5942.  
  5943.  
  5944.  
  5945. extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
  5946.      size_t __cpusetsize,
  5947.      cpu_set_t *__cpuset)
  5948.      throw () __attribute__ ((__nonnull__ (1, 3)));
  5949.  
  5950.  
  5951. extern int pthread_getattr_default_np (pthread_attr_t *__attr)
  5952.      throw () __attribute__ ((__nonnull__ (1)));
  5953.  
  5954.  
  5955.  
  5956. extern int pthread_setattr_default_np (const pthread_attr_t *__attr)
  5957.      throw () __attribute__ ((__nonnull__ (1)));
  5958.  
  5959.  
  5960.  
  5961.  
  5962. extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
  5963.      throw () __attribute__ ((__nonnull__ (2)));
  5964.  
  5965.  
  5966.  
  5967.  
  5968.  
  5969.  
  5970.  
  5971. extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
  5972.       const struct sched_param *__param)
  5973.      throw () __attribute__ ((__nonnull__ (3)));
  5974.  
  5975.  
  5976. extern int pthread_getschedparam (pthread_t __target_thread,
  5977.       int *__restrict __policy,
  5978.       struct sched_param *__restrict __param)
  5979.      throw () __attribute__ ((__nonnull__ (2, 3)));
  5980.  
  5981.  
  5982. extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
  5983.      throw ();
  5984.  
  5985.  
  5986.  
  5987.  
  5988. extern int pthread_getname_np (pthread_t __target_thread, char *__buf,
  5989.           size_t __buflen)
  5990.      throw () __attribute__ ((__nonnull__ (2)));
  5991.  
  5992.  
  5993. extern int pthread_setname_np (pthread_t __target_thread, const char *__name)
  5994.      throw () __attribute__ ((__nonnull__ (2)));
  5995.  
  5996.  
  5997.  
  5998.  
  5999.  
  6000. extern int pthread_getconcurrency (void) throw ();
  6001.  
  6002.  
  6003. extern int pthread_setconcurrency (int __level) throw ();
  6004.  
  6005.  
  6006.  
  6007.  
  6008.  
  6009.  
  6010.  
  6011. extern int pthread_yield (void) throw ();
  6012.  
  6013.  
  6014.  
  6015.  
  6016. extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
  6017.        const cpu_set_t *__cpuset)
  6018.      throw () __attribute__ ((__nonnull__ (3)));
  6019.  
  6020.  
  6021. extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
  6022.        cpu_set_t *__cpuset)
  6023.      throw () __attribute__ ((__nonnull__ (3)));
  6024. # 494 "/usr/include/pthread.h" 3 4
  6025. extern int pthread_once (pthread_once_t *__once_control,
  6026.     void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2)));
  6027. # 506 "/usr/include/pthread.h" 3 4
  6028. extern int pthread_setcancelstate (int __state, int *__oldstate);
  6029.  
  6030.  
  6031.  
  6032. extern int pthread_setcanceltype (int __type, int *__oldtype);
  6033.  
  6034.  
  6035. extern int pthread_cancel (pthread_t __th);
  6036.  
  6037.  
  6038.  
  6039.  
  6040. extern void pthread_testcancel (void);
  6041.  
  6042.  
  6043.  
  6044.  
  6045. typedef struct
  6046. {
  6047.   struct
  6048.   {
  6049.     __jmp_buf __cancel_jmp_buf;
  6050.     int __mask_was_saved;
  6051.   } __cancel_jmp_buf[1];
  6052.   void *__pad[4];
  6053. } __pthread_unwind_buf_t __attribute__ ((__aligned__));
  6054. # 540 "/usr/include/pthread.h" 3 4
  6055. struct __pthread_cleanup_frame
  6056. {
  6057.   void (*__cancel_routine) (void *);
  6058.   void *__cancel_arg;
  6059.   int __do_it;
  6060.   int __cancel_type;
  6061. };
  6062.  
  6063.  
  6064.  
  6065.  
  6066. class __pthread_cleanup_class
  6067. {
  6068.   void (*__cancel_routine) (void *);
  6069.   void *__cancel_arg;
  6070.   int __do_it;
  6071.   int __cancel_type;
  6072.  
  6073.  public:
  6074.   __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
  6075.     : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
  6076.   ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
  6077.   void __setdoit (int __newval) { __do_it = __newval; }
  6078.   void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
  6079.         &__cancel_type); }
  6080.   void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
  6081. };
  6082. # 742 "/usr/include/pthread.h" 3 4
  6083. struct __jmp_buf_tag;
  6084. extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw ();
  6085.  
  6086.  
  6087.  
  6088.  
  6089.  
  6090. extern int pthread_mutex_init (pthread_mutex_t *__mutex,
  6091.           const pthread_mutexattr_t *__mutexattr)
  6092.      throw () __attribute__ ((__nonnull__ (1)));
  6093.  
  6094.  
  6095. extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
  6096.      throw () __attribute__ ((__nonnull__ (1)));
  6097.  
  6098.  
  6099. extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
  6100.      throw () __attribute__ ((__nonnull__ (1)));
  6101.  
  6102.  
  6103. extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
  6104.      throw () __attribute__ ((__nonnull__ (1)));
  6105.  
  6106.  
  6107.  
  6108. extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
  6109.         const struct timespec *__restrict
  6110.         __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
  6111.  
  6112.  
  6113.  
  6114. extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
  6115.      throw () __attribute__ ((__nonnull__ (1)));
  6116.  
  6117.  
  6118.  
  6119. extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
  6120.       __restrict __mutex,
  6121.       int *__restrict __prioceiling)
  6122.      throw () __attribute__ ((__nonnull__ (1, 2)));
  6123.  
  6124.  
  6125.  
  6126. extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
  6127.       int __prioceiling,
  6128.       int *__restrict __old_ceiling)
  6129.      throw () __attribute__ ((__nonnull__ (1, 3)));
  6130.  
  6131.  
  6132.  
  6133.  
  6134. extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
  6135.      throw () __attribute__ ((__nonnull__ (1)));
  6136.  
  6137. extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
  6138.      throw () __attribute__ ((__nonnull__ (1)));
  6139. # 806 "/usr/include/pthread.h" 3 4
  6140. extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
  6141.      throw () __attribute__ ((__nonnull__ (1)));
  6142.  
  6143.  
  6144. extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
  6145.      throw () __attribute__ ((__nonnull__ (1)));
  6146.  
  6147.  
  6148. extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
  6149.       __restrict __attr,
  6150.       int *__restrict __pshared)
  6151.      throw () __attribute__ ((__nonnull__ (1, 2)));
  6152.  
  6153.  
  6154. extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
  6155.       int __pshared)
  6156.      throw () __attribute__ ((__nonnull__ (1)));
  6157.  
  6158.  
  6159.  
  6160. extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
  6161.           __attr, int *__restrict __kind)
  6162.      throw () __attribute__ ((__nonnull__ (1, 2)));
  6163.  
  6164.  
  6165.  
  6166.  
  6167. extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
  6168.      throw () __attribute__ ((__nonnull__ (1)));
  6169.  
  6170.  
  6171.  
  6172. extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
  6173.        __restrict __attr,
  6174.        int *__restrict __protocol)
  6175.      throw () __attribute__ ((__nonnull__ (1, 2)));
  6176.  
  6177.  
  6178.  
  6179. extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
  6180.        int __protocol)
  6181.      throw () __attribute__ ((__nonnull__ (1)));
  6182.  
  6183.  
  6184. extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
  6185.           __restrict __attr,
  6186.           int *__restrict __prioceiling)
  6187.      throw () __attribute__ ((__nonnull__ (1, 2)));
  6188.  
  6189.  
  6190. extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
  6191.           int __prioceiling)
  6192.      throw () __attribute__ ((__nonnull__ (1)));
  6193.  
  6194.  
  6195.  
  6196. extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
  6197.      int *__robustness)
  6198.      throw () __attribute__ ((__nonnull__ (1, 2)));
  6199.  
  6200. extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
  6201.         int *__robustness)
  6202.      throw () __attribute__ ((__nonnull__ (1, 2)));
  6203.  
  6204.  
  6205.  
  6206. extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
  6207.      int __robustness)
  6208.      throw () __attribute__ ((__nonnull__ (1)));
  6209.  
  6210. extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
  6211.         int __robustness)
  6212.      throw () __attribute__ ((__nonnull__ (1)));
  6213. # 888 "/usr/include/pthread.h" 3 4
  6214. extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
  6215.     const pthread_rwlockattr_t *__restrict
  6216.     __attr) throw () __attribute__ ((__nonnull__ (1)));
  6217.  
  6218.  
  6219. extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
  6220.      throw () __attribute__ ((__nonnull__ (1)));
  6221.  
  6222.  
  6223. extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
  6224.      throw () __attribute__ ((__nonnull__ (1)));
  6225.  
  6226.  
  6227. extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
  6228.   throw () __attribute__ ((__nonnull__ (1)));
  6229.  
  6230.  
  6231.  
  6232. extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
  6233.            const struct timespec *__restrict
  6234.            __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
  6235.  
  6236.  
  6237.  
  6238. extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
  6239.      throw () __attribute__ ((__nonnull__ (1)));
  6240.  
  6241.  
  6242. extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
  6243.      throw () __attribute__ ((__nonnull__ (1)));
  6244.  
  6245.  
  6246.  
  6247. extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
  6248.            const struct timespec *__restrict
  6249.            __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
  6250.  
  6251.  
  6252.  
  6253. extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
  6254.      throw () __attribute__ ((__nonnull__ (1)));
  6255.  
  6256.  
  6257.  
  6258.  
  6259.  
  6260. extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
  6261.      throw () __attribute__ ((__nonnull__ (1)));
  6262.  
  6263.  
  6264. extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
  6265.      throw () __attribute__ ((__nonnull__ (1)));
  6266.  
  6267.  
  6268. extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
  6269.        __restrict __attr,
  6270.        int *__restrict __pshared)
  6271.      throw () __attribute__ ((__nonnull__ (1, 2)));
  6272.  
  6273.  
  6274. extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
  6275.        int __pshared)
  6276.      throw () __attribute__ ((__nonnull__ (1)));
  6277.  
  6278.  
  6279. extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
  6280.        __restrict __attr,
  6281.        int *__restrict __pref)
  6282.      throw () __attribute__ ((__nonnull__ (1, 2)));
  6283.  
  6284.  
  6285. extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
  6286.        int __pref) throw () __attribute__ ((__nonnull__ (1)));
  6287.  
  6288.  
  6289.  
  6290.  
  6291.  
  6292.  
  6293.  
  6294. extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
  6295.          const pthread_condattr_t *__restrict __cond_attr)
  6296.      throw () __attribute__ ((__nonnull__ (1)));
  6297.  
  6298.  
  6299. extern int pthread_cond_destroy (pthread_cond_t *__cond)
  6300.      throw () __attribute__ ((__nonnull__ (1)));
  6301.  
  6302.  
  6303. extern int pthread_cond_signal (pthread_cond_t *__cond)
  6304.      throw () __attribute__ ((__nonnull__ (1)));
  6305.  
  6306.  
  6307. extern int pthread_cond_broadcast (pthread_cond_t *__cond)
  6308.      throw () __attribute__ ((__nonnull__ (1)));
  6309.  
  6310.  
  6311.  
  6312.  
  6313.  
  6314.  
  6315. extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
  6316.          pthread_mutex_t *__restrict __mutex)
  6317.      __attribute__ ((__nonnull__ (1, 2)));
  6318. # 1000 "/usr/include/pthread.h" 3 4
  6319. extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
  6320.        pthread_mutex_t *__restrict __mutex,
  6321.        const struct timespec *__restrict __abstime)
  6322.      __attribute__ ((__nonnull__ (1, 2, 3)));
  6323.  
  6324.  
  6325.  
  6326.  
  6327. extern int pthread_condattr_init (pthread_condattr_t *__attr)
  6328.      throw () __attribute__ ((__nonnull__ (1)));
  6329.  
  6330.  
  6331. extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
  6332.      throw () __attribute__ ((__nonnull__ (1)));
  6333.  
  6334.  
  6335. extern int pthread_condattr_getpshared (const pthread_condattr_t *
  6336.      __restrict __attr,
  6337.      int *__restrict __pshared)
  6338.      throw () __attribute__ ((__nonnull__ (1, 2)));
  6339.  
  6340.  
  6341. extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
  6342.      int __pshared) throw () __attribute__ ((__nonnull__ (1)));
  6343.  
  6344.  
  6345.  
  6346. extern int pthread_condattr_getclock (const pthread_condattr_t *
  6347.           __restrict __attr,
  6348.           __clockid_t *__restrict __clock_id)
  6349.      throw () __attribute__ ((__nonnull__ (1, 2)));
  6350.  
  6351.  
  6352. extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
  6353.           __clockid_t __clock_id)
  6354.      throw () __attribute__ ((__nonnull__ (1)));
  6355. # 1044 "/usr/include/pthread.h" 3 4
  6356. extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
  6357.      throw () __attribute__ ((__nonnull__ (1)));
  6358.  
  6359.  
  6360. extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
  6361.      throw () __attribute__ ((__nonnull__ (1)));
  6362.  
  6363.  
  6364. extern int pthread_spin_lock (pthread_spinlock_t *__lock)
  6365.      throw () __attribute__ ((__nonnull__ (1)));
  6366.  
  6367.  
  6368. extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
  6369.      throw () __attribute__ ((__nonnull__ (1)));
  6370.  
  6371.  
  6372. extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
  6373.      throw () __attribute__ ((__nonnull__ (1)));
  6374.  
  6375.  
  6376.  
  6377.  
  6378.  
  6379.  
  6380. extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
  6381.      const pthread_barrierattr_t *__restrict
  6382.      __attr, unsigned int __count)
  6383.      throw () __attribute__ ((__nonnull__ (1)));
  6384.  
  6385.  
  6386. extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
  6387.      throw () __attribute__ ((__nonnull__ (1)));
  6388.  
  6389.  
  6390. extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
  6391.      throw () __attribute__ ((__nonnull__ (1)));
  6392.  
  6393.  
  6394.  
  6395. extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
  6396.      throw () __attribute__ ((__nonnull__ (1)));
  6397.  
  6398.  
  6399. extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
  6400.      throw () __attribute__ ((__nonnull__ (1)));
  6401.  
  6402.  
  6403. extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
  6404.         __restrict __attr,
  6405.         int *__restrict __pshared)
  6406.      throw () __attribute__ ((__nonnull__ (1, 2)));
  6407.  
  6408.  
  6409. extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
  6410.         int __pshared)
  6411.      throw () __attribute__ ((__nonnull__ (1)));
  6412. # 1111 "/usr/include/pthread.h" 3 4
  6413. extern int pthread_key_create (pthread_key_t *__key,
  6414.           void (*__destr_function) (void *))
  6415.      throw () __attribute__ ((__nonnull__ (1)));
  6416.  
  6417.  
  6418. extern int pthread_key_delete (pthread_key_t __key) throw ();
  6419.  
  6420.  
  6421. extern void *pthread_getspecific (pthread_key_t __key) throw ();
  6422.  
  6423.  
  6424. extern int pthread_setspecific (pthread_key_t __key,
  6425.     const void *__pointer) throw () ;
  6426.  
  6427.  
  6428.  
  6429.  
  6430. extern int pthread_getcpuclockid (pthread_t __thread_id,
  6431.       __clockid_t *__clock_id)
  6432.      throw () __attribute__ ((__nonnull__ (2)));
  6433. # 1145 "/usr/include/pthread.h" 3 4
  6434. extern int pthread_atfork (void (*__prepare) (void),
  6435.       void (*__parent) (void),
  6436.       void (*__child) (void)) throw ();
  6437. # 1159 "/usr/include/pthread.h" 3 4
  6438. }
  6439. # 36 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 2 3
  6440. # 47 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3
  6441. typedef pthread_t __gthread_t;
  6442. typedef pthread_key_t __gthread_key_t;
  6443. typedef pthread_once_t __gthread_once_t;
  6444. typedef pthread_mutex_t __gthread_mutex_t;
  6445. typedef pthread_mutex_t __gthread_recursive_mutex_t;
  6446. typedef pthread_cond_t __gthread_cond_t;
  6447. typedef struct timespec __gthread_time_t;
  6448. # 101 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3
  6449. static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once")));
  6450. static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific")));
  6451. static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific")));
  6452.  
  6453. static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create")));
  6454. static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join")));
  6455. static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal")));
  6456. static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self")));
  6457. static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach")));
  6458.  
  6459. static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel")));
  6460.  
  6461. static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield")));
  6462.  
  6463. static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock")));
  6464. static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock")));
  6465.  
  6466. static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock")));
  6467.  
  6468. static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock")));
  6469. static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init")));
  6470. static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy")));
  6471.  
  6472. static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init")));
  6473. static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast")));
  6474. static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal")));
  6475. static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait")));
  6476. static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait")));
  6477. static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy")));
  6478.  
  6479. static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create")));
  6480. static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete")));
  6481. static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init")));
  6482. static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype")));
  6483. static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy")));
  6484. # 236 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3
  6485. static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create")));
  6486. # 246 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3
  6487. static inline int
  6488. __gthread_active_p (void)
  6489. {
  6490.   static void *const __gthread_active_ptr
  6491.     = __extension__ (void *) &__gthrw___pthread_key_create;
  6492.   return __gthread_active_ptr != 0;
  6493. }
  6494. # 658 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3
  6495. static inline int
  6496. __gthread_create (__gthread_t *__threadid, void *(*__func) (void*),
  6497.     void *__args)
  6498. {
  6499.   return __gthrw_pthread_create (__threadid, __null, __func, __args);
  6500. }
  6501.  
  6502. static inline int
  6503. __gthread_join (__gthread_t __threadid, void **__value_ptr)
  6504. {
  6505.   return __gthrw_pthread_join (__threadid, __value_ptr);
  6506. }
  6507.  
  6508. static inline int
  6509. __gthread_detach (__gthread_t __threadid)
  6510. {
  6511.   return __gthrw_pthread_detach (__threadid);
  6512. }
  6513.  
  6514. static inline int
  6515. __gthread_equal (__gthread_t __t1, __gthread_t __t2)
  6516. {
  6517.   return __gthrw_pthread_equal (__t1, __t2);
  6518. }
  6519.  
  6520. static inline __gthread_t
  6521. __gthread_self (void)
  6522. {
  6523.   return __gthrw_pthread_self ();
  6524. }
  6525.  
  6526. static inline int
  6527. __gthread_yield (void)
  6528. {
  6529.   return __gthrw_sched_yield ();
  6530. }
  6531.  
  6532. static inline int
  6533. __gthread_once (__gthread_once_t *__once, void (*__func) (void))
  6534. {
  6535.   if (__gthread_active_p ())
  6536.     return __gthrw_pthread_once (__once, __func);
  6537.   else
  6538.     return -1;
  6539. }
  6540.  
  6541. static inline int
  6542. __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
  6543. {
  6544.   return __gthrw_pthread_key_create (__key, __dtor);
  6545. }
  6546.  
  6547. static inline int
  6548. __gthread_key_delete (__gthread_key_t __key)
  6549. {
  6550.   return __gthrw_pthread_key_delete (__key);
  6551. }
  6552.  
  6553. static inline void *
  6554. __gthread_getspecific (__gthread_key_t __key)
  6555. {
  6556.   return __gthrw_pthread_getspecific (__key);
  6557. }
  6558.  
  6559. static inline int
  6560. __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
  6561. {
  6562.   return __gthrw_pthread_setspecific (__key, __ptr);
  6563. }
  6564.  
  6565. static inline void
  6566. __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
  6567. {
  6568.   if (__gthread_active_p ())
  6569.     __gthrw_pthread_mutex_init (__mutex, __null);
  6570. }
  6571.  
  6572. static inline int
  6573. __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
  6574. {
  6575.   if (__gthread_active_p ())
  6576.     return __gthrw_pthread_mutex_destroy (__mutex);
  6577.   else
  6578.     return 0;
  6579. }
  6580.  
  6581. static inline int
  6582. __gthread_mutex_lock (__gthread_mutex_t *__mutex)
  6583. {
  6584.   if (__gthread_active_p ())
  6585.     return __gthrw_pthread_mutex_lock (__mutex);
  6586.   else
  6587.     return 0;
  6588. }
  6589.  
  6590. static inline int
  6591. __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
  6592. {
  6593.   if (__gthread_active_p ())
  6594.     return __gthrw_pthread_mutex_trylock (__mutex);
  6595.   else
  6596.     return 0;
  6597. }
  6598.  
  6599.  
  6600. static inline int
  6601. __gthread_mutex_timedlock (__gthread_mutex_t *__mutex,
  6602.       const __gthread_time_t *__abs_timeout)
  6603. {
  6604.   if (__gthread_active_p ())
  6605.     return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout);
  6606.   else
  6607.     return 0;
  6608. }
  6609.  
  6610.  
  6611. static inline int
  6612. __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
  6613. {
  6614.   if (__gthread_active_p ())
  6615.     return __gthrw_pthread_mutex_unlock (__mutex);
  6616.   else
  6617.     return 0;
  6618. }
  6619. # 807 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3
  6620. static inline int
  6621. __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
  6622. {
  6623.   return __gthread_mutex_lock (__mutex);
  6624. }
  6625.  
  6626. static inline int
  6627. __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
  6628. {
  6629.   return __gthread_mutex_trylock (__mutex);
  6630. }
  6631.  
  6632.  
  6633. static inline int
  6634. __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex,
  6635.          const __gthread_time_t *__abs_timeout)
  6636. {
  6637.   return __gthread_mutex_timedlock (__mutex, __abs_timeout);
  6638. }
  6639.  
  6640.  
  6641. static inline int
  6642. __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
  6643. {
  6644.   return __gthread_mutex_unlock (__mutex);
  6645. }
  6646.  
  6647. static inline int
  6648. __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
  6649. {
  6650.   return __gthread_mutex_destroy (__mutex);
  6651. }
  6652. # 849 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h" 3
  6653. static inline int
  6654. __gthread_cond_broadcast (__gthread_cond_t *__cond)
  6655. {
  6656.   return __gthrw_pthread_cond_broadcast (__cond);
  6657. }
  6658.  
  6659. static inline int
  6660. __gthread_cond_signal (__gthread_cond_t *__cond)
  6661. {
  6662.   return __gthrw_pthread_cond_signal (__cond);
  6663. }
  6664.  
  6665. static inline int
  6666. __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex)
  6667. {
  6668.   return __gthrw_pthread_cond_wait (__cond, __mutex);
  6669. }
  6670.  
  6671. static inline int
  6672. __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex,
  6673.      const __gthread_time_t *__abs_timeout)
  6674. {
  6675.   return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout);
  6676. }
  6677.  
  6678. static inline int
  6679. __gthread_cond_wait_recursive (__gthread_cond_t *__cond,
  6680.           __gthread_recursive_mutex_t *__mutex)
  6681. {
  6682.   return __gthread_cond_wait (__cond, __mutex);
  6683. }
  6684.  
  6685. static inline int
  6686. __gthread_cond_destroy (__gthread_cond_t* __cond)
  6687. {
  6688.   return __gthrw_pthread_cond_destroy (__cond);
  6689. }
  6690. # 149 "/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h" 2 3
  6691.  
  6692.  
  6693. #pragma GCC visibility pop
  6694. # 36 "/usr/include/c++/5/ext/atomicity.h" 2 3
  6695. # 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h" 1 3
  6696. # 32 "/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h" 3
  6697. typedef int _Atomic_word;
  6698. # 37 "/usr/include/c++/5/ext/atomicity.h" 2 3
  6699.  
  6700. namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
  6701. {
  6702.  
  6703.  
  6704.  
  6705.  
  6706.  
  6707.  
  6708.  
  6709.   static inline _Atomic_word
  6710.   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
  6711.   { return __atomic_fetch_add(__mem, __val, 4); }
  6712.  
  6713.   static inline void
  6714.   __atomic_add(volatile _Atomic_word* __mem, int __val)
  6715.   { __atomic_fetch_add(__mem, __val, 4); }
  6716. # 64 "/usr/include/c++/5/ext/atomicity.h" 3
  6717.   static inline _Atomic_word
  6718.   __exchange_and_add_single(_Atomic_word* __mem, int __val)
  6719.   {
  6720.     _Atomic_word __result = *__mem;
  6721.     *__mem += __val;
  6722.     return __result;
  6723.   }
  6724.  
  6725.   static inline void
  6726.   __atomic_add_single(_Atomic_word* __mem, int __val)
  6727.   { *__mem += __val; }
  6728.  
  6729.   static inline _Atomic_word
  6730.   __attribute__ ((__unused__))
  6731.   __exchange_and_add_dispatch(_Atomic_word* __mem, int __val)
  6732.   {
  6733.  
  6734.     if (__gthread_active_p())
  6735.       return __exchange_and_add(__mem, __val);
  6736.     else
  6737.       return __exchange_and_add_single(__mem, __val);
  6738.  
  6739.  
  6740.  
  6741.   }
  6742.  
  6743.   static inline void
  6744.   __attribute__ ((__unused__))
  6745.   __atomic_add_dispatch(_Atomic_word* __mem, int __val)
  6746.   {
  6747.  
  6748.     if (__gthread_active_p())
  6749.       __atomic_add(__mem, __val);
  6750.     else
  6751.       __atomic_add_single(__mem, __val);
  6752.  
  6753.  
  6754.  
  6755.   }
  6756.  
  6757.  
  6758. }
  6759. # 40 "/usr/include/c++/5/bits/ios_base.h" 2 3
  6760.  
  6761. # 1 "/usr/include/c++/5/bits/locale_classes.h" 1 3
  6762. # 37 "/usr/include/c++/5/bits/locale_classes.h" 3
  6763.        
  6764. # 38 "/usr/include/c++/5/bits/locale_classes.h" 3
  6765.  
  6766.  
  6767. # 1 "/usr/include/c++/5/string" 1 3
  6768. # 36 "/usr/include/c++/5/string" 3
  6769.        
  6770. # 37 "/usr/include/c++/5/string" 3
  6771.  
  6772.  
  6773.  
  6774.  
  6775. # 1 "/usr/include/c++/5/bits/allocator.h" 1 3
  6776. # 46 "/usr/include/c++/5/bits/allocator.h" 3
  6777. # 1 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h" 1 3
  6778. # 33 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h" 3
  6779. # 1 "/usr/include/c++/5/ext/new_allocator.h" 1 3
  6780. # 33 "/usr/include/c++/5/ext/new_allocator.h" 3
  6781. # 1 "/usr/include/c++/5/new" 1 3
  6782. # 37 "/usr/include/c++/5/new" 3
  6783.        
  6784. # 38 "/usr/include/c++/5/new" 3
  6785.  
  6786.  
  6787.  
  6788.  
  6789. #pragma GCC visibility push(default)
  6790.  
  6791. extern "C++" {
  6792.  
  6793. namespace std
  6794. {
  6795.  
  6796.  
  6797.  
  6798.  
  6799.  
  6800.  
  6801.   class bad_alloc : public exception
  6802.   {
  6803.   public:
  6804.     bad_alloc() throw() { }
  6805.  
  6806.  
  6807.  
  6808.     virtual ~bad_alloc() throw();
  6809.  
  6810.  
  6811.     virtual const char* what() const throw();
  6812.   };
  6813. # 82 "/usr/include/c++/5/new" 3
  6814.   struct nothrow_t { };
  6815.  
  6816.   extern const nothrow_t nothrow;
  6817.  
  6818.  
  6819.  
  6820.   typedef void (*new_handler)();
  6821.  
  6822.  
  6823.  
  6824.   new_handler set_new_handler(new_handler) throw();
  6825.  
  6826.  
  6827.  
  6828.  
  6829.  
  6830. }
  6831. # 111 "/usr/include/c++/5/new" 3
  6832. void* operator new(std::size_t) throw(std::bad_alloc)
  6833.   __attribute__((__externally_visible__));
  6834. void* operator new[](std::size_t) throw(std::bad_alloc)
  6835.   __attribute__((__externally_visible__));
  6836. void operator delete(void*) throw()
  6837.   __attribute__((__externally_visible__));
  6838. void operator delete[](void*) throw()
  6839.   __attribute__((__externally_visible__));
  6840. void* operator new(std::size_t, const std::nothrow_t&) throw()
  6841.   __attribute__((__externally_visible__));
  6842. void* operator new[](std::size_t, const std::nothrow_t&) throw()
  6843.   __attribute__((__externally_visible__));
  6844. void operator delete(void*, const std::nothrow_t&) throw()
  6845.   __attribute__((__externally_visible__));
  6846. void operator delete[](void*, const std::nothrow_t&) throw()
  6847.   __attribute__((__externally_visible__));
  6848.  
  6849.  
  6850. inline void* operator new(std::size_t, void* __p) throw()
  6851. { return __p; }
  6852. inline void* operator new[](std::size_t, void* __p) throw()
  6853. { return __p; }
  6854.  
  6855.  
  6856. inline void operator delete (void*, void*) throw() { }
  6857. inline void operator delete[](void*, void*) throw() { }
  6858.  
  6859. }
  6860.  
  6861. #pragma GCC visibility pop
  6862. # 34 "/usr/include/c++/5/ext/new_allocator.h" 2 3
  6863.  
  6864.  
  6865.  
  6866.  
  6867.  
  6868.  
  6869. namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
  6870. {
  6871.  
  6872.  
  6873.   using std::size_t;
  6874.   using std::ptrdiff_t;
  6875. # 57 "/usr/include/c++/5/ext/new_allocator.h" 3
  6876.   template<typename _Tp>
  6877.     class new_allocator
  6878.     {
  6879.     public:
  6880.       typedef size_t size_type;
  6881.       typedef ptrdiff_t difference_type;
  6882.       typedef _Tp* pointer;
  6883.       typedef const _Tp* const_pointer;
  6884.       typedef _Tp& reference;
  6885.       typedef const _Tp& const_reference;
  6886.       typedef _Tp value_type;
  6887.  
  6888.       template<typename _Tp1>
  6889.         struct rebind
  6890.         { typedef new_allocator<_Tp1> other; };
  6891.  
  6892.  
  6893.  
  6894.  
  6895.  
  6896.  
  6897.  
  6898.       new_allocator() throw() { }
  6899.  
  6900.       new_allocator(const new_allocator&) throw() { }
  6901.  
  6902.       template<typename _Tp1>
  6903.         new_allocator(const new_allocator<_Tp1>&) throw() { }
  6904.  
  6905.       ~new_allocator() throw() { }
  6906.  
  6907.       pointer
  6908.       address(reference __x) const
  6909.       { return std::__addressof(__x); }
  6910.  
  6911.       const_pointer
  6912.       address(const_reference __x) const
  6913.       { return std::__addressof(__x); }
  6914.  
  6915.  
  6916.  
  6917.       pointer
  6918.       allocate(size_type __n, const void* = 0)
  6919.       {
  6920.  if (__n > this->max_size())
  6921.    std::__throw_bad_alloc();
  6922.  
  6923.  return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
  6924.       }
  6925.  
  6926.  
  6927.       void
  6928.       deallocate(pointer __p, size_type)
  6929.       { ::operator delete(__p); }
  6930.  
  6931.       size_type
  6932.       max_size() const throw()
  6933.       { return size_t(-1) / sizeof(_Tp); }
  6934. # 128 "/usr/include/c++/5/ext/new_allocator.h" 3
  6935.       void
  6936.       construct(pointer __p, const _Tp& __val)
  6937.       { ::new((void *)__p) _Tp(__val); }
  6938.  
  6939.       void
  6940.       destroy(pointer __p) { __p->~_Tp(); }
  6941.  
  6942.     };
  6943.  
  6944.   template<typename _Tp>
  6945.     inline bool
  6946.     operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
  6947.     { return true; }
  6948.  
  6949.   template<typename _Tp>
  6950.     inline bool
  6951.     operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
  6952.     { return false; }
  6953.  
  6954.  
  6955. }
  6956. # 34 "/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h" 2 3
  6957. # 47 "/usr/include/c++/5/bits/allocator.h" 2 3
  6958.  
  6959.  
  6960.  
  6961.  
  6962.  
  6963. namespace std __attribute__ ((__visibility__ ("default")))
  6964. {
  6965.  
  6966.  
  6967.  
  6968.  
  6969.  
  6970.  
  6971.  
  6972.  
  6973.   template<>
  6974.     class allocator<void>
  6975.     {
  6976.     public:
  6977.       typedef size_t size_type;
  6978.       typedef ptrdiff_t difference_type;
  6979.       typedef void* pointer;
  6980.       typedef const void* const_pointer;
  6981.       typedef void value_type;
  6982.  
  6983.       template<typename _Tp1>
  6984.         struct rebind
  6985.         { typedef allocator<_Tp1> other; };
  6986.  
  6987.  
  6988.  
  6989.  
  6990.  
  6991.  
  6992.     };
  6993. # 91 "/usr/include/c++/5/bits/allocator.h" 3
  6994.   template<typename _Tp>
  6995.     class allocator: public __gnu_cxx::new_allocator<_Tp>
  6996.     {
  6997.    public:
  6998.       typedef size_t size_type;
  6999.       typedef ptrdiff_t difference_type;
  7000.       typedef _Tp* pointer;
  7001.       typedef const _Tp* const_pointer;
  7002.       typedef _Tp& reference;
  7003.       typedef const _Tp& const_reference;
  7004.       typedef _Tp value_type;
  7005.  
  7006.       template<typename _Tp1>
  7007.         struct rebind
  7008.         { typedef allocator<_Tp1> other; };
  7009.  
  7010.  
  7011.  
  7012.  
  7013.  
  7014.  
  7015.  
  7016.       allocator() throw() { }
  7017.  
  7018.       allocator(const allocator& __a) throw()
  7019.       : __gnu_cxx::new_allocator<_Tp>(__a) { }
  7020.  
  7021.       template<typename _Tp1>
  7022.         allocator(const allocator<_Tp1>&) throw() { }
  7023.  
  7024.       ~allocator() throw() { }
  7025.  
  7026.  
  7027.     };
  7028.  
  7029.   template<typename _T1, typename _T2>
  7030.     inline bool
  7031.     operator==(const allocator<_T1>&, const allocator<_T2>&)
  7032.     throw()
  7033.     { return true; }
  7034.  
  7035.   template<typename _Tp>
  7036.     inline bool
  7037.     operator==(const allocator<_Tp>&, const allocator<_Tp>&)
  7038.     throw()
  7039.     { return true; }
  7040.  
  7041.   template<typename _T1, typename _T2>
  7042.     inline bool
  7043.     operator!=(const allocator<_T1>&, const allocator<_T2>&)
  7044.     throw()
  7045.     { return false; }
  7046.  
  7047.   template<typename _Tp>
  7048.     inline bool
  7049.     operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
  7050.     throw()
  7051.     { return false; }
  7052.  
  7053.  
  7054.  
  7055.  
  7056.  
  7057.  
  7058.   extern template class allocator<char>;
  7059.   extern template class allocator<wchar_t>;
  7060.  
  7061.  
  7062.  
  7063.  
  7064.  
  7065.  
  7066.   template<typename _Alloc, bool = __is_empty(_Alloc)>
  7067.     struct __alloc_swap
  7068.     { static void _S_do_it(_Alloc&, _Alloc&) { } };
  7069.  
  7070.   template<typename _Alloc>
  7071.     struct __alloc_swap<_Alloc, false>
  7072.     {
  7073.       static void
  7074.       _S_do_it(_Alloc& __one, _Alloc& __two)
  7075.       {
  7076.  
  7077.  if (__one != __two)
  7078.    swap(__one, __two);
  7079.       }
  7080.     };
  7081.  
  7082.  
  7083.   template<typename _Alloc, bool = __is_empty(_Alloc)>
  7084.     struct __alloc_neq
  7085.     {
  7086.       static bool
  7087.       _S_do_it(const _Alloc&, const _Alloc&)
  7088.       { return false; }
  7089.     };
  7090.  
  7091.   template<typename _Alloc>
  7092.     struct __alloc_neq<_Alloc, false>
  7093.     {
  7094.       static bool
  7095.       _S_do_it(const _Alloc& __one, const _Alloc& __two)
  7096.       { return __one != __two; }
  7097.     };
  7098. # 226 "/usr/include/c++/5/bits/allocator.h" 3
  7099.  
  7100. }
  7101. # 42 "/usr/include/c++/5/string" 2 3
  7102.  
  7103.  
  7104. # 1 "/usr/include/c++/5/bits/ostream_insert.h" 1 3
  7105. # 33 "/usr/include/c++/5/bits/ostream_insert.h" 3
  7106.        
  7107. # 34 "/usr/include/c++/5/bits/ostream_insert.h" 3
  7108.  
  7109.  
  7110. # 1 "/usr/include/c++/5/bits/cxxabi_forced.h" 1 3
  7111. # 34 "/usr/include/c++/5/bits/cxxabi_forced.h" 3
  7112.        
  7113. # 35 "/usr/include/c++/5/bits/cxxabi_forced.h" 3
  7114.  
  7115. #pragma GCC visibility push(default)
  7116.  
  7117.  
  7118. namespace __cxxabiv1
  7119. {
  7120.  
  7121.  
  7122.  
  7123.  
  7124.  
  7125.  
  7126.  
  7127.   class __forced_unwind
  7128.   {
  7129.     virtual ~__forced_unwind() throw();
  7130.  
  7131.  
  7132.     virtual void __pure_dummy() = 0;
  7133.   };
  7134. }
  7135.  
  7136.  
  7137. #pragma GCC visibility pop
  7138. # 37 "/usr/include/c++/5/bits/ostream_insert.h" 2 3
  7139.  
  7140. namespace std __attribute__ ((__visibility__ ("default")))
  7141. {
  7142.  
  7143.  
  7144.   template<typename _CharT, typename _Traits>
  7145.     inline void
  7146.     __ostream_write(basic_ostream<_CharT, _Traits>& __out,
  7147.       const _CharT* __s, streamsize __n)
  7148.     {
  7149.       typedef basic_ostream<_CharT, _Traits> __ostream_type;
  7150.       typedef typename __ostream_type::ios_base __ios_base;
  7151.  
  7152.       const streamsize __put = __out.rdbuf()->sputn(__s, __n);
  7153.       if (__put != __n)
  7154.  __out.setstate(__ios_base::badbit);
  7155.     }
  7156.  
  7157.   template<typename _CharT, typename _Traits>
  7158.     inline void
  7159.     __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n)
  7160.     {
  7161.       typedef basic_ostream<_CharT, _Traits> __ostream_type;
  7162.       typedef typename __ostream_type::ios_base __ios_base;
  7163.  
  7164.       const _CharT __c = __out.fill();
  7165.       for (; __n > 0; --__n)
  7166.  {
  7167.    const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c);
  7168.    if (_Traits::eq_int_type(__put, _Traits::eof()))
  7169.      {
  7170.        __out.setstate(__ios_base::badbit);
  7171.        break;
  7172.      }
  7173.  }
  7174.     }
  7175.  
  7176.   template<typename _CharT, typename _Traits>
  7177.     basic_ostream<_CharT, _Traits>&
  7178.     __ostream_insert(basic_ostream<_CharT, _Traits>& __out,
  7179.        const _CharT* __s, streamsize __n)
  7180.     {
  7181.       typedef basic_ostream<_CharT, _Traits> __ostream_type;
  7182.       typedef typename __ostream_type::ios_base __ios_base;
  7183.  
  7184.       typename __ostream_type::sentry __cerb(__out);
  7185.       if (__cerb)
  7186.  {
  7187.    try
  7188.      {
  7189.        const streamsize __w = __out.width();
  7190.        if (__w > __n)
  7191.   {
  7192.     const bool __left = ((__out.flags()
  7193.      & __ios_base::adjustfield)
  7194.            == __ios_base::left);
  7195.     if (!__left)
  7196.       __ostream_fill(__out, __w - __n);
  7197.     if (__out.good())
  7198.       __ostream_write(__out, __s, __n);
  7199.     if (__left && __out.good())
  7200.       __ostream_fill(__out, __w - __n);
  7201.   }
  7202.        else
  7203.   __ostream_write(__out, __s, __n);
  7204.        __out.width(0);
  7205.      }
  7206.    catch(__cxxabiv1::__forced_unwind&)
  7207.      {
  7208.        __out._M_setstate(__ios_base::badbit);
  7209.        throw;
  7210.      }
  7211.    catch(...)
  7212.      { __out._M_setstate(__ios_base::badbit); }
  7213.  }
  7214.       return __out;
  7215.     }
  7216.  
  7217.  
  7218.  
  7219.  
  7220.   extern template ostream& __ostream_insert(ostream&, const char*, streamsize);
  7221.  
  7222.  
  7223.   extern template wostream& __ostream_insert(wostream&, const wchar_t*,
  7224.           streamsize);
  7225.  
  7226.  
  7227.  
  7228.  
  7229. }
  7230. # 45 "/usr/include/c++/5/string" 2 3
  7231.  
  7232.  
  7233.  
  7234. # 1 "/usr/include/c++/5/bits/stl_function.h" 1 3
  7235. # 63 "/usr/include/c++/5/bits/stl_function.h" 3
  7236. namespace std __attribute__ ((__visibility__ ("default")))
  7237. {
  7238.  
  7239. # 104 "/usr/include/c++/5/bits/stl_function.h" 3
  7240.   template<typename _Arg, typename _Result>
  7241.     struct unary_function
  7242.     {
  7243.  
  7244.       typedef _Arg argument_type;
  7245.  
  7246.  
  7247.       typedef _Result result_type;
  7248.     };
  7249.  
  7250.  
  7251.  
  7252.  
  7253.   template<typename _Arg1, typename _Arg2, typename _Result>
  7254.     struct binary_function
  7255.     {
  7256.  
  7257.       typedef _Arg1 first_argument_type;
  7258.  
  7259.  
  7260.       typedef _Arg2 second_argument_type;
  7261.  
  7262.  
  7263.       typedef _Result result_type;
  7264.     };
  7265. # 166 "/usr/include/c++/5/bits/stl_function.h" 3
  7266.   template<typename _Tp>
  7267.     struct plus : public binary_function<_Tp, _Tp, _Tp>
  7268.     {
  7269.      
  7270.       _Tp
  7271.       operator()(const _Tp& __x, const _Tp& __y) const
  7272.       { return __x + __y; }
  7273.     };
  7274.  
  7275.  
  7276.   template<typename _Tp>
  7277.     struct minus : public binary_function<_Tp, _Tp, _Tp>
  7278.     {
  7279.      
  7280.       _Tp
  7281.       operator()(const _Tp& __x, const _Tp& __y) const
  7282.       { return __x - __y; }
  7283.     };
  7284.  
  7285.  
  7286.   template<typename _Tp>
  7287.     struct multiplies : public binary_function<_Tp, _Tp, _Tp>
  7288.     {
  7289.      
  7290.       _Tp
  7291.       operator()(const _Tp& __x, const _Tp& __y) const
  7292.       { return __x * __y; }
  7293.     };
  7294.  
  7295.  
  7296.   template<typename _Tp>
  7297.     struct divides : public binary_function<_Tp, _Tp, _Tp>
  7298.     {
  7299.      
  7300.       _Tp
  7301.       operator()(const _Tp& __x, const _Tp& __y) const
  7302.       { return __x / __y; }
  7303.     };
  7304.  
  7305.  
  7306.   template<typename _Tp>
  7307.     struct modulus : public binary_function<_Tp, _Tp, _Tp>
  7308.     {
  7309.      
  7310.       _Tp
  7311.       operator()(const _Tp& __x, const _Tp& __y) const
  7312.       { return __x % __y; }
  7313.     };
  7314.  
  7315.  
  7316.   template<typename _Tp>
  7317.     struct negate : public unary_function<_Tp, _Tp>
  7318.     {
  7319.      
  7320.       _Tp
  7321.       operator()(const _Tp& __x) const
  7322.       { return -__x; }
  7323.     };