sbuild (Debian sbuild) 0.89.3+deb13u4 (28 December 2025) on debian-ci-siliconvalley +==============================================================================+ | botan3 3.12.0+dfsg-2 (armhf) Thu, 03 Sep 2026 09:25:37 +0000 | +==============================================================================+ Package: botan3 Version: 3.12.0+dfsg-2 Source Version: 3.12.0+dfsg-2 Distribution: unstable Machine Architecture: amd64 Host Architecture: armhf Build Architecture: amd64 Build Profiles: cross nocheck Build Type: any I: Unpacking /home/crossqa/.cache/sbuild/unstable-amd64-sbuild.tar.zst to /tmp/tmp.sbuild.61j6QVYFz9... I: Setting up the chroot... I: Creating chroot session... I: Setting up log color... I: Setting up apt archive... +------------------------------------------------------------------------------+ | Update chroot Thu, 03 Sep 2026 09:25:42 +0000 | +------------------------------------------------------------------------------+ Get:1 http://localhost:3142/debian unstable InRelease [193 kB] Get:2 http://localhost:3142/debian unstable/main Sources [11.9 MB] Get:3 http://localhost:3142/debian unstable/main armhf Packages [10.1 MB] Get:4 http://localhost:3142/debian unstable/main amd64 Packages [10.8 MB] Fetched 33.0 MB in 3s (11.3 MB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... Calculating upgrade... The following packages will be upgraded: cpp-16 cpp-16-x86-64-linux-gnu g++-16 g++-16-x86-64-linux-gnu gcc-16 gcc-16-base gcc-16-x86-64-linux-gnu libasan8 libatomic1 libcc1-0 libgcc-16-dev libgcc-s1 libgomp1 libhwasan0 libitm1 liblsan0 libquadmath0 libstdc++-16-dev libstdc++6 libtsan2 libubsan1 21 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 262 MB of archives. After this operation, 42.0 kB of additional disk space will be used. Get:1 http://localhost:3142/debian unstable/main amd64 libubsan1 amd64 16.2.0-2 [1136 kB] Get:2 http://localhost:3142/debian unstable/main amd64 libgomp1 amd64 16.2.0-2 [151 kB] Get:3 http://localhost:3142/debian unstable/main amd64 libitm1 amd64 16.2.0-2 [27.0 kB] Get:4 http://localhost:3142/debian unstable/main amd64 libatomic1 amd64 16.2.0-2 [10.4 kB] Get:5 http://localhost:3142/debian unstable/main amd64 libasan8 amd64 16.2.0-2 [2889 kB] Get:6 http://localhost:3142/debian unstable/main amd64 liblsan0 amd64 16.2.0-2 [1281 kB] Get:7 http://localhost:3142/debian unstable/main amd64 libhwasan0 amd64 16.2.0-2 [1580 kB] Get:8 http://localhost:3142/debian unstable/main amd64 libquadmath0 amd64 16.2.0-2 [147 kB] Get:9 http://localhost:3142/debian unstable/main amd64 gcc-16-base amd64 16.2.0-2 [38.4 kB] Get:10 http://localhost:3142/debian unstable/main amd64 libstdc++6 amd64 16.2.0-2 [823 kB] Get:11 http://localhost:3142/debian unstable/main amd64 g++-16 amd64 16.2.0-2 [35.2 kB] Get:12 http://localhost:3142/debian unstable/main amd64 gcc-16 amd64 16.2.0-2 [535 kB] Get:13 http://localhost:3142/debian unstable/main amd64 cpp-16 amd64 16.2.0-2 [1272 B] Get:14 http://localhost:3142/debian unstable/main amd64 cpp-16-x86-64-linux-gnu amd64 16.2.0-2 [76.0 MB] Get:15 http://localhost:3142/debian unstable/main amd64 libcc1-0 amd64 16.2.0-2 [46.1 kB] Get:16 http://localhost:3142/debian unstable/main amd64 gcc-16-x86-64-linux-gnu amd64 16.2.0-2 [87.1 MB] Get:17 http://localhost:3142/debian unstable/main amd64 g++-16-x86-64-linux-gnu amd64 16.2.0-2 [82.0 MB] Get:18 http://localhost:3142/debian unstable/main amd64 libstdc++-16-dev amd64 16.2.0-2 [2754 kB] Get:19 http://localhost:3142/debian unstable/main amd64 libgcc-16-dev amd64 16.2.0-2 [2782 kB] Get:20 http://localhost:3142/debian unstable/main amd64 libtsan2 amd64 16.2.0-2 [2574 kB] Get:21 http://localhost:3142/debian unstable/main amd64 libgcc-s1 amd64 16.2.0-2 [74.1 kB] Fetched 262 MB in 1s (213 MB/s) (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12107 files and directories currently installed.) Preparing to unpack .../0-libubsan1_16.2.0-2_amd64.deb ... Unpacking libubsan1:amd64 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../1-libgomp1_16.2.0-2_amd64.deb ... Unpacking libgomp1:amd64 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../2-libitm1_16.2.0-2_amd64.deb ... Unpacking libitm1:amd64 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../3-libatomic1_16.2.0-2_amd64.deb ... Unpacking libatomic1:amd64 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../4-libasan8_16.2.0-2_amd64.deb ... Unpacking libasan8:amd64 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../5-liblsan0_16.2.0-2_amd64.deb ... Unpacking liblsan0:amd64 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../6-libhwasan0_16.2.0-2_amd64.deb ... Unpacking libhwasan0:amd64 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../7-libquadmath0_16.2.0-2_amd64.deb ... Unpacking libquadmath0:amd64 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../8-gcc-16-base_16.2.0-2_amd64.deb ... Unpacking gcc-16-base:amd64 (16.2.0-2) over (16.2.0-1) ... Setting up gcc-16-base:amd64 (16.2.0-2) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12107 files and directories currently installed.) Preparing to unpack .../libstdc++6_16.2.0-2_amd64.deb ... Unpacking libstdc++6:amd64 (16.2.0-2) over (16.2.0-1) ... Setting up libstdc++6:amd64 (16.2.0-2) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12107 files and directories currently installed.) Preparing to unpack .../00-g++-16_16.2.0-2_amd64.deb ... Unpacking g++-16 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../01-gcc-16_16.2.0-2_amd64.deb ... Unpacking gcc-16 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../02-cpp-16_16.2.0-2_amd64.deb ... Unpacking cpp-16 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../03-cpp-16-x86-64-linux-gnu_16.2.0-2_amd64.deb ... Unpacking cpp-16-x86-64-linux-gnu (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../04-libcc1-0_16.2.0-2_amd64.deb ... Unpacking libcc1-0:amd64 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../05-gcc-16-x86-64-linux-gnu_16.2.0-2_amd64.deb ... Unpacking gcc-16-x86-64-linux-gnu (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../06-g++-16-x86-64-linux-gnu_16.2.0-2_amd64.deb ... Unpacking g++-16-x86-64-linux-gnu (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../07-libstdc++-16-dev_16.2.0-2_amd64.deb ... Unpacking libstdc++-16-dev:amd64 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../08-libgcc-16-dev_16.2.0-2_amd64.deb ... Unpacking libgcc-16-dev:amd64 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../09-libtsan2_16.2.0-2_amd64.deb ... Unpacking libtsan2:amd64 (16.2.0-2) over (16.2.0-1) ... Preparing to unpack .../10-libgcc-s1_16.2.0-2_amd64.deb ... Unpacking libgcc-s1:amd64 (16.2.0-2) over (16.2.0-1) ... Setting up libgcc-s1:amd64 (16.2.0-2) ... Setting up libgomp1:amd64 (16.2.0-2) ... Setting up libquadmath0:amd64 (16.2.0-2) ... Setting up libatomic1:amd64 (16.2.0-2) ... Setting up libubsan1:amd64 (16.2.0-2) ... Setting up libhwasan0:amd64 (16.2.0-2) ... Setting up libasan8:amd64 (16.2.0-2) ... Setting up cpp-16-x86-64-linux-gnu (16.2.0-2) ... Setting up libtsan2:amd64 (16.2.0-2) ... Setting up libcc1-0:amd64 (16.2.0-2) ... Setting up liblsan0:amd64 (16.2.0-2) ... Setting up libitm1:amd64 (16.2.0-2) ... Setting up libgcc-16-dev:amd64 (16.2.0-2) ... Setting up gcc-16-x86-64-linux-gnu (16.2.0-2) ... Setting up libstdc++-16-dev:amd64 (16.2.0-2) ... Setting up g++-16-x86-64-linux-gnu (16.2.0-2) ... Setting up cpp-16 (16.2.0-2) ... Setting up gcc-16 (16.2.0-2) ... Setting up g++-16 (16.2.0-2) ... Processing triggers for libc-bin (2.43-4) ... +------------------------------------------------------------------------------+ | Fetch source files Thu, 03 Sep 2026 09:25:53 +0000 | +------------------------------------------------------------------------------+ Check APT --------- Checking available source versions... Download source files with APT ------------------------------ Reading package lists... Need to get 9572 kB of source archives. Get:1 http://localhost:3142/debian unstable/main botan3 3.12.0+dfsg-2 (dsc) [2146 B] Get:2 http://localhost:3142/debian unstable/main botan3 3.12.0+dfsg-2 (tar) [9563 kB] Get:3 http://localhost:3142/debian unstable/main botan3 3.12.0+dfsg-2 (diff) [7444 B] Fetched 9572 kB in 1s (8462 kB/s) Download complete and in download only mode +------------------------------------------------------------------------------+ | Install package build dependencies Thu, 03 Sep 2026 09:25:54 +0000 | +------------------------------------------------------------------------------+ Setup apt archive ----------------- Merged Build-Depends: debhelper-compat (= 13), ca-certificates, dh-python, libbz2-dev, liblzma-dev, libsqlite3-dev, libtspi-dev, zlib1g-dev, python3:any, python3-docutils, libc-dev, libstdc++-dev, build-essential:amd64, crossbuild-essential-armhf:amd64, apt-utils:amd64, libc-dev:armhf, libstdc++-dev:armhf Filtered Build-Depends: debhelper-compat (= 13), ca-certificates, dh-python, libbz2-dev, liblzma-dev, libsqlite3-dev, libtspi-dev, zlib1g-dev, python3:any, python3-docutils, libc-dev, libstdc++-dev, build-essential:amd64, crossbuild-essential-armhf:amd64, apt-utils:amd64, libc-dev:armhf, libstdc++-dev:armhf dpkg-deb: building package 'sbuild-build-depends-main-dummy' in '/build/reproducible-path/resolver-Z3hYWP/apt_archive/sbuild-build-depends-main-dummy.deb'. Ign:1 copy:/build/reproducible-path/resolver-Z3hYWP/apt_archive ./ InRelease Get:2 copy:/build/reproducible-path/resolver-Z3hYWP/apt_archive ./ Release [609 B] Ign:3 copy:/build/reproducible-path/resolver-Z3hYWP/apt_archive ./ Release.gpg Get:4 copy:/build/reproducible-path/resolver-Z3hYWP/apt_archive ./ Sources [840 B] Get:5 copy:/build/reproducible-path/resolver-Z3hYWP/apt_archive ./ Packages [883 B] Fetched 2332 B in 0s (0 B/s) Reading package lists... Reading package lists... Install main build dependencies (apt-based resolver) ---------------------------------------------------- Installing build dependencies Reading package lists... Building dependency tree... Reading state information... Execute external solver... The following additional packages will be installed: autoconf automake autopoint autotools-dev binutils-arm-linux-gnueabihf bsdextrautils ca-certificates cpp-16-arm-linux-gnueabihf cpp-arm-linux-gnueabihf crossbuild-essential-armhf debhelper dh-autoreconf dh-python dh-strip-nondeterminism docutils-common dwz file g++-16-arm-linux-gnueabihf g++-arm-linux-gnueabihf gcc-16-arm-linux-gnueabihf gcc-16-arm-linux-gnueabihf-base gcc-16-base:armhf gcc-16-cross-base gcc-arm-linux-gnueabihf gettext gettext-base groff-base intltool-debian libarchive-zip-perl libasan8:armhf libasan8-armhf-cross libatomic1:armhf libatomic1-armhf-cross libbz2-1.0:armhf libbz2-dev:armhf libc-gconv-modules-extra:armhf libc6:armhf libc6-armhf-cross libc6-dev:armhf libc6-dev-armhf-cross libdebhelper-perl libelf1t64 libexpat1 libffi8 libfile-stripnondeterminism-perl libgcc-16-dev:armhf libgcc-16-dev-armhf-cross libgcc-s1:armhf libgcc-s1-armhf-cross libgomp1:armhf libgomp1-armhf-cross liblzma-dev:armhf liblzma5:armhf libmagic-mgc libmagic1t64 libncursesw6 libpipeline1 libpython3-stdlib libpython3.14-minimal libpython3.14-stdlib libreadline8t64 libsqlite3-0 libsqlite3-0:armhf libsqlite3-dev:armhf libssl-dev:armhf libssl3t64:armhf libstdc++-16-dev:armhf libstdc++-16-dev-armhf-cross libstdc++6:armhf libstdc++6-armhf-cross libtool libtspi-dev:armhf libtspi1:armhf libubsan1:armhf libubsan1-armhf-cross libuchardet0 libunistring5 libxml2-16 libzstd1:armhf linux-libc-dev-armhf-cross m4 man-db media-types netbase openssl po-debconf python3 python3-docutils python3-minimal python3-roman-numerals python3.14 python3.14-minimal readline-common sensible-utils sgml-base tzdata xml-core zlib1g:armhf zlib1g-dev:armhf Suggested packages: autoconf-archive gnu-standards autoconf-doc binutils-doc gcc-16-locales cpp-16-doc cpp-doc dh-make flit python3-build python3-installer python3-wheel gcc-16-doc manpages-dev flex bison gdb-arm-linux-gnueabihf gcc-doc gettext-doc libasprintf-dev libgettextpo-dev gnulib-l10n groff glibc-doc:armhf libc-l10n:armhf locales:armhf libnss-nis:armhf manpages-dev:armhf liblzma-doc:armhf sqlite3-doc:armhf libssl-doc:armhf libstdc++-16-doc:armhf libtool-doc gfortran | fortran95-compiler m4-doc apparmor less www-browser libmail-box-perl python3-doc python3-tk python3-venv docutils-doc fonts-linuxlibertine | ttf-linux-libertine texlive-lang-french texlive-latex-base texlive-latex-recommended python3.14-venv python3.14-doc binfmt-support readline-doc sgml-base-doc Recommended packages: curl | wget | lynx bzip2-doc:armhf libidn2-0:armhf libarchive-cpio-perl libgpm2 libltdl-dev libmail-sendmail-perl libpaper-utils python3-pil python3-pygments The following NEW packages will be installed: autoconf automake autopoint autotools-dev binutils-arm-linux-gnueabihf bsdextrautils ca-certificates cpp-16-arm-linux-gnueabihf cpp-arm-linux-gnueabihf crossbuild-essential-armhf debhelper dh-autoreconf dh-python dh-strip-nondeterminism docutils-common dwz file g++-16-arm-linux-gnueabihf g++-arm-linux-gnueabihf gcc-16-arm-linux-gnueabihf gcc-16-arm-linux-gnueabihf-base gcc-16-base:armhf gcc-16-cross-base gcc-arm-linux-gnueabihf gettext gettext-base groff-base intltool-debian libarchive-zip-perl libasan8:armhf libasan8-armhf-cross libatomic1:armhf libatomic1-armhf-cross libbz2-1.0:armhf libbz2-dev:armhf libc-gconv-modules-extra:armhf libc6:armhf libc6-armhf-cross libc6-dev:armhf libc6-dev-armhf-cross libdebhelper-perl libelf1t64 libexpat1 libffi8 libfile-stripnondeterminism-perl libgcc-16-dev:armhf libgcc-16-dev-armhf-cross libgcc-s1:armhf libgcc-s1-armhf-cross libgomp1:armhf libgomp1-armhf-cross liblzma-dev:armhf liblzma5:armhf libmagic-mgc libmagic1t64 libncursesw6 libpipeline1 libpython3-stdlib libpython3.14-minimal libpython3.14-stdlib libreadline8t64 libsqlite3-0 libsqlite3-0:armhf libsqlite3-dev:armhf libssl-dev:armhf libssl3t64:armhf libstdc++-16-dev:armhf libstdc++-16-dev-armhf-cross libstdc++6:armhf libstdc++6-armhf-cross libtool libtspi-dev:armhf libtspi1:armhf libubsan1:armhf libubsan1-armhf-cross libuchardet0 libunistring5 libxml2-16 libzstd1:armhf linux-libc-dev-armhf-cross m4 man-db media-types netbase openssl po-debconf python3 python3-docutils python3-minimal python3-roman-numerals python3.14 python3.14-minimal readline-common sbuild-build-depends-main-dummy:armhf sensible-utils sgml-base tzdata xml-core zlib1g:armhf zlib1g-dev:armhf 0 upgraded, 100 newly installed, 0 to remove and 0 not upgraded. Need to get 363 MB of archives. After this operation, 1365 MB of additional disk space will be used. Get:1 copy:/build/reproducible-path/resolver-Z3hYWP/apt_archive ./ sbuild-build-depends-main-dummy 0.invalid.0 [964 B] Get:2 http://localhost:3142/debian unstable/main amd64 libexpat1 amd64 2.8.4-1 [130 kB] Get:3 http://localhost:3142/debian unstable/main amd64 libpython3.14-minimal amd64 3.14.7-1 [899 kB] Get:4 http://localhost:3142/debian unstable/main amd64 python3.14-minimal amd64 3.14.7-1 [2714 kB] Get:5 http://localhost:3142/debian unstable/main amd64 python3-minimal amd64 3.14.7-3 [25.3 kB] Get:6 http://localhost:3142/debian unstable/main amd64 media-types all 14.0.0 [30.8 kB] Get:7 http://localhost:3142/debian unstable/main amd64 netbase all 6.6 [10.3 kB] Get:8 http://localhost:3142/debian unstable/main amd64 tzdata all 2026c-1 [260 kB] Get:9 http://localhost:3142/debian unstable/main amd64 libffi8 amd64 3.8.0-2 [32.5 kB] Get:10 http://localhost:3142/debian unstable/main amd64 libncursesw6 amd64 6.6+20260608-2 [137 kB] Get:11 http://localhost:3142/debian unstable/main amd64 readline-common all 8.3-4 [74.8 kB] Get:12 http://localhost:3142/debian unstable/main amd64 libreadline8t64 amd64 8.3-4 [181 kB] Get:13 http://localhost:3142/debian unstable/main amd64 libsqlite3-0 amd64 3.53.4-2 [974 kB] Get:14 http://localhost:3142/debian unstable/main amd64 libpython3.14-stdlib amd64 3.14.7-1 [2356 kB] Get:15 http://localhost:3142/debian unstable/main amd64 python3.14 amd64 3.14.7-1 [861 kB] Get:16 http://localhost:3142/debian unstable/main amd64 libpython3-stdlib amd64 3.14.7-3 [8252 B] Get:17 http://localhost:3142/debian unstable/main amd64 python3 amd64 3.14.7-3 [26.0 kB] Get:18 http://localhost:3142/debian unstable/main amd64 sensible-utils all 0.0.26 [27.0 kB] Get:19 http://localhost:3142/debian unstable/main amd64 openssl amd64 3.6.4-1 [1546 kB] Get:20 http://localhost:3142/debian unstable/main amd64 ca-certificates all 20260816 [134 kB] Get:21 http://localhost:3142/debian unstable/main amd64 libmagic-mgc amd64 1:5.47-4 [345 kB] Get:22 http://localhost:3142/debian unstable/main amd64 libmagic1t64 amd64 1:5.47-4 [111 kB] Get:23 http://localhost:3142/debian unstable/main amd64 file amd64 1:5.47-4 [43.0 kB] Get:24 http://localhost:3142/debian unstable/main amd64 gettext-base amd64 1.0-3 [332 kB] Get:25 http://localhost:3142/debian unstable/main amd64 libuchardet0 amd64 0.0.8-2+b2 [69.0 kB] Get:26 http://localhost:3142/debian unstable/main amd64 groff-base amd64 1.24.1-1 [1336 kB] Get:27 http://localhost:3142/debian unstable/main amd64 bsdextrautils amd64 2.42.2-4 [102 kB] Get:28 http://localhost:3142/debian unstable/main amd64 libpipeline1 amd64 1.5.8-3 [49.2 kB] Get:29 http://localhost:3142/debian unstable/main amd64 man-db amd64 2.13.1-1 [1469 kB] Get:30 http://localhost:3142/debian unstable/main amd64 m4 amd64 1.4.21-1 [332 kB] Get:31 http://localhost:3142/debian unstable/main amd64 autoconf all 2.73-2 [516 kB] Get:32 http://localhost:3142/debian unstable/main amd64 autotools-dev all 20240727.1+nmu1 [60.0 kB] Get:33 http://localhost:3142/debian unstable/main amd64 automake all 1:1.18.1-4 [877 kB] Get:34 http://localhost:3142/debian unstable/main amd64 autopoint all 1.0-3 [820 kB] Get:35 http://localhost:3142/debian unstable/main amd64 binutils-arm-linux-gnueabihf amd64 2.47-2 [1562 kB] Get:36 http://localhost:3142/debian unstable/main amd64 gcc-16-arm-linux-gnueabihf-base amd64 16.1.0-3cross1 [37.7 kB] Get:37 http://localhost:3142/debian unstable/main amd64 cpp-16-arm-linux-gnueabihf amd64 16.1.0-3cross1 [95.0 MB] Get:38 http://localhost:3142/debian unstable/main amd64 cpp-arm-linux-gnueabihf amd64 4:16.1.0-3 [4476 B] Get:39 http://localhost:3142/debian unstable/main amd64 gcc-16-cross-base all 16.1.0-3cross1 [33.2 kB] Get:40 http://localhost:3142/debian unstable/main amd64 libc6-armhf-cross all 2.43-3cross8 [1305 kB] Get:41 http://localhost:3142/debian unstable/main amd64 libgcc-s1-armhf-cross all 16.1.0-3cross1 [45.1 kB] Get:42 http://localhost:3142/debian unstable/main amd64 libgomp1-armhf-cross all 16.1.0-3cross1 [119 kB] Get:43 http://localhost:3142/debian unstable/main amd64 libatomic1-armhf-cross all 16.1.0-3cross1 [7248 B] Get:44 http://localhost:3142/debian unstable/main amd64 libasan8-armhf-cross all 16.1.0-3cross1 [2688 kB] Get:45 http://localhost:3142/debian unstable/main amd64 libstdc++6-armhf-cross all 16.1.0-3cross1 [638 kB] Get:46 http://localhost:3142/debian unstable/main amd64 libubsan1-armhf-cross all 16.1.0-3cross1 [1089 kB] Get:47 http://localhost:3142/debian unstable/main amd64 libgcc-16-dev-armhf-cross all 16.1.0-3cross1 [783 kB] Get:48 http://localhost:3142/debian unstable/main amd64 gcc-16-arm-linux-gnueabihf amd64 16.1.0-3cross1 [106 MB] Get:49 http://localhost:3142/debian unstable/main amd64 gcc-arm-linux-gnueabihf amd64 4:16.1.0-3 [1448 B] Get:50 http://localhost:3142/debian unstable/main amd64 linux-libc-dev-armhf-cross all 7.1.12-1 [12.0 kB] Get:51 http://localhost:3142/debian unstable/main amd64 libc6-dev-armhf-cross all 2.43-3cross8 [1396 kB] Get:52 http://localhost:3142/debian unstable/main amd64 libstdc++-16-dev-armhf-cross all 16.1.0-3cross1 [2620 kB] Get:53 http://localhost:3142/debian unstable/main amd64 g++-16-arm-linux-gnueabihf amd64 16.1.0-3cross1 [105 MB] Get:54 http://localhost:3142/debian unstable/main amd64 g++-arm-linux-gnueabihf amd64 4:16.1.0-3 [1204 B] Get:55 http://localhost:3142/debian unstable/main amd64 crossbuild-essential-armhf all 12.12 [3548 B] Get:56 http://localhost:3142/debian unstable/main amd64 libdebhelper-perl all 14.3 [77.3 kB] Get:57 http://localhost:3142/debian unstable/main amd64 libtool all 2.6.2-2 [553 kB] Get:58 http://localhost:3142/debian unstable/main amd64 dh-autoreconf all 22 [12.2 kB] Get:59 http://localhost:3142/debian unstable/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get:60 http://localhost:3142/debian unstable/main amd64 libfile-stripnondeterminism-perl all 1.15.1-1 [17.1 kB] Get:61 http://localhost:3142/debian unstable/main amd64 dh-strip-nondeterminism all 1.15.1-1 [6020 B] Get:62 http://localhost:3142/debian unstable/main amd64 libelf1t64 amd64 0.196-1 [61.2 kB] Get:63 http://localhost:3142/debian unstable/main amd64 dwz amd64 0.17-1 [109 kB] Get:64 http://localhost:3142/debian unstable/main amd64 libunistring5 amd64 1.4.2-1 [480 kB] Get:65 http://localhost:3142/debian unstable/main amd64 libxml2-16 amd64 2.15.3+dfsg-1+b1 [682 kB] Get:66 http://localhost:3142/debian unstable/main amd64 gettext amd64 1.0-3 [2658 kB] Get:67 http://localhost:3142/debian unstable/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get:68 http://localhost:3142/debian unstable/main amd64 po-debconf all 1.0.22 [216 kB] Get:69 http://localhost:3142/debian unstable/main amd64 debhelper all 14.3 [934 kB] Get:70 http://localhost:3142/debian unstable/main amd64 dh-python all 7.20260623 [114 kB] Get:71 http://localhost:3142/debian unstable/main amd64 sgml-base all 1.31+nmu1 [10.9 kB] Get:72 http://localhost:3142/debian unstable/main amd64 xml-core all 0.21 [19.0 kB] Get:73 http://localhost:3142/debian unstable/main amd64 docutils-common all 0.23+dfsg-2 [124 kB] Get:74 http://localhost:3142/debian unstable/main armhf gcc-16-base armhf 16.2.0-2 [38.4 kB] Get:75 http://localhost:3142/debian unstable/main armhf libgcc-s1 armhf 16.2.0-2 [45.1 kB] Get:76 http://localhost:3142/debian unstable/main armhf libc-gconv-modules-extra armhf 2.43-4 [1134 kB] Get:77 http://localhost:3142/debian unstable/main armhf libc6 armhf 2.43-4 [1538 kB] Get:78 http://localhost:3142/debian unstable/main armhf libasan8 armhf 16.2.0-2 [2699 kB] Get:79 http://localhost:3142/debian unstable/main armhf libatomic1 armhf 16.2.0-2 [7116 B] Get:80 http://localhost:3142/debian unstable/main armhf libbz2-1.0 armhf 1.0.8-6+b2 [34.8 kB] Get:81 http://localhost:3142/debian unstable/main armhf libc6-dev armhf 2.43-4 [1402 kB] Get:82 http://localhost:3142/debian unstable/main armhf libbz2-dev armhf 1.0.8-6+b2 [28.9 kB] Get:83 http://localhost:3142/debian unstable/main armhf libgomp1 armhf 16.2.0-2 [119 kB] Get:84 http://localhost:3142/debian unstable/main armhf libstdc++6 armhf 16.2.0-2 [662 kB] Get:85 http://localhost:3142/debian unstable/main armhf libubsan1 armhf 16.2.0-2 [1090 kB] Get:86 http://localhost:3142/debian unstable/main armhf libgcc-16-dev armhf 16.2.0-2 [791 kB] Get:87 http://localhost:3142/debian unstable/main armhf liblzma5 armhf 5.8.3-1 [318 kB] Get:88 http://localhost:3142/debian unstable/main armhf liblzma-dev armhf 5.8.3-1 [357 kB] Get:89 http://localhost:3142/debian unstable/main armhf libsqlite3-0 armhf 3.53.4-2 [858 kB] Get:90 http://localhost:3142/debian unstable/main armhf libsqlite3-dev armhf 3.53.4-2 [1061 kB] Get:91 http://localhost:3142/debian unstable/main armhf libzstd1 armhf 1.5.7+dfsg-4 [264 kB] Get:92 http://localhost:3142/debian unstable/main armhf zlib1g armhf 1:1.3.dfsg+really1.3.2-3 [77.0 kB] Get:93 http://localhost:3142/debian unstable/main armhf libssl3t64 armhf 3.6.4-1 [2044 kB] Get:94 http://localhost:3142/debian unstable/main armhf libssl-dev armhf 3.6.4-1 [2642 kB] Get:95 http://localhost:3142/debian unstable/main armhf libstdc++-16-dev armhf 16.2.0-2 [2658 kB] Get:96 http://localhost:3142/debian unstable/main armhf libtspi1 armhf 0.3.15-1 [139 kB] Get:97 http://localhost:3142/debian unstable/main armhf libtspi-dev armhf 0.3.15-1 [631 kB] Get:98 http://localhost:3142/debian unstable/main amd64 python3-roman-numerals all 4.1.0-1 [9196 B] Get:99 http://localhost:3142/debian unstable/main amd64 python3-docutils all 0.23+dfsg-2 [433 kB] Get:100 http://localhost:3142/debian unstable/main armhf zlib1g-dev armhf 1:1.3.dfsg+really1.3.2-3 [904 kB] Preconfiguring packages ... Fetched 363 MB in 2s (211 MB/s) Selecting previously unselected package libexpat1:amd64. (Reading database ... 12107 files and directories currently installed.) Preparing to unpack .../libexpat1_2.8.4-1_amd64.deb ... Unpacking libexpat1:amd64 (2.8.4-1) ... Selecting previously unselected package libpython3.14-minimal:amd64. Preparing to unpack .../libpython3.14-minimal_3.14.7-1_amd64.deb ... Unpacking libpython3.14-minimal:amd64 (3.14.7-1) ... Selecting previously unselected package python3.14-minimal. Preparing to unpack .../python3.14-minimal_3.14.7-1_amd64.deb ... Unpacking python3.14-minimal (3.14.7-1) ... Setting up libpython3.14-minimal:amd64 (3.14.7-1) ... Setting up libexpat1:amd64 (2.8.4-1) ... Setting up python3.14-minimal (3.14.7-1) ... Selecting previously unselected package python3-minimal. (Reading database ... 12463 files and directories currently installed.) Preparing to unpack .../00-python3-minimal_3.14.7-3_amd64.deb ... Unpacking python3-minimal (3.14.7-3) ... Selecting previously unselected package media-types. Preparing to unpack .../01-media-types_14.0.0_all.deb ... Unpacking media-types (14.0.0) ... Selecting previously unselected package netbase. Preparing to unpack .../02-netbase_6.6_all.deb ... Unpacking netbase (6.6) ... Selecting previously unselected package tzdata. Preparing to unpack .../03-tzdata_2026c-1_all.deb ... Unpacking tzdata (2026c-1) ... Selecting previously unselected package libffi8:amd64. Preparing to unpack .../04-libffi8_3.8.0-2_amd64.deb ... Unpacking libffi8:amd64 (3.8.0-2) ... Selecting previously unselected package libncursesw6:amd64. Preparing to unpack .../05-libncursesw6_6.6+20260608-2_amd64.deb ... Unpacking libncursesw6:amd64 (6.6+20260608-2) ... Selecting previously unselected package readline-common. Preparing to unpack .../06-readline-common_8.3-4_all.deb ... Unpacking readline-common (8.3-4) ... Selecting previously unselected package libreadline8t64:amd64. Preparing to unpack .../07-libreadline8t64_8.3-4_amd64.deb ... Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8 to /lib/x86_64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8.2 to /lib/x86_64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8 to /lib/x86_64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8.2 to /lib/x86_64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:amd64 (8.3-4) ... Selecting previously unselected package libsqlite3-0:amd64. Preparing to unpack .../08-libsqlite3-0_3.53.4-2_amd64.deb ... Unpacking libsqlite3-0:amd64 (3.53.4-2) ... Selecting previously unselected package libpython3.14-stdlib:amd64. Preparing to unpack .../09-libpython3.14-stdlib_3.14.7-1_amd64.deb ... Unpacking libpython3.14-stdlib:amd64 (3.14.7-1) ... Selecting previously unselected package python3.14. Preparing to unpack .../10-python3.14_3.14.7-1_amd64.deb ... Unpacking python3.14 (3.14.7-1) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../11-libpython3-stdlib_3.14.7-3_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.14.7-3) ... Setting up python3-minimal (3.14.7-3) ... Selecting previously unselected package python3. (Reading database ... 13509 files and directories currently installed.) Preparing to unpack .../00-python3_3.14.7-3_amd64.deb ... Unpacking python3 (3.14.7-3) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../01-sensible-utils_0.0.26_all.deb ... Unpacking sensible-utils (0.0.26) ... Selecting previously unselected package openssl. Preparing to unpack .../02-openssl_3.6.4-1_amd64.deb ... Unpacking openssl (3.6.4-1) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../03-ca-certificates_20260816_all.deb ... Unpacking ca-certificates (20260816) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../04-libmagic-mgc_1%3a5.47-4_amd64.deb ... Unpacking libmagic-mgc (1:5.47-4) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../05-libmagic1t64_1%3a5.47-4_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.47-4) ... Selecting previously unselected package file. Preparing to unpack .../06-file_1%3a5.47-4_amd64.deb ... Unpacking file (1:5.47-4) ... Selecting previously unselected package gettext-base. Preparing to unpack .../07-gettext-base_1.0-3_amd64.deb ... Unpacking gettext-base (1.0-3) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../08-libuchardet0_0.0.8-2+b2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-2+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../09-groff-base_1.24.1-1_amd64.deb ... Unpacking groff-base (1.24.1-1) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../10-bsdextrautils_2.42.2-4_amd64.deb ... Unpacking bsdextrautils (2.42.2-4) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../11-libpipeline1_1.5.8-3_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-3) ... Selecting previously unselected package man-db. Preparing to unpack .../12-man-db_2.13.1-1_amd64.deb ... Unpacking man-db (2.13.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../13-m4_1.4.21-1_amd64.deb ... Unpacking m4 (1.4.21-1) ... Selecting previously unselected package autoconf. Preparing to unpack .../14-autoconf_2.73-2_all.deb ... Unpacking autoconf (2.73-2) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../15-autotools-dev_20240727.1+nmu1_all.deb ... Unpacking autotools-dev (20240727.1+nmu1) ... Selecting previously unselected package automake. Preparing to unpack .../16-automake_1%3a1.18.1-4_all.deb ... Unpacking automake (1:1.18.1-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../17-autopoint_1.0-3_all.deb ... Unpacking autopoint (1.0-3) ... Selecting previously unselected package binutils-arm-linux-gnueabihf. Preparing to unpack .../18-binutils-arm-linux-gnueabihf_2.47-2_amd64.deb ... Unpacking binutils-arm-linux-gnueabihf (2.47-2) ... Selecting previously unselected package gcc-16-arm-linux-gnueabihf-base:amd64. Preparing to unpack .../19-gcc-16-arm-linux-gnueabihf-base_16.1.0-3cross1_amd64.deb ... Unpacking gcc-16-arm-linux-gnueabihf-base:amd64 (16.1.0-3cross1) ... Selecting previously unselected package cpp-16-arm-linux-gnueabihf. Preparing to unpack .../20-cpp-16-arm-linux-gnueabihf_16.1.0-3cross1_amd64.deb ... Unpacking cpp-16-arm-linux-gnueabihf (16.1.0-3cross1) ... Selecting previously unselected package cpp-arm-linux-gnueabihf. Preparing to unpack .../21-cpp-arm-linux-gnueabihf_4%3a16.1.0-3_amd64.deb ... Unpacking cpp-arm-linux-gnueabihf (4:16.1.0-3) ... Selecting previously unselected package gcc-16-cross-base. Preparing to unpack .../22-gcc-16-cross-base_16.1.0-3cross1_all.deb ... Unpacking gcc-16-cross-base (16.1.0-3cross1) ... Selecting previously unselected package libc6-armhf-cross. Preparing to unpack .../23-libc6-armhf-cross_2.43-3cross8_all.deb ... Unpacking libc6-armhf-cross (2.43-3cross8) ... Selecting previously unselected package libgcc-s1-armhf-cross. Preparing to unpack .../24-libgcc-s1-armhf-cross_16.1.0-3cross1_all.deb ... Unpacking libgcc-s1-armhf-cross (16.1.0-3cross1) ... Selecting previously unselected package libgomp1-armhf-cross. Preparing to unpack .../25-libgomp1-armhf-cross_16.1.0-3cross1_all.deb ... Unpacking libgomp1-armhf-cross (16.1.0-3cross1) ... Selecting previously unselected package libatomic1-armhf-cross. Preparing to unpack .../26-libatomic1-armhf-cross_16.1.0-3cross1_all.deb ... Unpacking libatomic1-armhf-cross (16.1.0-3cross1) ... Selecting previously unselected package libasan8-armhf-cross. Preparing to unpack .../27-libasan8-armhf-cross_16.1.0-3cross1_all.deb ... Unpacking libasan8-armhf-cross (16.1.0-3cross1) ... Selecting previously unselected package libstdc++6-armhf-cross. Preparing to unpack .../28-libstdc++6-armhf-cross_16.1.0-3cross1_all.deb ... Unpacking libstdc++6-armhf-cross (16.1.0-3cross1) ... Selecting previously unselected package libubsan1-armhf-cross. Preparing to unpack .../29-libubsan1-armhf-cross_16.1.0-3cross1_all.deb ... Unpacking libubsan1-armhf-cross (16.1.0-3cross1) ... Selecting previously unselected package libgcc-16-dev-armhf-cross. Preparing to unpack .../30-libgcc-16-dev-armhf-cross_16.1.0-3cross1_all.deb ... Unpacking libgcc-16-dev-armhf-cross (16.1.0-3cross1) ... Selecting previously unselected package gcc-16-arm-linux-gnueabihf. Preparing to unpack .../31-gcc-16-arm-linux-gnueabihf_16.1.0-3cross1_amd64.deb ... Unpacking gcc-16-arm-linux-gnueabihf (16.1.0-3cross1) ... Selecting previously unselected package gcc-arm-linux-gnueabihf. Preparing to unpack .../32-gcc-arm-linux-gnueabihf_4%3a16.1.0-3_amd64.deb ... Unpacking gcc-arm-linux-gnueabihf (4:16.1.0-3) ... Selecting previously unselected package linux-libc-dev-armhf-cross. Preparing to unpack .../33-linux-libc-dev-armhf-cross_7.1.12-1_all.deb ... Unpacking linux-libc-dev-armhf-cross (7.1.12-1) ... Selecting previously unselected package libc6-dev-armhf-cross. Preparing to unpack .../34-libc6-dev-armhf-cross_2.43-3cross8_all.deb ... Unpacking libc6-dev-armhf-cross (2.43-3cross8) ... Selecting previously unselected package libstdc++-16-dev-armhf-cross. Preparing to unpack .../35-libstdc++-16-dev-armhf-cross_16.1.0-3cross1_all.deb ... Unpacking libstdc++-16-dev-armhf-cross (16.1.0-3cross1) ... Selecting previously unselected package g++-16-arm-linux-gnueabihf. Preparing to unpack .../36-g++-16-arm-linux-gnueabihf_16.1.0-3cross1_amd64.deb ... Unpacking g++-16-arm-linux-gnueabihf (16.1.0-3cross1) ... Selecting previously unselected package g++-arm-linux-gnueabihf. Preparing to unpack .../37-g++-arm-linux-gnueabihf_4%3a16.1.0-3_amd64.deb ... Unpacking g++-arm-linux-gnueabihf (4:16.1.0-3) ... Selecting previously unselected package crossbuild-essential-armhf. Preparing to unpack .../38-crossbuild-essential-armhf_12.12_all.deb ... Unpacking crossbuild-essential-armhf (12.12) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../39-libdebhelper-perl_14.3_all.deb ... Unpacking libdebhelper-perl (14.3) ... Selecting previously unselected package libtool. Preparing to unpack .../40-libtool_2.6.2-2_all.deb ... Unpacking libtool (2.6.2-2) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../41-dh-autoreconf_22_all.deb ... Unpacking dh-autoreconf (22) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../42-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../43-libfile-stripnondeterminism-perl_1.15.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.15.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../44-dh-strip-nondeterminism_1.15.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.15.1-1) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../45-libelf1t64_0.196-1_amd64.deb ... Unpacking libelf1t64:amd64 (0.196-1) ... Selecting previously unselected package dwz. Preparing to unpack .../46-dwz_0.17-1_amd64.deb ... Unpacking dwz (0.17-1) ... Selecting previously unselected package libunistring5:amd64. Preparing to unpack .../47-libunistring5_1.4.2-1_amd64.deb ... Unpacking libunistring5:amd64 (1.4.2-1) ... Selecting previously unselected package libxml2-16:amd64. Preparing to unpack .../48-libxml2-16_2.15.3+dfsg-1+b1_amd64.deb ... Unpacking libxml2-16:amd64 (2.15.3+dfsg-1+b1) ... Selecting previously unselected package gettext. Preparing to unpack .../49-gettext_1.0-3_amd64.deb ... Unpacking gettext (1.0-3) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../50-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../51-po-debconf_1.0.22_all.deb ... Unpacking po-debconf (1.0.22) ... Selecting previously unselected package debhelper. Preparing to unpack .../52-debhelper_14.3_all.deb ... Unpacking debhelper (14.3) ... Selecting previously unselected package dh-python. Preparing to unpack .../53-dh-python_7.20260623_all.deb ... Unpacking dh-python (7.20260623) ... Selecting previously unselected package sgml-base. Preparing to unpack .../54-sgml-base_1.31+nmu1_all.deb ... Unpacking sgml-base (1.31+nmu1) ... Selecting previously unselected package xml-core. Preparing to unpack .../55-xml-core_0.21_all.deb ... Unpacking xml-core (0.21) ... Selecting previously unselected package docutils-common. Preparing to unpack .../56-docutils-common_0.23+dfsg-2_all.deb ... Unpacking docutils-common (0.23+dfsg-2) ... Selecting previously unselected package gcc-16-base:armhf. Preparing to unpack .../57-gcc-16-base_16.2.0-2_armhf.deb ... Unpacking gcc-16-base:armhf (16.2.0-2) ... Selecting previously unselected package libgcc-s1:armhf. Preparing to unpack .../58-libgcc-s1_16.2.0-2_armhf.deb ... Unpacking libgcc-s1:armhf (16.2.0-2) ... Selecting previously unselected package libc-gconv-modules-extra:armhf. Preparing to unpack .../59-libc-gconv-modules-extra_2.43-4_armhf.deb ... Unpacking libc-gconv-modules-extra:armhf (2.43-4) ... Selecting previously unselected package libc6:armhf. Preparing to unpack .../60-libc6_2.43-4_armhf.deb ... Unpacking libc6:armhf (2.43-4) ... Selecting previously unselected package libasan8:armhf. Preparing to unpack .../61-libasan8_16.2.0-2_armhf.deb ... Unpacking libasan8:armhf (16.2.0-2) ... Selecting previously unselected package libatomic1:armhf. Preparing to unpack .../62-libatomic1_16.2.0-2_armhf.deb ... Unpacking libatomic1:armhf (16.2.0-2) ... Selecting previously unselected package libbz2-1.0:armhf. Preparing to unpack .../63-libbz2-1.0_1.0.8-6+b2_armhf.deb ... Unpacking libbz2-1.0:armhf (1.0.8-6+b2) ... Selecting previously unselected package libc6-dev:armhf. Preparing to unpack .../64-libc6-dev_2.43-4_armhf.deb ... Unpacking libc6-dev:armhf (2.43-4) ... Selecting previously unselected package libbz2-dev:armhf. Preparing to unpack .../65-libbz2-dev_1.0.8-6+b2_armhf.deb ... Unpacking libbz2-dev:armhf (1.0.8-6+b2) ... Selecting previously unselected package libgomp1:armhf. Preparing to unpack .../66-libgomp1_16.2.0-2_armhf.deb ... Unpacking libgomp1:armhf (16.2.0-2) ... Selecting previously unselected package libstdc++6:armhf. Preparing to unpack .../67-libstdc++6_16.2.0-2_armhf.deb ... Unpacking libstdc++6:armhf (16.2.0-2) ... Selecting previously unselected package libubsan1:armhf. Preparing to unpack .../68-libubsan1_16.2.0-2_armhf.deb ... Unpacking libubsan1:armhf (16.2.0-2) ... Selecting previously unselected package libgcc-16-dev:armhf. Preparing to unpack .../69-libgcc-16-dev_16.2.0-2_armhf.deb ... Unpacking libgcc-16-dev:armhf (16.2.0-2) ... Selecting previously unselected package liblzma5:armhf. Preparing to unpack .../70-liblzma5_5.8.3-1_armhf.deb ... Unpacking liblzma5:armhf (5.8.3-1) ... Selecting previously unselected package liblzma-dev:armhf. Preparing to unpack .../71-liblzma-dev_5.8.3-1_armhf.deb ... Unpacking liblzma-dev:armhf (5.8.3-1) ... Selecting previously unselected package libsqlite3-0:armhf. Preparing to unpack .../72-libsqlite3-0_3.53.4-2_armhf.deb ... Unpacking libsqlite3-0:armhf (3.53.4-2) ... Selecting previously unselected package libsqlite3-dev:armhf. Preparing to unpack .../73-libsqlite3-dev_3.53.4-2_armhf.deb ... Unpacking libsqlite3-dev:armhf (3.53.4-2) ... Selecting previously unselected package libzstd1:armhf. Preparing to unpack .../74-libzstd1_1.5.7+dfsg-4_armhf.deb ... Unpacking libzstd1:armhf (1.5.7+dfsg-4) ... Selecting previously unselected package zlib1g:armhf. Preparing to unpack .../75-zlib1g_1%3a1.3.dfsg+really1.3.2-3_armhf.deb ... Unpacking zlib1g:armhf (1:1.3.dfsg+really1.3.2-3) ... Selecting previously unselected package libssl3t64:armhf. Preparing to unpack .../76-libssl3t64_3.6.4-1_armhf.deb ... Unpacking libssl3t64:armhf (3.6.4-1) ... Selecting previously unselected package libssl-dev:armhf. Preparing to unpack .../77-libssl-dev_3.6.4-1_armhf.deb ... Unpacking libssl-dev:armhf (3.6.4-1) ... Selecting previously unselected package libstdc++-16-dev:armhf. Preparing to unpack .../78-libstdc++-16-dev_16.2.0-2_armhf.deb ... Unpacking libstdc++-16-dev:armhf (16.2.0-2) ... Selecting previously unselected package libtspi1:armhf. Preparing to unpack .../79-libtspi1_0.3.15-1_armhf.deb ... Unpacking libtspi1:armhf (0.3.15-1) ... Selecting previously unselected package libtspi-dev:armhf. Preparing to unpack .../80-libtspi-dev_0.3.15-1_armhf.deb ... Unpacking libtspi-dev:armhf (0.3.15-1) ... Selecting previously unselected package python3-roman-numerals. Preparing to unpack .../81-python3-roman-numerals_4.1.0-1_all.deb ... Unpacking python3-roman-numerals (4.1.0-1) ... Selecting previously unselected package python3-docutils. Preparing to unpack .../82-python3-docutils_0.23+dfsg-2_all.deb ... Unpacking python3-docutils (0.23+dfsg-2) ... Selecting previously unselected package zlib1g-dev:armhf. Preparing to unpack .../83-zlib1g-dev_1%3a1.3.dfsg+really1.3.2-3_armhf.deb ... Unpacking zlib1g-dev:armhf (1:1.3.dfsg+really1.3.2-3) ... Selecting previously unselected package sbuild-build-depends-main-dummy:armhf. Preparing to unpack .../84-sbuild-build-depends-main-dummy_0.invalid.0_armhf.deb ... Unpacking sbuild-build-depends-main-dummy:armhf (0.invalid.0) ... Setting up libc-gconv-modules-extra:armhf (2.43-4) ... Setting up media-types (14.0.0) ... Setting up libpipeline1:amd64 (1.5.8-3) ... Setting up libc6-armhf-cross (2.43-3cross8) ... Setting up bsdextrautils (2.42.2-4) ... Setting up libmagic-mgc (1:5.47-4) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libxml2-16:amd64 (2.15.3+dfsg-1+b1) ... Setting up libdebhelper-perl (14.3) ... Setting up libsqlite3-0:amd64 (3.53.4-2) ... Setting up libmagic1t64:amd64 (1:5.47-4) ... Setting up gettext-base (1.0-3) ... Setting up m4 (1.4.21-1) ... Setting up gcc-16-base:armhf (16.2.0-2) ... Setting up file (1:5.47-4) ... Setting up gcc-16-cross-base (16.1.0-3cross1) ... Setting up libelf1t64:amd64 (0.196-1) ... Setting up tzdata (2026c-1) ... Current default time zone: 'Etc/UTC' Local time is now: Thu Sep 3 09:26:11 UTC 2026. Universal Time is now: Thu Sep 3 09:26:11 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20240727.1+nmu1) ... Setting up libunistring5:amd64 (1.4.2-1) ... Setting up linux-libc-dev-armhf-cross (7.1.12-1) ... Setting up autopoint (1.0-3) ... Setting up libncursesw6:amd64 (6.6+20260608-2) ... Setting up autoconf (2.73-2) ... Setting up libffi8:amd64 (3.8.0-2) ... Setting up dwz (0.17-1) ... Setting up sensible-utils (0.0.26) ... Setting up gcc-16-arm-linux-gnueabihf-base:amd64 (16.1.0-3cross1) ... Setting up libuchardet0:amd64 (0.0.8-2+b2) ... Setting up netbase (6.6) ... Setting up sgml-base (1.31+nmu1) ... Setting up openssl (3.6.4-1) ... Setting up binutils-arm-linux-gnueabihf (2.47-2) ... Setting up readline-common (8.3-4) ... Setting up automake (1:1.18.1-4) ... update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode Setting up libgomp1-armhf-cross (16.1.0-3cross1) ... Setting up libfile-stripnondeterminism-perl (1.15.1-1) ... Setting up gettext (1.0-3) ... Setting up libtool (2.6.2-2) ... Setting up libgcc-s1-armhf-cross (16.1.0-3cross1) ... Setting up libc6-dev-armhf-cross (2.43-3cross8) ... Setting up libatomic1-armhf-cross (16.1.0-3cross1) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (22) ... Setting up ca-certificates (20260816) ... Updating certificates in /etc/ssl/certs... 121 added, 0 removed; done. Setting up libstdc++6-armhf-cross (16.1.0-3cross1) ... Setting up cpp-16-arm-linux-gnueabihf (16.1.0-3cross1) ... Setting up libubsan1-armhf-cross (16.1.0-3cross1) ... Setting up libreadline8t64:amd64 (8.3-4) ... Setting up dh-strip-nondeterminism (1.15.1-1) ... Setting up groff-base (1.24.1-1) ... Setting up xml-core (0.21) ... Setting up cpp-arm-linux-gnueabihf (4:16.1.0-3) ... Setting up libasan8-armhf-cross (16.1.0-3cross1) ... Setting up libpython3.14-stdlib:amd64 (3.14.7-1) ... Setting up po-debconf (1.0.22) ... Setting up man-db (2.13.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up libgcc-16-dev-armhf-cross (16.1.0-3cross1) ... Setting up python3.14 (3.14.7-1) ... Setting up libpython3-stdlib:amd64 (3.14.7-3) ... Setting up gcc-16-arm-linux-gnueabihf (16.1.0-3cross1) ... Setting up debhelper (14.3) ... Setting up python3 (3.14.7-3) ... Setting up libstdc++-16-dev-armhf-cross (16.1.0-3cross1) ... Setting up python3-roman-numerals (4.1.0-1) ... Setting up gcc-arm-linux-gnueabihf (4:16.1.0-3) ... Setting up dh-python (7.20260623) ... Setting up g++-16-arm-linux-gnueabihf (16.1.0-3cross1) ... Setting up g++-arm-linux-gnueabihf (4:16.1.0-3) ... Setting up crossbuild-essential-armhf (12.12) ... Setting up libgcc-s1:armhf (16.2.0-2) ... Setting up libc6:armhf (2.43-4) ... Setting up libasan8:armhf (16.2.0-2) ... Setting up libc6-dev:armhf (2.43-4) ... Setting up libbz2-1.0:armhf (1.0.8-6+b2) ... Setting up libstdc++6:armhf (16.2.0-2) ... Setting up libbz2-dev:armhf (1.0.8-6+b2) ... Setting up libzstd1:armhf (1.5.7+dfsg-4) ... Setting up liblzma5:armhf (5.8.3-1) ... Setting up libsqlite3-0:armhf (3.53.4-2) ... Setting up zlib1g:armhf (1:1.3.dfsg+really1.3.2-3) ... Setting up libgomp1:armhf (16.2.0-2) ... Setting up libsqlite3-dev:armhf (3.53.4-2) ... Setting up libatomic1:armhf (16.2.0-2) ... Setting up liblzma-dev:armhf (5.8.3-1) ... Setting up libubsan1:armhf (16.2.0-2) ... Setting up zlib1g-dev:armhf (1:1.3.dfsg+really1.3.2-3) ... Setting up libgcc-16-dev:armhf (16.2.0-2) ... Setting up libssl3t64:armhf (3.6.4-1) ... Setting up libstdc++-16-dev:armhf (16.2.0-2) ... Setting up libssl-dev:armhf (3.6.4-1) ... Setting up libtspi1:armhf (0.3.15-1) ... Setting up libtspi-dev:armhf (0.3.15-1) ... Processing triggers for libc-bin (2.43-4) ... Processing triggers for sgml-base (1.31+nmu1) ... Setting up docutils-common (0.23+dfsg-2) ... Processing triggers for sgml-base (1.31+nmu1) ... Setting up python3-docutils (0.23+dfsg-2) ... Setting up sbuild-build-depends-main-dummy:armhf (0.invalid.0) ... Processing triggers for ca-certificates (20260816) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. +------------------------------------------------------------------------------+ | Check architectures Thu, 03 Sep 2026 09:26:15 +0000 | +------------------------------------------------------------------------------+ Arch check ok (armhf included in any all) +------------------------------------------------------------------------------+ | Build environment Thu, 03 Sep 2026 09:26:15 +0000 | +------------------------------------------------------------------------------+ Kernel: Linux 6.12.107+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.107-1 (2026-08-29) amd64 (x86_64) Toolchain package versions: binutils_2.47-2 dpkg-dev_1.23.7 g++-16_16.2.0-2 gcc-16_16.2.0-2 libc6-dev_2.43-4 libstdc++-16-dev_16.2.0-2 libstdc++-16-dev-armhf-cross_16.1.0-3cross1 libstdc++6_16.2.0-2 libstdc++6-armhf-cross_16.1.0-3cross1 linux-libc-dev_7.1.12-1 Package versions: apt_3.3.3 apt-utils_3.3.3 autoconf_2.73-2 automake_1:1.18.1-4 autopoint_1.0-3 autotools-dev_20240727.1+nmu1 base-files_14.2 base-passwd_3.6.8 bash_5.3-3+b1 binutils_2.47-2 binutils-arm-linux-gnueabihf_2.47-2 binutils-common_2.47-2 binutils-x86-64-linux-gnu_2.47-2 bsdextrautils_2.42.2-4 build-essential_12.12 bzip2_1.0.8-6+b2 ca-certificates_20260816 coreutils_9.10-1 cpp_4:16.1.0-3 cpp-16_16.2.0-2 cpp-16-arm-linux-gnueabihf_16.1.0-3cross1 cpp-16-x86-64-linux-gnu_16.2.0-2 cpp-arm-linux-gnueabihf_4:16.1.0-3 cpp-x86-64-linux-gnu_4:16.1.0-3 crossbuild-essential-armhf_12.12 dash_0.5.12-12 debconf_1.5.92 debhelper_14.3 debian-archive-keyring_2025.1 debianutils_5.24 dh-autoreconf_22 dh-python_7.20260623 dh-strip-nondeterminism_1.15.1-1 diffutils_1:3.12-1 docutils-common_0.23+dfsg-2 dpkg_1.23.7 dpkg-dev_1.23.7 dwz_0.17-1 file_1:5.47-4 findutils_4.11.0-2 g++_4:16.1.0-3 g++-16_16.2.0-2 g++-16-arm-linux-gnueabihf_16.1.0-3cross1 g++-16-x86-64-linux-gnu_16.2.0-2 g++-arm-linux-gnueabihf_4:16.1.0-3 g++-x86-64-linux-gnu_4:16.1.0-3 gcc_4:16.1.0-3 gcc-16_16.2.0-2 gcc-16-arm-linux-gnueabihf_16.1.0-3cross1 gcc-16-arm-linux-gnueabihf-base_16.1.0-3cross1 gcc-16-base_16.2.0-2 gcc-16-cross-base_16.1.0-3cross1 gcc-16-x86-64-linux-gnu_16.2.0-2 gcc-arm-linux-gnueabihf_4:16.1.0-3 gcc-x86-64-linux-gnu_4:16.1.0-3 gettext_1.0-3 gettext-base_1.0-3 grep_3.12-1 groff-base_1.24.1-1 gzip_1.14-1 hostname_3.25 init-system-helpers_1.69+nmu1 intltool-debian_0.35.0+20060710.6 libacl1_2.4.0-1 libapt-pkg7.0_3.3.3 libarchive-zip-perl_1.68-1 libasan8_16.2.0-2 libasan8-armhf-cross_16.1.0-3cross1 libatomic1_16.2.0-2 libatomic1-armhf-cross_16.1.0-3cross1 libattr1_1:2.6.0-1 libaudit-common_1:4.1.2-1 libaudit1_1:4.1.2-1+b1 libbinutils_2.47-2 libblkid1_2.42.2-4 libbz2-1.0_1.0.8-6+b2 libbz2-dev_1.0.8-6+b2 libc-bin_2.43-4 libc-dev-bin_2.43-4 libc-gconv-modules-extra_2.43-4 libc6_2.43-4 libc6-armhf-cross_2.43-3cross8 libc6-dev_2.43-4 libc6-dev-armhf-cross_2.43-3cross8 libcap-ng0_0.9.5-1 libcc1-0_16.2.0-2 libcrypt1_1:4.5.2+20251210-1 libctf-nobfd0_2.47-2 libctf0_2.47-2 libdb5.3t64_5.3.28+dfsg2-11+b1 libdebconfclient0_0.283 libdebhelper-perl_14.3 libdpkg-perl_1.23.7 libelf1t64_0.196-1 libexpat1_2.8.4-1 libffi8_3.8.0-2 libfile-stripnondeterminism-perl_1.15.1-1 libgcc-16-dev_16.2.0-2 libgcc-16-dev-armhf-cross_16.1.0-3cross1 libgcc-s1_16.2.0-2 libgcc-s1-armhf-cross_16.1.0-3cross1 libgdbm-compat4t64_1.26-1+b2 libgdbm6t64_1.26-1+b2 libgmp10_2:6.3.0+dfsg-5+b2 libgomp1_16.2.0-2 libgomp1-armhf-cross_16.1.0-3cross1 libgprofng0_2.47-2 libhogweed6t64_3.10.2-1+b1 libhwasan0_16.2.0-2 libisl23_0.28-1 libitm1_16.2.0-2 libjansson4_2.15.1-1 liblsan0_16.2.0-2 liblz4-1_1.10.0-10 liblzma-dev_5.8.3-1 liblzma5_5.8.3-1 libmagic-mgc_1:5.47-4 libmagic1t64_1:5.47-4 libmd0_1.2.0-2 libmount1_2.42.2-4 libmpc3_1.3.1-3 libmpfr6_4.2.2-3 libncursesw6_6.6+20260608-2 libnettle8t64_3.10.2-1+b1 libpam-modules_1.7.0-8 libpam-modules-bin_1.7.0-8 libpam-runtime_1.7.0-8 libpam0g_1.7.0-8 libpcre2-8-0_10.48-2 libperl5.42_5.42.3-1 libpipeline1_1.5.8-3 libpython3-stdlib_3.14.7-3 libpython3.14-minimal_3.14.7-1 libpython3.14-stdlib_3.14.7-1 libquadmath0_16.2.0-2 libreadline8t64_8.3-4 libseccomp2_2.6.1-1 libselinux1_3.11-2 libsframe3_2.47-2 libsmartcols1_2.42.2-4 libsqlite3-0_3.53.4-2 libsqlite3-dev_3.53.4-2 libssl-dev_3.6.4-1 libssl3t64_3.6.4-1 libstdc++-16-dev_16.2.0-2 libstdc++-16-dev-armhf-cross_16.1.0-3cross1 libstdc++6_16.2.0-2 libstdc++6-armhf-cross_16.1.0-3cross1 libsystemd0_262~rc1-2 libtinfo6_6.6+20260608-2 libtool_2.6.2-2 libtsan2_16.2.0-2 libtspi-dev_0.3.15-1 libtspi1_0.3.15-1 libubsan1_16.2.0-2 libubsan1-armhf-cross_16.1.0-3cross1 libuchardet0_0.0.8-2+b2 libudev1_262~rc1-2 libunistring5_1.4.2-1 libuuid1_2.42.2-4 libxml2-16_2.15.3+dfsg-1+b1 libxxhash0_0.8.3-2+b2 libzstd1_1.5.7+dfsg-4 linux-libc-dev_7.1.12-1 linux-libc-dev-armhf-cross_7.1.12-1 login_1:4.16.0-2+really2.42.2-4 login.defs_1:4.19.3-2 m4_1.4.21-1 make_4.4.1-3 man-db_2.13.1-1 mawk_1.3.4.20260302-1 media-types_14.0.0 ncurses-base_6.6+20260608-2 ncurses-bin_6.6+20260608-2 netbase_6.6 openssl_3.6.4-1 openssl-provider-legacy_3.6.4-1 patch_2.8-2 perl_5.42.3-1 perl-base_5.42.3-1 perl-modules-5.42_5.42.3-1 po-debconf_1.0.22 python3_3.14.7-3 python3-docutils_0.23+dfsg-2 python3-minimal_3.14.7-3 python3-roman-numerals_4.1.0-1 python3.14_3.14.7-1 python3.14-minimal_3.14.7-1 readline-common_8.3-4 sbuild-build-depends-main-dummy_0.invalid.0 sed_4.9-3 sensible-utils_0.0.26 sgml-base_1.31+nmu1 sqv_1.4.0-1 sysvinit-utils_3.18-1 tar_1.35+dfsg-5 tzdata_2026c-1 util-linux_2.42.2-4 xml-core_0.21 xz-utils_5.8.3-1 zlib1g_1:1.3.dfsg+really1.3.2-3 zlib1g-dev_1:1.3.dfsg+really1.3.2-3 +------------------------------------------------------------------------------+ | Build Thu, 03 Sep 2026 09:26:15 +0000 | +------------------------------------------------------------------------------+ Unpack source ------------- -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: botan3 Binary: botan, libbotan-3-12, libbotan-3-dev, libbotan-3-doc, python3-botan Architecture: any all Version: 3.12.0+dfsg-2 Maintainer: Laszlo Boszormenyi (GCS) Homepage: https://botan.randombit.net/ Standards-Version: 4.7.2 Build-Depends: debhelper-compat (= 13), ca-certificates, dh-python, libbz2-dev, liblzma-dev, libsqlite3-dev, libtspi-dev, zlib1g-dev, python3:any, python3-docutils Build-Depends-Indep: python3-sphinx Package-List: botan deb libdevel optional arch=any libbotan-3-12 deb libs optional arch=any libbotan-3-dev deb libdevel optional arch=any libbotan-3-doc deb doc optional arch=all python3-botan deb python optional arch=any Checksums-Sha1: c162d24ae5ba2495cebc0532bd48b8e460bcb50e 9562652 botan3_3.12.0+dfsg.orig.tar.xz 4b48d6c0b6cb2718aefe226984833071c478ec04 7444 botan3_3.12.0+dfsg-2.debian.tar.xz Checksums-Sha256: 2d9146f4fb643fe8f9a1405f2cdf0249a0bc08d3a4f1cfa6a509962aa17b5122 9562652 botan3_3.12.0+dfsg.orig.tar.xz 7c203c431755be0bae85bddbbde9ab63d2233e3cdf2971b7d60c73e296eb715f 7444 botan3_3.12.0+dfsg-2.debian.tar.xz Files: 45945e8c531dfad2a9e4f3d16ee681b7 9562652 botan3_3.12.0+dfsg.orig.tar.xz bdf80db19c6d63c796feb01e9cda373d 7444 botan3_3.12.0+dfsg-2.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEfYh9yLp7u6e4NeO63OMQ54ZMyL8FAmoRTX0ACgkQ3OMQ54ZM yL9OfBAAh0rHN+l3eW9mUxkxHVIFvsU5yWqevpPLnarFpcnRj/r15caXZ4CsGctb i80Ew54aCEyLLwCIhlO3F1BBMO/nAllwvz26nWvf3dMrJpQ1ypfNFMlLIwjIg9iK QBd57qgyefAMPTk1oz5I0IdO2U1vJAKBxe4xDXatarzCDpZy+7AOBwUmA80kUU8u 70HfypOuCdskNF2lOLSYxsdMMon8itp7sZGvkLNqsT1J/ruXCQ9yctdwRQNPUgQ/ B+U9krdexjwKqfwr6Feggkk6NzTTxXtozfCnQo8AmtyaiXaqBLpobrMoFw/yyrIq iKsVyuXOSrz/3Degu16CCPpgdga6bJDaU39iqDsflFFOw4nNxrjftFXuyWAry8FL KZ/Yypukb2M5eWQa71SCDnIvG6Ts1HMGZ3DnRzeVfyzeMQ4MEKUwtWJ11FgU3eAl /nwzPN5QQojMABFPJgdTsPKaHTLstK3gkxgAUg2UyIXqyPVZbWZ7A39gRUPr8+JW qKeparvBzkFqyVGPcZ93nMpJwkxm7YwllpapY71Gkhvyd7sMhwlXfmlarICttETU qG4HqZXRullrHIdmG/XGYYkc/W5n9Qt9NXhvpFJGsk07p1+g4PJ9Fsv7sDgw6hP1 HnMrVESHDwP36oOqgacx2dDVP8hyJkmE1E09NzGwL4Cembe1Y9c= =D4tZ -----END PGP SIGNATURE----- dpkg-source: warning: cannot verify inline signature for ./botan3_3.12.0+dfsg-2.dsc: missing OpenPGP keyrings dpkg-source: info: verifying ./botan3_3.12.0+dfsg-2.dsc dpkg-source: info: skipping absent keyring /usr/share/keyrings/debian-keyring.pgp dpkg-source: info: skipping absent keyring /usr/share/keyrings/debian-tag2upload.pgp dpkg-source: info: skipping absent keyring /usr/share/keyrings/debian-nonupload.pgp dpkg-source: info: skipping absent keyring /usr/share/keyrings/debian-maintainers.pgp dpkg-source: info: extracting botan3 in /build/reproducible-path/botan3-3.12.0+dfsg dpkg-source: info: unpacking botan3_3.12.0+dfsg.orig.tar.xz dpkg-source: info: unpacking botan3_3.12.0+dfsg-2.debian.tar.xz Check disk space ---------------- Sufficient free space for build User Environment ---------------- APT_CONFIG=/var/lib/sbuild/apt.conf CONFIG_SITE=/etc/dpkg-cross/cross-config.armhf DEB_BUILD_OPTIONS=nocheck HOME=/sbuild-nonexistent LANG=en_US.UTF-8 LC_ALL=C.UTF-8 LOGNAME=sbuild OLDPWD=/home/crossqa PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games SBUILD_CONFIG=/tmp/tmp.jOZA2HinwI/sbuild.conf SHELL=/bin/sh USER=sbuild XDG_SESSION_CLASS=user dpkg-buildpackage ----------------- Command: dpkg-buildpackage --sanitize-env -aarmhf -Pcross,nocheck -us -uc -B --jobs-try=1 dpkg-buildpackage: info: source package botan3 dpkg-buildpackage: info: source version 3.12.0+dfsg-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Laszlo Boszormenyi (GCS) dpkg-architecture: warning: specified GNU system type arm-linux-gnueabihf does not match CC system type x86_64-linux-gnu, try setting a correct CC environment variable dpkg-source --before-build . dpkg-buildpackage: info: host architecture armhf debian/rules clean dh clean --with python3 debian/rules override_dh_clean make[1]: Entering directory '/build/reproducible-path/botan3-3.12.0+dfsg' dh_clean rm -f /build/reproducible-path/botan3-3.12.0+dfsg/Certificate\ Store*.db make[1]: Leaving directory '/build/reproducible-path/botan3-3.12.0+dfsg' debian/rules binary-arch dh binary-arch --with python3 dh_update_autotools_config -a dh_autoreconf -a debian/rules override_dh_auto_configure make[1]: Entering directory '/build/reproducible-path/botan3-3.12.0+dfsg' /build/reproducible-path/botan3-3.12.0+dfsg/configure.py \ --os=linux --cc-bin=arm-linux-gnueabihf-g++ --ar-command=arm-linux-gnueabihf-ar \ --prefix=/usr/ \ --libdir=/usr/lib/arm-linux-gnueabihf \ --with-rst2man \ --with-bzip2 \ --with-lzma \ --with-sqlite3 \ --with-tpm \ --with-zlib \ --with-python-versions=3 \ --cpu=armv7 \ \ --distribution-info=Debian INFO: /build/reproducible-path/botan3-3.12.0+dfsg/configure.py invoked with options "--os=linux --cc-bin=arm-linux-gnueabihf-g++ --ar-command=arm-linux-gnueabihf-ar --prefix=/usr/ --libdir=/usr/lib/arm-linux-gnueabihf --with-rst2man --with-bzip2 --with-lzma --with-sqlite3 --with-tpm --with-zlib --with-python-versions=3 --cpu=armv7 --distribution-info=Debian" INFO: Configuring to build Botan 3.12.0 (revision unknown) INFO: Python version: "3.14.7 (main, Aug 11 2026, 08:48:35) [GCC 16.2.0]" INFO: Implicit --cxxflags=-g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security due to environment variable CXXFLAGS INFO: Implicit --ldflags=-Wl,-z,relro due to environment variable LDFLAGS INFO: Autodetected platform information: OS="Linux" machine="x86_64" proc="" INFO: Using /etc/ssl/certs/ca-certificates.crt as system certificate store INFO: Canonicalized CPU target armv7 to arm32 INFO: Auto-detected compiler version gcc 16.1 INFO: Auto-detected compiler arch arm32 INFO: Target is gcc:16.1-linux-arm32 INFO: Skipping (by request only): tls_null INFO: Skipping (dependency failure): argon2_simd64 aria_hwaes asio camellia_hwaes ghash_vperm seed_hwaes sm4_hwaes tpm2_crypto_backend tpm2_ecc tpm2_rsa INFO: Skipping (incompatible CPU): aes_armv8 aes_ni aes_power8 aes_vaes argon2_avx2 argon2_avx512 aria_avx512_gfni camellia_avx2_gfni camellia_avx512_gfni chacha_avx2 chacha_avx512 cpuid_aarch64 cpuid_loongarch64 cpuid_ppc cpuid_riscv64 cpuid_wasm cpuid_x86 ctr_avx2 ghash_avx512_clmul ghash_cpu idea_avx2 idea_sse2 keccak_perm_avx512 keccak_perm_bmi2 poly1305_avx2 poly1305_avx512 processor_rng rdseed seed_avx512_gfni serpent_avx2 serpent_avx512 sha1_armv8 sha1_avx2 sha1_x86 sha2_32_armv8 sha2_32_avx2 sha2_32_x86 sha2_64_armv8 sha2_64_avx2 sha2_64_avx512 sha2_64_x86 shacal2_armv8 shacal2_avx2 shacal2_avx512 shacal2_x86 simd_2x64 simd_4x64 simd_8x64 simd_avx2 simd_avx512 simd_hwaes sm3_armv8 sm3_avx2_bmi2 sm3_x86 sm4_armv8 sm4_avx512 sm4_gfni sm4_x86 twofish_avx512 whirlpool_avx2 whirlpool_avx512 xts_avx512_clmul INFO: Skipping (incompatible OS): certstor_system_macos certstor_system_windows commoncrypto win32_stats INFO: Skipping (not requested): dyn_load jitter_rng INFO: Skipping (requires external dependency): boost esdm_rng tpm2 INFO: Enabling use of external dependency bzip2 INFO: Enabling use of external dependency lzma INFO: Enabling use of external dependency sqlite3 INFO: Enabling use of external dependency tpm INFO: Enabling use of external dependency zlib WARNING: These modules are deprecated and will be removed in a future release (consider disabling with --disable-deprecated-features): adler32 crc32 cryptobox dilithium_aes dlies gost_28147 gost_3410 keccak kyber_90s legacy_ec_point lion mce md4 md5 noekeon prf_x942 shake_cipher siphash streebog tpm x919_mac INFO: Loading modules: adler32 aead aes aes_crystals_xof aes_vperm argon2 argon2fmt aria ascon_aead128 ascon_hash256 ascon_perm ascon_xof128 asn1 auto_rng base base32 base58 base64 bcrypt bcrypt_pbkdf bigint bitvector blake2 blake2mac blake2s blinding block blowfish bzip2 camellia cascade cast128 cbc ccm certstor_flatfile certstor_sql certstor_sqlite3 certstor_system cfb chacha chacha20poly1305 chacha_rng chacha_simd32 checksum classic_mceliece cmac comb4p compression cpuid cpuid_arm32 crc24 crc32 cryptobox cshake_xof ctr ctr_simd32 curve448 des dh dilithium dilithium_aes dilithium_common dilithium_round3 dilithium_shake dl_algo dl_group dlies dsa eax ec_group ecc_key ecdh ecdsa ecgdsa ecies eckcdsa ed25519 ed448 elgamal eme_oaep eme_pkcs1 eme_raw emsa_pkcs1 emsa_pssr emsa_raw emsa_x931 enc_padding entropy fd_unix ffi filters fpe_fe1 frodokem frodokem_aes frodokem_common gcm getentropy ghash gmac gost_28147 gost_3410 gost_3411 hash hash_id hex hkdf hmac hmac_drbg hotp hss_lms http_util hybrid_kem idea ip_address iso9796 kdf kdf1 kdf1_iso18033 kdf2 keccak keccak_perm kex_to_kem_adapter keypair kmac kuznyechik kyber kyber_90s kyber_common kyber_round3 legacy_ec_point lion locking_allocator lzma mac mce md4 md5 mdx_hash mem_pool mgf1 ml_dsa ml_kem mode_pad modes mp nist_keywrap noekeon noekeon_simd numbertheory ocb ofb os_utils par_hash passhash9 pbes2 pbkdf pbkdf2 pcurves pcurves_brainpool256r1 pcurves_brainpool384r1 pcurves_brainpool512r1 pcurves_frp256v1 pcurves_generic pcurves_impl pcurves_numsp512d1 pcurves_secp192r1 pcurves_secp224r1 pcurves_secp256k1 pcurves_secp256r1 pcurves_secp384r1 pcurves_secp521r1 pcurves_sm2p256v1 pem pgp_s2k poly1305 poly_dbl pqcrystals prf_tls prf_x942 psk_db pubkey raw_hash rc4 rfc3394 rfc6979 rmd160 rng roughtime rsa salsa20 scrypt seed serpent serpent_simd sessions_sql sessions_sqlite3 sha1 sha1_simd sha2_32 sha2_32_simd sha2_64 sha3 shacal2 shacal2_simd shake shake_cipher shake_xof sig_padding simd_4x32 siphash siv skein slh_dsa_sha2 slh_dsa_shake sm2 sm3 sm4 socket sodium sp800_108 sp800_56a sp800_56c sphincsplus_common sphincsplus_sha2 sphincsplus_sha2_base sphincsplus_shake sphincsplus_shake_base sponge sqlite3 srp6 stateful_key_index stateful_rng stream streebog system_rng thread_utils threefish_512 tls tls12 tls13 tls13_pqc tls_cbc tpm tree_hash trunc_hash tss twofish utils uuid whirlpool x25519 x448 x509 x919_mac xmd xmss xof xts zfec zfec_vperm zlib INFO: Using symlink to link files into build dir (use --link-method to change) INFO: Botan 3.12.0 (revision unknown) (unreleased undated) build setup is complete make[1]: Leaving directory '/build/reproducible-path/botan3-3.12.0+dfsg' dh_auto_build -a make -j1 INSTALL="install --strip-program=true" CXX=arm-linux-gnueabihf-g\+\+ CC=arm-linux-gnueabihf-gcc make[1]: Entering directory '/build/reproducible-path/botan3-3.12.0+dfsg' arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/asn1/alg_id.cpp -o build/obj/lib/asn1_alg_id.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/asn1/asn1_obj.cpp -o build/obj/lib/asn1_obj.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/asn1/asn1_oid.cpp -o build/obj/lib/asn1_oid.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/asn1/asn1_print.cpp -o build/obj/lib/asn1_print.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/asn1/asn1_str.cpp -o build/obj/lib/asn1_str.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/asn1/asn1_time.cpp -o build/obj/lib/asn1_time.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/asn1/ber_dec.cpp -o build/obj/lib/asn1_ber_dec.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/asn1/der_enc.cpp -o build/obj/lib/asn1_der_enc.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/asn1/oid_map.cpp -o build/obj/lib/asn1_oid_map.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/asn1/oids.cpp -o build/obj/lib/asn1_oids.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/asn1/pss_params.cpp -o build/obj/lib/asn1_pss_params.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/asn1/static_oids.cpp -o build/obj/lib/asn1_static_oids.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/base/buf_comp.cpp -o build/obj/lib/base_buf_comp.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/base/sym_algo.cpp -o build/obj/lib/base_sym_algo.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/base/symkey.cpp -o build/obj/lib/base_symkey.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/aes/aes.cpp -o build/obj/lib/block_aes.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/aes/aes_vperm/aes_vperm.cpp -o build/obj/lib/block_aes_vperm.o /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/aes/aes_vperm/aes_vperm.cpp: In function ‘std::pair Botan::{anonymous}::aes_decompose_kinv(Botan::SIMD_4x32)’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/aes/aes_vperm/aes_vperm.cpp:69:111: note: parameter passing for argument of type ‘std::pair’ when C++17 is enabled changed to match C++14 in GCC 10.1 69 | BOTAN_FORCE_INLINE BOTAN_FN_ISA_SIMD_4X32 std::pair aes_decompose_kinv(const SIMD_4x32 B) { | ^ arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/aria/aria.cpp -o build/obj/lib/block_aria.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/block_cipher.cpp -o build/obj/lib/block_cipher.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/blowfish/blowfish.cpp -o build/obj/lib/block_blowfish.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/camellia/camellia.cpp -o build/obj/lib/block_camellia.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/cascade/cascade.cpp -o build/obj/lib/block_cascade.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/cast128/cast128.cpp -o build/obj/lib/block_cast128.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/des/des.cpp -o build/obj/lib/block_des.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/gost_28147/gost_28147.cpp -o build/obj/lib/block_gost_28147.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/idea/idea.cpp -o build/obj/lib/block_idea.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/kuznyechik/kuznyechik.cpp -o build/obj/lib/block_kuznyechik.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/lion/lion.cpp -o build/obj/lib/block_lion.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/noekeon/noekeon.cpp -o build/obj/lib/block_noekeon.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/noekeon/noekeon_simd/noekeon_simd.cpp -o build/obj/lib/block_noekeon_simd.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/seed/seed.cpp -o build/obj/lib/block_seed.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/serpent/serpent.cpp -o build/obj/lib/block_serpent.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/serpent/serpent_simd/serpent_simd.cpp -o build/obj/lib/block_serpent_simd.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/shacal2/shacal2.cpp -o build/obj/lib/block_shacal2.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/shacal2/shacal2_simd/shacal2_simd.cpp -o build/obj/lib/block_shacal2_simd.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/sm4/sm4.cpp -o build/obj/lib/block_sm4.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/threefish_512/threefish_512.cpp -o build/obj/lib/block_threefish_512.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/block/twofish/twofish.cpp -o build/obj/lib/block_twofish.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/codec/base32/base32.cpp -o build/obj/lib/codec_base32.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/codec/base58/base58.cpp -o build/obj/lib/codec_base58.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/codec/base64/base64.cpp -o build/obj/lib/codec_base64.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/codec/hex/hex.cpp -o build/obj/lib/codec_hex.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compat/sodium/sodium_25519.cpp -o build/obj/lib/compat_sodium_25519.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compat/sodium/sodium_aead.cpp -o build/obj/lib/compat_sodium_aead.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compat/sodium/sodium_auth.cpp -o build/obj/lib/compat_sodium_auth.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compat/sodium/sodium_box.cpp -o build/obj/lib/compat_sodium_box.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compat/sodium/sodium_chacha.cpp -o build/obj/lib/compat_sodium_chacha.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compat/sodium/sodium_salsa.cpp -o build/obj/lib/compat_sodium_salsa.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compat/sodium/sodium_secretbox.cpp -o build/obj/lib/compat_sodium_secretbox.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compat/sodium/sodium_utils.cpp -o build/obj/lib/compat_sodium_utils.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compression/bzip2/bzip2.cpp -o build/obj/lib/compression_bzip2.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compression/compress_utils.cpp -o build/obj/lib/compression_compress_utils.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compression/compression.cpp -o build/obj/lib/compression.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compression/lzma/lzma.cpp -o build/obj/lib/compression_lzma.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/compression/zlib/zlib.cpp -o build/obj/lib/compression_zlib.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/entropy/entropy_srcs.cpp -o build/obj/lib/entropy_srcs.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/entropy/getentropy/getentropy.cpp -o build/obj/lib/entropy_getentropy.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi.cpp -o build/obj/lib/ffi.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_block.cpp -o build/obj/lib/ffi_block.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_cert.cpp -o build/obj/lib/ffi_cert.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_cipher.cpp -o build/obj/lib/ffi_cipher.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_ec.cpp -o build/obj/lib/ffi_ec.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_fpe.cpp -o build/obj/lib/ffi_fpe.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_hash.cpp -o build/obj/lib/ffi_hash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_hotp.cpp -o build/obj/lib/ffi_hotp.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_kdf.cpp -o build/obj/lib/ffi_kdf.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_keywrap.cpp -o build/obj/lib/ffi_keywrap.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_mac.cpp -o build/obj/lib/ffi_mac.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_mp.cpp -o build/obj/lib/ffi_mp.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_oid.cpp -o build/obj/lib/ffi_oid.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_pk_op.cpp -o build/obj/lib/ffi_pk_op.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_pkey.cpp -o build/obj/lib/ffi_pkey.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_pkey_algs.cpp -o build/obj/lib/ffi_pkey_algs.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_rng.cpp -o build/obj/lib/ffi_rng.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_srp6.cpp -o build/obj/lib/ffi_srp6.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_totp.cpp -o build/obj/lib/ffi_totp.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_tpm2.cpp -o build/obj/lib/ffi_tpm2.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_xof.cpp -o build/obj/lib/ffi_xof.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/ffi/ffi_zfec.cpp -o build/obj/lib/ffi_zfec.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/algo_filt.cpp -o build/obj/lib/filters_algo_filt.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/b64_filt.cpp -o build/obj/lib/filters_b64_filt.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/basefilt.cpp -o build/obj/lib/filters_basefilt.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/buf_filt.cpp -o build/obj/lib/filters_buf_filt.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/cipher_filter.cpp -o build/obj/lib/filters_cipher_filter.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/comp_filter.cpp -o build/obj/lib/filters_comp_filter.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/data_snk.cpp -o build/obj/lib/filters_data_snk.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/fd_unix/fd_unix.cpp -o build/obj/lib/filters_fd_unix.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/filter.cpp -o build/obj/lib/filters_filter.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/hex_filt.cpp -o build/obj/lib/filters_hex_filt.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/out_buf.cpp -o build/obj/lib/filters_out_buf.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/pipe.cpp -o build/obj/lib/filters_pipe.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/pipe_io.cpp -o build/obj/lib/filters_pipe_io.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/pipe_rw.cpp -o build/obj/lib/filters_pipe_rw.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/secqueue.cpp -o build/obj/lib/filters_secqueue.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/filters/threaded_fork.cpp -o build/obj/lib/filters_threaded_fork.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/ascon_hash256/ascon_hash256.cpp -o build/obj/lib/hash_ascon_hash256.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/blake2/blake2b.cpp -o build/obj/lib/hash_blake2_blake2b.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/blake2s/blake2s.cpp -o build/obj/lib/hash_blake2s.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/checksum/adler32/adler32.cpp -o build/obj/lib/hash_checksum_adler32.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/checksum/crc24/crc24.cpp -o build/obj/lib/hash_checksum_crc24.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/checksum/crc32/crc32.cpp -o build/obj/lib/hash_checksum_crc32.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/comb4p/comb4p.cpp -o build/obj/lib/hash_comb4p.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/gost_3411/gost_3411.cpp -o build/obj/lib/hash_gost_3411.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/hash.cpp -o build/obj/lib/hash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/keccak/keccak.cpp -o build/obj/lib/hash_keccak.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/md4/md4.cpp -o build/obj/lib/hash_md4.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/md5/md5.cpp -o build/obj/lib/hash_md5.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/par_hash/par_hash.cpp -o build/obj/lib/hash_par_hash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/rmd160/rmd160.cpp -o build/obj/lib/hash_rmd160.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/sha1/sha1.cpp -o build/obj/lib/hash_sha1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp -o build/obj/lib/hash_sha1_simd.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/sha2_32/sha2_32.cpp -o build/obj/lib/hash_sha2_32.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp -o build/obj/lib/hash_sha2_32_sha2_32_simd.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/sha2_64/sha2_64.cpp -o build/obj/lib/hash_sha2_64.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/sha3/sha3.cpp -o build/obj/lib/hash_sha3.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/shake/shake.cpp -o build/obj/lib/hash_shake.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/skein/skein_512.cpp -o build/obj/lib/hash_skein_512.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/sm3/sm3.cpp -o build/obj/lib/hash_sm3.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/streebog/streebog.cpp -o build/obj/lib/hash_streebog.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/trunc_hash/trunc_hash.cpp -o build/obj/lib/hash_trunc_hash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/hash/whirlpool/whirlpool.cpp -o build/obj/lib/hash_whirlpool.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/kdf/hkdf/hkdf.cpp -o build/obj/lib/kdf_hkdf.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/kdf/kdf.cpp -o build/obj/lib/kdf.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/kdf/kdf1/kdf1.cpp -o build/obj/lib/kdf_kdf1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/kdf/kdf1_iso18033/kdf1_iso18033.cpp -o build/obj/lib/kdf_kdf1_iso18033.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/kdf/kdf2/kdf2.cpp -o build/obj/lib/kdf_kdf2.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/kdf/prf_tls/prf_tls.cpp -o build/obj/lib/kdf_prf_tls.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/kdf/prf_x942/prf_x942.cpp -o build/obj/lib/kdf_prf_x942.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/kdf/sp800_108/sp800_108.cpp -o build/obj/lib/kdf_sp800_108.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/kdf/sp800_56a/sp800_56c_one_step.cpp -o build/obj/lib/kdf_sp800_56a_sp800_56c_one_step.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/kdf/sp800_56c/sp800_56c_two_step.cpp -o build/obj/lib/kdf_sp800_56c_sp800_56c_two_step.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/kdf/xmd/xmd.cpp -o build/obj/lib/kdf_xmd.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/mac/blake2mac/blake2bmac.cpp -o build/obj/lib/mac_blake2mac_blake2bmac.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/mac/cmac/cmac.cpp -o build/obj/lib/mac_cmac.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/mac/gmac/gmac.cpp -o build/obj/lib/mac_gmac.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/mac/hmac/hmac.cpp -o build/obj/lib/mac_hmac.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/mac/kmac/kmac.cpp -o build/obj/lib/mac_kmac.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/mac/mac.cpp -o build/obj/lib/mac.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/mac/poly1305/poly1305.cpp -o build/obj/lib/mac_poly1305.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/mac/siphash/siphash.cpp -o build/obj/lib/mac_siphash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/mac/x919_mac/x919_mac.cpp -o build/obj/lib/mac_x919_mac.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/bigint/big_code.cpp -o build/obj/lib/math_bigint_big_code.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/bigint/big_io.cpp -o build/obj/lib/math_bigint_big_io.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/bigint/big_ops2.cpp -o build/obj/lib/math_bigint_big_ops2.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/bigint/big_ops3.cpp -o build/obj/lib/math_bigint_big_ops3.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/bigint/big_rand.cpp -o build/obj/lib/math_bigint_big_rand.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/bigint/bigint.cpp -o build/obj/lib/math_bigint.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/bigint/divide.cpp -o build/obj/lib/math_bigint_divide.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/mp/mp_comba.cpp -o build/obj/lib/math_mp_comba.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/mp/mp_karat.cpp -o build/obj/lib/math_mp_karat.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/mp/mp_monty.cpp -o build/obj/lib/math_mp_monty.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/mp/mp_monty_n.cpp -o build/obj/lib/math_mp_monty_n.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/numbertheory/barrett.cpp -o build/obj/lib/math_numbertheory_barrett.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/numbertheory/dsa_gen.cpp -o build/obj/lib/math_numbertheory_dsa_gen.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/numbertheory/make_prm.cpp -o build/obj/lib/math_numbertheory_make_prm.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/numbertheory/mod_inv.cpp -o build/obj/lib/math_numbertheory_mod_inv.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/numbertheory/monty.cpp -o build/obj/lib/math_numbertheory_monty.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/numbertheory/monty_exp.cpp -o build/obj/lib/math_numbertheory_monty_exp.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/numbertheory/numthry.cpp -o build/obj/lib/math_numbertheory_numthry.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/numbertheory/primality.cpp -o build/obj/lib/math_numbertheory_primality.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/numbertheory/primes.cpp -o build/obj/lib/math_numbertheory_primes.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/numbertheory/reducer.cpp -o build/obj/lib/math_numbertheory_reducer.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves.cpp -o build/obj/lib/math_pcurves.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_brainpool256r1/pcurves_brainpool256r1.cpp -o build/obj/lib/math_pcurves_brainpool256r1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_brainpool384r1/pcurves_brainpool384r1.cpp -o build/obj/lib/math_pcurves_brainpool384r1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_brainpool512r1/pcurves_brainpool512r1.cpp -o build/obj/lib/math_pcurves_brainpool512r1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_frp256v1/pcurves_frp256v1.cpp -o build/obj/lib/math_pcurves_frp256v1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_generic/pcurves_generic.cpp -o build/obj/lib/math_pcurves_generic.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_numsp512d1/pcurves_numsp512d1.cpp -o build/obj/lib/math_pcurves_numsp512d1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_secp192r1/pcurves_secp192r1.cpp -o build/obj/lib/math_pcurves_secp192r1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_secp224r1/pcurves_secp224r1.cpp -o build/obj/lib/math_pcurves_secp224r1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_secp256k1/pcurves_secp256k1.cpp -o build/obj/lib/math_pcurves_secp256k1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_secp256r1/pcurves_secp256r1.cpp -o build/obj/lib/math_pcurves_secp256r1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_secp384r1/pcurves_secp384r1.cpp -o build/obj/lib/math_pcurves_secp384r1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_secp521r1/pcurves_secp521r1.cpp -o build/obj/lib/math_pcurves_secp521r1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/math/pcurves/pcurves_sm2p256v1/pcurves_sm2p256v1.cpp -o build/obj/lib/math_pcurves_sm2p256v1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/misc/cryptobox/cryptobox.cpp -o build/obj/lib/misc_cryptobox.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/misc/fpe_fe1/fpe_fe1.cpp -o build/obj/lib/misc_fpe_fe1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/misc/hotp/hotp.cpp -o build/obj/lib/misc_hotp.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/misc/hotp/totp.cpp -o build/obj/lib/misc_hotp_totp.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/misc/nist_keywrap/nist_keywrap.cpp -o build/obj/lib/misc_nist_keywrap.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/misc/rfc3394/rfc3394.cpp -o build/obj/lib/misc_rfc3394.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/misc/roughtime/roughtime.cpp -o build/obj/lib/misc_roughtime.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/misc/srp6/srp6.cpp -o build/obj/lib/misc_srp6.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/misc/tss/tss.cpp -o build/obj/lib/misc_tss.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/misc/zfec/zfec.cpp -o build/obj/lib/misc_zfec.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/misc/zfec/zfec_vperm/zfec_vperm.cpp -o build/obj/lib/misc_zfec_vperm.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/aead/aead.cpp -o build/obj/lib/modes_aead.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp -o build/obj/lib/modes_aead_ascon_aead128.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/aead/ccm/ccm.cpp -o build/obj/lib/modes_aead_ccm.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp -o build/obj/lib/modes_aead_chacha20poly1305.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/aead/eax/eax.cpp -o build/obj/lib/modes_aead_eax.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/aead/gcm/gcm.cpp -o build/obj/lib/modes_aead_gcm.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/aead/ocb/ocb.cpp -o build/obj/lib/modes_aead_ocb.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/aead/siv/siv.cpp -o build/obj/lib/modes_aead_siv.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/cbc/cbc.cpp -o build/obj/lib/modes_cbc.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/cfb/cfb.cpp -o build/obj/lib/modes_cfb.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/cipher_mode.cpp -o build/obj/lib/modes_cipher_mode.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/mode_pad/mode_pad.cpp -o build/obj/lib/modes_mode_pad.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/modes/xts/xts.cpp -o build/obj/lib/modes_xts.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/passhash/argon2fmt/argon2fmt.cpp -o build/obj/lib/passhash_argon2fmt.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/passhash/bcrypt/bcrypt.cpp -o build/obj/lib/passhash_bcrypt.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/passhash/passhash9/passhash9.cpp -o build/obj/lib/passhash_passhash9.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pbkdf/argon2/argon2.cpp -o build/obj/lib/pbkdf_argon2.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pbkdf/argon2/argon2pwhash.cpp -o build/obj/lib/pbkdf_argon2_argon2pwhash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp -o build/obj/lib/pbkdf_bcrypt_pbkdf.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pbkdf/pbkdf.cpp -o build/obj/lib/pbkdf.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pbkdf/pbkdf2/pbkdf2.cpp -o build/obj/lib/pbkdf_pbkdf2.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp -o build/obj/lib/pbkdf_pgp_s2k.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pbkdf/pgp_s2k/rfc4880.cpp -o build/obj/lib/pbkdf_pgp_s2k_rfc4880.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pbkdf/pwdhash.cpp -o build/obj/lib/pbkdf_pwdhash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pbkdf/scrypt/scrypt.cpp -o build/obj/lib/pbkdf_scrypt.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/permutations/ascon_perm/ascon_perm.cpp -o build/obj/lib/permutations_ascon_perm.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/permutations/keccak_perm/keccak_helpers.cpp -o build/obj/lib/permutations_keccak_perm_keccak_helpers.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/permutations/keccak_perm/keccak_perm.cpp -o build/obj/lib/permutations_keccak_perm.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/enc_padding/eme_oaep/oaep.cpp -o build/obj/lib/pk_pad_enc_padding_eme_oaep_oaep.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/enc_padding/eme_pkcs1/eme_pkcs.cpp -o build/obj/lib/pk_pad_enc_padding_eme_pkcs1_eme_pkcs.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/enc_padding/eme_raw/eme_raw.cpp -o build/obj/lib/pk_pad_enc_padding_eme_raw.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/enc_padding/enc_padding.cpp -o build/obj/lib/pk_pad_enc_padding.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/hash_id/hash_id.cpp -o build/obj/lib/pk_pad_hash_id.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/mgf1/mgf1.cpp -o build/obj/lib/pk_pad_mgf1.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/raw_hash/raw_hash.cpp -o build/obj/lib/pk_pad_raw_hash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/sig_padding/emsa_pkcs1/pkcs1_sig_padding.cpp -o build/obj/lib/pk_pad_sig_padding_emsa_pkcs1_sig_padding.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/sig_padding/emsa_pssr/pssr.cpp -o build/obj/lib/pk_pad_sig_padding_emsa_pssr_pssr.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/sig_padding/emsa_raw/raw_sig_padding.cpp -o build/obj/lib/pk_pad_sig_padding_emsa_raw_sig_padding.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/sig_padding/emsa_x931/x931_sig_padding.cpp -o build/obj/lib/pk_pad_sig_padding_emsa_x931_sig_padding.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/sig_padding/iso9796/iso9796.cpp -o build/obj/lib/pk_pad_sig_padding_iso9796.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pk_pad/sig_padding/sig_padding.cpp -o build/obj/lib/pk_pad_sig_padding.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/prov/tpm/tpm.cpp -o build/obj/lib/prov_tpm.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/psk_db/psk_db.cpp -o build/obj/lib/psk_db.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/psk_db/psk_db_sql.cpp -o build/obj/lib/psk_db_psk_db_sql.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/blinding/blinding.cpp -o build/obj/lib/pubkey_blinding.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/classic_mceliece/cmce.cpp -o build/obj/lib/pubkey_classic_mceliece_cmce.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp -o build/obj/lib/pubkey_classic_mceliece_cmce_decaps.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp -o build/obj/lib/pubkey_classic_mceliece_cmce_encaps.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp -o build/obj/lib/pubkey_classic_mceliece_cmce_field_ordering.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/classic_mceliece/cmce_gf.cpp -o build/obj/lib/pubkey_classic_mceliece_cmce_gf.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp -o build/obj/lib/pubkey_classic_mceliece_cmce_keys_internal.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp -o build/obj/lib/pubkey_classic_mceliece_cmce_matrix.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp -o build/obj/lib/pubkey_classic_mceliece_cmce_parameter_set.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp -o build/obj/lib/pubkey_classic_mceliece_cmce_parameters.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/classic_mceliece/cmce_poly.cpp -o build/obj/lib/pubkey_classic_mceliece_cmce_poly.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp -o build/obj/lib/pubkey_curve448_gf.o /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In function ‘void Botan::{anonymous}::reduce_after_add(std::span, std::span)’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:27:6: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 27 | void reduce_after_add(std::span h_3, std::span h_1) { | ^~~~~~~~~~~~~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:27:6: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In function ‘void Botan::{anonymous}::reduce_after_mul(std::span, std::span)’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:66:6: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 66 | void reduce_after_mul(std::span out, std::span in) { | ^~~~~~~~~~~~~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:66:6: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:118:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 118 | reduce_after_add(out, h_1); | ~~~~~~~~~~~~~~~~^~~~~~~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In function ‘void Botan::{anonymous}::gf_sub(std::span, std::span, std::span)’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:176:6: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 176 | void gf_sub(std::span out, | ^~~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:176:6: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:176:6: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In function ‘std::array Botan::{anonymous}::to_canonical(std::span)’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:335:33: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 335 | std::array to_canonical(std::span in) { | ^~~~~~~~~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In member function ‘void Botan::Gf448Elem::to_bytes(std::span) const’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:366:30: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 366 | store_le(out, to_canonical(m_x)); | ~~~~~~~~~~~~^~~~~ In member function ‘void Botan::Gf448Elem::to_bytes(std::span) const’, inlined from ‘std::array Botan::Gf448Elem::to_bytes() const’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:371:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:366:30: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 366 | store_le(out, to_canonical(m_x)); | ~~~~~~~~~~~~^~~~~ In function ‘void Botan::{anonymous}::gf_add(std::span, std::span, std::span)’, inlined from ‘Botan::Gf448Elem Botan::Gf448Elem::operator+(const Botan::Gf448Elem&) const’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:387:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:168:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 168 | reduce_after_add(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In member function ‘Botan::Gf448Elem Botan::Gf448Elem::operator-(const Botan::Gf448Elem&) const’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:393:10: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 393 | gf_sub(res.m_x, m_x, other.m_x); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In member function ‘Botan::Gf448Elem Botan::Gf448Elem::operator-() const’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:399:10: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 399 | gf_sub(res.m_x, res.m_x, m_x); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In member function ‘bool Botan::Gf448Elem::operator==(const Botan::Gf448Elem&) const’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:417:49: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 417 | const auto canonical_form_this = to_canonical(m_x); | ~~~~~~~~~~~~^~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:418:50: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 418 | const auto canonical_form_other = to_canonical(other.m_x); | ~~~~~~~~~~~~^~~~~~~~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In member function ‘bool Botan::Gf448Elem::is_zero() const’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:423:44: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 423 | const auto canonical_form = to_canonical(m_x); | ~~~~~~~~~~~~^~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In member function ‘bool Botan::Gf448Elem::is_odd() const’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:429:44: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 429 | const auto canonical_form = to_canonical(m_x); | ~~~~~~~~~~~~^~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In static member function ‘static bool Botan::Gf448Elem::bytes_are_canonical_representation(std::span)’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:435:47: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 435 | const auto x_words_canonical = to_canonical(x_words); | ~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul_a24(std::span, std::span)’, inlined from ‘Botan::Gf448Elem Botan::mul_a24(const Gf448Elem&)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:441:14: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:136:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 136 | reduce_after_add(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘Botan::Gf448Elem Botan::Gf448Elem::operator*(const Botan::Gf448Elem&) const’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:405:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘Botan::Gf448Elem Botan::square(const Gf448Elem&)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:447:13: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In function ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:243:6: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 243 | void gf_pow_2_222m1(std::span x222, | ^~~~~~~~~~~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:243:6: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:243:6: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:250:13: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:254:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:258:13: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:259:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:219:13, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:263:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:221:16, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:263:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:264:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:219:13, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:268:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:221:16, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:268:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:269:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:219:13, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:273:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:221:16, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:273:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:274:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:219:13, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:278:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:221:16, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:278:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:282:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:219:13, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:286:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:221:16, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:286:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:287:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:219:13, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:291:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:221:16, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:291:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:292:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:219:13, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:296:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:221:16, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:296:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:297:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:219:13, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:300:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:221:16, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:300:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:301:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:304:13: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_pow_2_222m1(std::span, std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:305:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_inv(std::span, std::span)’, inlined from ‘Botan::Gf448Elem Botan::Gf448Elem::operator/(const Botan::Gf448Elem&) const’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:411:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:319:18: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 319 | gf_pow_2_222m1(x222, x223, a); | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:219:13, inlined from ‘void Botan::{anonymous}::gf_inv(std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:323:12, inlined from ‘Botan::Gf448Elem Botan::Gf448Elem::operator/(const Botan::Gf448Elem&) const’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:411:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:221:16, inlined from ‘void Botan::{anonymous}::gf_inv(std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:323:12, inlined from ‘Botan::Gf448Elem Botan::Gf448Elem::operator/(const Botan::Gf448Elem&) const’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:411:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_inv(std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:324:10, inlined from ‘Botan::Gf448Elem Botan::Gf448Elem::operator/(const Botan::Gf448Elem&) const’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:411:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:219:13, inlined from ‘void Botan::{anonymous}::gf_inv(std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:325:12, inlined from ‘Botan::Gf448Elem Botan::Gf448Elem::operator/(const Botan::Gf448Elem&) const’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:411:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:221:16, inlined from ‘void Botan::{anonymous}::gf_inv(std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:325:12, inlined from ‘Botan::Gf448Elem Botan::Gf448Elem::operator/(const Botan::Gf448Elem&) const’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:411:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_inv(std::span, std::span)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:326:10, inlined from ‘Botan::Gf448Elem Botan::Gf448Elem::operator/(const Botan::Gf448Elem&) const’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:411:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘Botan::Gf448Elem Botan::Gf448Elem::operator/(const Botan::Gf448Elem&) const’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:412:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp: In function ‘Botan::Gf448Elem Botan::root(const Gf448Elem&)’: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:457:18: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 457 | gf_pow_2_222m1(x222, x223, elem.words()); | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:219:13, inlined from ‘Botan::Gf448Elem Botan::root(const Gf448Elem&)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:460:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_square(std::span, std::span)’, inlined from ‘void Botan::{anonymous}::gf_sqr_n(std::span, std::span, std::size_t)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:221:16, inlined from ‘Botan::Gf448Elem Botan::root(const Gf448Elem&)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:460:12: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:150:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 150 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ In function ‘void Botan::{anonymous}::gf_mul(std::span, std::span, std::span)’, inlined from ‘Botan::Gf448Elem Botan::root(const Gf448Elem&)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:461:10: /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_gf.cpp:144:20: note: parameter passing for argument of type ‘std::span’ changed in GCC 7.1 144 | reduce_after_mul(out, ws); | ~~~~~~~~~~~~~~~~^~~~~~~~~ arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/curve448_scalar.cpp -o build/obj/lib/pubkey_curve448_scalar.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/ed448/ed448.cpp -o build/obj/lib/pubkey_curve448_ed448.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/ed448/ed448_internal.cpp -o build/obj/lib/pubkey_curve448_ed448_internal.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/x448/x448.cpp -o build/obj/lib/pubkey_curve448_x448.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/curve448/x448/x448_internal.cpp -o build/obj/lib/pubkey_curve448_x448_internal.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dh/dh.cpp -o build/obj/lib/pubkey_dh.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp -o build/obj/lib/pubkey_dilithium_common_dilithium.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp -o build/obj/lib/pubkey_dilithium_common_dilithium_algos.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp -o build/obj/lib/pubkey_dilithium_common_dilithium_constants.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp -o build/obj/lib/pubkey_dilithium_common_dilithium_keys.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.cpp -o build/obj/lib/pubkey_dilithium_common_dilithium_shake_dilithium_shake_xof.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp -o build/obj/lib/pubkey_dilithium_common_dilithium_symmetric_primitives.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp -o build/obj/lib/pubkey_dilithium_round3_dilithium_aes.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp -o build/obj/lib/pubkey_dilithium_round3_dilithium_round3_symmetric_primitives.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp -o build/obj/lib/pubkey_dilithium_ml_dsa_ml_dsa_impl.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dl_algo/dl_scheme.cpp -o build/obj/lib/pubkey_dl_algo_dl_scheme.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dl_group/dl_group.cpp -o build/obj/lib/pubkey_dl_group.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dl_group/dl_named.cpp -o build/obj/lib/pubkey_dl_group_dl_named.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dlies/dlies.cpp -o build/obj/lib/pubkey_dlies.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/dsa/dsa.cpp -o build/obj/lib/pubkey_dsa.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ec_group/ec_apoint.cpp -o build/obj/lib/pubkey_ec_group_ec_apoint.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ec_group/ec_group.cpp -o build/obj/lib/pubkey_ec_group.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ec_group/ec_inner_data.cpp -o build/obj/lib/pubkey_ec_group_ec_inner_data.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ec_group/ec_inner_pc.cpp -o build/obj/lib/pubkey_ec_group_ec_inner_pc.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ec_group/ec_named.cpp -o build/obj/lib/pubkey_ec_group_ec_named.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ec_group/ec_scalar.cpp -o build/obj/lib/pubkey_ec_group_ec_scalar.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp -o build/obj/lib/pubkey_ec_group_legacy_ec_point_ec_inner_bn.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp -o build/obj/lib/pubkey_ec_group_legacy_ec_point_ec_point.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp -o build/obj/lib/pubkey_ec_group_legacy_ec_point_mul.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ecc_key/ec_key_data.cpp -o build/obj/lib/pubkey_ecc_key_ec_key_data.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ecc_key/ecc_key.cpp -o build/obj/lib/pubkey_ecc_key.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ecdh/ecdh.cpp -o build/obj/lib/pubkey_ecdh.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ecdsa/ecdsa.cpp -o build/obj/lib/pubkey_ecdsa.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ecgdsa/ecgdsa.cpp -o build/obj/lib/pubkey_ecgdsa.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ecies/ecies.cpp -o build/obj/lib/pubkey_ecies.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/eckcdsa/eckcdsa.cpp -o build/obj/lib/pubkey_eckcdsa.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ed25519/ed25519.cpp -o build/obj/lib/pubkey_ed25519.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ed25519/ed25519_fe.cpp -o build/obj/lib/pubkey_ed25519_fe.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ed25519/ed25519_key.cpp -o build/obj/lib/pubkey_ed25519_key.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ed25519/ge.cpp -o build/obj/lib/pubkey_ed25519_ge.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ed25519/sc_muladd.cpp -o build/obj/lib/pubkey_ed25519_sc_muladd.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/ed25519/sc_reduce.cpp -o build/obj/lib/pubkey_ed25519_sc_reduce.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/elgamal/elgamal.cpp -o build/obj/lib/pubkey_elgamal.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp -o build/obj/lib/pubkey_frodokem_common_frodo_constants.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp -o build/obj/lib/pubkey_frodokem_common_frodo_matrix.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp -o build/obj/lib/pubkey_frodokem_common_frodo_mode.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp -o build/obj/lib/pubkey_frodokem_common_frodokem.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/gost_3410/gost_3410.cpp -o build/obj/lib/pubkey_gost_3410.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/hss_lms/hss.cpp -o build/obj/lib/pubkey_hss_lms_hss.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/hss_lms/hss_lms.cpp -o build/obj/lib/pubkey_hss_lms.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/hss_lms/hss_lms_utils.cpp -o build/obj/lib/pubkey_hss_lms_hss_lms_utils.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/hss_lms/lm_ots.cpp -o build/obj/lib/pubkey_hss_lms_lm_ots.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/hss_lms/lms.cpp -o build/obj/lib/pubkey_hss_lms_lms.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp -o build/obj/lib/pubkey_hybrid_kem.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp -o build/obj/lib/pubkey_hybrid_kem_hybrid_kem_ops.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp -o build/obj/lib/pubkey_kex_to_kem_adapter.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/keypair/keypair.cpp -o build/obj/lib/pubkey_keypair.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/kyber/kyber_common/kyber.cpp -o build/obj/lib/pubkey_kyber_common_kyber.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp -o build/obj/lib/pubkey_kyber_common_kyber_algos.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp -o build/obj/lib/pubkey_kyber_common_kyber_constants.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp -o build/obj/lib/pubkey_kyber_common_kyber_keys.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp -o build/obj/lib/pubkey_kyber_round3_kyber_round3_impl.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp -o build/obj/lib/pubkey_kyber_ml_kem_ml_kem_impl.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/mce/code_based_key_gen.cpp -o build/obj/lib/pubkey_mce_code_based_key_gen.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp -o build/obj/lib/pubkey_mce_gf2m_rootfind_dcmp.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/mce/gf2m_small_m.cpp -o build/obj/lib/pubkey_mce_gf2m_small_m.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/mce/goppa_code.cpp -o build/obj/lib/pubkey_mce_goppa_code.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/mce/mce_workfactor.cpp -o build/obj/lib/pubkey_mce_workfactor.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/mce/mceliece.cpp -o build/obj/lib/pubkey_mce_mceliece.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/mce/mceliece_key.cpp -o build/obj/lib/pubkey_mce_mceliece_key.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/mce/polyn_gf2m.cpp -o build/obj/lib/pubkey_mce_polyn_gf2m.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/pbes2/pbes2.cpp -o build/obj/lib/pubkey_pbes2.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/pem/pem.cpp -o build/obj/lib/pubkey_pem.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/pk_algs.cpp -o build/obj/lib/pubkey_pk_algs.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/pk_keys.cpp -o build/obj/lib/pubkey_pk_keys.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/pk_ops.cpp -o build/obj/lib/pubkey_pk_ops.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/pkcs8.cpp -o build/obj/lib/pubkey_pkcs8.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/pubkey.cpp -o build/obj/lib/pubkey.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/rfc6979/rfc6979.cpp -o build/obj/lib/pubkey_rfc6979.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/rsa/rsa.cpp -o build/obj/lib/pubkey_rsa.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/sm2/sm2.cpp -o build/obj/lib/pubkey_sm2.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/sm2/sm2_enc.cpp -o build/obj/lib/pubkey_sm2_enc.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp -o build/obj/lib/pubkey_sphincsplus_common_sp_fors.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp -o build/obj/lib/pubkey_sphincsplus_common_sp_hash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp -o build/obj/lib/pubkey_sphincsplus_common_sp_hypertree.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp -o build/obj/lib/pubkey_sphincsplus_common_sp_parameters.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp -o build/obj/lib/pubkey_sphincsplus_common_sp_treehash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp -o build/obj/lib/pubkey_sphincsplus_common_sp_wots.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp -o build/obj/lib/pubkey_sphincsplus_common_sp_xmss.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp -o build/obj/lib/pubkey_sphincsplus_common_sphincsplus.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/stateful_key_index/stateful_key_index_registry.cpp -o build/obj/lib/pubkey_stateful_key_index_stateful_key_index_registry.o In file included from /usr/arm-linux-gnueabihf/include/c++/16/map:64, from build/include/internal/botan/internal/stateful_key_index_registry.h:14, from /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/stateful_key_index/stateful_key_index_registry.cpp:8: /usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h: In member function ‘std::pair::rebind<_Val>::other>::pointer>::_Base_ptr, typename std::__rb_tree::_Node_traits<_Val, typename __gnu_cxx::__alloc_traits::rebind<_Val>::other>::pointer>::_Base_ptr> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_hint_unique_pos(const_iterator, const key_type&) [with _Key = Botan::Stateful_Key_Index_Registry::KeyId; _Val = std::pair; _KeyOfValue = std::_Select1st >; _Compare = std::less; _Alloc = std::allocator >]’: /usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h:2952:5: note: parameter passing for argument of type ‘std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::const_iterator’ changed in GCC 7.1 2952 | _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h: In member function ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_hint_unique(const_iterator, _Args&& ...) [with _Args = {const Botan::Stateful_Key_Index_Registry::KeyId&, int}; _Key = Botan::Stateful_Key_Index_Registry::KeyId; _Val = std::pair; _KeyOfValue = std::_Select1st >; _Compare = std::less; _Alloc = std::allocator >]’: /usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h:3250:7: note: parameter passing for argument of type ‘std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::const_iterator’ changed in GCC 7.1 3250 | _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/arm-linux-gnueabihf/include/c++/16/map:65: In member function ‘std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::emplace_hint(const_iterator, _Args&& ...) [with _Args = {const Botan::Stateful_Key_Index_Registry::KeyId&, int}; _Key = Botan::Stateful_Key_Index_Registry::KeyId; _Tp = long long unsigned int; _Compare = std::less; _Alloc = std::allocator >]’, inlined from ‘std::pair, std::_Select1st >, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::emplace(_Args&& ...) [with _Args = {const Botan::Stateful_Key_Index_Registry::KeyId&, int}; _Key = Botan::Stateful_Key_Index_Registry::KeyId; _Tp = long long unsigned int; _Compare = std::less; _Alloc = std::allocator >]’ at /usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h:662:22, inlined from ‘std::map::iterator Botan::Stateful_Key_Index_Registry::lookup(const KeyId&)’ at /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/stateful_key_index/stateful_key_index_registry.cpp:47:44: /usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h:701:45: note: parameter passing for argument of type ‘std::map::const_iterator’ {aka ‘std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::const_iterator’} changed in GCC 7.1 701 | return _M_t._M_emplace_hint_unique(__pos, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~ 702 | std::forward<_Args>(__args)...); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/workfactor.cpp -o build/obj/lib/pubkey_workfactor.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/x25519/donna.cpp -o build/obj/lib/pubkey_x25519_donna.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/x25519/x25519.cpp -o build/obj/lib/pubkey_x25519.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/x509_key.cpp -o build/obj/lib/pubkey_x509_key.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/xmss/xmss_common_ops.cpp -o build/obj/lib/pubkey_xmss_common_ops.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/xmss/xmss_hash.cpp -o build/obj/lib/pubkey_xmss_hash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/xmss/xmss_parameters.cpp -o build/obj/lib/pubkey_xmss_parameters.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/xmss/xmss_privatekey.cpp -o build/obj/lib/pubkey_xmss_privatekey.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/xmss/xmss_publickey.cpp -o build/obj/lib/pubkey_xmss_publickey.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/xmss/xmss_signature.cpp -o build/obj/lib/pubkey_xmss_signature.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/xmss/xmss_signature_operation.cpp -o build/obj/lib/pubkey_xmss_signature_operation.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/xmss/xmss_verification_operation.cpp -o build/obj/lib/pubkey_xmss_verification_operation.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/xmss/xmss_wots.cpp -o build/obj/lib/pubkey_xmss_wots.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/pubkey/xmss/xmss_wots_parameters.cpp -o build/obj/lib/pubkey_xmss_wots_parameters.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/rng/auto_rng/auto_rng.cpp -o build/obj/lib/rng_auto_rng.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/rng/chacha_rng/chacha_rng.cpp -o build/obj/lib/rng_chacha_rng.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/rng/hmac_drbg/hmac_drbg.cpp -o build/obj/lib/rng_hmac_drbg.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/rng/rng.cpp -o build/obj/lib/rng.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/rng/stateful_rng/stateful_rng.cpp -o build/obj/lib/rng_stateful_rng.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/rng/system_rng/system_rng.cpp -o build/obj/lib/rng_system_rng.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/stream/chacha/chacha.cpp -o build/obj/lib/stream_chacha.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/stream/chacha/chacha_simd32/chacha_simd32.cpp -o build/obj/lib/stream_chacha_simd32.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/stream/ctr/ctr.cpp -o build/obj/lib/stream_ctr.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/stream/ctr/ctr_simd32/ctr_simd32.cpp -o build/obj/lib/stream_ctr_simd32.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/stream/ofb/ofb.cpp -o build/obj/lib/stream_ofb.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/stream/rc4/rc4.cpp -o build/obj/lib/stream_rc4.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/stream/salsa20/salsa20.cpp -o build/obj/lib/stream_salsa20.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/stream/shake_cipher/shake_cipher.cpp -o build/obj/lib/stream_shake_cipher.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/stream/stream_cipher.cpp -o build/obj/lib/stream_cipher.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/credentials_manager.cpp -o build/obj/lib/tls_credentials_manager.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/msg_cert_status.cpp -o build/obj/lib/tls_msg_cert_status.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/msg_cert_verify.cpp -o build/obj/lib/tls_msg_cert_verify.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/msg_client_hello.cpp -o build/obj/lib/tls_msg_client_hello.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/msg_server_hello.cpp -o build/obj/lib/tls_msg_server_hello.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp -o build/obj/lib/tls_sessions_sql_tls_session_manager_sql.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.cpp -o build/obj/lib/tls_sessions_sqlite3_tls_session_manager_sqlite.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/msg_cert_status_12.cpp -o build/obj/lib/tls_tls12_msg_cert_status_12.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/msg_cert_verify_12.cpp -o build/obj/lib/tls_tls12_msg_cert_verify_12.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/msg_certificate_12.cpp -o build/obj/lib/tls_tls12_msg_certificate_12.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/msg_certificate_req_12.cpp -o build/obj/lib/tls_tls12_msg_certificate_req_12.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/msg_client_hello_12.cpp -o build/obj/lib/tls_tls12_msg_client_hello_12.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/msg_client_kex.cpp -o build/obj/lib/tls_tls12_msg_client_kex.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/msg_finished_12.cpp -o build/obj/lib/tls_tls12_msg_finished_12.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/msg_hello_verify.cpp -o build/obj/lib/tls_tls12_msg_hello_verify.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/msg_server_hello_12.cpp -o build/obj/lib/tls_tls12_msg_server_hello_12.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/msg_server_kex.cpp -o build/obj/lib/tls_tls12_msg_server_kex.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/msg_session_ticket_12.cpp -o build/obj/lib/tls_tls12_msg_session_ticket_12.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp -o build/obj/lib/tls_tls12_tls_cbc.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/tls_channel_impl_12.cpp -o build/obj/lib/tls_tls12_tls_channel_impl_12.o In file included from /usr/arm-linux-gnueabihf/include/c++/16/map:64, from build/include/internal/botan/internal/tls_channel_impl_12.h:16, from /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/tls_channel_impl_12.cpp:9: /usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h: In function ‘std::pair::rebind<_Val>::other>::pointer>::_Base_ptr, typename std::__rb_tree::_Node_traits<_Val, typename __gnu_cxx::__alloc_traits::rebind<_Val>::other>::pointer>::_Base_ptr> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_hint_unique_pos(const_iterator, const key_type&) [with _Key = short unsigned int; _Val = std::pair; _KeyOfValue = std::_Select1st >; _Compare = std::less; _Alloc = std::allocator >]’: /usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h:2952:5: note: parameter passing for argument of type ‘std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::const_iterator’ changed in GCC 7.1 2952 | _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/tls_client_impl_12.cpp -o build/obj/lib/tls_tls12_tls_client_impl_12.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/tls_connection_state_12.cpp -o build/obj/lib/tls_tls12_tls_connection_state_12.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/tls_extensions_12.cpp -o build/obj/lib/tls_tls12_tls_extensions_12.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/tls_handshake_hash.cpp -o build/obj/lib/tls_tls12_tls_handshake_hash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/tls_handshake_io.cpp -o build/obj/lib/tls_tls12_tls_handshake_io.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/tls_handshake_state.cpp -o build/obj/lib/tls_tls12_tls_handshake_state.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/tls_record.cpp -o build/obj/lib/tls_tls12_tls_record.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/tls_server_impl_12.cpp -o build/obj/lib/tls_tls12_tls_server_impl_12.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls12/tls_session_key.cpp -o build/obj/lib/tls_tls12_tls_session_key.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/msg_cert_verify_13.cpp -o build/obj/lib/tls_tls13_msg_cert_verify_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/msg_certificate_13.cpp -o build/obj/lib/tls_tls13_msg_certificate_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/msg_certificate_req_13.cpp -o build/obj/lib/tls_tls13_msg_certificate_req_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/msg_client_hello_13.cpp -o build/obj/lib/tls_tls13_msg_client_hello_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/msg_encrypted_extensions.cpp -o build/obj/lib/tls_tls13_msg_encrypted_extensions.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/msg_finished_13.cpp -o build/obj/lib/tls_tls13_msg_finished_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/msg_key_update.cpp -o build/obj/lib/tls_tls13_msg_key_update.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/msg_server_hello_13.cpp -o build/obj/lib/tls_tls13_msg_server_hello_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/msg_session_ticket_13.cpp -o build/obj/lib/tls_tls13_msg_session_ticket_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_channel_impl_13.cpp -o build/obj/lib/tls_tls13_tls_channel_impl_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_cipher_state.cpp -o build/obj/lib/tls_tls13_tls_cipher_state.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_client_impl_13.cpp -o build/obj/lib/tls_tls13_tls_client_impl_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_connection_state_13.cpp -o build/obj/lib/tls_tls13_tls_connection_state_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_extensions_13.cpp -o build/obj/lib/tls_tls13_tls_extensions_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_extensions_key_share.cpp -o build/obj/lib/tls_tls13_tls_extensions_key_share.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_extensions_psk.cpp -o build/obj/lib/tls_tls13_tls_extensions_psk.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_handshake_layer_13.cpp -o build/obj/lib/tls_tls13_tls_handshake_layer_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_handshake_state_13.cpp -o build/obj/lib/tls_tls13_tls_handshake_state_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_psk_identity_13.cpp -o build/obj/lib/tls_tls13_tls_psk_identity_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_psk_importer_13.cpp -o build/obj/lib/tls_tls13_tls_psk_importer_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_record_layer_13.cpp -o build/obj/lib/tls_tls13_tls_record_layer_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_server_impl_13.cpp -o build/obj/lib/tls_tls13_tls_server_impl_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13/tls_transcript_hash_13.cpp -o build/obj/lib/tls_tls13_tls_transcript_hash_13.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls13_pqc/hybrid_public_key.cpp -o build/obj/lib/tls_tls13_pqc_hybrid_public_key.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_alert.cpp -o build/obj/lib/tls_alert.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_algos.cpp -o build/obj/lib/tls_algos.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_callbacks.cpp -o build/obj/lib/tls_callbacks.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_ciphersuite.cpp -o build/obj/lib/tls_ciphersuite.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_client.cpp -o build/obj/lib/tls_client.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_extensions.cpp -o build/obj/lib/tls_extensions.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_extensions_cert_status_req.cpp -o build/obj/lib/tls_extensions_cert_status_req.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_external_psk.cpp -o build/obj/lib/tls_external_psk.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_handshake_transitions.cpp -o build/obj/lib/tls_handshake_transitions.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_magic.cpp -o build/obj/lib/tls_magic.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_policy.cpp -o build/obj/lib/tls_policy.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_reader.cpp -o build/obj/lib/tls_reader.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_server.cpp -o build/obj/lib/tls_server.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_session.cpp -o build/obj/lib/tls_session.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_session_manager.cpp -o build/obj/lib/tls_session_manager.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_session_manager_hybrid.cpp -o build/obj/lib/tls_session_manager_hybrid.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_session_manager_memory.cpp -o build/obj/lib/tls_session_manager_memory.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_session_manager_noop.cpp -o build/obj/lib/tls_session_manager_noop.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_session_manager_stateless.cpp -o build/obj/lib/tls_session_manager_stateless.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_signature_scheme.cpp -o build/obj/lib/tls_signature_scheme.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_suite_info.cpp -o build/obj/lib/tls_suite_info.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_text_policy.cpp -o build/obj/lib/tls_text_policy.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/tls/tls_version.cpp -o build/obj/lib/tls_version.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/allocator.cpp -o build/obj/lib/utils_allocator.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/assert.cpp -o build/obj/lib/utils_assert.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/calendar.cpp -o build/obj/lib/utils_calendar.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/charset.cpp -o build/obj/lib/utils_charset.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/cpuid/cpuid.cpp -o build/obj/lib/utils_cpuid.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/cpuid/cpuid_arm32/cpuid_arm32.cpp -o build/obj/lib/utils_cpuid_arm32.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/cpuid/cpuid_arm32/cpuid_features.cpp -o build/obj/lib/utils_cpuid_arm32_cpuid_features.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ct_utils.cpp -o build/obj/lib/utils_ct_utils.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/data_src.cpp -o build/obj/lib/utils_data_src.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/exceptn.cpp -o build/obj/lib/utils_exceptn.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/filesystem.cpp -o build/obj/lib/utils_filesystem.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ghash/ghash.cpp -o build/obj/lib/utils_ghash.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/http_util/http_util.cpp -o build/obj/lib/utils_http_util.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ip_address/ipv4_address.cpp -o build/obj/lib/utils_ip_address_ipv4_address.o arm-linux-gnueabihf-g++ -fPIC -fvisibility=hidden -fstack-protector -pthread -std=c++20 -D_REENTRANT -g -O2 -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -DBOTAN_IS_BEING_BUILT -I build/include/public -I build/include/internal -c /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ip_address/ipv6_address.cpp -o build/obj/lib/utils_ip_address_ipv6_address.o during GIMPLE pass: uninit In member function ‘std::vector Botan::IPv6Subnet::serialize() const’: canonical types differ for identical types ‘std::__array_traits::_Type’ {aka ‘unsigned char [16]’} and ‘unsigned char [16]’ 151 | std::vector IPv6Subnet::serialize() const { | ^~~~~~~~~~ 0x265365f internal_error(char const*, ...) ../../src/gcc/diagnostic-global-context.cc:787 0xdc1aba comptypes(tree_node*, tree_node*, int) ../../src/gcc/cp/typeck.cc:1760 0xb23b98 cxx_types_compatible_p(tree_node*, tree_node*) ../../src/gcc/cp/cp-objcp-common.cc:267 0xe73ab8 c_fold_indirect_ref_for_warn ../../src/gcc/c-family/c-pretty-print.cc:1877 0xe742a9 c_fold_indirect_ref_for_warn ../../src/gcc/c-family/c-pretty-print.cc:1944 0xe742a9 c_fold_indirect_ref_for_warn ../../src/gcc/c-family/c-pretty-print.cc:1944 0xe74e2e print_mem_ref ../../src/gcc/c-family/c-pretty-print.cc:2007 0xba2187 expr_to_string(tree_node*) ../../src/gcc/cp/error.cc:3719 0xba2724 cp_printer ../../src/gcc/cp/error.cc:5040 0x26d0a98 format_phase_2 ../../src/gcc/pretty-print.cc:2303 0x26d0a98 pretty_printer::format(text_info&) ../../src/gcc/pretty-print.cc:1846 0x265e51e pp_format(pretty_printer*, text_info*) ../../src/gcc/pretty-print.h:599 0x265e51e diagnostics::context::report_diagnostic(diagnostics::diagnostic_info*) ../../src/gcc/diagnostics/context.cc:1530 0x265ec76 diagnostics::context::diagnostic_impl(rich_location*, diagnostics::metadata const*, diagnostics::option_id, char const*, __va_list_tag (*) [1], diagnostics::kind) ../../src/gcc/diagnostics/context.cc:1689 0x2650c6a warning_at(unsigned long, diagnostics::option_id, char const*, ...) ../../src/gcc/diagnostic-global-context.cc:278 0x17c06a4 maybe_warn_operand ../../src/gcc/tree-ssa-uninit.cc:780 0x17c0eeb warn_uninitialized_vars ../../src/gcc/tree-ssa-uninit.cc:1135 0x17c25be execute_late_warn_uninitialized ../../src/gcc/tree-ssa-uninit.cc:1453 0x17c25be execute ../../src/gcc/tree-ssa-uninit.cc:1498 /usr/libexec/gcc-cross/arm-linux-gnueabihf/16/cc1plus -quiet -I build/include/public -I build/include/internal -imultilib . -imultiarch arm-linux-gnueabihf -D_GNU_SOURCE -D_REENTRANT -D _REENTRANT -D BOTAN_IS_BEING_BUILT /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ip_address/ipv6_address.cpp -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 -quiet -dumpdir build/obj/lib/ -dumpbase utils_ip_address_ipv6_address.cpp -dumpbase-ext .cpp -mfloat-abi=hard -mtls-dialect=gnu -mthumb -mlibarch=armv7-a+fp -march=armv7-a+fp -g -O2 -Wformat=1 -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -std=c++20 -fPIC -fvisibility=hidden -fstack-protector -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -o /tmp/cccHIIKY.s Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See for instructions. Preprocessed source stored into /tmp/cckJraIu.out file, please attach this to your bugreport. === BEGIN GCC DUMP === 1414: // Target: arm-linux-gnueabihf 1414: // Configured with: ../src/configure -v --with-pkgversion='Debian 16.1.0-3' --with-bugurl=file:///usr/share/doc/gcc-16/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2,algol68 --prefix=/usr --with-gcc-major-version-only --program-suffix=-16 --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --without-target-system-zlib --enable-multiarch --disable-sjlj-exceptions --with-arch=armv7-a+fp --with-float=hard --with-mode=thumb --disable-werror --enable-checking=yes --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-linux-gnueabihf --program-prefix=arm-linux-gnueabihf- --includedir=/usr/arm-linux-gnueabihf/include --with-build-config=bootstrap-lto-lean --enable-link-serialization=3 1414: // Thread model: posix 1414: // Supported LTO compression algorithms: zlib zstd 1414: // gcc version 16.1.0 (Debian 16.1.0-3) 1414: // 1414: // 1414: // during GIMPLE pass: uninit 1414: // In member function ‘std::vector Botan::IPv6Subnet::serialize() const’: 1414: // canonical types differ for identical types ‘std::__array_traits::_Type’ {aka ‘unsigned char [16]’} and ‘unsigned char [16]’ 1414: // 151 | std::vector IPv6Subnet::serialize() const { 1414: // | ^~~~~~~~~~ 1414: // 0x265365f internal_error(char const*, ...) 1414: // ../../src/gcc/diagnostic-global-context.cc:787 1414: // 0xdc1aba comptypes(tree_node*, tree_node*, int) 1414: // ../../src/gcc/cp/typeck.cc:1760 1414: // 0xb23b98 cxx_types_compatible_p(tree_node*, tree_node*) 1414: // ../../src/gcc/cp/cp-objcp-common.cc:267 1414: // 0xe73ab8 c_fold_indirect_ref_for_warn 1414: // ../../src/gcc/c-family/c-pretty-print.cc:1877 1414: // 0xe742a9 c_fold_indirect_ref_for_warn 1414: // ../../src/gcc/c-family/c-pretty-print.cc:1944 1414: // 0xe742a9 c_fold_indirect_ref_for_warn 1414: // ../../src/gcc/c-family/c-pretty-print.cc:1944 1414: // 0xe74e2e print_mem_ref 1414: // ../../src/gcc/c-family/c-pretty-print.cc:2007 1414: // 0xba2187 expr_to_string(tree_node*) 1414: // ../../src/gcc/cp/error.cc:3719 1414: // 0xba2724 cp_printer 1414: // ../../src/gcc/cp/error.cc:5040 1414: // 0x26d0a98 format_phase_2 1414: // ../../src/gcc/pretty-print.cc:2303 1414: // 0x26d0a98 pretty_printer::format(text_info&) 1414: // ../../src/gcc/pretty-print.cc:1846 1414: // 0x265e51e pp_format(pretty_printer*, text_info*) 1414: // ../../src/gcc/pretty-print.h:599 1414: // 0x265e51e diagnostics::context::report_diagnostic(diagnostics::diagnostic_info*) 1414: // ../../src/gcc/diagnostics/context.cc:1530 1414: // 0x265ec76 diagnostics::context::diagnostic_impl(rich_location*, diagnostics::metadata const*, diagnostics::option_id, char const*, __va_list_tag (*) [1], diagnostics::kind) 1414: // ../../src/gcc/diagnostics/context.cc:1689 1414: // 0x2650c6a warning_at(unsigned long, diagnostics::option_id, char const*, ...) 1414: // ../../src/gcc/diagnostic-global-context.cc:278 1414: // 0x17c06a4 maybe_warn_operand 1414: // ../../src/gcc/tree-ssa-uninit.cc:780 1414: // 0x17c0eeb warn_uninitialized_vars 1414: // ../../src/gcc/tree-ssa-uninit.cc:1135 1414: // 0x17c25be execute_late_warn_uninitialized 1414: // ../../src/gcc/tree-ssa-uninit.cc:1453 1414: // 0x17c25be execute 1414: // ../../src/gcc/tree-ssa-uninit.cc:1498 1414: // -quiet -I build/include/public -I build/include/internal -imultilib . -imultiarch arm-linux-gnueabihf -D_GNU_SOURCE -D_REENTRANT -D _REENTRANT -D BOTAN_IS_BEING_BUILT /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ip_address/ipv6_address.cpp -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 -quiet -dumpdir build/obj/lib/ -dumpbase utils_ip_address_ipv6_address.cpp -dumpbase-ext .cpp -mfloat-abi=hard -mtls-dialect=gnu -mthumb -mlibarch=armv7-a+fp -march=armv7-a+fp -g -O2 -Wformat=1 -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -std=c++20 -fPIC -fvisibility=hidden -fstack-protector -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -o - -frandom-seed=0 -fdump-noaddr 1414: // Please submit a full bug report, with preprocessed source (by using -freport-bug). 1414: // Please include the complete backtrace with any bug report. 1414: // See for instructions. 1414: 1414: // /usr/libexec/gcc-cross/arm-linux-gnueabihf/16/cc1plus -quiet -I build/include/public -I build/include/internal -imultilib . -imultiarch arm-linux-gnueabihf -D_GNU_SOURCE -D_REENTRANT -D _REENTRANT -D BOTAN_IS_BEING_BUILT /build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ip_address/ipv6_address.cpp -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 -quiet -dumpdir build/obj/lib/ -dumpbase utils_ip_address_ipv6_address.cpp -dumpbase-ext .cpp -mfloat-abi=hard -mtls-dialect=gnu -mthumb -mlibarch=armv7-a+fp -march=armv7-a+fp -g -O2 -Wformat=1 -Werror=format-security -Wall -Wextra -Wpedantic -Wstrict-aliasing -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wzero-as-null-pointer-constant -Wnon-virtual-dtor -Wold-style-cast -Wsuggest-override -Wshadow -Wextra-semi -std=c++20 -fPIC -fvisibility=hidden -fstack-protector -ffile-prefix-map=/build/reproducible-path/botan3-3.12.0+dfsg=. -fstack-protector-strong -fstack-clash-protection -o - -frandom-seed=0 -fdump-noaddr 1414: 1414: # 0 "/build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ip_address/ipv6_address.cpp" 1414: # 1 "/build/reproducible-path/botan3-3.12.0+dfsg//" 1414: # 0 "" 1414: # 0 "" 1414: # 1 "/usr/arm-linux-gnueabihf/include/stdc-predef.h" 1 3 1414: # 0 "" 2 1414: # 1 "/build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ip_address/ipv6_address.cpp" 1414: 1414: 1414: 1414: 1414: 1414: 1414: # 1 "build/include/public/botan/ipv6_address.h" 1 1414: # 10 "build/include/public/botan/ipv6_address.h" 1414: # 1 "build/include/public/botan/types.h" 1 1414: # 13 "build/include/public/botan/types.h" 1414: # 1 "build/include/public/botan/api.h" 1 1414: # 10 "build/include/public/botan/api.h" 1414: # 1 "build/include/public/botan/build.h" 1 1414: # 11 "build/include/public/botan/api.h" 2 1414: # 14 "build/include/public/botan/types.h" 2 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/cstddef" 1 3 1414: # 51 "/usr/arm-linux-gnueabihf/include/c++/16/cstddef" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++config.h" 1 3 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++config.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wvariadic-macros" 1414: 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: #pragma GCC diagnostic ignored "-Wc++23-extensions" 1414: # 342 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++config.h" 3 1414: namespace std 1414: { 1414: typedef unsigned int size_t; 1414: typedef int ptrdiff_t; 1414: 1414: 1414: typedef decltype(nullptr) nullptr_t; 1414: 1414: 1414: #pragma GCC visibility push(default) 1414: 1414: 1414: extern "C++" __attribute__ ((__noreturn__, __always_inline__)) 1414: inline void __terminate() noexcept 1414: { 1414: void terminate() noexcept __attribute__ ((__noreturn__,__cold__)); 1414: terminate(); 1414: } 1414: #pragma GCC visibility pop 1414: } 1414: # 375 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++config.h" 3 1414: namespace std 1414: { 1414: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 1414: } 1414: namespace __gnu_cxx 1414: { 1414: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 1414: } 1414: # 579 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++config.h" 3 1414: namespace std 1414: { 1414: #pragma GCC visibility push(default) 1414: 1414: 1414: 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr inline bool 1414: __is_constant_evaluated() noexcept 1414: { 1414: 1414: 1414: 1414: 1414: 1414: return __builtin_is_constant_evaluated(); 1414: 1414: 1414: 1414: } 1414: #pragma GCC visibility pop 1414: } 1414: # 623 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++config.h" 3 1414: namespace std 1414: { 1414: #pragma GCC visibility push(default) 1414: 1414: extern "C++" __attribute__ ((__noreturn__)) __attribute__((__cold__)) 1414: void 1414: __glibcxx_assert_fail 1414: (const char* __file, int __line, const char* __function, 1414: const char* __condition) 1414: noexcept; 1414: #pragma GCC visibility pop 1414: } 1414: # 654 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++config.h" 3 1414: namespace std 1414: { 1414: __attribute__((__always_inline__,__visibility__("default"))) 1414: inline void 1414: __glibcxx_assert_fail() 1414: { } 1414: } 1414: # 733 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++config.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/os_defines.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/os_defines.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/features.h" 1 3 1414: # 431 "/usr/arm-linux-gnueabihf/include/features.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/features-time64.h" 1 3 1414: # 20 "/usr/arm-linux-gnueabihf/include/features-time64.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/wordsize.h" 1 3 1414: # 21 "/usr/arm-linux-gnueabihf/include/features-time64.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/timesize.h" 1 3 1414: # 22 "/usr/arm-linux-gnueabihf/include/features-time64.h" 2 3 1414: # 432 "/usr/arm-linux-gnueabihf/include/features.h" 2 3 1414: # 539 "/usr/arm-linux-gnueabihf/include/features.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/sys/cdefs.h" 1 3 1414: # 730 "/usr/arm-linux-gnueabihf/include/sys/cdefs.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/wordsize.h" 1 3 1414: # 731 "/usr/arm-linux-gnueabihf/include/sys/cdefs.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/long-double.h" 1 3 1414: # 732 "/usr/arm-linux-gnueabihf/include/sys/cdefs.h" 2 3 1414: # 540 "/usr/arm-linux-gnueabihf/include/features.h" 2 3 1414: # 563 "/usr/arm-linux-gnueabihf/include/features.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/gnu/stubs.h" 1 3 1414: # 10 "/usr/arm-linux-gnueabihf/include/gnu/stubs.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/gnu/stubs-hard.h" 1 3 1414: # 11 "/usr/arm-linux-gnueabihf/include/gnu/stubs.h" 2 3 1414: # 564 "/usr/arm-linux-gnueabihf/include/features.h" 2 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/os_defines.h" 2 3 1414: # 734 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++config.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/cpu_defines.h" 1 3 1414: # 737 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++config.h" 2 3 1414: # 962 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++config.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/pstl/pstl_config.h" 1 3 1414: # 963 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++config.h" 2 3 1414: 1414: 1414: 1414: #pragma GCC diagnostic pop 1414: # 52 "/usr/arm-linux-gnueabihf/include/c++/16/cstddef" 2 3 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 1 3 1414: # 160 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 3 1414: typedef int ptrdiff_t; 1414: # 229 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 3 1414: typedef unsigned int size_t; 1414: # 440 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 3 1414: typedef struct { 1414: long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); 1414: long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); 1414: # 451 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 3 1414: } max_align_t; 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef decltype(nullptr) nullptr_t; 1414: # 53 "/usr/arm-linux-gnueabihf/include/c++/16/cstddef" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 56 "/usr/arm-linux-gnueabihf/include/c++/16/cstddef" 2 3 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wpedantic" 1414: 1414: extern "C++" 1414: { 1414: 1414: namespace std 1414: { 1414: 1414: using ::max_align_t; 1414: } 1414: 1414: 1414: 1414: namespace std 1414: { 1414: 1414: 1414: enum class byte : unsigned char {}; 1414: 1414: template struct __byte_operand { }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: 1414: template<> struct __byte_operand { using __type = byte; }; 1414: 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: template<> struct __byte_operand { using __type = byte; }; 1414: # 114 "/usr/arm-linux-gnueabihf/include/c++/16/cstddef" 3 1414: template 1414: struct __byte_operand 1414: : __byte_operand<_IntegerType> { }; 1414: template 1414: struct __byte_operand 1414: : __byte_operand<_IntegerType> { }; 1414: template 1414: struct __byte_operand 1414: : __byte_operand<_IntegerType> { }; 1414: 1414: template 1414: using __byte_op_t = typename __byte_operand<_IntegerType>::__type; 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr __byte_op_t<_IntegerType> 1414: operator<<(byte __b, _IntegerType __shift) noexcept 1414: { return (byte)(unsigned char)((unsigned)__b << __shift); } 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr __byte_op_t<_IntegerType> 1414: operator>>(byte __b, _IntegerType __shift) noexcept 1414: { return (byte)(unsigned char)((unsigned)__b >> __shift); } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr byte 1414: operator|(byte __l, byte __r) noexcept 1414: { return (byte)(unsigned char)((unsigned)__l | (unsigned)__r); } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr byte 1414: operator&(byte __l, byte __r) noexcept 1414: { return (byte)(unsigned char)((unsigned)__l & (unsigned)__r); } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr byte 1414: operator^(byte __l, byte __r) noexcept 1414: { return (byte)(unsigned char)((unsigned)__l ^ (unsigned)__r); } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr byte 1414: operator~(byte __b) noexcept 1414: { return (byte)(unsigned char)~(unsigned)__b; } 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr __byte_op_t<_IntegerType>& 1414: operator<<=(byte& __b, _IntegerType __shift) noexcept 1414: { return __b = __b << __shift; } 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr __byte_op_t<_IntegerType>& 1414: operator>>=(byte& __b, _IntegerType __shift) noexcept 1414: { return __b = __b >> __shift; } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr byte& 1414: operator|=(byte& __l, byte __r) noexcept 1414: { return __l = __l | __r; } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr byte& 1414: operator&=(byte& __l, byte __r) noexcept 1414: { return __l = __l & __r; } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr byte& 1414: operator^=(byte& __l, byte __r) noexcept 1414: { return __l = __l ^ __r; } 1414: 1414: template 1414: [[nodiscard,__gnu__::__always_inline__]] 1414: constexpr _IntegerType 1414: to_integer(__byte_op_t<_IntegerType> __b) noexcept 1414: { return _IntegerType(__b); } 1414: 1414: 1414: } 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 16 "build/include/public/botan/types.h" 2 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/cstdint" 1 3 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/cstdint" 3 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stdint.h" 1 3 1414: # 9 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stdint.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wpedantic" 1414: # 1 "/usr/arm-linux-gnueabihf/include/stdint.h" 1 3 1414: # 26 "/usr/arm-linux-gnueabihf/include/stdint.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/libc-header-start.h" 1 3 1414: # 27 "/usr/arm-linux-gnueabihf/include/stdint.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types.h" 1 3 1414: # 27 "/usr/arm-linux-gnueabihf/include/bits/types.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/wordsize.h" 1 3 1414: # 28 "/usr/arm-linux-gnueabihf/include/bits/types.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/timesize.h" 1 3 1414: # 29 "/usr/arm-linux-gnueabihf/include/bits/types.h" 2 3 1414: 1414: 1414: typedef unsigned char __u_char; 1414: typedef unsigned short int __u_short; 1414: typedef unsigned int __u_int; 1414: typedef unsigned long int __u_long; 1414: 1414: 1414: typedef signed char __int8_t; 1414: typedef unsigned char __uint8_t; 1414: typedef signed short int __int16_t; 1414: typedef unsigned short int __uint16_t; 1414: typedef signed int __int32_t; 1414: typedef unsigned int __uint32_t; 1414: 1414: 1414: 1414: 1414: __extension__ typedef signed long long int __int64_t; 1414: __extension__ typedef unsigned long long int __uint64_t; 1414: 1414: 1414: 1414: typedef __int8_t __int_least8_t; 1414: typedef __uint8_t __uint_least8_t; 1414: typedef __int16_t __int_least16_t; 1414: typedef __uint16_t __uint_least16_t; 1414: typedef __int32_t __int_least32_t; 1414: typedef __uint32_t __uint_least32_t; 1414: typedef __int64_t __int_least64_t; 1414: typedef __uint64_t __uint_least64_t; 1414: 1414: 1414: 1414: 1414: 1414: 1414: __extension__ typedef long long int __quad_t; 1414: __extension__ typedef unsigned long long int __u_quad_t; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: __extension__ typedef long long int __intmax_t; 1414: __extension__ typedef unsigned long long int __uintmax_t; 1414: # 141 "/usr/arm-linux-gnueabihf/include/bits/types.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/typesizes.h" 1 3 1414: # 142 "/usr/arm-linux-gnueabihf/include/bits/types.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/time64.h" 1 3 1414: # 143 "/usr/arm-linux-gnueabihf/include/bits/types.h" 2 3 1414: 1414: 1414: __extension__ typedef __uint64_t __dev_t; 1414: __extension__ typedef unsigned int __uid_t; 1414: __extension__ typedef unsigned int __gid_t; 1414: __extension__ typedef unsigned long int __ino_t; 1414: __extension__ typedef __uint64_t __ino64_t; 1414: __extension__ typedef unsigned int __mode_t; 1414: __extension__ typedef unsigned int __nlink_t; 1414: __extension__ typedef long int __off_t; 1414: __extension__ typedef __int64_t __off64_t; 1414: __extension__ typedef int __pid_t; 1414: __extension__ typedef struct { int __val[2]; } __fsid_t; 1414: __extension__ typedef long int __clock_t; 1414: __extension__ typedef unsigned long int __rlim_t; 1414: __extension__ typedef __uint64_t __rlim64_t; 1414: __extension__ typedef unsigned int __id_t; 1414: __extension__ typedef long int __time_t; 1414: __extension__ typedef unsigned int __useconds_t; 1414: __extension__ typedef long int __suseconds_t; 1414: __extension__ typedef __int64_t __suseconds64_t; 1414: 1414: __extension__ typedef int __daddr_t; 1414: __extension__ typedef int __key_t; 1414: 1414: 1414: __extension__ typedef int __clockid_t; 1414: 1414: 1414: __extension__ typedef void * __timer_t; 1414: 1414: 1414: __extension__ typedef long int __blksize_t; 1414: 1414: 1414: 1414: 1414: __extension__ typedef long int __blkcnt_t; 1414: __extension__ typedef __int64_t __blkcnt64_t; 1414: 1414: 1414: __extension__ typedef unsigned long int __fsblkcnt_t; 1414: __extension__ typedef __uint64_t __fsblkcnt64_t; 1414: 1414: 1414: __extension__ typedef unsigned long int __fsfilcnt_t; 1414: __extension__ typedef __uint64_t __fsfilcnt64_t; 1414: 1414: 1414: __extension__ typedef int __fsword_t; 1414: 1414: __extension__ typedef int __ssize_t; 1414: 1414: 1414: __extension__ typedef long int __syscall_slong_t; 1414: 1414: __extension__ typedef unsigned long int __syscall_ulong_t; 1414: 1414: 1414: 1414: typedef __off64_t __loff_t; 1414: typedef char *__caddr_t; 1414: 1414: 1414: __extension__ typedef int __intptr_t; 1414: 1414: 1414: __extension__ typedef unsigned int __socklen_t; 1414: 1414: 1414: 1414: 1414: typedef int __sig_atomic_t; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: __extension__ typedef __int64_t __time64_t; 1414: # 28 "/usr/arm-linux-gnueabihf/include/stdint.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/wchar.h" 1 3 1414: # 29 "/usr/arm-linux-gnueabihf/include/stdint.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/wordsize.h" 1 3 1414: # 30 "/usr/arm-linux-gnueabihf/include/stdint.h" 2 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/stdint.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/stdint-intn.h" 1 3 1414: # 24 "/usr/arm-linux-gnueabihf/include/bits/stdint-intn.h" 3 1414: typedef __int8_t int8_t; 1414: typedef __int16_t int16_t; 1414: typedef __int32_t int32_t; 1414: typedef __int64_t int64_t; 1414: # 39 "/usr/arm-linux-gnueabihf/include/stdint.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/stdint-uintn.h" 1 3 1414: # 24 "/usr/arm-linux-gnueabihf/include/bits/stdint-uintn.h" 3 1414: typedef __uint8_t uint8_t; 1414: typedef __uint16_t uint16_t; 1414: typedef __uint32_t uint32_t; 1414: typedef __uint64_t uint64_t; 1414: # 42 "/usr/arm-linux-gnueabihf/include/stdint.h" 2 3 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/stdint-least.h" 1 3 1414: # 25 "/usr/arm-linux-gnueabihf/include/bits/stdint-least.h" 3 1414: typedef __int_least8_t int_least8_t; 1414: typedef __int_least16_t int_least16_t; 1414: typedef __int_least32_t int_least32_t; 1414: typedef __int_least64_t int_least64_t; 1414: 1414: 1414: typedef __uint_least8_t uint_least8_t; 1414: typedef __uint_least16_t uint_least16_t; 1414: typedef __uint_least32_t uint_least32_t; 1414: typedef __uint_least64_t uint_least64_t; 1414: # 46 "/usr/arm-linux-gnueabihf/include/stdint.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: typedef signed char int_fast8_t; 1414: 1414: 1414: 1414: 1414: 1414: typedef int int_fast16_t; 1414: typedef int int_fast32_t; 1414: __extension__ 1414: typedef long long int int_fast64_t; 1414: 1414: 1414: 1414: typedef unsigned char uint_fast8_t; 1414: 1414: 1414: 1414: 1414: 1414: typedef unsigned int uint_fast16_t; 1414: typedef unsigned int uint_fast32_t; 1414: __extension__ 1414: typedef unsigned long long int uint_fast64_t; 1414: # 86 "/usr/arm-linux-gnueabihf/include/stdint.h" 3 1414: typedef int intptr_t; 1414: 1414: 1414: typedef unsigned int uintptr_t; 1414: 1414: 1414: 1414: 1414: typedef __intmax_t intmax_t; 1414: typedef __uintmax_t uintmax_t; 1414: # 12 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stdint.h" 2 3 1414: #pragma GCC diagnostic pop 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/cstdint" 2 3 1414: 1414: 1414: namespace std 1414: { 1414: 1414: using ::int8_t; 1414: using ::int16_t; 1414: using ::int32_t; 1414: using ::int64_t; 1414: 1414: using ::int_fast8_t; 1414: using ::int_fast16_t; 1414: using ::int_fast32_t; 1414: using ::int_fast64_t; 1414: 1414: using ::int_least8_t; 1414: using ::int_least16_t; 1414: using ::int_least32_t; 1414: using ::int_least64_t; 1414: 1414: using ::intmax_t; 1414: using ::intptr_t; 1414: 1414: using ::uint8_t; 1414: using ::uint16_t; 1414: using ::uint32_t; 1414: using ::uint64_t; 1414: 1414: using ::uint_fast8_t; 1414: using ::uint_fast16_t; 1414: using ::uint_fast32_t; 1414: using ::uint_fast64_t; 1414: 1414: using ::uint_least8_t; 1414: using ::uint_least16_t; 1414: using ::uint_least32_t; 1414: using ::uint_least64_t; 1414: 1414: using ::uintmax_t; 1414: using ::uintptr_t; 1414: # 144 "/usr/arm-linux-gnueabihf/include/c++/16/cstdint" 3 1414: } 1414: # 17 "build/include/public/botan/types.h" 2 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 1 3 1414: # 69 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 70 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 2 3 1414: 1414: extern "C++" 1414: { 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: class reference_wrapper; 1414: # 94 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct integral_constant 1414: { 1414: static constexpr _Tp value = __v; 1414: using value_type = _Tp; 1414: using type = integral_constant<_Tp, __v>; 1414: constexpr operator value_type() const noexcept { return value; } 1414: 1414: 1414: constexpr value_type operator()() const noexcept { return value; } 1414: 1414: }; 1414: # 114 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: using __bool_constant = integral_constant; 1414: 1414: 1414: 1414: using true_type = __bool_constant; 1414: 1414: 1414: using false_type = __bool_constant; 1414: 1414: 1414: 1414: 1414: template 1414: using bool_constant = __bool_constant<__v>; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct enable_if 1414: { }; 1414: 1414: 1414: template 1414: struct enable_if 1414: { using type = _Tp; }; 1414: 1414: 1414: template 1414: using __enable_if_t = typename enable_if<_Cond, _Tp>::type; 1414: 1414: template 1414: struct __conditional 1414: { 1414: template 1414: using type = _Tp; 1414: }; 1414: 1414: template<> 1414: struct __conditional 1414: { 1414: template 1414: using type = _Up; 1414: }; 1414: 1414: 1414: template 1414: using __conditional_t 1414: = typename __conditional<_Cond>::template type<_If, _Else>; 1414: 1414: 1414: template 1414: struct __type_identity 1414: { using type = _Type; }; 1414: 1414: template 1414: using __type_identity_t = typename __type_identity<_Tp>::type; 1414: 1414: namespace __detail 1414: { 1414: 1414: template 1414: using __first_t = _Tp; 1414: 1414: 1414: template 1414: auto __or_fn(int) -> __first_t...>; 1414: 1414: template 1414: auto __or_fn(...) -> true_type; 1414: 1414: template 1414: auto __and_fn(int) -> __first_t...>; 1414: 1414: template 1414: auto __and_fn(...) -> false_type; 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: struct __or_ 1414: : decltype(__detail::__or_fn<_Bn...>(0)) 1414: { }; 1414: 1414: template 1414: struct __and_ 1414: : decltype(__detail::__and_fn<_Bn...>(0)) 1414: { }; 1414: 1414: template 1414: struct __not_ 1414: : __bool_constant 1414: { }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool __or_v = __or_<_Bn...>::value; 1414: template 1414: inline constexpr bool __and_v = __and_<_Bn...>::value; 1414: 1414: namespace __detail 1414: { 1414: template 1414: struct __disjunction_impl 1414: { using type = _B1; }; 1414: 1414: template 1414: struct __disjunction_impl<__enable_if_t, _B1, _B2, _Bn...> 1414: { using type = typename __disjunction_impl::type; }; 1414: 1414: template 1414: struct __conjunction_impl 1414: { using type = _B1; }; 1414: 1414: template 1414: struct __conjunction_impl<__enable_if_t, _B1, _B2, _Bn...> 1414: { using type = typename __conjunction_impl::type; }; 1414: } 1414: 1414: 1414: template 1414: struct conjunction 1414: : __detail::__conjunction_impl::type 1414: { }; 1414: 1414: template<> 1414: struct conjunction<> 1414: : true_type 1414: { }; 1414: 1414: template 1414: struct disjunction 1414: : __detail::__disjunction_impl::type 1414: { }; 1414: 1414: template<> 1414: struct disjunction<> 1414: : false_type 1414: { }; 1414: 1414: template 1414: struct negation 1414: : __not_<_Pp>::type 1414: { }; 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool conjunction_v = conjunction<_Bn...>::value; 1414: 1414: template 1414: inline constexpr bool disjunction_v = disjunction<_Bn...>::value; 1414: 1414: template 1414: inline constexpr bool negation_v = negation<_Pp>::value; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct is_object; 1414: template 1414: struct remove_cv; 1414: template 1414: struct is_const; 1414: 1414: 1414: template 1414: struct __is_array_unknown_bounds; 1414: 1414: 1414: 1414: 1414: template 1414: using __maybe_complete_object_type 1414: = __and_, __not_<__is_array_unknown_bounds<_Tp>>>; 1414: 1414: 1414: 1414: 1414: 1414: template::value>, 1414: size_t = sizeof(_Tp)> 1414: constexpr true_type 1414: __is_complete_or_unbounded(__type_identity<_Tp>) 1414: { return {}; }; 1414: 1414: 1414: 1414: template 1414: constexpr typename __not_<__maybe_complete_object_type<_NestedType>>::type 1414: __is_complete_or_unbounded(_TypeIdentity) 1414: { return {}; } 1414: 1414: 1414: template 1414: using __remove_cv_t = typename remove_cv<_Tp>::type; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct is_void 1414: : public false_type { }; 1414: 1414: template<> 1414: struct is_void 1414: : public true_type { }; 1414: 1414: template<> 1414: struct is_void 1414: : public true_type { }; 1414: 1414: template<> 1414: struct is_void 1414: : public true_type { }; 1414: 1414: template<> 1414: struct is_void 1414: : public true_type { }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: enum class _Integer_kind { _None, _Signed, _Unsigned }; 1414: 1414: template 1414: struct __is_integral_helper 1414: : public false_type 1414: { static constexpr auto _S_kind = _Integer_kind::_None; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_None; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_None; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_Signed; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_Unsigned; }; 1414: 1414: 1414: 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_None; }; 1414: 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_None; }; 1414: 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_None; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_None; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_Signed; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_Unsigned; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_Signed; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_Unsigned; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_Signed; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_Unsigned; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_Signed; }; 1414: 1414: template<> 1414: struct __is_integral_helper 1414: : public true_type 1414: { static constexpr auto _S_kind = _Integer_kind::_Unsigned; }; 1414: # 518 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: using __is_signed_integer 1414: = __bool_constant<__is_integral_helper<_Tp>::_S_kind 1414: == _Integer_kind::_Signed>; 1414: 1414: 1414: template 1414: using __is_unsigned_integer 1414: = __bool_constant<__is_integral_helper<_Tp>::_S_kind 1414: == _Integer_kind::_Unsigned>; 1414: 1414: 1414: 1414: template 1414: using __is_signed_or_unsigned_integer 1414: = __bool_constant<__is_integral_helper<_Tp>::_S_kind 1414: != _Integer_kind::_None>; 1414: 1414: 1414: 1414: 1414: template 1414: struct is_integral 1414: : public __is_integral_helper<__remove_cv_t<_Tp>>::type 1414: { }; 1414: 1414: 1414: template 1414: struct __is_floating_point_helper 1414: : public false_type { }; 1414: 1414: template<> 1414: struct __is_floating_point_helper 1414: : public true_type { }; 1414: 1414: template<> 1414: struct __is_floating_point_helper 1414: : public true_type { }; 1414: 1414: template<> 1414: struct __is_floating_point_helper 1414: : public true_type { }; 1414: # 599 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_floating_point 1414: : public __is_floating_point_helper<__remove_cv_t<_Tp>>::type 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct is_array 1414: : public __bool_constant<__is_array(_Tp)> 1414: { }; 1414: # 626 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_pointer 1414: : public __bool_constant<__is_pointer(_Tp)> 1414: { }; 1414: # 653 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_lvalue_reference 1414: : public false_type { }; 1414: 1414: template 1414: struct is_lvalue_reference<_Tp&> 1414: : public true_type { }; 1414: 1414: 1414: template 1414: struct is_rvalue_reference 1414: : public false_type { }; 1414: 1414: template 1414: struct is_rvalue_reference<_Tp&&> 1414: : public true_type { }; 1414: 1414: 1414: 1414: template 1414: struct is_member_object_pointer 1414: : public __bool_constant<__is_member_object_pointer(_Tp)> 1414: { }; 1414: # 697 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_member_function_pointer 1414: : public __bool_constant<__is_member_function_pointer(_Tp)> 1414: { }; 1414: # 721 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_enum 1414: : public __bool_constant<__is_enum(_Tp)> 1414: { }; 1414: 1414: 1414: template 1414: struct is_union 1414: : public __bool_constant<__is_union(_Tp)> 1414: { }; 1414: 1414: 1414: template 1414: struct is_class 1414: : public __bool_constant<__is_class(_Tp)> 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct is_function 1414: : public __bool_constant<__is_function(_Tp)> 1414: { }; 1414: # 783 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_null_pointer 1414: : public false_type { }; 1414: 1414: template<> 1414: struct is_null_pointer 1414: : public true_type { }; 1414: 1414: template<> 1414: struct is_null_pointer 1414: : public true_type { }; 1414: 1414: template<> 1414: struct is_null_pointer 1414: : public true_type { }; 1414: 1414: template<> 1414: struct is_null_pointer 1414: : public true_type { }; 1414: 1414: 1414: 1414: template 1414: struct __is_nullptr_t 1414: : public is_null_pointer<_Tp> 1414: { } __attribute__ ((__deprecated__ ("use '" "std::is_null_pointer" "' instead"))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct is_reference 1414: : public __bool_constant<__is_reference(_Tp)> 1414: { }; 1414: # 837 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_arithmetic 1414: : public __or_, is_floating_point<_Tp>>::type 1414: { }; 1414: 1414: 1414: template 1414: struct is_fundamental 1414: : public __or_, is_void<_Tp>, 1414: is_null_pointer<_Tp> 1414: 1414: 1414: 1414: >::type 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct is_object 1414: : public __bool_constant<__is_object(_Tp)> 1414: { }; 1414: # 867 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_member_pointer; 1414: 1414: 1414: template 1414: struct is_scalar 1414: : public __or_, is_enum<_Tp>, is_pointer<_Tp>, 1414: is_member_pointer<_Tp>, is_null_pointer<_Tp> 1414: 1414: 1414: 1414: >::type 1414: { }; 1414: 1414: 1414: template 1414: struct is_compound 1414: : public __bool_constant::value> { }; 1414: 1414: 1414: 1414: template 1414: struct is_member_pointer 1414: : public __bool_constant<__is_member_pointer(_Tp)> 1414: { }; 1414: # 909 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_same; 1414: 1414: 1414: template 1414: using __is_one_of = __or_...>; 1414: 1414: 1414: template using __void_t = void; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct is_const 1414: : public __bool_constant<__is_const(_Tp)> 1414: { }; 1414: # 940 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_volatile 1414: : public __bool_constant<__is_volatile(_Tp)> 1414: { }; 1414: # 961 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct 1414: 1414: is_trivial 1414: : public __bool_constant<__is_trivial(_Tp)> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_trivially_copyable 1414: : public __bool_constant<__is_trivially_copyable(_Tp)> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_standard_layout 1414: : public __bool_constant<__is_standard_layout(_Tp)> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct 1414: __attribute__ ((__deprecated__ ("use '" "is_standard_layout && is_trivial" "' instead"))) 1414: is_pod 1414: : public __bool_constant<__is_pod(_Tp)> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct 1414: [[__deprecated__]] 1414: is_literal_type 1414: : public __bool_constant<__is_literal_type(_Tp)> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_empty 1414: : public __bool_constant<__is_empty(_Tp)> 1414: { }; 1414: 1414: 1414: template 1414: struct is_polymorphic 1414: : public __bool_constant<__is_polymorphic(_Tp)> 1414: { }; 1414: 1414: 1414: 1414: 1414: template 1414: struct is_final 1414: : public __bool_constant<__is_final(_Tp)> 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct is_abstract 1414: : public __bool_constant<__is_abstract(_Tp)> 1414: { }; 1414: 1414: 1414: template::value> 1414: struct __is_signed_helper 1414: : public false_type { }; 1414: 1414: template 1414: struct __is_signed_helper<_Tp, true> 1414: : public __bool_constant<_Tp(-1) < _Tp(0)> 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct is_signed 1414: : public __is_signed_helper<_Tp>::type 1414: { }; 1414: 1414: 1414: template 1414: struct is_unsigned 1414: : public __and_, __not_>>::type 1414: { }; 1414: 1414: 1414: template 1414: _Up 1414: __declval(int); 1414: 1414: template 1414: _Tp 1414: __declval(long); 1414: 1414: 1414: template 1414: auto declval() noexcept -> decltype(__declval<_Tp>(0)); 1414: 1414: template 1414: struct remove_all_extents; 1414: 1414: 1414: template 1414: struct __is_array_known_bounds 1414: : public false_type 1414: { }; 1414: 1414: template 1414: struct __is_array_known_bounds<_Tp[_Size]> 1414: : public true_type 1414: { }; 1414: 1414: template 1414: struct __is_array_unknown_bounds 1414: : public false_type 1414: { }; 1414: 1414: template 1414: struct __is_array_unknown_bounds<_Tp[]> 1414: : public true_type 1414: { }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct is_destructible 1414: : public __bool_constant<__is_destructible(_Tp)> 1414: { }; 1414: # 1173 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_nothrow_destructible 1414: : public __bool_constant<__is_nothrow_destructible(_Tp)> 1414: { }; 1414: # 1234 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: using __is_constructible_impl 1414: = __bool_constant<__is_constructible(_Tp, _Args...)>; 1414: 1414: 1414: 1414: template 1414: struct is_constructible 1414: : public __is_constructible_impl<_Tp, _Args...> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_default_constructible 1414: : public __is_constructible_impl<_Tp> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: 1414: template 1414: using __add_lval_ref_t = __add_lvalue_reference(_Tp); 1414: # 1276 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_copy_constructible 1414: : public __is_constructible_impl<_Tp, __add_lval_ref_t> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: 1414: template 1414: using __add_rval_ref_t = __add_rvalue_reference(_Tp); 1414: # 1303 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_move_constructible 1414: : public __is_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: using __is_nothrow_constructible_impl 1414: = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>; 1414: 1414: 1414: 1414: template 1414: struct is_nothrow_constructible 1414: : public __is_nothrow_constructible_impl<_Tp, _Args...> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_nothrow_default_constructible 1414: : public __is_nothrow_constructible_impl<_Tp> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_nothrow_copy_constructible 1414: : public __is_nothrow_constructible_impl<_Tp, __add_lval_ref_t> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_nothrow_move_constructible 1414: : public __is_nothrow_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: using __is_assignable_impl = __bool_constant<__is_assignable(_Tp, _Up)>; 1414: 1414: 1414: 1414: template 1414: struct is_assignable 1414: : public __is_assignable_impl<_Tp, _Up> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_copy_assignable 1414: : public __is_assignable_impl<__add_lval_ref_t<_Tp>, 1414: __add_lval_ref_t> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_move_assignable 1414: : public __is_assignable_impl<__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: using __is_nothrow_assignable_impl 1414: = __bool_constant<__is_nothrow_assignable(_Tp, _Up)>; 1414: 1414: 1414: 1414: template 1414: struct is_nothrow_assignable 1414: : public __is_nothrow_assignable_impl<_Tp, _Up> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_nothrow_copy_assignable 1414: : public __is_nothrow_assignable_impl<__add_lval_ref_t<_Tp>, 1414: __add_lval_ref_t> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_nothrow_move_assignable 1414: : public __is_nothrow_assignable_impl<__add_lval_ref_t<_Tp>, 1414: __add_rval_ref_t<_Tp>> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: using __is_trivially_constructible_impl 1414: = __bool_constant<__is_trivially_constructible(_Tp, _Args...)>; 1414: 1414: 1414: 1414: template 1414: struct is_trivially_constructible 1414: : public __is_trivially_constructible_impl<_Tp, _Args...> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_trivially_default_constructible 1414: : public __is_trivially_constructible_impl<_Tp> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: constexpr bool __is_implicitly_default_constructible_v 1414: = requires (void(&__f)(_Tp)) { __f({}); }; 1414: 1414: template 1414: struct __is_implicitly_default_constructible 1414: : __bool_constant<__is_implicitly_default_constructible_v<_Tp>> 1414: { }; 1414: # 1487 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_trivially_copy_constructible 1414: : public __is_trivially_constructible_impl<_Tp, __add_lval_ref_t> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_trivially_move_constructible 1414: : public __is_trivially_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: using __is_trivially_assignable_impl 1414: = __bool_constant<__is_trivially_assignable(_Tp, _Up)>; 1414: 1414: 1414: 1414: template 1414: struct is_trivially_assignable 1414: : public __is_trivially_assignable_impl<_Tp, _Up> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_trivially_copy_assignable 1414: : public __is_trivially_assignable_impl<__add_lval_ref_t<_Tp>, 1414: __add_lval_ref_t> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_trivially_move_assignable 1414: : public __is_trivially_assignable_impl<__add_lval_ref_t<_Tp>, 1414: __add_rval_ref_t<_Tp>> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: 1414: template 1414: struct is_trivially_destructible 1414: : public __bool_constant<__is_trivially_destructible(_Tp)> 1414: { }; 1414: # 1558 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct has_virtual_destructor 1414: : public __bool_constant<__has_virtual_destructor(_Tp)> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct alignment_of 1414: : public integral_constant 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: 1414: 1414: template 1414: struct rank 1414: : public integral_constant { }; 1414: # 1599 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct extent 1414: : public integral_constant { }; 1414: 1414: template 1414: struct extent<_Tp[_Size], 0> 1414: : public integral_constant { }; 1414: 1414: template 1414: struct extent<_Tp[_Size], _Uint> 1414: : public extent<_Tp, _Uint - 1>::type { }; 1414: 1414: template 1414: struct extent<_Tp[], 0> 1414: : public integral_constant { }; 1414: 1414: template 1414: struct extent<_Tp[], _Uint> 1414: : public extent<_Tp, _Uint - 1>::type { }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct is_same 1414: : public __bool_constant<__is_same(_Tp, _Up)> 1414: { }; 1414: # 1641 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_base_of 1414: : public __bool_constant<__is_base_of(_Base, _Derived)> 1414: { }; 1414: # 1656 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_convertible 1414: : public __bool_constant<__is_convertible(_From, _To)> 1414: { }; 1414: # 1699 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: using __is_array_convertible 1414: = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_nothrow_convertible_v 1414: = __is_nothrow_convertible(_From, _To); 1414: 1414: 1414: template 1414: struct is_nothrow_convertible 1414: : public bool_constant> 1414: { }; 1414: # 1759 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++14-extensions" 1414: template 1414: struct __is_nothrow_new_constructible_impl 1414: : __bool_constant< 1414: noexcept(::new(std::declval()) _Tp(std::declval<_Args>()...)) 1414: > 1414: { }; 1414: 1414: template 1414: inline constexpr bool __is_nothrow_new_constructible 1414: = __and_, 1414: __is_nothrow_new_constructible_impl<_Tp, _Args...>>::value; 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: 1414: template 1414: struct remove_const 1414: { using type = _Tp; }; 1414: 1414: template 1414: struct remove_const<_Tp const> 1414: { using type = _Tp; }; 1414: 1414: 1414: template 1414: struct remove_volatile 1414: { using type = _Tp; }; 1414: 1414: template 1414: struct remove_volatile<_Tp volatile> 1414: { using type = _Tp; }; 1414: 1414: 1414: 1414: template 1414: struct remove_cv 1414: { using type = __remove_cv(_Tp); }; 1414: # 1818 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct add_const 1414: { using type = _Tp const; }; 1414: 1414: 1414: template 1414: struct add_volatile 1414: { using type = _Tp volatile; }; 1414: 1414: 1414: template 1414: struct add_cv 1414: { using type = _Tp const volatile; }; 1414: 1414: 1414: 1414: template 1414: using remove_const_t = typename remove_const<_Tp>::type; 1414: 1414: 1414: template 1414: using remove_volatile_t = typename remove_volatile<_Tp>::type; 1414: 1414: 1414: template 1414: using remove_cv_t = typename remove_cv<_Tp>::type; 1414: 1414: 1414: template 1414: using add_const_t = typename add_const<_Tp>::type; 1414: 1414: 1414: template 1414: using add_volatile_t = typename add_volatile<_Tp>::type; 1414: 1414: 1414: template 1414: using add_cv_t = typename add_cv<_Tp>::type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct remove_reference 1414: { using type = __remove_reference(_Tp); }; 1414: # 1880 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct add_lvalue_reference 1414: { using type = __add_lval_ref_t<_Tp>; }; 1414: 1414: 1414: template 1414: struct add_rvalue_reference 1414: { using type = __add_rval_ref_t<_Tp>; }; 1414: 1414: 1414: 1414: template 1414: using remove_reference_t = typename remove_reference<_Tp>::type; 1414: 1414: 1414: template 1414: using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; 1414: 1414: 1414: template 1414: using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct __cv_selector; 1414: 1414: template 1414: struct __cv_selector<_Unqualified, false, false> 1414: { using __type = _Unqualified; }; 1414: 1414: template 1414: struct __cv_selector<_Unqualified, false, true> 1414: { using __type = volatile _Unqualified; }; 1414: 1414: template 1414: struct __cv_selector<_Unqualified, true, false> 1414: { using __type = const _Unqualified; }; 1414: 1414: template 1414: struct __cv_selector<_Unqualified, true, true> 1414: { using __type = const volatile _Unqualified; }; 1414: 1414: template::value, 1414: bool _IsVol = is_volatile<_Qualified>::value> 1414: class __match_cv_qualifiers 1414: { 1414: using __match = __cv_selector<_Unqualified, _IsConst, _IsVol>; 1414: 1414: public: 1414: using __type = typename __match::__type; 1414: }; 1414: 1414: 1414: template 1414: struct __make_unsigned 1414: { using __type = _Tp; }; 1414: 1414: template<> 1414: struct __make_unsigned 1414: { using __type = unsigned char; }; 1414: 1414: template<> 1414: struct __make_unsigned 1414: { using __type = unsigned char; }; 1414: 1414: template<> 1414: struct __make_unsigned 1414: { using __type = unsigned short; }; 1414: 1414: template<> 1414: struct __make_unsigned 1414: { using __type = unsigned int; }; 1414: 1414: template<> 1414: struct __make_unsigned 1414: { using __type = unsigned long; }; 1414: 1414: template<> 1414: struct __make_unsigned 1414: { using __type = unsigned long long; }; 1414: # 1999 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template::value, 1414: bool _IsEnum = __is_enum(_Tp)> 1414: class __make_unsigned_selector; 1414: 1414: template 1414: class __make_unsigned_selector<_Tp, true, false> 1414: { 1414: using __unsigned_type 1414: = typename __make_unsigned<__remove_cv_t<_Tp>>::__type; 1414: 1414: public: 1414: using __type 1414: = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; 1414: }; 1414: 1414: class __make_unsigned_selector_base 1414: { 1414: protected: 1414: template struct _List { }; 1414: 1414: template 1414: struct _List<_Tp, _Up...> : _List<_Up...> 1414: { static constexpr size_t __size = sizeof(_Tp); }; 1414: 1414: template 1414: struct __select; 1414: 1414: template 1414: struct __select<_Sz, _List<_Uint, _UInts...>, true> 1414: { using __type = _Uint; }; 1414: 1414: template 1414: struct __select<_Sz, _List<_Uint, _UInts...>, false> 1414: : __select<_Sz, _List<_UInts...>> 1414: { }; 1414: }; 1414: 1414: 1414: template 1414: class __make_unsigned_selector<_Tp, false, true> 1414: : __make_unsigned_selector_base 1414: { 1414: 1414: __extension__ 1414: using _UInts = _List; 1414: 1414: using __unsigned_type = typename __select::__type; 1414: 1414: public: 1414: using __type 1414: = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template<> 1414: struct __make_unsigned 1414: { 1414: using __type 1414: = typename __make_unsigned_selector::__type; 1414: }; 1414: 1414: 1414: template<> 1414: struct __make_unsigned 1414: { 1414: using __type 1414: = typename __make_unsigned_selector::__type; 1414: }; 1414: 1414: 1414: template<> 1414: struct __make_unsigned 1414: { 1414: using __type 1414: = typename __make_unsigned_selector::__type; 1414: }; 1414: 1414: template<> 1414: struct __make_unsigned 1414: { 1414: using __type 1414: = typename __make_unsigned_selector::__type; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct make_unsigned 1414: { using type = typename __make_unsigned_selector<_Tp>::__type; }; 1414: 1414: 1414: template<> struct make_unsigned; 1414: template<> struct make_unsigned; 1414: template<> struct make_unsigned; 1414: template<> struct make_unsigned; 1414: 1414: 1414: 1414: 1414: template 1414: struct __make_signed 1414: { using __type = _Tp; }; 1414: 1414: template<> 1414: struct __make_signed 1414: { using __type = signed char; }; 1414: 1414: template<> 1414: struct __make_signed 1414: { using __type = signed char; }; 1414: 1414: template<> 1414: struct __make_signed 1414: { using __type = signed short; }; 1414: 1414: template<> 1414: struct __make_signed 1414: { using __type = signed int; }; 1414: 1414: template<> 1414: struct __make_signed 1414: { using __type = signed long; }; 1414: 1414: template<> 1414: struct __make_signed 1414: { using __type = signed long long; }; 1414: # 2170 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template::value, 1414: bool _IsEnum = __is_enum(_Tp)> 1414: class __make_signed_selector; 1414: 1414: template 1414: class __make_signed_selector<_Tp, true, false> 1414: { 1414: using __signed_type 1414: = typename __make_signed<__remove_cv_t<_Tp>>::__type; 1414: 1414: public: 1414: using __type 1414: = typename __match_cv_qualifiers<_Tp, __signed_type>::__type; 1414: }; 1414: 1414: 1414: template 1414: class __make_signed_selector<_Tp, false, true> 1414: { 1414: using __unsigned_type = typename __make_unsigned_selector<_Tp>::__type; 1414: 1414: public: 1414: using __type = typename __make_signed_selector<__unsigned_type>::__type; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template<> 1414: struct __make_signed 1414: { 1414: using __type 1414: = typename __make_signed_selector::__type; 1414: }; 1414: 1414: 1414: template<> 1414: struct __make_signed 1414: { 1414: using __type 1414: = typename __make_signed_selector::__type; 1414: }; 1414: 1414: 1414: template<> 1414: struct __make_signed 1414: { 1414: using __type 1414: = typename __make_signed_selector::__type; 1414: }; 1414: 1414: template<> 1414: struct __make_signed 1414: { 1414: using __type 1414: = typename __make_signed_selector::__type; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct make_signed 1414: { using type = typename __make_signed_selector<_Tp>::__type; }; 1414: 1414: 1414: template<> struct make_signed; 1414: template<> struct make_signed; 1414: template<> struct make_signed; 1414: template<> struct make_signed; 1414: 1414: 1414: 1414: template 1414: using make_signed_t = typename make_signed<_Tp>::type; 1414: 1414: 1414: template 1414: using make_unsigned_t = typename make_unsigned<_Tp>::type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct remove_extent 1414: { using type = __remove_extent(_Tp); }; 1414: # 2278 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct remove_all_extents 1414: { using type = __remove_all_extents(_Tp); }; 1414: # 2297 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: using remove_extent_t = typename remove_extent<_Tp>::type; 1414: 1414: 1414: template 1414: using remove_all_extents_t = typename remove_all_extents<_Tp>::type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct remove_pointer 1414: { using type = __remove_pointer(_Tp); }; 1414: # 2329 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct add_pointer 1414: { using type = __add_pointer(_Tp); }; 1414: # 2357 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: using remove_pointer_t = typename remove_pointer<_Tp>::type; 1414: 1414: 1414: template 1414: using add_pointer_t = typename add_pointer<_Tp>::type; 1414: 1414: 1414: 1414: 1414: 1414: struct __attribute__((__aligned__)) __aligned_storage_max_align_t 1414: { }; 1414: 1414: constexpr size_t 1414: __aligned_storage_default_alignment([[__maybe_unused__]] size_t __len) 1414: { 1414: # 2388 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: return alignof(__aligned_storage_max_align_t); 1414: 1414: } 1414: # 2424 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct 1414: 1414: aligned_storage 1414: { 1414: struct type 1414: { 1414: alignas(_Align) unsigned char __data[_Len]; 1414: }; 1414: }; 1414: 1414: template 1414: struct __strictest_alignment 1414: { 1414: static const size_t _S_alignment = 0; 1414: static const size_t _S_size = 0; 1414: }; 1414: 1414: template 1414: struct __strictest_alignment<_Tp, _Types...> 1414: { 1414: static const size_t _S_alignment = 1414: alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment 1414: ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; 1414: static const size_t _S_size = 1414: sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size 1414: ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; 1414: }; 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: # 2469 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct 1414: 1414: aligned_union 1414: { 1414: private: 1414: static_assert(sizeof...(_Types) != 0, "At least one type is required"); 1414: 1414: using __strictest = __strictest_alignment<_Types...>; 1414: static const size_t _S_len = _Len > __strictest::_S_size 1414: ? _Len : __strictest::_S_size; 1414: public: 1414: 1414: static const size_t alignment_value = __strictest::_S_alignment; 1414: 1414: using type = typename aligned_storage<_S_len, alignment_value>::type; 1414: }; 1414: 1414: template 1414: const size_t aligned_union<_Len, _Types...>::alignment_value; 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: 1414: template 1414: struct decay 1414: { using type = __decay(_Tp); }; 1414: # 2534 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct __strip_reference_wrapper 1414: { 1414: using __type = _Tp; 1414: }; 1414: 1414: template 1414: struct __strip_reference_wrapper > 1414: { 1414: using __type = _Tp&; 1414: }; 1414: 1414: 1414: template 1414: using __decay_t = typename decay<_Tp>::type; 1414: 1414: template 1414: using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: using _Require = __enable_if_t<__and_<_Cond...>::value>; 1414: 1414: 1414: template 1414: using __remove_cvref_t 1414: = typename remove_cv::type>::type; 1414: 1414: 1414: 1414: 1414: template 1414: struct conditional 1414: { using type = _Iftrue; }; 1414: 1414: 1414: template 1414: struct conditional 1414: { using type = _Iffalse; }; 1414: 1414: 1414: template 1414: struct common_type; 1414: # 2590 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct __success_type 1414: { using type = _Tp; }; 1414: 1414: struct __failure_type 1414: { }; 1414: 1414: struct __do_common_type_impl 1414: { 1414: template 1414: using __cond_t 1414: = decltype(true ? std::declval<_Tp>() : std::declval<_Up>()); 1414: 1414: 1414: 1414: template 1414: static __success_type<__decay_t<__cond_t<_Tp, _Up>>> 1414: _S_test(int); 1414: 1414: 1414: 1414: 1414: template 1414: static __success_type<__remove_cvref_t<__cond_t>> 1414: _S_test_2(int); 1414: 1414: 1414: template 1414: static __failure_type 1414: _S_test_2(...); 1414: 1414: template 1414: static decltype(_S_test_2<_Tp, _Up>(0)) 1414: _S_test(...); 1414: }; 1414: 1414: 1414: template<> 1414: struct common_type<> 1414: { }; 1414: 1414: 1414: template 1414: struct common_type<_Tp0> 1414: : public common_type<_Tp0, _Tp0> 1414: { }; 1414: 1414: 1414: template, typename _Dp2 = __decay_t<_Tp2>> 1414: struct __common_type_impl 1414: { 1414: 1414: 1414: using type = common_type<_Dp1, _Dp2>; 1414: }; 1414: 1414: template 1414: struct __common_type_impl<_Tp1, _Tp2, _Tp1, _Tp2> 1414: : private __do_common_type_impl 1414: { 1414: 1414: 1414: using type = decltype(_S_test<_Tp1, _Tp2>(0)); 1414: }; 1414: 1414: 1414: template 1414: struct common_type<_Tp1, _Tp2> 1414: : public __common_type_impl<_Tp1, _Tp2>::type 1414: { }; 1414: 1414: template 1414: struct __common_type_pack 1414: { }; 1414: 1414: template 1414: struct __common_type_fold; 1414: 1414: 1414: template 1414: struct common_type<_Tp1, _Tp2, _Rp...> 1414: : public __common_type_fold, 1414: __common_type_pack<_Rp...>> 1414: { }; 1414: 1414: 1414: 1414: 1414: template 1414: struct __common_type_fold<_CTp, __common_type_pack<_Rp...>, 1414: __void_t> 1414: : public common_type 1414: { }; 1414: 1414: 1414: template 1414: struct __common_type_fold<_CTp, _Rp, void> 1414: { }; 1414: 1414: template 1414: struct __underlying_type_impl 1414: { 1414: using type = __underlying_type(_Tp); 1414: }; 1414: 1414: template 1414: struct __underlying_type_impl<_Tp, false> 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct underlying_type 1414: : public __underlying_type_impl<_Tp> 1414: { }; 1414: 1414: 1414: template 1414: struct __declval_protector 1414: { 1414: static const bool __stop = false; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: auto declval() noexcept -> decltype(__declval<_Tp>(0)) 1414: { 1414: static_assert(__declval_protector<_Tp>::__stop, 1414: "declval() must not be used!"); 1414: return __declval<_Tp>(0); 1414: } 1414: 1414: 1414: template 1414: struct result_of; 1414: 1414: 1414: 1414: 1414: struct __invoke_memfun_ref { }; 1414: struct __invoke_memfun_deref { }; 1414: struct __invoke_memobj_ref { }; 1414: struct __invoke_memobj_deref { }; 1414: struct __invoke_other { }; 1414: 1414: 1414: template 1414: struct __result_of_success : __success_type<_Tp> 1414: { using __invoke_type = _Tag; }; 1414: 1414: 1414: struct __result_of_memfun_ref_impl 1414: { 1414: template 1414: static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) 1414: ), __invoke_memfun_ref> _S_test(int); 1414: 1414: template 1414: static __failure_type _S_test(...); 1414: }; 1414: 1414: template 1414: struct __result_of_memfun_ref 1414: : private __result_of_memfun_ref_impl 1414: { 1414: using type = decltype(_S_test<_MemPtr, _Arg, _Args...>(0)); 1414: }; 1414: 1414: 1414: struct __result_of_memfun_deref_impl 1414: { 1414: template 1414: static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) 1414: ), __invoke_memfun_deref> _S_test(int); 1414: 1414: template 1414: static __failure_type _S_test(...); 1414: }; 1414: 1414: template 1414: struct __result_of_memfun_deref 1414: : private __result_of_memfun_deref_impl 1414: { 1414: using type = decltype(_S_test<_MemPtr, _Arg, _Args...>(0)); 1414: }; 1414: 1414: 1414: struct __result_of_memobj_ref_impl 1414: { 1414: template 1414: static __result_of_success().*std::declval<_Fp>() 1414: ), __invoke_memobj_ref> _S_test(int); 1414: 1414: template 1414: static __failure_type _S_test(...); 1414: }; 1414: 1414: template 1414: struct __result_of_memobj_ref 1414: : private __result_of_memobj_ref_impl 1414: { 1414: using type = decltype(_S_test<_MemPtr, _Arg>(0)); 1414: }; 1414: 1414: 1414: struct __result_of_memobj_deref_impl 1414: { 1414: template 1414: static __result_of_success()).*std::declval<_Fp>() 1414: ), __invoke_memobj_deref> _S_test(int); 1414: 1414: template 1414: static __failure_type _S_test(...); 1414: }; 1414: 1414: template 1414: struct __result_of_memobj_deref 1414: : private __result_of_memobj_deref_impl 1414: { 1414: using type = decltype(_S_test<_MemPtr, _Arg>(0)); 1414: }; 1414: 1414: template 1414: struct __result_of_memobj; 1414: 1414: template 1414: struct __result_of_memobj<_Res _Class::*, _Arg> 1414: { 1414: using _Argval = __remove_cvref_t<_Arg>; 1414: using _MemPtr = _Res _Class::*; 1414: using type = typename __conditional_t<__or_, 1414: is_base_of<_Class, _Argval>>::value, 1414: __result_of_memobj_ref<_MemPtr, _Arg>, 1414: __result_of_memobj_deref<_MemPtr, _Arg> 1414: >::type; 1414: }; 1414: 1414: template 1414: struct __result_of_memfun; 1414: 1414: template 1414: struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> 1414: { 1414: using _Argval = typename remove_reference<_Arg>::type; 1414: using _MemPtr = _Res _Class::*; 1414: using type = typename __conditional_t::value, 1414: __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, 1414: __result_of_memfun_deref<_MemPtr, _Arg, _Args...> 1414: >::type; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template> 1414: struct __inv_unwrap 1414: { 1414: using type = _Tp; 1414: }; 1414: 1414: template 1414: struct __inv_unwrap<_Tp, reference_wrapper<_Up>> 1414: { 1414: using type = _Up&; 1414: }; 1414: 1414: template 1414: struct __result_of_impl 1414: { 1414: using type = __failure_type; 1414: }; 1414: 1414: template 1414: struct __result_of_impl 1414: : public __result_of_memobj<__decay_t<_MemPtr>, 1414: typename __inv_unwrap<_Arg>::type> 1414: { }; 1414: 1414: template 1414: struct __result_of_impl 1414: : public __result_of_memfun<__decay_t<_MemPtr>, 1414: typename __inv_unwrap<_Arg>::type, _Args...> 1414: { }; 1414: 1414: 1414: struct __result_of_other_impl 1414: { 1414: template 1414: static __result_of_success()(std::declval<_Args>()...) 1414: ), __invoke_other> _S_test(int); 1414: 1414: template 1414: static __failure_type _S_test(...); 1414: }; 1414: 1414: template 1414: struct __result_of_impl 1414: : private __result_of_other_impl 1414: { 1414: using type = decltype(_S_test<_Functor, _ArgTypes...>(0)); 1414: }; 1414: 1414: 1414: template 1414: struct __invoke_result 1414: : public __result_of_impl< 1414: is_member_object_pointer< 1414: typename remove_reference<_Functor>::type 1414: >::value, 1414: is_member_function_pointer< 1414: typename remove_reference<_Functor>::type 1414: >::value, 1414: _Functor, _ArgTypes... 1414: >::type 1414: { }; 1414: 1414: 1414: template 1414: using __invoke_result_t = typename __invoke_result<_Fn, _Args...>::type; 1414: 1414: 1414: template 1414: struct result_of<_Functor(_ArgTypes...)> 1414: : public __invoke_result<_Functor, _ArgTypes...> 1414: { } __attribute__ ((__deprecated__ ("use '" "std::invoke_result" "' instead"))); 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: 1414: template 1414: using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; 1414: 1414: template 1414: using aligned_union_t = typename aligned_union<_Len, _Types...>::type; 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: template 1414: using decay_t = typename decay<_Tp>::type; 1414: 1414: 1414: template 1414: using enable_if_t = typename enable_if<_Cond, _Tp>::type; 1414: 1414: 1414: template 1414: using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type; 1414: 1414: 1414: template 1414: using common_type_t = typename common_type<_Tp...>::type; 1414: 1414: 1414: template 1414: using underlying_type_t = typename underlying_type<_Tp>::type; 1414: 1414: 1414: template 1414: using result_of_t = typename result_of<_Tp>::type; 1414: 1414: 1414: 1414: 1414: template using void_t = void; 1414: # 2977 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template class _Op, typename... _Args> 1414: struct __detected_or 1414: { 1414: using type = _Def; 1414: using __is_detected = false_type; 1414: }; 1414: 1414: 1414: template class _Op, typename... _Args> 1414: requires requires { typename _Op<_Args...>; } 1414: struct __detected_or<_Def, _Op, _Args...> 1414: { 1414: using type = _Op<_Args...>; 1414: using __is_detected = true_type; 1414: }; 1414: # 3017 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template class _Op, 1414: typename... _Args> 1414: using __detected_or_t 1414: = typename __detected_or<_Default, _Op, _Args...>::type; 1414: # 3036 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct __is_swappable; 1414: 1414: template 1414: struct __is_nothrow_swappable; 1414: 1414: template 1414: struct __is_tuple_like_impl : false_type 1414: { }; 1414: 1414: 1414: template 1414: struct __is_tuple_like 1414: : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type 1414: { }; 1414: 1414: 1414: template 1414: constexpr 1414: inline 1414: _Require<__not_<__is_tuple_like<_Tp>>, 1414: is_move_constructible<_Tp>, 1414: is_move_assignable<_Tp>> 1414: swap(_Tp&, _Tp&) 1414: noexcept(__and_, 1414: is_nothrow_move_assignable<_Tp>>::value); 1414: 1414: template 1414: constexpr 1414: inline 1414: __enable_if_t<__is_swappable<_Tp>::value> 1414: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 1414: noexcept(__is_nothrow_swappable<_Tp>::value); 1414: 1414: 1414: namespace __swappable_details { 1414: using std::swap; 1414: 1414: struct __do_is_swappable_impl 1414: { 1414: template(), std::declval<_Tp&>()))> 1414: static true_type __test(int); 1414: 1414: template 1414: static false_type __test(...); 1414: }; 1414: 1414: struct __do_is_nothrow_swappable_impl 1414: { 1414: template 1414: static __bool_constant< 1414: noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) 1414: > __test(int); 1414: 1414: template 1414: static false_type __test(...); 1414: }; 1414: 1414: } 1414: 1414: template 1414: struct __is_swappable_impl 1414: : public __swappable_details::__do_is_swappable_impl 1414: { 1414: using type = decltype(__test<_Tp>(0)); 1414: }; 1414: 1414: template 1414: struct __is_nothrow_swappable_impl 1414: : public __swappable_details::__do_is_nothrow_swappable_impl 1414: { 1414: using type = decltype(__test<_Tp>(0)); 1414: }; 1414: 1414: template 1414: struct __is_swappable 1414: : public __is_swappable_impl<_Tp>::type 1414: { }; 1414: 1414: template 1414: struct __is_nothrow_swappable 1414: : public __is_nothrow_swappable_impl<_Tp>::type 1414: { }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct is_swappable 1414: : public __is_swappable_impl<_Tp>::type 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_nothrow_swappable 1414: : public __is_nothrow_swappable_impl<_Tp>::type 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_swappable_v = 1414: is_swappable<_Tp>::value; 1414: 1414: 1414: template 1414: inline constexpr bool is_nothrow_swappable_v = 1414: is_nothrow_swappable<_Tp>::value; 1414: 1414: 1414: 1414: namespace __swappable_with_details { 1414: using std::swap; 1414: 1414: struct __do_is_swappable_with_impl 1414: { 1414: template(), std::declval<_Up>())), 1414: typename 1414: = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> 1414: static true_type __test(int); 1414: 1414: template 1414: static false_type __test(...); 1414: }; 1414: 1414: struct __do_is_nothrow_swappable_with_impl 1414: { 1414: template 1414: static __bool_constant< 1414: noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) 1414: && 1414: noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) 1414: > __test(int); 1414: 1414: template 1414: static false_type __test(...); 1414: }; 1414: 1414: } 1414: 1414: template 1414: struct __is_swappable_with_impl 1414: : public __swappable_with_details::__do_is_swappable_with_impl 1414: { 1414: using type = decltype(__test<_Tp, _Up>(0)); 1414: }; 1414: 1414: 1414: template 1414: struct __is_swappable_with_impl<_Tp&, _Tp&> 1414: : public __swappable_details::__do_is_swappable_impl 1414: { 1414: using type = decltype(__test<_Tp&>(0)); 1414: }; 1414: 1414: template 1414: struct __is_nothrow_swappable_with_impl 1414: : public __swappable_with_details::__do_is_nothrow_swappable_with_impl 1414: { 1414: using type = decltype(__test<_Tp, _Up>(0)); 1414: }; 1414: 1414: 1414: template 1414: struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> 1414: : public __swappable_details::__do_is_nothrow_swappable_impl 1414: { 1414: using type = decltype(__test<_Tp&>(0)); 1414: }; 1414: 1414: 1414: 1414: template 1414: struct is_swappable_with 1414: : public __is_swappable_with_impl<_Tp, _Up>::type 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "first template argument must be a complete class or an unbounded array"); 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Up>{}), 1414: "second template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_nothrow_swappable_with 1414: : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "first template argument must be a complete class or an unbounded array"); 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Up>{}), 1414: "second template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_swappable_with_v = 1414: is_swappable_with<_Tp, _Up>::value; 1414: 1414: 1414: template 1414: inline constexpr bool is_nothrow_swappable_with_v = 1414: is_nothrow_swappable_with<_Tp, _Up>::value; 1414: # 3258 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template::value, typename = void> 1414: struct __is_invocable_impl 1414: : false_type 1414: { 1414: using __nothrow_conv = false_type; 1414: }; 1414: 1414: 1414: template 1414: struct __is_invocable_impl<_Result, _Ret, 1414: true, 1414: __void_t> 1414: : true_type 1414: { 1414: using __nothrow_conv = true_type; 1414: }; 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 1414: 1414: template 1414: struct __is_invocable_impl<_Result, _Ret, 1414: false, 1414: __void_t> 1414: { 1414: private: 1414: 1414: using _Res_t = typename _Result::type; 1414: 1414: 1414: 1414: static _Res_t _S_get() noexcept; 1414: 1414: 1414: template 1414: static void _S_conv(__type_identity_t<_Tp>) noexcept; 1414: 1414: 1414: template(_S_get())), 1414: typename = decltype(_S_conv<_Tp>(_S_get())), 1414: 1414: bool _Dangle = __reference_converts_from_temporary(_Tp, _Res_t) 1414: 1414: 1414: 1414: > 1414: static __bool_constant<_Nothrow && !_Dangle> 1414: _S_test(int); 1414: 1414: template 1414: static false_type 1414: _S_test(...); 1414: 1414: public: 1414: 1414: using type = decltype(_S_test<_Ret, true>(1)); 1414: 1414: 1414: using __nothrow_conv = decltype(_S_test<_Ret>(1)); 1414: }; 1414: #pragma GCC diagnostic pop 1414: 1414: template 1414: struct __is_invocable 1414: 1414: : __bool_constant<__is_invocable(_Fn, _ArgTypes...)> 1414: 1414: 1414: 1414: { }; 1414: 1414: template 1414: constexpr bool __call_is_nt(__invoke_memfun_ref) 1414: { 1414: using _Up = typename __inv_unwrap<_Tp>::type; 1414: return noexcept((std::declval<_Up>().*std::declval<_Fn>())( 1414: std::declval<_Args>()...)); 1414: } 1414: 1414: template 1414: constexpr bool __call_is_nt(__invoke_memfun_deref) 1414: { 1414: return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( 1414: std::declval<_Args>()...)); 1414: } 1414: 1414: template 1414: constexpr bool __call_is_nt(__invoke_memobj_ref) 1414: { 1414: using _Up = typename __inv_unwrap<_Tp>::type; 1414: return noexcept(std::declval<_Up>().*std::declval<_Fn>()); 1414: } 1414: 1414: template 1414: constexpr bool __call_is_nt(__invoke_memobj_deref) 1414: { 1414: return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); 1414: } 1414: 1414: template 1414: constexpr bool __call_is_nt(__invoke_other) 1414: { 1414: return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); 1414: } 1414: 1414: template 1414: struct __call_is_nothrow 1414: : __bool_constant< 1414: std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) 1414: > 1414: { }; 1414: 1414: template 1414: using __call_is_nothrow_ 1414: = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; 1414: 1414: 1414: template 1414: struct __is_nothrow_invocable 1414: 1414: : __bool_constant<__is_nothrow_invocable(_Fn, _Args...)> 1414: 1414: 1414: 1414: 1414: { }; 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 1414: struct __nonesuchbase {}; 1414: struct __nonesuch : private __nonesuchbase { 1414: ~__nonesuch() = delete; 1414: __nonesuch(__nonesuch const&) = delete; 1414: void operator=(__nonesuch const&) = delete; 1414: }; 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: 1414: template 1414: struct invoke_result 1414: : public __invoke_result<_Functor, _ArgTypes...> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Functor>{}), 1414: "_Functor must be a complete class or an unbounded array"); 1414: static_assert((std::__is_complete_or_unbounded( 1414: __type_identity<_ArgTypes>{}) && ...), 1414: "each argument type must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: using invoke_result_t = typename invoke_result<_Fn, _Args...>::type; 1414: 1414: 1414: template 1414: struct is_invocable 1414: 1414: : public __bool_constant<__is_invocable(_Fn, _ArgTypes...)> 1414: 1414: 1414: 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), 1414: "_Fn must be a complete class or an unbounded array"); 1414: static_assert((std::__is_complete_or_unbounded( 1414: __type_identity<_ArgTypes>{}) && ...), 1414: "each argument type must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_invocable_r 1414: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>::type 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), 1414: "_Fn must be a complete class or an unbounded array"); 1414: static_assert((std::__is_complete_or_unbounded( 1414: __type_identity<_ArgTypes>{}) && ...), 1414: "each argument type must be a complete class or an unbounded array"); 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Ret>{}), 1414: "_Ret must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: template 1414: struct is_nothrow_invocable 1414: 1414: : public __bool_constant<__is_nothrow_invocable(_Fn, _ArgTypes...)> 1414: 1414: 1414: 1414: 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), 1414: "_Fn must be a complete class or an unbounded array"); 1414: static_assert((std::__is_complete_or_unbounded( 1414: __type_identity<_ArgTypes>{}) && ...), 1414: "each argument type must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: using __is_nt_invocable_impl 1414: = typename __is_invocable_impl<_Result, _Ret>::__nothrow_conv; 1414: 1414: 1414: 1414: template 1414: struct is_nothrow_invocable_r 1414: : __and_<__is_nt_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>, 1414: __call_is_nothrow_<_Fn, _ArgTypes...>>::type 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), 1414: "_Fn must be a complete class or an unbounded array"); 1414: static_assert((std::__is_complete_or_unbounded( 1414: __type_identity<_ArgTypes>{}) && ...), 1414: "each argument type must be a complete class or an unbounded array"); 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Ret>{}), 1414: "_Ret must be a complete class or an unbounded array"); 1414: }; 1414: # 3502 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: inline constexpr bool is_void_v = is_void<_Tp>::value; 1414: template 1414: inline constexpr bool is_null_pointer_v = is_null_pointer<_Tp>::value; 1414: template 1414: inline constexpr bool is_integral_v = is_integral<_Tp>::value; 1414: template 1414: inline constexpr bool is_floating_point_v = is_floating_point<_Tp>::value; 1414: 1414: 1414: template 1414: inline constexpr bool is_array_v = __is_array(_Tp); 1414: # 3524 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: inline constexpr bool is_pointer_v = __is_pointer(_Tp); 1414: # 3539 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: inline constexpr bool is_lvalue_reference_v = false; 1414: template 1414: inline constexpr bool is_lvalue_reference_v<_Tp&> = true; 1414: template 1414: inline constexpr bool is_rvalue_reference_v = false; 1414: template 1414: inline constexpr bool is_rvalue_reference_v<_Tp&&> = true; 1414: 1414: 1414: template 1414: inline constexpr bool is_member_object_pointer_v = 1414: __is_member_object_pointer(_Tp); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_member_function_pointer_v = 1414: __is_member_function_pointer(_Tp); 1414: # 3581 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: inline constexpr bool is_enum_v = __is_enum(_Tp); 1414: template 1414: inline constexpr bool is_union_v = __is_union(_Tp); 1414: template 1414: inline constexpr bool is_class_v = __is_class(_Tp); 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_reference_v = __is_reference(_Tp); 1414: # 3601 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: inline constexpr bool is_arithmetic_v = is_arithmetic<_Tp>::value; 1414: template 1414: inline constexpr bool is_fundamental_v = is_fundamental<_Tp>::value; 1414: 1414: 1414: template 1414: inline constexpr bool is_object_v = __is_object(_Tp); 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_scalar_v = is_scalar<_Tp>::value; 1414: template 1414: inline constexpr bool is_compound_v = !is_fundamental_v<_Tp>; 1414: 1414: 1414: template 1414: inline constexpr bool is_member_pointer_v = __is_member_pointer(_Tp); 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_const_v = __is_const(_Tp); 1414: # 3638 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: inline constexpr bool is_function_v = __is_function(_Tp); 1414: # 3650 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: inline constexpr bool is_volatile_v = __is_volatile(_Tp); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: 1414: inline constexpr bool is_trivial_v = __is_trivial(_Tp); 1414: template 1414: inline constexpr bool is_trivially_copyable_v = __is_trivially_copyable(_Tp); 1414: template 1414: inline constexpr bool is_standard_layout_v = __is_standard_layout(_Tp); 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "is_standard_layout_v && is_trivial_v" "' instead"))) 1414: inline constexpr bool is_pod_v = __is_pod(_Tp); 1414: template 1414: [[__deprecated__]] 1414: inline constexpr bool is_literal_type_v = __is_literal_type(_Tp); 1414: template 1414: inline constexpr bool is_empty_v = __is_empty(_Tp); 1414: template 1414: inline constexpr bool is_polymorphic_v = __is_polymorphic(_Tp); 1414: template 1414: inline constexpr bool is_abstract_v = __is_abstract(_Tp); 1414: template 1414: inline constexpr bool is_final_v = __is_final(_Tp); 1414: 1414: template 1414: inline constexpr bool is_signed_v = is_signed<_Tp>::value; 1414: template 1414: inline constexpr bool is_unsigned_v = is_unsigned<_Tp>::value; 1414: 1414: template 1414: inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...); 1414: template 1414: inline constexpr bool is_default_constructible_v = __is_constructible(_Tp); 1414: template 1414: inline constexpr bool is_copy_constructible_v 1414: = __is_constructible(_Tp, __add_lval_ref_t); 1414: template 1414: inline constexpr bool is_move_constructible_v 1414: = __is_constructible(_Tp, __add_rval_ref_t<_Tp>); 1414: 1414: template 1414: inline constexpr bool is_assignable_v = __is_assignable(_Tp, _Up); 1414: template 1414: inline constexpr bool is_copy_assignable_v 1414: = __is_assignable(__add_lval_ref_t<_Tp>, __add_lval_ref_t); 1414: template 1414: inline constexpr bool is_move_assignable_v 1414: = __is_assignable(__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>); 1414: 1414: 1414: template 1414: inline constexpr bool is_destructible_v = __is_destructible(_Tp); 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_trivially_constructible_v 1414: = __is_trivially_constructible(_Tp, _Args...); 1414: template 1414: inline constexpr bool is_trivially_default_constructible_v 1414: = __is_trivially_constructible(_Tp); 1414: template 1414: inline constexpr bool is_trivially_copy_constructible_v 1414: = __is_trivially_constructible(_Tp, __add_lval_ref_t); 1414: template 1414: inline constexpr bool is_trivially_move_constructible_v 1414: = __is_trivially_constructible(_Tp, __add_rval_ref_t<_Tp>); 1414: 1414: template 1414: inline constexpr bool is_trivially_assignable_v 1414: = __is_trivially_assignable(_Tp, _Up); 1414: template 1414: inline constexpr bool is_trivially_copy_assignable_v 1414: = __is_trivially_assignable(__add_lval_ref_t<_Tp>, 1414: __add_lval_ref_t); 1414: template 1414: inline constexpr bool is_trivially_move_assignable_v 1414: = __is_trivially_assignable(__add_lval_ref_t<_Tp>, 1414: __add_rval_ref_t<_Tp>); 1414: 1414: 1414: template 1414: inline constexpr bool is_trivially_destructible_v 1414: = __is_trivially_destructible(_Tp); 1414: # 3764 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: inline constexpr bool is_nothrow_constructible_v 1414: = __is_nothrow_constructible(_Tp, _Args...); 1414: template 1414: inline constexpr bool is_nothrow_default_constructible_v 1414: = __is_nothrow_constructible(_Tp); 1414: template 1414: inline constexpr bool is_nothrow_copy_constructible_v 1414: = __is_nothrow_constructible(_Tp, __add_lval_ref_t); 1414: template 1414: inline constexpr bool is_nothrow_move_constructible_v 1414: = __is_nothrow_constructible(_Tp, __add_rval_ref_t<_Tp>); 1414: 1414: template 1414: inline constexpr bool is_nothrow_assignable_v 1414: = __is_nothrow_assignable(_Tp, _Up); 1414: template 1414: inline constexpr bool is_nothrow_copy_assignable_v 1414: = __is_nothrow_assignable(__add_lval_ref_t<_Tp>, 1414: __add_lval_ref_t); 1414: template 1414: inline constexpr bool is_nothrow_move_assignable_v 1414: = __is_nothrow_assignable(__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>); 1414: 1414: 1414: template 1414: inline constexpr bool is_nothrow_destructible_v 1414: = __is_nothrow_destructible(_Tp); 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool has_virtual_destructor_v 1414: = __has_virtual_destructor(_Tp); 1414: 1414: template 1414: inline constexpr size_t alignment_of_v = alignment_of<_Tp>::value; 1414: 1414: 1414: 1414: template 1414: inline constexpr size_t rank_v = __array_rank(_Tp); 1414: # 3818 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: inline constexpr size_t extent_v = 0; 1414: template 1414: inline constexpr size_t extent_v<_Tp[_Size], 0> = _Size; 1414: template 1414: inline constexpr size_t extent_v<_Tp[_Size], _Idx> = extent_v<_Tp, _Idx - 1>; 1414: template 1414: inline constexpr size_t extent_v<_Tp[], 0> = 0; 1414: template 1414: inline constexpr size_t extent_v<_Tp[], _Idx> = extent_v<_Tp, _Idx - 1>; 1414: 1414: 1414: template 1414: inline constexpr bool is_same_v = __is_same(_Tp, _Up); 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_base_of_v = __is_base_of(_Base, _Derived); 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_convertible_v = __is_convertible(_From, _To); 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_invocable_v 1414: 1414: = __is_invocable(_Fn, _Args...); 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_nothrow_invocable_v 1414: 1414: = __is_nothrow_invocable(_Fn, _Args...); 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_invocable_r_v 1414: = is_invocable_r<_Ret, _Fn, _Args...>::value; 1414: template 1414: inline constexpr bool is_nothrow_invocable_r_v 1414: = is_nothrow_invocable_r<_Ret, _Fn, _Args...>::value; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct has_unique_object_representations 1414: : bool_constant<__has_unique_object_representations( 1414: remove_cv_t> 1414: )> 1414: { 1414: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 1414: "template argument must be a complete class or an unbounded array"); 1414: }; 1414: 1414: 1414: 1414: template 1414: inline constexpr bool has_unique_object_representations_v 1414: = has_unique_object_representations<_Tp>::value; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct is_aggregate 1414: : bool_constant<__is_aggregate(remove_cv_t<_Tp>)> 1414: { }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool is_aggregate_v = __is_aggregate(remove_cv_t<_Tp>); 1414: # 3936 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct remove_cvref 1414: { using type = __remove_cvref(_Tp); }; 1414: # 3953 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: using remove_cvref_t = typename remove_cvref<_Tp>::type; 1414: # 3963 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct type_identity { using type = _Tp; }; 1414: 1414: template 1414: using type_identity_t = typename type_identity<_Tp>::type; 1414: # 3976 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct unwrap_reference { using type = _Tp; }; 1414: 1414: template 1414: struct unwrap_reference> { using type = _Tp&; }; 1414: 1414: template 1414: using unwrap_reference_t = typename unwrap_reference<_Tp>::type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct unwrap_ref_decay { using type = unwrap_reference_t>; }; 1414: 1414: template 1414: using unwrap_ref_decay_t = typename unwrap_ref_decay<_Tp>::type; 1414: # 4003 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: inline constexpr bool is_bounded_array_v = __is_bounded_array(_Tp); 1414: # 4017 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: inline constexpr bool is_unbounded_array_v = __is_unbounded_array(_Tp); 1414: # 4029 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: struct is_bounded_array 1414: : public bool_constant> 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct is_unbounded_array 1414: : public bool_constant> 1414: { }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct is_layout_compatible 1414: : bool_constant<__is_layout_compatible(_Tp, _Up)> 1414: { }; 1414: 1414: 1414: 1414: template 1414: constexpr bool is_layout_compatible_v 1414: = __is_layout_compatible(_Tp, _Up); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr bool 1414: is_corresponding_member(_M1 _S1::*__m1, _M2 _S2::*__m2) noexcept 1414: { return __builtin_is_corresponding_member(__m1, __m2); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct is_pointer_interconvertible_base_of 1414: : bool_constant<__is_pointer_interconvertible_base_of(_Base, _Derived)> 1414: { }; 1414: 1414: 1414: 1414: template 1414: constexpr bool is_pointer_interconvertible_base_of_v 1414: = __is_pointer_interconvertible_base_of(_Base, _Derived); 1414: # 4092 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: template 1414: constexpr bool 1414: is_pointer_interconvertible_with_class(_Mem _Tp::*__mp) noexcept 1414: { return __builtin_is_pointer_interconvertible_with_class(__mp); } 1414: # 4192 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: [[__gnu__::__always_inline__]] 1414: constexpr bool 1414: is_constant_evaluated() noexcept 1414: { 1414: 1414: 1414: 1414: return __builtin_is_constant_evaluated(); 1414: 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: using __copy_cv = typename __match_cv_qualifiers<_From, _To>::__type; 1414: 1414: template 1414: using __cond_res 1414: = decltype(false ? declval<_Xp(&)()>()() : declval<_Yp(&)()>()()); 1414: 1414: template 1414: struct __common_ref_impl 1414: { }; 1414: 1414: 1414: template 1414: using __common_ref = typename __common_ref_impl<_Ap, _Bp>::type; 1414: 1414: 1414: template 1414: using __condres_cvref 1414: = __cond_res<__copy_cv<_Xp, _Yp>&, __copy_cv<_Yp, _Xp>&>; 1414: 1414: 1414: template 1414: struct __common_ref_impl<_Xp&, _Yp&, __void_t<__condres_cvref<_Xp, _Yp>>> 1414: : enable_if>, 1414: __condres_cvref<_Xp, _Yp>> 1414: { }; 1414: 1414: 1414: template 1414: using __common_ref_C = remove_reference_t<__common_ref<_Xp&, _Yp&>>&&; 1414: 1414: 1414: template 1414: struct __common_ref_impl<_Xp&&, _Yp&&, 1414: _Require>, 1414: is_convertible<_Yp&&, __common_ref_C<_Xp, _Yp>>>> 1414: { using type = __common_ref_C<_Xp, _Yp>; }; 1414: 1414: 1414: template 1414: using __common_ref_D = __common_ref; 1414: 1414: 1414: template 1414: struct __common_ref_impl<_Xp&&, _Yp&, 1414: _Require>>> 1414: { using type = __common_ref_D<_Xp, _Yp>; }; 1414: 1414: 1414: template 1414: struct __common_ref_impl<_Xp&, _Yp&&> 1414: : __common_ref_impl<_Yp&&, _Xp&> 1414: { }; 1414: 1414: 1414: template class _TQual, template class _UQual> 1414: struct basic_common_reference 1414: { }; 1414: 1414: 1414: template 1414: struct __xref 1414: { template using __type = __copy_cv<_Tp, _Up>; }; 1414: 1414: template 1414: struct __xref<_Tp&> 1414: { template using __type = __copy_cv<_Tp, _Up>&; }; 1414: 1414: template 1414: struct __xref<_Tp&&> 1414: { template using __type = __copy_cv<_Tp, _Up>&&; }; 1414: 1414: template 1414: using __basic_common_ref 1414: = typename basic_common_reference, 1414: remove_cvref_t<_Tp2>, 1414: __xref<_Tp1>::template __type, 1414: __xref<_Tp2>::template __type>::type; 1414: 1414: 1414: template 1414: struct common_reference; 1414: 1414: template 1414: using common_reference_t = typename common_reference<_Tp...>::type; 1414: 1414: 1414: template<> 1414: struct common_reference<> 1414: { }; 1414: 1414: 1414: template 1414: struct common_reference<_Tp0> 1414: { using type = _Tp0; }; 1414: 1414: 1414: template 1414: struct __common_reference_impl 1414: : __common_reference_impl<_Tp1, _Tp2, _Bullet + 1> 1414: { }; 1414: 1414: 1414: template 1414: struct common_reference<_Tp1, _Tp2> 1414: : __common_reference_impl<_Tp1, _Tp2> 1414: { }; 1414: 1414: 1414: template 1414: requires is_reference_v<_Tp1> && is_reference_v<_Tp2> 1414: && requires { typename __common_ref<_Tp1, _Tp2>; } 1414: 1414: && is_convertible_v, 1414: add_pointer_t<__common_ref<_Tp1, _Tp2>>> 1414: && is_convertible_v, 1414: add_pointer_t<__common_ref<_Tp1, _Tp2>>> 1414: 1414: struct __common_reference_impl<_Tp1, _Tp2, 1> 1414: { using type = __common_ref<_Tp1, _Tp2>; }; 1414: 1414: 1414: template 1414: requires requires { typename __basic_common_ref<_Tp1, _Tp2>; } 1414: struct __common_reference_impl<_Tp1, _Tp2, 2> 1414: { using type = __basic_common_ref<_Tp1, _Tp2>; }; 1414: 1414: 1414: template 1414: requires requires { typename __cond_res<_Tp1, _Tp2>; } 1414: struct __common_reference_impl<_Tp1, _Tp2, 3> 1414: { using type = __cond_res<_Tp1, _Tp2>; }; 1414: 1414: 1414: template 1414: requires requires { typename common_type_t<_Tp1, _Tp2>; } 1414: struct __common_reference_impl<_Tp1, _Tp2, 4> 1414: { using type = common_type_t<_Tp1, _Tp2>; }; 1414: 1414: 1414: template 1414: struct __common_reference_impl<_Tp1, _Tp2, 5> 1414: { }; 1414: 1414: 1414: template 1414: struct common_reference<_Tp1, _Tp2, _Rest...> 1414: : __common_type_fold, 1414: __common_type_pack<_Rest...>> 1414: { }; 1414: 1414: 1414: template 1414: struct __common_type_fold, 1414: __common_type_pack<_Rest...>, 1414: void_t>> 1414: : public common_reference, _Rest...> 1414: { }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template struct _Index_tuple { }; 1414: 1414: 1414: template 1414: struct _Build_index_tuple 1414: { 1414: # 4386 "/usr/arm-linux-gnueabihf/include/c++/16/type_traits" 3 1414: using __type = _Index_tuple<__integer_pack(_Num)...>; 1414: 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: } 1414: } 1414: # 18 "build/include/public/botan/types.h" 2 1414: # 36 "build/include/public/botan/types.h" 1414: 1414: # 36 "build/include/public/botan/types.h" 1414: namespace Botan { 1414: # 96 "build/include/public/botan/types.h" 1414: using std::int32_t; 1414: using std::int64_t; 1414: using std::size_t; 1414: using std::uint16_t; 1414: using std::uint32_t; 1414: using std::uint64_t; 1414: using std::uint8_t; 1414: # 117 "build/include/public/botan/types.h" 1414: static constexpr bool HasNative64BitRegisters = sizeof(void*) >= 8; 1414: 1414: using word = std::conditional_t; 1414: # 132 "build/include/public/botan/types.h" 1414: static_assert(sizeof(std::size_t) == 8 || sizeof(std::size_t) == 4, "This platform has an unexpected size for size_t"); 1414: 1414: 1414: 1414: 1414: constexpr size_t DefaultBufferSize = 4096; 1414: 1414: } 1414: # 11 "build/include/public/botan/ipv6_address.h" 2 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/array" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/array" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/compare" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/compare" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/compare" 2 3 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/concepts" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/c++/16/concepts" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/concepts" 2 3 1414: # 50 "/usr/arm-linux-gnueabihf/include/c++/16/concepts" 3 1414: 1414: # 50 "/usr/arm-linux-gnueabihf/include/c++/16/concepts" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: concept __same_as = std::is_same_v<_Tp, _Up>; 1414: } 1414: 1414: 1414: template 1414: concept same_as 1414: = __detail::__same_as<_Tp, _Up> && __detail::__same_as<_Up, _Tp>; 1414: 1414: namespace __detail 1414: { 1414: template 1414: concept __different_from 1414: = !same_as, remove_cvref_t<_Up>>; 1414: } 1414: 1414: 1414: template 1414: concept derived_from = __is_base_of(_Base, _Derived) 1414: && is_convertible_v; 1414: 1414: 1414: template 1414: concept convertible_to = is_convertible_v<_From, _To> 1414: && requires { static_cast<_To>(std::declval<_From>()); }; 1414: 1414: 1414: template 1414: concept common_reference_with 1414: = same_as, common_reference_t<_Up, _Tp>> 1414: && convertible_to<_Tp, common_reference_t<_Tp, _Up>> 1414: && convertible_to<_Up, common_reference_t<_Tp, _Up>>; 1414: 1414: 1414: template 1414: concept common_with 1414: = same_as, common_type_t<_Up, _Tp>> 1414: && requires { 1414: static_cast>(std::declval<_Tp>()); 1414: static_cast>(std::declval<_Up>()); 1414: } 1414: && common_reference_with, 1414: add_lvalue_reference_t> 1414: && common_reference_with>, 1414: common_reference_t< 1414: add_lvalue_reference_t, 1414: add_lvalue_reference_t>>; 1414: 1414: 1414: 1414: template 1414: concept integral = is_integral_v<_Tp>; 1414: 1414: template 1414: concept signed_integral = integral<_Tp> && is_signed_v<_Tp>; 1414: 1414: template 1414: concept unsigned_integral = integral<_Tp> && !signed_integral<_Tp>; 1414: 1414: template 1414: concept floating_point = is_floating_point_v<_Tp>; 1414: 1414: namespace __detail 1414: { 1414: template 1414: using __cref = const remove_reference_t<_Tp>&; 1414: 1414: template 1414: concept __class_or_enum 1414: = is_class_v<_Tp> || is_union_v<_Tp> || is_enum_v<_Tp>; 1414: 1414: template 1414: constexpr bool __destructible_impl = false; 1414: template 1414: requires requires(_Tp& __t) { { __t.~_Tp() } noexcept; } 1414: constexpr bool __destructible_impl<_Tp> = true; 1414: 1414: template 1414: constexpr bool __destructible = __destructible_impl<_Tp>; 1414: template 1414: constexpr bool __destructible<_Tp&> = true; 1414: template 1414: constexpr bool __destructible<_Tp&&> = true; 1414: template 1414: constexpr bool __destructible<_Tp[_Nm]> = __destructible<_Tp>; 1414: 1414: } 1414: 1414: 1414: template 1414: concept assignable_from 1414: = is_lvalue_reference_v<_Lhs> 1414: && common_reference_with<__detail::__cref<_Lhs>, __detail::__cref<_Rhs>> 1414: && requires(_Lhs __lhs, _Rhs&& __rhs) { 1414: { __lhs = static_cast<_Rhs&&>(__rhs) } -> same_as<_Lhs>; 1414: }; 1414: 1414: 1414: template 1414: concept destructible = __detail::__destructible<_Tp>; 1414: 1414: 1414: template 1414: concept constructible_from 1414: = destructible<_Tp> && is_constructible_v<_Tp, _Args...>; 1414: 1414: 1414: template 1414: concept default_initializable = constructible_from<_Tp> 1414: && requires 1414: { 1414: _Tp{}; 1414: (void) ::new _Tp; 1414: }; 1414: 1414: 1414: template 1414: concept move_constructible 1414: = constructible_from<_Tp, _Tp> && convertible_to<_Tp, _Tp>; 1414: 1414: 1414: template 1414: concept copy_constructible 1414: = move_constructible<_Tp> 1414: && constructible_from<_Tp, _Tp&> && convertible_to<_Tp&, _Tp> 1414: && constructible_from<_Tp, const _Tp&> && convertible_to 1414: && constructible_from<_Tp, const _Tp> && convertible_to; 1414: 1414: 1414: 1414: namespace ranges 1414: { 1414: 1414: namespace __swap 1414: { 1414: template void swap(_Tp&, _Tp&) = delete; 1414: 1414: template 1414: concept __adl_swap 1414: = (std::__detail::__class_or_enum> 1414: || std::__detail::__class_or_enum>) 1414: && requires(_Tp&& __t, _Up&& __u) { 1414: swap(static_cast<_Tp&&>(__t), static_cast<_Up&&>(__u)); 1414: }; 1414: 1414: struct _Swap 1414: { 1414: private: 1414: template 1414: static consteval bool 1414: _S_noexcept() 1414: { 1414: if constexpr (__adl_swap<_Tp, _Up>) 1414: return noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())); 1414: else 1414: return is_nothrow_move_constructible_v> 1414: && is_nothrow_move_assignable_v>; 1414: } 1414: 1414: public: 1414: template 1414: requires __adl_swap<_Tp, _Up> 1414: || (same_as<_Tp, _Up> && is_lvalue_reference_v<_Tp> 1414: && move_constructible> 1414: && assignable_from<_Tp, remove_reference_t<_Tp>>) 1414: constexpr void 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(_S_noexcept<_Tp, _Up>()) 1414: { 1414: if constexpr (__adl_swap<_Tp, _Up>) 1414: swap(static_cast<_Tp&&>(__t), static_cast<_Up&&>(__u)); 1414: else 1414: { 1414: auto __tmp = static_cast&&>(__t); 1414: __t = static_cast&&>(__u); 1414: __u = static_cast&&>(__tmp); 1414: } 1414: } 1414: 1414: template 1414: requires requires(const _Swap& __swap, _Tp& __e1, _Up& __e2) { 1414: __swap(__e1, __e2); 1414: } 1414: constexpr void 1414: operator()(_Tp (&__e1)[_Num], _Up (&__e2)[_Num]) const 1414: noexcept(noexcept(std::declval()(*__e1, *__e2))) 1414: { 1414: for (size_t __n = 0; __n < _Num; ++__n) 1414: (*this)(__e1[__n], __e2[__n]); 1414: } 1414: }; 1414: } 1414: 1414: 1414: inline namespace _Cpo { 1414: inline constexpr __swap::_Swap swap{}; 1414: } 1414: } 1414: 1414: template 1414: concept swappable 1414: = requires(_Tp& __a, _Tp& __b) { ranges::swap(__a, __b); }; 1414: 1414: template 1414: concept swappable_with = common_reference_with<_Tp, _Up> 1414: && requires(_Tp&& __t, _Up&& __u) { 1414: ranges::swap(static_cast<_Tp&&>(__t), static_cast<_Tp&&>(__t)); 1414: ranges::swap(static_cast<_Up&&>(__u), static_cast<_Up&&>(__u)); 1414: ranges::swap(static_cast<_Tp&&>(__t), static_cast<_Up&&>(__u)); 1414: ranges::swap(static_cast<_Up&&>(__u), static_cast<_Tp&&>(__t)); 1414: }; 1414: 1414: 1414: 1414: template 1414: concept movable = is_object_v<_Tp> && move_constructible<_Tp> 1414: && assignable_from<_Tp&, _Tp> && swappable<_Tp>; 1414: 1414: template 1414: concept copyable = copy_constructible<_Tp> && movable<_Tp> 1414: && assignable_from<_Tp&, _Tp&> && assignable_from<_Tp&, const _Tp&> 1414: && assignable_from<_Tp&, const _Tp>; 1414: 1414: template 1414: concept semiregular = copyable<_Tp> && default_initializable<_Tp>; 1414: 1414: 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: concept __boolean_testable_impl = convertible_to<_Tp, bool>; 1414: 1414: template 1414: concept __boolean_testable 1414: = __boolean_testable_impl<_Tp> 1414: && requires(_Tp&& __t) 1414: { { !static_cast<_Tp&&>(__t) } -> __boolean_testable_impl; }; 1414: } 1414: 1414: 1414: namespace __detail 1414: { 1414: template> 1414: concept __comparison_common_type_with_impl 1414: = same_as, 1414: common_reference_t> 1414: && requires { 1414: requires convertible_to 1414: || convertible_to<_Tp, const _Cref&>; 1414: requires convertible_to 1414: || convertible_to<_Up, const _Cref&>; 1414: }; 1414: 1414: template 1414: concept __comparison_common_type_with 1414: = __comparison_common_type_with_impl, 1414: remove_cvref_t<_Up>>; 1414: } 1414: 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: concept __weakly_eq_cmp_with 1414: = requires(__detail::__cref<_Tp> __t, __detail::__cref<_Up> __u) { 1414: { __t == __u } -> __boolean_testable; 1414: { __t != __u } -> __boolean_testable; 1414: { __u == __t } -> __boolean_testable; 1414: { __u != __t } -> __boolean_testable; 1414: }; 1414: } 1414: 1414: template 1414: concept equality_comparable = __detail::__weakly_eq_cmp_with<_Tp, _Tp>; 1414: 1414: template 1414: concept equality_comparable_with 1414: = equality_comparable<_Tp> && equality_comparable<_Up> 1414: && __detail::__comparison_common_type_with<_Tp, _Up> 1414: && equality_comparable, 1414: __detail::__cref<_Up>>> 1414: && __detail::__weakly_eq_cmp_with<_Tp, _Up>; 1414: 1414: namespace __detail 1414: { 1414: template 1414: concept __partially_ordered_with 1414: = requires(const remove_reference_t<_Tp>& __t, 1414: const remove_reference_t<_Up>& __u) { 1414: { __t < __u } -> __boolean_testable; 1414: { __t > __u } -> __boolean_testable; 1414: { __t <= __u } -> __boolean_testable; 1414: { __t >= __u } -> __boolean_testable; 1414: { __u < __t } -> __boolean_testable; 1414: { __u > __t } -> __boolean_testable; 1414: { __u <= __t } -> __boolean_testable; 1414: { __u >= __t } -> __boolean_testable; 1414: }; 1414: } 1414: 1414: 1414: template 1414: concept totally_ordered 1414: = equality_comparable<_Tp> 1414: && __detail::__partially_ordered_with<_Tp, _Tp>; 1414: 1414: template 1414: concept totally_ordered_with 1414: = totally_ordered<_Tp> && totally_ordered<_Up> 1414: && equality_comparable_with<_Tp, _Up> 1414: && totally_ordered, 1414: __detail::__cref<_Up>>> 1414: && __detail::__partially_ordered_with<_Tp, _Up>; 1414: 1414: template 1414: concept regular = semiregular<_Tp> && equality_comparable<_Tp>; 1414: 1414: 1414: 1414: 1414: template 1414: concept invocable = is_invocable_v<_Fn, _Args...>; 1414: 1414: 1414: template 1414: concept regular_invocable = invocable<_Fn, _Args...>; 1414: 1414: 1414: template 1414: concept predicate = regular_invocable<_Fn, _Args...> 1414: && __detail::__boolean_testable>; 1414: 1414: 1414: template 1414: concept relation 1414: = predicate<_Rel, _Tp, _Tp> && predicate<_Rel, _Up, _Up> 1414: && predicate<_Rel, _Tp, _Up> && predicate<_Rel, _Up, _Tp>; 1414: 1414: 1414: template 1414: concept equivalence_relation = relation<_Rel, _Tp, _Up>; 1414: 1414: 1414: template 1414: concept strict_weak_order = relation<_Rel, _Tp, _Up>; 1414: 1414: namespace __detail 1414: { 1414: 1414: 1414: template 1414: concept __not_overloaded_spaceship 1414: = ! requires(_Tp&& __t, _Up&& __u) 1414: { operator<=>(static_cast<_Tp&&>(__t), static_cast<_Up&&>(__u)); } 1414: && ! requires(_Tp&& __t, _Up&& __u) 1414: { static_cast<_Tp&&>(__t).operator<=>(static_cast<_Up&&>(__u)); } 1414: && (is_same_v<_Tp, _Up> 1414: || (! requires(_Tp&& __t, _Up&& __u) 1414: { operator<=>(static_cast<_Up&&>(__u), static_cast<_Tp&&>(__t)); } 1414: && ! requires(_Tp&& __t, _Up&& __u) 1414: { static_cast<_Up&&>(__u).operator<=>(static_cast<_Tp&&>(__t)); })); 1414: } 1414: 1414: } 1414: # 45 "/usr/arm-linux-gnueabihf/include/c++/16/compare" 2 3 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wpedantic" 1414: #pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant" 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: namespace __cmp_cat 1414: { 1414: using type = signed char; 1414: 1414: enum class _Ord : type 1414: { 1414: equivalent = 0, less = -1, greater = 1, 1414: 1414: unordered = -0x7f - 1 1414: }; 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr _Ord 1414: __ord(_Ordering __o) noexcept 1414: { return _Ord(__o._M_value); } 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr _Ordering 1414: __make(_Ord __o) noexcept 1414: { return _Ordering(__o); } 1414: 1414: struct __literal_zero 1414: { 1414: consteval __literal_zero(__literal_zero*) noexcept { } 1414: }; 1414: } 1414: 1414: class partial_ordering 1414: { 1414: 1414: __cmp_cat::type _M_value; 1414: 1414: constexpr explicit 1414: partial_ordering(__cmp_cat::_Ord __v) noexcept 1414: : _M_value(__cmp_cat::type(__v)) 1414: { } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr __cmp_cat::type 1414: _M_reverse() const 1414: { 1414: 1414: return static_cast<__cmp_cat::type>(-_M_value); 1414: } 1414: 1414: friend constexpr __cmp_cat::_Ord 1414: __cmp_cat::__ord(partial_ordering) noexcept; 1414: friend constexpr partial_ordering 1414: __cmp_cat::__make(__cmp_cat::_Ord) noexcept; 1414: 1414: public: 1414: 1414: static const partial_ordering less; 1414: static const partial_ordering equivalent; 1414: static const partial_ordering greater; 1414: static const partial_ordering unordered; 1414: 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator==(partial_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value == 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator==(partial_ordering, partial_ordering) noexcept = default; 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator< (partial_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value == -1; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator> (partial_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value == 1; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator<=(partial_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_reverse() >= 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator>=(partial_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value >= 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator< (__cmp_cat::__literal_zero, partial_ordering __v) noexcept 1414: { return __v._M_value == 1; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator> (__cmp_cat::__literal_zero, partial_ordering __v) noexcept 1414: { return __v._M_value == -1; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator<=(__cmp_cat::__literal_zero, partial_ordering __v) noexcept 1414: { return 0 <= __v._M_value; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator>=(__cmp_cat::__literal_zero, partial_ordering __v) noexcept 1414: { return 0 <= __v._M_reverse(); } 1414: 1414: [[nodiscard]] 1414: friend constexpr partial_ordering 1414: operator<=>(partial_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v; } 1414: 1414: [[nodiscard]] 1414: friend constexpr partial_ordering 1414: operator<=>(__cmp_cat::__literal_zero, partial_ordering __v) noexcept 1414: { return partial_ordering(__cmp_cat::_Ord(__v._M_reverse())); } 1414: }; 1414: 1414: 1414: inline constexpr partial_ordering 1414: partial_ordering::less(__cmp_cat::_Ord::less); 1414: 1414: inline constexpr partial_ordering 1414: partial_ordering::equivalent(__cmp_cat::_Ord::equivalent); 1414: 1414: inline constexpr partial_ordering 1414: partial_ordering::greater(__cmp_cat::_Ord::greater); 1414: 1414: inline constexpr partial_ordering 1414: partial_ordering::unordered(__cmp_cat::_Ord::unordered); 1414: 1414: class weak_ordering 1414: { 1414: __cmp_cat::type _M_value; 1414: 1414: constexpr explicit 1414: weak_ordering(__cmp_cat::_Ord __v) noexcept : _M_value(__cmp_cat::type(__v)) 1414: { } 1414: 1414: friend constexpr __cmp_cat::_Ord 1414: __cmp_cat::__ord(weak_ordering) noexcept; 1414: friend constexpr weak_ordering 1414: __cmp_cat::__make(__cmp_cat::_Ord) noexcept; 1414: 1414: public: 1414: 1414: static const weak_ordering less; 1414: static const weak_ordering equivalent; 1414: static const weak_ordering greater; 1414: 1414: [[nodiscard]] 1414: constexpr operator partial_ordering() const noexcept 1414: { return __cmp_cat::__make(__cmp_cat::_Ord(_M_value)); } 1414: 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator==(weak_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value == 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator==(weak_ordering, weak_ordering) noexcept = default; 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator< (weak_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value < 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator> (weak_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value > 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator<=(weak_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value <= 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator>=(weak_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value >= 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator< (__cmp_cat::__literal_zero, weak_ordering __v) noexcept 1414: { return 0 < __v._M_value; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator> (__cmp_cat::__literal_zero, weak_ordering __v) noexcept 1414: { return 0 > __v._M_value; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator<=(__cmp_cat::__literal_zero, weak_ordering __v) noexcept 1414: { return 0 <= __v._M_value; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator>=(__cmp_cat::__literal_zero, weak_ordering __v) noexcept 1414: { return 0 >= __v._M_value; } 1414: 1414: [[nodiscard]] 1414: friend constexpr weak_ordering 1414: operator<=>(weak_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v; } 1414: 1414: [[nodiscard]] 1414: friend constexpr weak_ordering 1414: operator<=>(__cmp_cat::__literal_zero, weak_ordering __v) noexcept 1414: { return weak_ordering(__cmp_cat::_Ord(-__v._M_value)); } 1414: }; 1414: 1414: 1414: inline constexpr weak_ordering 1414: weak_ordering::less(__cmp_cat::_Ord::less); 1414: 1414: inline constexpr weak_ordering 1414: weak_ordering::equivalent(__cmp_cat::_Ord::equivalent); 1414: 1414: inline constexpr weak_ordering 1414: weak_ordering::greater(__cmp_cat::_Ord::greater); 1414: 1414: class strong_ordering 1414: { 1414: __cmp_cat::type _M_value; 1414: 1414: constexpr explicit 1414: strong_ordering(__cmp_cat::_Ord __v) noexcept 1414: : _M_value(__cmp_cat::type(__v)) 1414: { } 1414: 1414: friend constexpr __cmp_cat::_Ord 1414: __cmp_cat::__ord(strong_ordering) noexcept; 1414: friend constexpr strong_ordering 1414: __cmp_cat::__make(__cmp_cat::_Ord) noexcept; 1414: 1414: public: 1414: 1414: static const strong_ordering less; 1414: static const strong_ordering equal; 1414: static const strong_ordering equivalent; 1414: static const strong_ordering greater; 1414: 1414: [[nodiscard]] 1414: constexpr operator partial_ordering() const noexcept 1414: { return __cmp_cat::__make(__cmp_cat::_Ord(_M_value)); } 1414: 1414: [[nodiscard]] 1414: constexpr operator weak_ordering() const noexcept 1414: { return __cmp_cat::__make(__cmp_cat::_Ord(_M_value)); } 1414: 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator==(strong_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value == 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator==(strong_ordering, strong_ordering) noexcept = default; 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator< (strong_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value < 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator> (strong_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value > 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator<=(strong_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value <= 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator>=(strong_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v._M_value >= 0; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator< (__cmp_cat::__literal_zero, strong_ordering __v) noexcept 1414: { return 0 < __v._M_value; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator> (__cmp_cat::__literal_zero, strong_ordering __v) noexcept 1414: { return 0 > __v._M_value; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator<=(__cmp_cat::__literal_zero, strong_ordering __v) noexcept 1414: { return 0 <= __v._M_value; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator>=(__cmp_cat::__literal_zero, strong_ordering __v) noexcept 1414: { return 0 >= __v._M_value; } 1414: 1414: [[nodiscard]] 1414: friend constexpr strong_ordering 1414: operator<=>(strong_ordering __v, __cmp_cat::__literal_zero) noexcept 1414: { return __v; } 1414: 1414: [[nodiscard]] 1414: friend constexpr strong_ordering 1414: operator<=>(__cmp_cat::__literal_zero, strong_ordering __v) noexcept 1414: { return strong_ordering(__cmp_cat::_Ord(-__v._M_value)); } 1414: }; 1414: 1414: 1414: inline constexpr strong_ordering 1414: strong_ordering::less(__cmp_cat::_Ord::less); 1414: 1414: inline constexpr strong_ordering 1414: strong_ordering::equal(__cmp_cat::_Ord::equivalent); 1414: 1414: inline constexpr strong_ordering 1414: strong_ordering::equivalent(__cmp_cat::_Ord::equivalent); 1414: 1414: inline constexpr strong_ordering 1414: strong_ordering::greater(__cmp_cat::_Ord::greater); 1414: 1414: 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: is_eq(partial_ordering __cmp) noexcept 1414: { return __cmp == 0; } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: is_neq(partial_ordering __cmp) noexcept 1414: { return __cmp != 0; } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: is_lt (partial_ordering __cmp) noexcept 1414: { return __cmp < 0; } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: is_lteq(partial_ordering __cmp) noexcept 1414: { return __cmp <= 0; } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: is_gt (partial_ordering __cmp) noexcept 1414: { return __cmp > 0; } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: is_gteq(partial_ordering __cmp) noexcept 1414: { return __cmp >= 0; } 1414: 1414: namespace __detail 1414: { 1414: template 1414: inline constexpr unsigned __cmp_cat_id = 1; 1414: template<> 1414: inline constexpr unsigned __cmp_cat_id = 2; 1414: template<> 1414: inline constexpr unsigned __cmp_cat_id = 4; 1414: template<> 1414: inline constexpr unsigned __cmp_cat_id = 8; 1414: 1414: template 1414: constexpr auto __common_cmp_cat() 1414: { 1414: constexpr unsigned __cats = (__cmp_cat_id<_Ts> | ...); 1414: 1414: if constexpr (__cats & 1) 1414: return; 1414: 1414: 1414: else if constexpr (bool(__cats & __cmp_cat_id)) 1414: return partial_ordering::equivalent; 1414: 1414: 1414: else if constexpr (bool(__cats & __cmp_cat_id)) 1414: return weak_ordering::equivalent; 1414: 1414: else 1414: return strong_ordering::equivalent; 1414: } 1414: } 1414: 1414: 1414: template 1414: struct common_comparison_category 1414: { 1414: using type = decltype(__detail::__common_cmp_cat<_Ts...>()); 1414: }; 1414: 1414: 1414: 1414: template 1414: struct common_comparison_category<_Tp> 1414: { using type = void; }; 1414: 1414: template<> 1414: struct common_comparison_category 1414: { using type = partial_ordering; }; 1414: 1414: template<> 1414: struct common_comparison_category 1414: { using type = weak_ordering; }; 1414: 1414: template<> 1414: struct common_comparison_category 1414: { using type = strong_ordering; }; 1414: 1414: template<> 1414: struct common_comparison_category<> 1414: { using type = strong_ordering; }; 1414: 1414: template 1414: using common_comparison_category_t 1414: = typename common_comparison_category<_Ts...>::type; 1414: 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: concept __compares_as 1414: = same_as, _Cat>; 1414: } 1414: 1414: 1414: template 1414: concept three_way_comparable 1414: = __detail::__weakly_eq_cmp_with<_Tp, _Tp> 1414: && __detail::__partially_ordered_with<_Tp, _Tp> 1414: && requires(const remove_reference_t<_Tp>& __a, 1414: const remove_reference_t<_Tp>& __b) 1414: { 1414: { __a <=> __b } -> __detail::__compares_as<_Cat>; 1414: }; 1414: 1414: template 1414: concept three_way_comparable_with 1414: = three_way_comparable<_Tp, _Cat> && three_way_comparable<_Up, _Cat> 1414: && __detail::__comparison_common_type_with<_Tp, _Up> 1414: && three_way_comparable< 1414: common_reference_t&, 1414: const remove_reference_t<_Up>&>, _Cat> 1414: && __detail::__weakly_eq_cmp_with<_Tp, _Up> 1414: && __detail::__partially_ordered_with<_Tp, _Up> 1414: && requires(const remove_reference_t<_Tp>& __t, 1414: const remove_reference_t<_Up>& __u) 1414: { 1414: { __t <=> __u } -> __detail::__compares_as<_Cat>; 1414: { __u <=> __t } -> __detail::__compares_as<_Cat>; 1414: }; 1414: 1414: namespace __detail 1414: { 1414: template 1414: using __cmp3way_res_t 1414: = decltype(std::declval<_Tp>() <=> std::declval<_Up>()); 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct __cmp3way_res_impl 1414: { }; 1414: 1414: template 1414: requires requires { typename __cmp3way_res_t<__cref<_Tp>, __cref<_Up>>; } 1414: struct __cmp3way_res_impl<_Tp, _Up> 1414: { 1414: using type = __cmp3way_res_t<__cref<_Tp>, __cref<_Up>>; 1414: }; 1414: } 1414: 1414: 1414: template 1414: struct compare_three_way_result 1414: : __detail::__cmp3way_res_impl<_Tp, _Up> 1414: { }; 1414: 1414: 1414: template 1414: using compare_three_way_result_t 1414: = typename __detail::__cmp3way_res_impl<_Tp, _Up>::type; 1414: 1414: namespace __detail 1414: { 1414: 1414: 1414: 1414: 1414: template 1414: concept __3way_builtin_ptr_cmp 1414: = requires(_Tp&& __t, _Up&& __u) 1414: { static_cast<_Tp&&>(__t) <=> static_cast<_Up&&>(__u); } 1414: && convertible_to<_Tp, const volatile void*> 1414: && convertible_to<_Up, const volatile void*> 1414: && __not_overloaded_spaceship<_Tp, _Up>; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: struct compare_three_way 1414: { 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++23-extensions" 1414: template 1414: requires three_way_comparable_with<_Tp, _Up> 1414: static constexpr auto 1414: operator() [[nodiscard]] (_Tp&& __t, _Up&& __u) 1414: noexcept(noexcept(std::declval<_Tp>() <=> std::declval<_Up>())) 1414: { 1414: if constexpr (__detail::__3way_builtin_ptr_cmp<_Tp, _Up>) 1414: { 1414: auto __pt = static_cast(__t); 1414: auto __pu = static_cast(__u); 1414: if (std::__is_constant_evaluated()) 1414: return __pt <=> __pu; 1414: auto __it = reinterpret_cast(__pt); 1414: auto __iu = reinterpret_cast(__pu); 1414: return __it <=> __iu; 1414: } 1414: else 1414: return static_cast<_Tp&&>(__t) <=> static_cast<_Up&&>(__u); 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: using is_transparent = void; 1414: }; 1414: 1414: 1414: 1414: namespace __compare 1414: { 1414: template 1414: constexpr weak_ordering 1414: __fp_weak_ordering(_Tp __e, _Tp __f) 1414: { 1414: auto __po = __cmp_cat::__ord(__e <=> __f); 1414: if (__po != __cmp_cat::_Ord::unordered) 1414: return __cmp_cat::__make(__po); 1414: else 1414: { 1414: 1414: auto __isnan_sign = [](_Tp __fp) -> int { 1414: return __builtin_isnan(__fp) 1414: ? __builtin_signbit(__fp) ? -1 : 1 1414: : 0; 1414: }; 1414: return __isnan_sign(__e) <=> __isnan_sign(__f); 1414: } 1414: } 1414: 1414: void strong_order() = delete; 1414: 1414: template 1414: concept __adl_strong = requires(_Tp&& __t, _Up&& __u) 1414: { 1414: strong_ordering(strong_order(static_cast<_Tp&&>(__t), 1414: static_cast<_Up&&>(__u))); 1414: }; 1414: 1414: void weak_order() = delete; 1414: 1414: template 1414: concept __adl_weak = requires(_Tp&& __t, _Up&& __u) 1414: { 1414: weak_ordering(weak_order(static_cast<_Tp&&>(__t), 1414: static_cast<_Up&&>(__u))); 1414: }; 1414: 1414: void partial_order() = delete; 1414: 1414: template 1414: concept __adl_partial = requires(_Tp&& __t, _Up&& __u) 1414: { 1414: partial_ordering(partial_order(static_cast<_Tp&&>(__t), 1414: static_cast<_Up&&>(__u))); 1414: }; 1414: 1414: template 1414: concept __cmp3way = requires(_Tp&& __t, _Up&& __u, compare_three_way __c) 1414: { 1414: _Ord(__c(static_cast<_Tp&&>(__t), static_cast<_Up&&>(__u))); 1414: }; 1414: 1414: template 1414: concept __strongly_ordered 1414: = __adl_strong<_Tp, _Up> 1414: || floating_point> 1414: || __cmp3way; 1414: 1414: template 1414: concept __decayed_same_as = same_as, decay_t<_Up>>; 1414: 1414: class _Strong_order 1414: { 1414: template 1414: static constexpr bool 1414: _S_noexcept() 1414: { 1414: if constexpr (floating_point>) 1414: return true; 1414: else if constexpr (__adl_strong<_Tp, _Up>) 1414: return noexcept(strong_ordering(strong_order(std::declval<_Tp>(), 1414: std::declval<_Up>()))); 1414: else if constexpr (__cmp3way) 1414: return noexcept(compare_three_way()(std::declval<_Tp>(), 1414: std::declval<_Up>())); 1414: } 1414: 1414: friend class _Weak_order; 1414: friend class _Strong_fallback; 1414: 1414: 1414: enum class _Fp_fmt 1414: { 1414: _Binary16, _Binary32, _Binary64, _Binary128, 1414: _X86_80bit, 1414: _M68k_80bit, 1414: _Dbldbl, 1414: _Bfloat16, 1414: }; 1414: # 705 "/usr/arm-linux-gnueabihf/include/c++/16/compare" 3 1414: template 1414: static consteval _Fp_fmt 1414: _S_fp_fmt() noexcept 1414: { 1414: 1414: using enum _Fp_fmt; 1414: # 737 "/usr/arm-linux-gnueabihf/include/c++/16/compare" 3 1414: constexpr int __width = sizeof(_Tp) * 8; 1414: 1414: if constexpr (__width == 16) 1414: return _Binary16; 1414: else if constexpr (__width == 32) 1414: return _Binary32; 1414: else if constexpr (__width == 64) 1414: return _Binary64; 1414: else if constexpr (__width == 128) 1414: return _Binary128; 1414: } 1414: 1414: 1414: using int64_t = long long int; 1414: using int32_t = int; 1414: using int16_t = short int; 1414: using uint64_t = long long unsigned int; 1414: using uint16_t = short unsigned int; 1414: 1414: 1414: template 1414: struct _Int 1414: { 1414: 1414: uint64_t _M_lo; 1414: _Tp _M_hi; 1414: 1414: 1414: 1414: 1414: 1414: constexpr explicit 1414: _Int(_Tp __hi, uint64_t __lo) noexcept : _M_hi(__hi) 1414: { _M_lo = __lo; } 1414: 1414: constexpr explicit 1414: _Int(uint64_t __lo) noexcept : _M_hi(0) 1414: { _M_lo = __lo; } 1414: 1414: constexpr bool operator==(const _Int&) const = default; 1414: # 787 "/usr/arm-linux-gnueabihf/include/c++/16/compare" 3 1414: constexpr _Int& 1414: operator^=(const _Int& __rhs) noexcept 1414: { 1414: _M_hi ^= __rhs._M_hi; 1414: _M_lo ^= __rhs._M_lo; 1414: return *this; 1414: } 1414: 1414: constexpr strong_ordering 1414: operator<=>(const _Int& __rhs) const noexcept 1414: { 1414: strong_ordering __cmp = _M_hi <=> __rhs._M_hi; 1414: if (__cmp != strong_ordering::equal) 1414: return __cmp; 1414: return _M_lo <=> __rhs._M_lo; 1414: } 1414: }; 1414: 1414: template 1414: static constexpr _Tp 1414: _S_compl(_Tp __t) noexcept 1414: { 1414: constexpr int __width = sizeof(_Tp) * 8; 1414: 1414: make_unsigned_t<_Tp> __sign = __t >> (__width - 1); 1414: 1414: 1414: return __t ^ (__sign >> 1); 1414: } 1414: 1414: 1414: template 1414: static constexpr _Int<_Tp> 1414: _S_compl(_Int<_Tp> __t) noexcept 1414: { 1414: constexpr int __width = sizeof(_Tp) * 8; 1414: make_unsigned_t<_Tp> __sign = __t._M_hi >> (__width - 1); 1414: __t._M_hi ^= (__sign >> 1 ); 1414: uint64_t __sign64 = (_Tp)__sign; 1414: __t._M_lo ^= __sign64; 1414: return __t; 1414: } 1414: 1414: 1414: template 1414: constexpr static auto 1414: _S_fp_bits(_Tp __val) noexcept 1414: { 1414: if constexpr (sizeof(_Tp) == sizeof(int64_t)) 1414: return __builtin_bit_cast(int64_t, __val); 1414: else if constexpr (sizeof(_Tp) == sizeof(int32_t)) 1414: return __builtin_bit_cast(int32_t, __val); 1414: else if constexpr (sizeof(_Tp) == sizeof(int16_t)) 1414: return __builtin_bit_cast(int16_t, __val); 1414: else 1414: { 1414: 1414: using enum _Fp_fmt; 1414: 1414: constexpr auto __fmt = _S_fp_fmt<_Tp>(); 1414: if constexpr (__fmt == _X86_80bit) 1414: { 1414: if constexpr (sizeof(_Tp) == 3 * sizeof(int32_t)) 1414: { 1414: auto __ival = __builtin_bit_cast(_Int, __val); 1414: return _Int(__ival._M_hi, __ival._M_lo); 1414: } 1414: else 1414: { 1414: auto __ival = __builtin_bit_cast(_Int, __val); 1414: return _Int(__ival._M_hi, __ival._M_lo); 1414: } 1414: } 1414: else if constexpr (__fmt == _M68k_80bit) 1414: { 1414: auto __ival = __builtin_bit_cast(_Int, __val); 1414: return _Int(__ival._M_hi >> 16, __ival._M_lo); 1414: } 1414: else if constexpr (sizeof(_Tp) == 2 * sizeof(int64_t)) 1414: { 1414: 1414: 1414: 1414: return __builtin_bit_cast(_Int, __val); 1414: 1414: } 1414: else 1414: static_assert(sizeof(_Tp) == sizeof(int64_t), 1414: "unsupported floating-point type"); 1414: } 1414: } 1414: 1414: template 1414: static constexpr strong_ordering 1414: _S_fp_cmp(_Tp __x, _Tp __y) noexcept 1414: { 1414: # 896 "/usr/arm-linux-gnueabihf/include/c++/16/compare" 3 1414: auto __ix = _S_fp_bits(__x); 1414: auto __iy = _S_fp_bits(__y); 1414: 1414: if (__ix == __iy) 1414: return strong_ordering::equal; 1414: 1414: 1414: using enum _Fp_fmt; 1414: 1414: constexpr auto __fmt = _S_fp_fmt<_Tp>(); 1414: 1414: if constexpr (__fmt == _Dbldbl) 1414: { 1414: 1414: 1414: struct _Unpacked { double _M_hi; int64_t _M_lo; }; 1414: auto __x2 = __builtin_bit_cast(_Unpacked, __x); 1414: auto __y2 = __builtin_bit_cast(_Unpacked, __y); 1414: 1414: 1414: auto __cmp = _S_fp_cmp(__x2._M_hi, __y2._M_hi); 1414: if (__cmp != strong_ordering::equal) 1414: return __cmp; 1414: 1414: 1414: 1414: if (__builtin_isnan(__x2._M_hi)) 1414: return strong_ordering::equal; 1414: 1414: 1414: if (((__x2._M_lo | __y2._M_lo) & 0x7fffffffffffffffULL) == 0) 1414: return strong_ordering::equal; 1414: 1414: 1414: return _S_compl(__x2._M_lo) <=> _S_compl(__y2._M_lo); 1414: } 1414: else 1414: { 1414: if constexpr (__fmt == _M68k_80bit) 1414: { 1414: 1414: 1414: 1414: constexpr uint16_t __maxexp = 0x7fff; 1414: if ((__ix._M_hi & __maxexp) == __maxexp) 1414: __ix._M_lo |= 1ull << 63; 1414: if ((__iy._M_hi & __maxexp) == __maxexp) 1414: __iy._M_lo |= 1ull << 63; 1414: } 1414: else 1414: { 1414: # 963 "/usr/arm-linux-gnueabihf/include/c++/16/compare" 3 1414: } 1414: return _S_compl(__ix) <=> _S_compl(__iy); 1414: } 1414: } 1414: 1414: public: 1414: template _Up> 1414: requires __strongly_ordered<_Tp, _Up> 1414: constexpr strong_ordering 1414: operator() [[nodiscard]] (_Tp&& __e, _Up&& __f) const 1414: noexcept(_S_noexcept<_Tp, _Up>()) 1414: { 1414: if constexpr (floating_point>) 1414: return _S_fp_cmp(__e, __f); 1414: else if constexpr (__adl_strong<_Tp, _Up>) 1414: return strong_ordering(strong_order(static_cast<_Tp&&>(__e), 1414: static_cast<_Up&&>(__f))); 1414: else if constexpr (__cmp3way) 1414: return compare_three_way()(static_cast<_Tp&&>(__e), 1414: static_cast<_Up&&>(__f)); 1414: } 1414: }; 1414: 1414: template 1414: concept __weakly_ordered 1414: = floating_point> 1414: || __adl_weak<_Tp, _Up> 1414: || __cmp3way 1414: || __strongly_ordered<_Tp, _Up>; 1414: 1414: class _Weak_order 1414: { 1414: template 1414: static constexpr bool 1414: _S_noexcept() 1414: { 1414: if constexpr (floating_point>) 1414: return true; 1414: else if constexpr (__adl_weak<_Tp, _Up>) 1414: return noexcept(weak_ordering(weak_order(std::declval<_Tp>(), 1414: std::declval<_Up>()))); 1414: else if constexpr (__cmp3way) 1414: return noexcept(compare_three_way()(std::declval<_Tp>(), 1414: std::declval<_Up>())); 1414: else if constexpr (__strongly_ordered<_Tp, _Up>) 1414: return _Strong_order::_S_noexcept<_Tp, _Up>(); 1414: } 1414: 1414: friend class _Partial_order; 1414: friend class _Weak_fallback; 1414: 1414: public: 1414: template _Up> 1414: requires __weakly_ordered<_Tp, _Up> 1414: constexpr weak_ordering 1414: operator() [[nodiscard]] (_Tp&& __e, _Up&& __f) const 1414: noexcept(_S_noexcept<_Tp, _Up>()) 1414: { 1414: if constexpr (floating_point>) 1414: return __compare::__fp_weak_ordering(__e, __f); 1414: else if constexpr (__adl_weak<_Tp, _Up>) 1414: return weak_ordering(weak_order(static_cast<_Tp&&>(__e), 1414: static_cast<_Up&&>(__f))); 1414: else if constexpr (__cmp3way) 1414: return compare_three_way()(static_cast<_Tp&&>(__e), 1414: static_cast<_Up&&>(__f)); 1414: else if constexpr (__strongly_ordered<_Tp, _Up>) 1414: return _Strong_order{}(static_cast<_Tp&&>(__e), 1414: static_cast<_Up&&>(__f)); 1414: } 1414: }; 1414: 1414: template 1414: concept __partially_ordered 1414: = __adl_partial<_Tp, _Up> 1414: || __cmp3way 1414: || __weakly_ordered<_Tp, _Up>; 1414: 1414: class _Partial_order 1414: { 1414: template 1414: static constexpr bool 1414: _S_noexcept() 1414: { 1414: if constexpr (__adl_partial<_Tp, _Up>) 1414: return noexcept(partial_ordering(partial_order(std::declval<_Tp>(), 1414: std::declval<_Up>()))); 1414: else if constexpr (__cmp3way) 1414: return noexcept(compare_three_way()(std::declval<_Tp>(), 1414: std::declval<_Up>())); 1414: else if constexpr (__weakly_ordered<_Tp, _Up>) 1414: return _Weak_order::_S_noexcept<_Tp, _Up>(); 1414: } 1414: 1414: friend class _Partial_fallback; 1414: 1414: public: 1414: template _Up> 1414: requires __partially_ordered<_Tp, _Up> 1414: constexpr partial_ordering 1414: operator() [[nodiscard]] (_Tp&& __e, _Up&& __f) const 1414: noexcept(_S_noexcept<_Tp, _Up>()) 1414: { 1414: if constexpr (__adl_partial<_Tp, _Up>) 1414: return partial_ordering(partial_order(static_cast<_Tp&&>(__e), 1414: static_cast<_Up&&>(__f))); 1414: else if constexpr (__cmp3way) 1414: return compare_three_way()(static_cast<_Tp&&>(__e), 1414: static_cast<_Up&&>(__f)); 1414: else if constexpr (__weakly_ordered<_Tp, _Up>) 1414: return _Weak_order{}(static_cast<_Tp&&>(__e), 1414: static_cast<_Up&&>(__f)); 1414: } 1414: }; 1414: 1414: template 1414: concept __op_eq_lt = requires(_Tp&& __t, _Up&& __u) 1414: { 1414: { static_cast<_Tp&&>(__t) == static_cast<_Up&&>(__u) } 1414: -> convertible_to; 1414: { static_cast<_Tp&&>(__t) < static_cast<_Up&&>(__u) } 1414: -> convertible_to; 1414: }; 1414: 1414: class _Strong_fallback 1414: { 1414: template 1414: static constexpr bool 1414: _S_noexcept() 1414: { 1414: if constexpr (__strongly_ordered<_Tp, _Up>) 1414: return _Strong_order::_S_noexcept<_Tp, _Up>(); 1414: else 1414: return noexcept(bool(std::declval<_Tp>() == std::declval<_Up>())) 1414: && noexcept(bool(std::declval<_Tp>() < std::declval<_Up>())); 1414: } 1414: 1414: public: 1414: template _Up> 1414: requires __strongly_ordered<_Tp, _Up> || __op_eq_lt<_Tp, _Up> 1414: constexpr strong_ordering 1414: operator() [[nodiscard]] (_Tp&& __e, _Up&& __f) const 1414: noexcept(_S_noexcept<_Tp, _Up>()) 1414: { 1414: if constexpr (__strongly_ordered<_Tp, _Up>) 1414: return _Strong_order{}(static_cast<_Tp&&>(__e), 1414: static_cast<_Up&&>(__f)); 1414: else 1414: return static_cast<_Tp&&>(__e) == static_cast<_Up&&>(__f) 1414: ? strong_ordering::equal 1414: : static_cast<_Tp&&>(__e) < static_cast<_Up&&>(__f) 1414: ? strong_ordering::less 1414: : strong_ordering::greater; 1414: } 1414: }; 1414: 1414: class _Weak_fallback 1414: { 1414: template 1414: static constexpr bool 1414: _S_noexcept() 1414: { 1414: if constexpr (__weakly_ordered<_Tp, _Up>) 1414: return _Weak_order::_S_noexcept<_Tp, _Up>(); 1414: else 1414: return noexcept(bool(std::declval<_Tp>() == std::declval<_Up>())) 1414: && noexcept(bool(std::declval<_Tp>() < std::declval<_Up>())); 1414: } 1414: 1414: public: 1414: template _Up> 1414: requires __weakly_ordered<_Tp, _Up> || __op_eq_lt<_Tp, _Up> 1414: constexpr weak_ordering 1414: operator() [[nodiscard]] (_Tp&& __e, _Up&& __f) const 1414: noexcept(_S_noexcept<_Tp, _Up>()) 1414: { 1414: if constexpr (__weakly_ordered<_Tp, _Up>) 1414: return _Weak_order{}(static_cast<_Tp&&>(__e), 1414: static_cast<_Up&&>(__f)); 1414: else 1414: return static_cast<_Tp&&>(__e) == static_cast<_Up&&>(__f) 1414: ? weak_ordering::equivalent 1414: : static_cast<_Tp&&>(__e) < static_cast<_Up&&>(__f) 1414: ? weak_ordering::less 1414: : weak_ordering::greater; 1414: } 1414: }; 1414: 1414: 1414: 1414: template 1414: concept __op_eq_lt_lt = __op_eq_lt<_Tp, _Up> 1414: && requires(_Tp&& __t, _Up&& __u) 1414: { 1414: { static_cast<_Up&&>(__u) < static_cast<_Tp&&>(__t) } 1414: -> convertible_to; 1414: }; 1414: 1414: class _Partial_fallback 1414: { 1414: template 1414: static constexpr bool 1414: _S_noexcept() 1414: { 1414: if constexpr (__partially_ordered<_Tp, _Up>) 1414: return _Partial_order::_S_noexcept<_Tp, _Up>(); 1414: else 1414: return noexcept(bool(std::declval<_Tp>() == std::declval<_Up>())) 1414: && noexcept(bool(std::declval<_Tp>() < std::declval<_Up>())); 1414: } 1414: 1414: public: 1414: template _Up> 1414: requires __partially_ordered<_Tp, _Up> || __op_eq_lt_lt<_Tp, _Up> 1414: constexpr partial_ordering 1414: operator() [[nodiscard]] (_Tp&& __e, _Up&& __f) const 1414: noexcept(_S_noexcept<_Tp, _Up>()) 1414: { 1414: if constexpr (__partially_ordered<_Tp, _Up>) 1414: return _Partial_order{}(static_cast<_Tp&&>(__e), 1414: static_cast<_Up&&>(__f)); 1414: else 1414: return static_cast<_Tp&&>(__e) == static_cast<_Up&&>(__f) 1414: ? partial_ordering::equivalent 1414: : static_cast<_Tp&&>(__e) < static_cast<_Up&&>(__f) 1414: ? partial_ordering::less 1414: : static_cast<_Up&&>(__f) < static_cast<_Tp&&>(__e) 1414: ? partial_ordering::greater 1414: : partial_ordering::unordered; 1414: } 1414: }; 1414: } 1414: 1414: 1414: 1414: inline namespace _Cpo 1414: { 1414: inline constexpr __compare::_Strong_order strong_order{}; 1414: 1414: inline constexpr __compare::_Weak_order weak_order{}; 1414: 1414: inline constexpr __compare::_Partial_order partial_order{}; 1414: 1414: inline constexpr __compare::_Strong_fallback 1414: compare_strong_order_fallback{}; 1414: 1414: inline constexpr __compare::_Weak_fallback 1414: compare_weak_order_fallback{}; 1414: 1414: inline constexpr __compare::_Partial_fallback 1414: compare_partial_order_fallback{}; 1414: } 1414: 1414: 1414: namespace __detail 1414: { 1414: 1414: inline constexpr struct _Synth3way 1414: { 1414: template 1414: static constexpr bool 1414: _S_noexcept(const _Tp* __t = nullptr, const _Up* __u = nullptr) 1414: { 1414: if constexpr (three_way_comparable_with<_Tp, _Up>) 1414: return noexcept(*__t <=> *__u); 1414: else 1414: return noexcept(*__t < *__u) && noexcept(*__u < *__t); 1414: } 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr auto 1414: operator()(const _Tp& __t, const _Up& __u) const 1414: noexcept(_S_noexcept<_Tp, _Up>()) 1414: requires requires 1414: { 1414: { __t < __u } -> __boolean_testable; 1414: { __u < __t } -> __boolean_testable; 1414: } 1414: { 1414: if constexpr (three_way_comparable_with<_Tp, _Up>) 1414: return __t <=> __u; 1414: else 1414: { 1414: if (__t < __u) 1414: return weak_ordering::less; 1414: else if (__u < __t) 1414: return weak_ordering::greater; 1414: else 1414: return weak_ordering::equivalent; 1414: } 1414: } 1414: } __synth3way = {}; 1414: 1414: 1414: template 1414: using __synth3way_t 1414: = decltype(__detail::__synth3way(std::declval<_Tp&>(), 1414: std::declval<_Up&>())); 1414: } 1414: # 1286 "/usr/arm-linux-gnueabihf/include/c++/16/compare" 3 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/array" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/initializer_list" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/initializer_list" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: template 1414: class initializer_list 1414: { 1414: public: 1414: typedef _E value_type; 1414: typedef const _E& reference; 1414: typedef const _E& const_reference; 1414: typedef size_t size_type; 1414: typedef const _E* iterator; 1414: typedef const _E* const_iterator; 1414: 1414: private: 1414: iterator _M_array; 1414: size_type _M_len; 1414: 1414: 1414: constexpr initializer_list(const_iterator __a, size_type __l) 1414: : _M_array(__a), _M_len(__l) { } 1414: 1414: public: 1414: constexpr initializer_list() noexcept 1414: : _M_array(0), _M_len(0) { } 1414: 1414: 1414: constexpr size_type 1414: size() const noexcept { return _M_len; } 1414: 1414: 1414: constexpr const_iterator 1414: begin() const noexcept { return _M_array; } 1414: 1414: 1414: constexpr const_iterator 1414: end() const noexcept { return begin() + size(); } 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr const _Tp* 1414: begin(initializer_list<_Tp> __ils) noexcept 1414: { return __ils.begin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr const _Tp* 1414: end(initializer_list<_Tp> __ils) noexcept 1414: { return __ils.end(); } 1414: } 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/array" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throw.h" 1 3 1414: # 35 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throw.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_defines.h" 1 3 1414: # 36 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throw.h" 2 3 1414: # 60 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throw.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throwfwd.h" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throwfwd.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 69 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throwfwd.h" 3 1414: void 1414: __throw_logic_error(const char*) __attribute__((__noreturn__,__cold__)); 1414: 1414: void 1414: __throw_domain_error(const char*) __attribute__((__noreturn__,__cold__)); 1414: 1414: void 1414: __throw_invalid_argument(const char*) __attribute__((__noreturn__,__cold__)); 1414: 1414: void 1414: __throw_length_error(const char*) __attribute__((__noreturn__,__cold__)); 1414: 1414: void 1414: __throw_out_of_range(const char*) __attribute__((__noreturn__,__cold__)); 1414: 1414: void 1414: __throw_out_of_range_fmt(const char*, ...) 1414: __attribute__((__noreturn__,__cold__,__format__(__gnu_printf__, 1, 2))); 1414: 1414: void 1414: __throw_runtime_error(const char*) __attribute__((__noreturn__,__cold__)); 1414: 1414: void 1414: __throw_overflow_error(const char*) __attribute__((__noreturn__,__cold__)); 1414: 1414: void 1414: __throw_underflow_error(const char*) __attribute__((__noreturn__,__cold__)); 1414: # 122 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throwfwd.h" 3 1414: 1414: } 1414: # 61 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throw.h" 2 3 1414: # 45 "/usr/arm-linux-gnueabihf/include/c++/16/array" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 1 3 1414: # 60 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cpp_type_traits.h" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cpp_type_traits.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cpp_type_traits.h" 2 3 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: # 76 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cpp_type_traits.h" 3 1414: extern "C++" { 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: struct __true_type { }; 1414: struct __false_type { }; 1414: 1414: template 1414: struct __truth_type 1414: { typedef __false_type __type; }; 1414: 1414: template<> 1414: struct __truth_type 1414: { typedef __true_type __type; }; 1414: 1414: 1414: 1414: template 1414: struct __traitor 1414: { 1414: enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; 1414: typedef typename __truth_type<__value>::__type __type; 1414: }; 1414: 1414: 1414: template 1414: struct __are_same 1414: { 1414: enum { __value = 0 }; 1414: typedef __false_type __type; 1414: }; 1414: 1414: template 1414: struct __are_same<_Tp, _Tp> 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: 1414: 1414: 1414: template 1414: struct __is_integer 1414: { 1414: enum { __value = 0 }; 1414: typedef __false_type __type; 1414: }; 1414: 1414: 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_integer 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: # 287 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cpp_type_traits.h" 3 1414: template 1414: struct __is_floating 1414: { 1414: enum { __value = 0 }; 1414: typedef __false_type __type; 1414: }; 1414: 1414: 1414: template<> 1414: struct __is_floating 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_floating 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_floating 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: # 373 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cpp_type_traits.h" 3 1414: template 1414: struct __is_arithmetic 1414: : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > 1414: { }; 1414: 1414: 1414: 1414: 1414: template 1414: struct __is_char 1414: { 1414: enum { __value = 0 }; 1414: typedef __false_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_char 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: 1414: template<> 1414: struct __is_char 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: 1414: template 1414: struct __is_byte 1414: { 1414: enum { __value = 0 }; 1414: typedef __false_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_byte 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_byte 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: template<> 1414: struct __is_byte 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: 1414: enum class byte : unsigned char; 1414: 1414: template<> 1414: struct __is_byte 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: 1414: 1414: template<> 1414: struct __is_byte 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: 1414: 1414: 1414: template 1414: struct __is_nonvolatile_trivially_copyable 1414: { 1414: enum { __value = __is_trivially_copyable(_Tp) }; 1414: }; 1414: 1414: 1414: 1414: 1414: template 1414: struct __is_nonvolatile_trivially_copyable 1414: { 1414: enum { __value = 0 }; 1414: }; 1414: 1414: 1414: template 1414: struct __memcpyable 1414: { 1414: enum { __value = 0 }; 1414: }; 1414: 1414: 1414: template 1414: struct __memcpyable<_Tp*, _Tp*> 1414: : __is_nonvolatile_trivially_copyable<_Tp> 1414: { }; 1414: 1414: 1414: template 1414: struct __memcpyable<_Tp*, const _Tp*> 1414: : __is_nonvolatile_trivially_copyable<_Tp> 1414: { }; 1414: 1414: template struct __memcpyable_integer; 1414: 1414: 1414: 1414: 1414: template 1414: struct __memcpyable<_Tp*, _Up*> 1414: { 1414: enum { 1414: __value = __memcpyable_integer<_Tp>::__width != 0 1414: && ((int)__memcpyable_integer<_Tp>::__width 1414: == (int)__memcpyable_integer<_Up>::__width) 1414: }; 1414: }; 1414: 1414: 1414: template 1414: struct __memcpyable<_Tp*, const _Up*> 1414: : __memcpyable<_Tp*, _Up*> 1414: { }; 1414: 1414: template 1414: struct __memcpyable_integer 1414: { 1414: enum { 1414: __width = __is_integer<_Tp>::__value ? (sizeof(_Tp) * 8) : 0 1414: }; 1414: }; 1414: 1414: 1414: template 1414: struct __memcpyable_integer 1414: { enum { __width = 0 }; }; 1414: 1414: 1414: 1414: 1414: template<> 1414: struct __memcpyable_integer 1414: { enum { __width = 0 }; }; 1414: # 571 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cpp_type_traits.h" 3 1414: template<> 1414: struct __memcpyable { enum { __value = true }; }; 1414: template<> 1414: struct __memcpyable { enum { __value = true }; }; 1414: # 603 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cpp_type_traits.h" 3 1414: template 1414: struct __memcmpable 1414: { 1414: enum { __value = 0 }; 1414: }; 1414: 1414: 1414: template 1414: struct __memcmpable<_Tp*, _Tp*> 1414: : __is_nonvolatile_trivially_copyable<_Tp> 1414: { }; 1414: 1414: template 1414: struct __memcmpable 1414: : __is_nonvolatile_trivially_copyable<_Tp> 1414: { }; 1414: 1414: template 1414: struct __memcmpable<_Tp*, const _Tp*> 1414: : __is_nonvolatile_trivially_copyable<_Tp> 1414: { }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template::__value 1414: 1414: > 1414: struct __is_memcmp_ordered 1414: { 1414: static const bool __value = _Tp(-1) > _Tp(1); 1414: }; 1414: 1414: template 1414: struct __is_memcmp_ordered<_Tp, false> 1414: { 1414: static const bool __value = false; 1414: }; 1414: 1414: 1414: template 1414: struct __is_memcmp_ordered_with 1414: { 1414: static const bool __value = __is_memcmp_ordered<_Tp>::__value 1414: && __is_memcmp_ordered<_Up>::__value; 1414: }; 1414: 1414: template 1414: struct __is_memcmp_ordered_with<_Tp, _Up, false> 1414: { 1414: static const bool __value = false; 1414: }; 1414: # 672 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cpp_type_traits.h" 3 1414: template<> 1414: struct __is_memcmp_ordered_with 1414: { static constexpr bool __value = true; }; 1414: 1414: template 1414: struct __is_memcmp_ordered_with<_Tp, std::byte, _SameSize> 1414: { static constexpr bool __value = false; }; 1414: 1414: template 1414: struct __is_memcmp_ordered_with 1414: { static constexpr bool __value = false; }; 1414: 1414: 1414: 1414: template 1414: constexpr bool __can_use_memchr_for_find 1414: 1414: = __is_byte<_ValT>::__value 1414: 1414: && (is_same_v<_Tp, _ValT> || is_integral_v<_Tp>); 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct __is_move_iterator 1414: { 1414: enum { __value = 0 }; 1414: typedef __false_type __type; 1414: }; 1414: 1414: 1414: 1414: template 1414: constexpr 1414: inline _Iterator 1414: __miter_base(_Iterator __it) 1414: { return __it; } 1414: 1414: 1414: } 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 61 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/ext/type_traits.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/ext/type_traits.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: 1414: extern "C++" { 1414: 1414: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: template 1414: struct __enable_if 1414: { }; 1414: 1414: template 1414: struct __enable_if 1414: { typedef _Tp __type; }; 1414: 1414: 1414: 1414: template 1414: struct __conditional_type 1414: { typedef _Iftrue __type; }; 1414: 1414: template 1414: struct __conditional_type 1414: { typedef _Iffalse __type; }; 1414: 1414: 1414: 1414: template 1414: struct __add_unsigned 1414: { 1414: private: 1414: typedef __enable_if::__value, _Tp> __if_type; 1414: 1414: public: 1414: typedef typename __if_type::__type __type; 1414: }; 1414: 1414: template<> 1414: struct __add_unsigned 1414: { typedef unsigned char __type; }; 1414: 1414: template<> 1414: struct __add_unsigned 1414: { typedef unsigned char __type; }; 1414: 1414: template<> 1414: struct __add_unsigned 1414: { typedef unsigned short __type; }; 1414: 1414: template<> 1414: struct __add_unsigned 1414: { typedef unsigned int __type; }; 1414: 1414: template<> 1414: struct __add_unsigned 1414: { typedef unsigned long __type; }; 1414: 1414: template<> 1414: struct __add_unsigned 1414: { typedef unsigned long long __type; }; 1414: 1414: 1414: template<> 1414: struct __add_unsigned; 1414: 1414: template<> 1414: struct __add_unsigned; 1414: 1414: 1414: 1414: template 1414: struct __remove_unsigned 1414: { 1414: private: 1414: typedef __enable_if::__value, _Tp> __if_type; 1414: 1414: public: 1414: typedef typename __if_type::__type __type; 1414: }; 1414: 1414: template<> 1414: struct __remove_unsigned 1414: { typedef signed char __type; }; 1414: 1414: template<> 1414: struct __remove_unsigned 1414: { typedef signed char __type; }; 1414: 1414: template<> 1414: struct __remove_unsigned 1414: { typedef short __type; }; 1414: 1414: template<> 1414: struct __remove_unsigned 1414: { typedef int __type; }; 1414: 1414: template<> 1414: struct __remove_unsigned 1414: { typedef long __type; }; 1414: 1414: template<> 1414: struct __remove_unsigned 1414: { typedef long long __type; }; 1414: 1414: 1414: template<> 1414: struct __remove_unsigned; 1414: 1414: template<> 1414: struct __remove_unsigned; 1414: 1414: 1414: 1414: template 1414: constexpr 1414: inline bool 1414: __is_null_pointer(_Type* __ptr) 1414: { return __ptr == 0; } 1414: 1414: template 1414: constexpr 1414: inline bool 1414: __is_null_pointer(_Type) 1414: { return false; } 1414: 1414: 1414: constexpr bool 1414: __is_null_pointer(std::nullptr_t) 1414: { return true; } 1414: 1414: 1414: 1414: 1414: template::__value> 1414: struct __promote 1414: { typedef double __type; }; 1414: 1414: 1414: 1414: 1414: template 1414: struct __promote<_Tp, false> 1414: { }; 1414: 1414: template<> 1414: struct __promote 1414: { typedef long double __type; }; 1414: 1414: template<> 1414: struct __promote 1414: { typedef double __type; }; 1414: 1414: template<> 1414: struct __promote 1414: { typedef float __type; }; 1414: # 230 "/usr/arm-linux-gnueabihf/include/c++/16/ext/type_traits.h" 3 1414: template 1414: using __promoted_t = decltype((typename __promote<_Tp>::__type(0) + ...)); 1414: 1414: 1414: 1414: template 1414: using __promote_2 = __promote<__promoted_t<_Tp, _Up>>; 1414: 1414: template 1414: using __promote_3 = __promote<__promoted_t<_Tp, _Up, _Vp>>; 1414: 1414: template 1414: using __promote_4 = __promote<__promoted_t<_Tp, _Up, _Vp, _Wp>>; 1414: # 274 "/usr/arm-linux-gnueabihf/include/c++/16/ext/type_traits.h" 3 1414: 1414: } 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 62 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/ext/numeric_traits.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/ext/numeric_traits.h" 3 1414: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 52 "/usr/arm-linux-gnueabihf/include/c++/16/ext/numeric_traits.h" 3 1414: template 1414: struct __is_integer_nonstrict 1414: : public std::__is_integer<_Tp> 1414: { 1414: using std::__is_integer<_Tp>::__value; 1414: 1414: 1414: enum { __width = __value ? sizeof(_Tp) * 8 : 0 }; 1414: }; 1414: 1414: template 1414: struct __numeric_traits_integer 1414: { 1414: 1414: static_assert(__is_integer_nonstrict<_Value>::__value, 1414: "invalid specialization"); 1414: 1414: 1414: 1414: 1414: static const bool __is_signed = (_Value)(-1) < 0; 1414: static const int __digits 1414: = __is_integer_nonstrict<_Value>::__width - __is_signed; 1414: 1414: 1414: static const _Value __max = __is_signed 1414: ? (((((_Value)1 << (__digits - 1)) - 1) << 1) + 1) 1414: : ~(_Value)0; 1414: static const _Value __min = __is_signed ? -__max - 1 : (_Value)0; 1414: }; 1414: 1414: template 1414: const _Value __numeric_traits_integer<_Value>::__min; 1414: 1414: template 1414: const _Value __numeric_traits_integer<_Value>::__max; 1414: 1414: template 1414: const bool __numeric_traits_integer<_Value>::__is_signed; 1414: 1414: template 1414: const int __numeric_traits_integer<_Value>::__digits; 1414: # 133 "/usr/arm-linux-gnueabihf/include/c++/16/ext/numeric_traits.h" 3 1414: template 1414: using __int_traits = __numeric_traits_integer<_Tp>; 1414: # 153 "/usr/arm-linux-gnueabihf/include/c++/16/ext/numeric_traits.h" 3 1414: template 1414: struct __numeric_traits_floating 1414: { 1414: 1414: static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 53) * 643L / 2136); 1414: 1414: 1414: static const bool __is_signed = true; 1414: static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 15); 1414: static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 308); 1414: }; 1414: 1414: template 1414: const int __numeric_traits_floating<_Value>::__max_digits10; 1414: 1414: template 1414: const bool __numeric_traits_floating<_Value>::__is_signed; 1414: 1414: template 1414: const int __numeric_traits_floating<_Value>::__digits10; 1414: 1414: template 1414: const int __numeric_traits_floating<_Value>::__max_exponent10; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct __numeric_traits 1414: : public __numeric_traits_integer<_Value> 1414: { }; 1414: 1414: template<> 1414: struct __numeric_traits 1414: : public __numeric_traits_floating 1414: { }; 1414: 1414: template<> 1414: struct __numeric_traits 1414: : public __numeric_traits_floating 1414: { }; 1414: 1414: template<> 1414: struct __numeric_traits 1414: : public __numeric_traits_floating 1414: { }; 1414: # 234 "/usr/arm-linux-gnueabihf/include/c++/16/ext/numeric_traits.h" 3 1414: 1414: } 1414: # 63 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 1 3 1414: # 61 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/move.h" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/bits/move.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: inline constexpr _Tp* 1414: __addressof(_Tp& __r) noexcept 1414: { return __builtin_addressof(__r); } 1414: # 69 "/usr/arm-linux-gnueabihf/include/c++/16/bits/move.h" 3 1414: template 1414: [[__nodiscard__,__gnu__::__always_inline__]] 1414: constexpr _Tp&& 1414: forward(typename std::remove_reference<_Tp>::type& __t) noexcept 1414: { return static_cast<_Tp&&>(__t); } 1414: # 82 "/usr/arm-linux-gnueabihf/include/c++/16/bits/move.h" 3 1414: template 1414: [[__nodiscard__,__gnu__::__always_inline__]] 1414: constexpr _Tp&& 1414: forward(typename std::remove_reference<_Tp>::type&& __t) noexcept 1414: { 1414: static_assert(!std::is_lvalue_reference<_Tp>::value, 1414: "std::forward must not be used to convert an rvalue to an lvalue"); 1414: return static_cast<_Tp&&>(__t); 1414: } 1414: 1414: template 1414: struct __like_impl; 1414: 1414: template 1414: struct __like_impl<_Tp&, _Up&> 1414: { using type = _Up&; }; 1414: 1414: template 1414: struct __like_impl 1414: { using type = const _Up&; }; 1414: 1414: template 1414: struct __like_impl<_Tp&&, _Up&> 1414: { using type = _Up&&; }; 1414: 1414: template 1414: struct __like_impl 1414: { using type = const _Up&&; }; 1414: 1414: template 1414: using __like_t = typename __like_impl<_Tp&&, _Up&>::type; 1414: # 135 "/usr/arm-linux-gnueabihf/include/c++/16/bits/move.h" 3 1414: template 1414: [[__nodiscard__,__gnu__::__always_inline__]] 1414: constexpr typename std::remove_reference<_Tp>::type&& 1414: move(_Tp&& __t) noexcept 1414: { return static_cast::type&&>(__t); } 1414: 1414: 1414: template 1414: struct __move_if_noexcept_cond 1414: : public __and_<__not_>, 1414: is_copy_constructible<_Tp>>::type { }; 1414: # 156 "/usr/arm-linux-gnueabihf/include/c++/16/bits/move.h" 3 1414: template 1414: [[__nodiscard__,__gnu__::__always_inline__]] 1414: constexpr 1414: __conditional_t<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&> 1414: move_if_noexcept(_Tp& __x) noexcept 1414: { return std::move(__x); } 1414: # 173 "/usr/arm-linux-gnueabihf/include/c++/16/bits/move.h" 3 1414: template 1414: [[__nodiscard__,__gnu__::__always_inline__]] 1414: inline constexpr _Tp* 1414: addressof(_Tp& __r) noexcept 1414: { return __builtin_addressof(__r); } 1414: 1414: 1414: 1414: template 1414: const _Tp* addressof(const _Tp&&) = delete; 1414: 1414: 1414: template 1414: constexpr 1414: inline _Tp 1414: __exchange(_Tp& __obj, _Up&& __new_val) 1414: { 1414: _Tp __old_val = std::move(__obj); 1414: __obj = std::forward<_Up>(__new_val); 1414: return __old_val; 1414: } 1414: # 216 "/usr/arm-linux-gnueabihf/include/c++/16/bits/move.h" 3 1414: template 1414: 1414: requires (! __is_tuple_like<_Tp>::value) 1414: && is_move_constructible_v<_Tp> 1414: && is_move_assignable_v<_Tp> 1414: constexpr void 1414: # 230 "/usr/arm-linux-gnueabihf/include/c++/16/bits/move.h" 3 1414: swap(_Tp& __a, _Tp& __b) 1414: noexcept(__and_, is_nothrow_move_assignable<_Tp>>::value) 1414: 1414: { 1414: 1414: 1414: 1414: 1414: _Tp __tmp = std::move(__a); 1414: __a = std::move(__b); 1414: __b = std::move(__tmp); 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: 1414: requires is_swappable_v<_Tp> 1414: constexpr void 1414: 1414: 1414: 1414: 1414: 1414: 1414: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 1414: noexcept(__is_nothrow_swappable<_Tp>::value) 1414: { 1414: for (size_t __n = 0; __n < _Nm; ++__n) 1414: swap(__a[__n], __b[__n]); 1414: } 1414: 1414: 1414: 1414: } 1414: # 62 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/utility.h" 1 3 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/bits/utility.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: template 1414: struct tuple_size; 1414: 1414: 1414: 1414: 1414: 1414: template::type, 1414: typename = typename enable_if::value>::type, 1414: size_t = tuple_size<_Tp>::value> 1414: using __enable_if_has_tuple_size = _Tp; 1414: 1414: template 1414: struct tuple_size> 1414: : public tuple_size<_Tp> { }; 1414: 1414: template 1414: struct tuple_size> 1414: : public tuple_size<_Tp> { }; 1414: 1414: template 1414: struct tuple_size> 1414: : public tuple_size<_Tp> { }; 1414: 1414: 1414: template 1414: inline constexpr size_t tuple_size_v = tuple_size<_Tp>::value; 1414: 1414: 1414: 1414: template 1414: struct tuple_element; 1414: 1414: 1414: template 1414: using __tuple_element_t = typename tuple_element<__i, _Tp>::type; 1414: 1414: template 1414: struct tuple_element<__i, const _Tp> 1414: { 1414: using type = const __tuple_element_t<__i, _Tp>; 1414: }; 1414: 1414: template 1414: struct tuple_element<__i, volatile _Tp> 1414: { 1414: using type = volatile __tuple_element_t<__i, _Tp>; 1414: }; 1414: 1414: template 1414: struct tuple_element<__i, const volatile _Tp> 1414: { 1414: using type = const volatile __tuple_element_t<__i, _Tp>; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr size_t 1414: __find_uniq_type_in_pack() 1414: { 1414: constexpr size_t __sz = sizeof...(_Types); 1414: constexpr bool __found[__sz] = { __is_same(_Tp, _Types) ... }; 1414: size_t __n = __sz; 1414: for (size_t __i = 0; __i < __sz; ++__i) 1414: { 1414: if (__found[__i]) 1414: { 1414: if (__n < __sz) 1414: return __sz; 1414: __n = __i; 1414: } 1414: } 1414: return __n; 1414: } 1414: # 139 "/usr/arm-linux-gnueabihf/include/c++/16/bits/utility.h" 3 1414: template 1414: using tuple_element_t = typename tuple_element<__i, _Tp>::type; 1414: # 468 "/usr/arm-linux-gnueabihf/include/c++/16/bits/utility.h" 3 1414: template 1414: struct integer_sequence 1414: { 1414: 1414: static_assert(is_integral_v<_Tp>); 1414: 1414: typedef _Tp value_type; 1414: static constexpr size_t size() noexcept { return sizeof...(_Idx); } 1414: }; 1414: # 515 "/usr/arm-linux-gnueabihf/include/c++/16/bits/utility.h" 3 1414: template 1414: using make_integer_sequence 1414: 1414: 1414: 1414: = integer_sequence<_Tp, __integer_pack(_Num)...>; 1414: 1414: 1414: 1414: template 1414: using index_sequence = integer_sequence; 1414: 1414: 1414: template 1414: using make_index_sequence = make_integer_sequence; 1414: 1414: 1414: template 1414: using index_sequence_for = make_index_sequence; 1414: # 554 "/usr/arm-linux-gnueabihf/include/c++/16/bits/utility.h" 3 1414: struct in_place_t { 1414: explicit in_place_t() = default; 1414: }; 1414: 1414: inline constexpr in_place_t in_place{}; 1414: 1414: template struct in_place_type_t 1414: { 1414: explicit in_place_type_t() = default; 1414: }; 1414: 1414: template 1414: inline constexpr in_place_type_t<_Tp> in_place_type{}; 1414: 1414: template struct in_place_index_t 1414: { 1414: explicit in_place_index_t() = default; 1414: }; 1414: 1414: template 1414: inline constexpr in_place_index_t<_Idx> in_place_index{}; 1414: 1414: template 1414: inline constexpr bool __is_in_place_type_v = false; 1414: 1414: template 1414: inline constexpr bool __is_in_place_type_v> = true; 1414: 1414: template 1414: inline constexpr bool __is_in_place_index_v = false; 1414: 1414: template 1414: inline constexpr bool __is_in_place_index_v> = true; 1414: 1414: 1414: 1414: 1414: template 1414: struct _Nth_type 1414: { using type = __type_pack_element<_Np, _Types...>; }; 1414: # 632 "/usr/arm-linux-gnueabihf/include/c++/16/bits/utility.h" 3 1414: namespace ranges::__detail 1414: { 1414: template 1414: inline constexpr bool __is_subrange = false; 1414: } 1414: 1414: 1414: 1414: 1414: struct _Swallow_assign 1414: { 1414: template 1414: constexpr const _Swallow_assign& 1414: operator=(const _Tp&) const noexcept 1414: { return *this; } 1414: }; 1414: # 666 "/usr/arm-linux-gnueabihf/include/c++/16/bits/utility.h" 3 1414: inline constexpr _Swallow_assign ignore{}; 1414: # 676 "/usr/arm-linux-gnueabihf/include/c++/16/bits/utility.h" 3 1414: 1414: } 1414: # 63 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 79 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; 1414: 1414: 1414: inline constexpr piecewise_construct_t piecewise_construct = 1414: piecewise_construct_t(); 1414: 1414: 1414: 1414: 1414: template 1414: struct pair; 1414: 1414: template 1414: class tuple; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct array; 1414: 1414: template 1414: struct _Index_tuple; 1414: 1414: template 1414: constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& 1414: get(pair<_Tp1, _Tp2>& __in) noexcept; 1414: 1414: template 1414: constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& 1414: get(pair<_Tp1, _Tp2>&& __in) noexcept; 1414: 1414: template 1414: constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& 1414: get(const pair<_Tp1, _Tp2>& __in) noexcept; 1414: 1414: template 1414: constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& 1414: get(const pair<_Tp1, _Tp2>&& __in) noexcept; 1414: 1414: template 1414: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 1414: get(tuple<_Elements...>& __t) noexcept; 1414: 1414: template 1414: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 1414: get(const tuple<_Elements...>& __t) noexcept; 1414: 1414: template 1414: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 1414: get(tuple<_Elements...>&& __t) noexcept; 1414: 1414: template 1414: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 1414: get(const tuple<_Elements...>&& __t) noexcept; 1414: 1414: template 1414: constexpr _Tp& 1414: get(array<_Tp, _Nm>&) noexcept; 1414: 1414: template 1414: constexpr _Tp&& 1414: get(array<_Tp, _Nm>&&) noexcept; 1414: 1414: template 1414: constexpr const _Tp& 1414: get(const array<_Tp, _Nm>&) noexcept; 1414: 1414: template 1414: constexpr const _Tp&& 1414: get(const array<_Tp, _Nm>&&) noexcept; 1414: # 281 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: template class __pair_base 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: }; 1414: # 304 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: template 1414: struct pair 1414: : public __pair_base<_T1, _T2> 1414: { 1414: typedef _T1 first_type; 1414: typedef _T2 second_type; 1414: 1414: _T1 first; 1414: _T2 second; 1414: 1414: 1414: constexpr pair(const pair&) = default; 1414: constexpr pair(pair&&) = default; 1414: 1414: template 1414: constexpr 1414: pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); 1414: 1414: 1414: constexpr void 1414: swap(pair& __p) 1414: noexcept(__and_<__is_nothrow_swappable<_T1>, 1414: __is_nothrow_swappable<_T2>>::value) 1414: { 1414: using std::swap; 1414: swap(first, __p.first); 1414: swap(second, __p.second); 1414: } 1414: # 352 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: private: 1414: template 1414: constexpr 1414: pair(tuple<_Args1...>&, tuple<_Args2...>&, 1414: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); 1414: public: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: explicit(__not_<__and_<__is_implicitly_default_constructible<_T1>, 1414: __is_implicitly_default_constructible<_T2>>>()) 1414: pair() 1414: noexcept(is_nothrow_default_constructible_v<_T1> 1414: && is_nothrow_default_constructible_v<_T2>) 1414: requires is_default_constructible_v<_T1> 1414: && is_default_constructible_v<_T2> 1414: : first(), second() 1414: { } 1414: 1414: private: 1414: 1414: 1414: template 1414: static constexpr bool 1414: _S_constructible() 1414: { 1414: if constexpr (is_constructible_v<_T1, _U1>) 1414: return is_constructible_v<_T2, _U2>; 1414: return false; 1414: } 1414: 1414: template 1414: static constexpr bool 1414: _S_nothrow_constructible() 1414: { 1414: if constexpr (is_nothrow_constructible_v<_T1, _U1>) 1414: return is_nothrow_constructible_v<_T2, _U2>; 1414: return false; 1414: } 1414: 1414: template 1414: static constexpr bool 1414: _S_convertible() 1414: { 1414: if constexpr (is_convertible_v<_U1, _T1>) 1414: return is_convertible_v<_U2, _T2>; 1414: return false; 1414: } 1414: 1414: 1414: template 1414: static constexpr bool 1414: _S_dangles() 1414: { 1414: 1414: if constexpr (__reference_constructs_from_temporary(_T1, _U1&&)) 1414: return true; 1414: else 1414: return __reference_constructs_from_temporary(_T2, _U2&&); 1414: 1414: 1414: 1414: } 1414: # 447 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: public: 1414: 1414: 1414: constexpr explicit(!_S_convertible()) 1414: pair(const type_identity_t<_T1>& __x, const _T2& __y) 1414: noexcept(_S_nothrow_constructible()) 1414: requires (_S_constructible()) 1414: : first(__x), second(__y) 1414: { } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: 1414: requires (_S_constructible<_U1, _U2>()) && (!_S_dangles<_U1, _U2>()) 1414: constexpr explicit(!_S_convertible<_U1, _U2>()) 1414: pair(_U1&& __x, _U2&& __y) 1414: noexcept(_S_nothrow_constructible<_U1, _U2>()) 1414: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) 1414: { } 1414: 1414: 1414: 1414: 1414: template 1414: 1414: requires (_S_constructible<_U1, _U2>()) && (_S_dangles<_U1, _U2>()) 1414: constexpr explicit(!_S_convertible<_U1, _U2>()) 1414: pair(_U1&&, _U2&&) = delete; 1414: 1414: 1414: template 1414: requires (_S_constructible()) 1414: && (!_S_dangles<_U1, _U2>()) 1414: constexpr explicit(!_S_convertible()) 1414: pair(const pair<_U1, _U2>& __p) 1414: noexcept(_S_nothrow_constructible()) 1414: : first(__p.first), second(__p.second) 1414: { } 1414: 1414: template 1414: requires (_S_constructible()) 1414: && (_S_dangles()) 1414: constexpr explicit(!_S_convertible()) 1414: pair(const pair<_U1, _U2>&) = delete; 1414: 1414: 1414: template 1414: requires (_S_constructible<_U1, _U2>()) && (!_S_dangles<_U1, _U2>()) 1414: constexpr explicit(!_S_convertible<_U1, _U2>()) 1414: pair(pair<_U1, _U2>&& __p) 1414: noexcept(_S_nothrow_constructible<_U1, _U2>()) 1414: : first(std::forward<_U1>(__p.first)), 1414: second(std::forward<_U2>(__p.second)) 1414: { } 1414: 1414: template 1414: requires (_S_constructible<_U1, _U2>()) && (_S_dangles<_U1, _U2>()) 1414: constexpr explicit(!_S_convertible<_U1, _U2>()) 1414: pair(pair<_U1, _U2>&&) = delete; 1414: # 560 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: private: 1414: 1414: template 1414: static constexpr bool 1414: _S_assignable() 1414: { 1414: if constexpr (is_assignable_v<_T1&, _U1>) 1414: return is_assignable_v<_T2&, _U2>; 1414: return false; 1414: } 1414: 1414: template 1414: static constexpr bool 1414: _S_const_assignable() 1414: { 1414: if constexpr (is_assignable_v) 1414: return is_assignable_v; 1414: return false; 1414: } 1414: 1414: template 1414: static constexpr bool 1414: _S_nothrow_assignable() 1414: { 1414: if constexpr (is_nothrow_assignable_v<_T1&, _U1>) 1414: return is_nothrow_assignable_v<_T2&, _U2>; 1414: return false; 1414: } 1414: # 608 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: public: 1414: 1414: pair& operator=(const pair&) = delete; 1414: 1414: 1414: constexpr pair& 1414: operator=(const pair& __p) 1414: noexcept(_S_nothrow_assignable()) 1414: requires (_S_assignable()) 1414: { 1414: first = __p.first; 1414: second = __p.second; 1414: return *this; 1414: } 1414: 1414: 1414: constexpr pair& 1414: operator=(pair&& __p) 1414: noexcept(_S_nothrow_assignable<_T1, _T2>()) 1414: requires (_S_assignable<_T1, _T2>()) 1414: { 1414: first = std::forward(__p.first); 1414: second = std::forward(__p.second); 1414: return *this; 1414: } 1414: 1414: 1414: template 1414: constexpr pair& 1414: operator=(const pair<_U1, _U2>& __p) 1414: noexcept(_S_nothrow_assignable()) 1414: requires (_S_assignable()) 1414: { 1414: first = __p.first; 1414: second = __p.second; 1414: return *this; 1414: } 1414: 1414: 1414: template 1414: constexpr pair& 1414: operator=(pair<_U1, _U2>&& __p) 1414: noexcept(_S_nothrow_assignable<_U1, _U2>()) 1414: requires (_S_assignable<_U1, _U2>()) 1414: { 1414: first = std::forward<_U1>(__p.first); 1414: second = std::forward<_U2>(__p.second); 1414: return *this; 1414: } 1414: # 1018 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: }; 1414: 1414: 1414: 1414: 1414: template pair(_T1, _T2) -> pair<_T1, _T2>; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr bool 1414: operator==(const pair<_T1, _T2>& __x, const pair<_U1, _U2>& __y) 1414: requires requires { 1414: { __x.first == __y.first } -> __detail::__boolean_testable; 1414: { __x.second == __y.second } -> __detail::__boolean_testable; 1414: } 1414: { return __x.first == __y.first && __x.second == __y.second; } 1414: # 1048 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: template 1414: [[nodiscard]] 1414: constexpr common_comparison_category_t<__detail::__synth3way_t<_T1, _U1>, 1414: __detail::__synth3way_t<_T2, _U2>> 1414: operator<=>(const pair<_T1, _T2>& __x, const pair<_U1, _U2>& __y) 1414: { 1414: if (auto __c = __detail::__synth3way(__x.first, __y.first); __c != 0) 1414: return __c; 1414: return __detail::__synth3way(__x.second, __y.second); 1414: } 1414: # 1115 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: template 1414: constexpr inline 1414: 1414: 1414: typename enable_if<__and_<__is_swappable<_T1>, 1414: __is_swappable<_T2>>::value>::type 1414: 1414: 1414: 1414: swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) 1414: noexcept(noexcept(__x.swap(__y))) 1414: { __x.swap(__y); } 1414: # 1140 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: template 1414: typename enable_if, 1414: __is_swappable<_T2>>::value>::type 1414: swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; 1414: # 1166 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: template 1414: constexpr pair::__type, 1414: typename __decay_and_strip<_T2>::__type> 1414: make_pair(_T1&& __x, _T2&& __y) 1414: { 1414: typedef typename __decay_and_strip<_T1>::__type __ds_type1; 1414: typedef typename __decay_and_strip<_T2>::__type __ds_type2; 1414: typedef pair<__ds_type1, __ds_type2> __pair_type; 1414: return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); 1414: } 1414: # 1189 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: template 1414: struct __is_tuple_like_impl> : true_type 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct tuple_size> 1414: : public integral_constant { }; 1414: 1414: 1414: template 1414: struct tuple_element<0, pair<_Tp1, _Tp2>> 1414: { typedef _Tp1 type; }; 1414: 1414: 1414: template 1414: struct tuple_element<1, pair<_Tp1, _Tp2>> 1414: { typedef _Tp2 type; }; 1414: 1414: 1414: template 1414: inline constexpr size_t tuple_size_v> = 2; 1414: 1414: template 1414: inline constexpr size_t tuple_size_v> = 2; 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++14-extensions" 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: template 1414: inline constexpr bool __is_pair = false; 1414: 1414: template 1414: inline constexpr bool __is_pair> = true; 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: template 1414: struct __pair_get; 1414: 1414: template<> 1414: struct __pair_get<0> 1414: { 1414: template 1414: static constexpr _Tp1& 1414: __get(pair<_Tp1, _Tp2>& __pair) noexcept 1414: { return __pair.first; } 1414: 1414: template 1414: static constexpr _Tp1&& 1414: __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept 1414: { return std::forward<_Tp1>(__pair.first); } 1414: 1414: template 1414: static constexpr const _Tp1& 1414: __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept 1414: { return __pair.first; } 1414: 1414: template 1414: static constexpr const _Tp1&& 1414: __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept 1414: { return std::forward(__pair.first); } 1414: }; 1414: 1414: template<> 1414: struct __pair_get<1> 1414: { 1414: template 1414: static constexpr _Tp2& 1414: __get(pair<_Tp1, _Tp2>& __pair) noexcept 1414: { return __pair.second; } 1414: 1414: template 1414: static constexpr _Tp2&& 1414: __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept 1414: { return std::forward<_Tp2>(__pair.second); } 1414: 1414: template 1414: static constexpr const _Tp2& 1414: __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept 1414: { return __pair.second; } 1414: 1414: template 1414: static constexpr const _Tp2&& 1414: __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept 1414: { return std::forward(__pair.second); } 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& 1414: get(pair<_Tp1, _Tp2>& __in) noexcept 1414: { return __pair_get<_Int>::__get(__in); } 1414: 1414: template 1414: constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& 1414: get(pair<_Tp1, _Tp2>&& __in) noexcept 1414: { return __pair_get<_Int>::__move_get(std::move(__in)); } 1414: 1414: template 1414: constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& 1414: get(const pair<_Tp1, _Tp2>& __in) noexcept 1414: { return __pair_get<_Int>::__const_get(__in); } 1414: 1414: template 1414: constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& 1414: get(const pair<_Tp1, _Tp2>&& __in) noexcept 1414: { return __pair_get<_Int>::__const_move_get(std::move(__in)); } 1414: 1414: 1414: 1414: template 1414: constexpr _Tp& 1414: get(pair<_Tp, _Up>& __p) noexcept 1414: { return __p.first; } 1414: 1414: template 1414: constexpr const _Tp& 1414: get(const pair<_Tp, _Up>& __p) noexcept 1414: { return __p.first; } 1414: 1414: template 1414: constexpr _Tp&& 1414: get(pair<_Tp, _Up>&& __p) noexcept 1414: { return std::forward<_Tp>(__p.first); } 1414: 1414: template 1414: constexpr const _Tp&& 1414: get(const pair<_Tp, _Up>&& __p) noexcept 1414: { return std::forward(__p.first); } 1414: 1414: template 1414: constexpr _Tp& 1414: get(pair<_Up, _Tp>& __p) noexcept 1414: { return __p.second; } 1414: 1414: template 1414: constexpr const _Tp& 1414: get(const pair<_Up, _Tp>& __p) noexcept 1414: { return __p.second; } 1414: 1414: template 1414: constexpr _Tp&& 1414: get(pair<_Up, _Tp>&& __p) noexcept 1414: { return std::forward<_Tp>(__p.second); } 1414: 1414: template 1414: constexpr const _Tp&& 1414: get(const pair<_Up, _Tp>&& __p) noexcept 1414: { return std::forward(__p.second); } 1414: # 1370 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_pair.h" 3 1414: 1414: } 1414: # 64 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_types.h" 1 3 1414: # 73 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_types.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/iterator_concepts.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/bits/iterator_concepts.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ptr_traits.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ptr_traits.h" 3 1414: namespace __gnu_debug { class _Safe_iterator_base; } 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: class __undefined; 1414: 1414: 1414: 1414: template 1414: struct __get_first_arg 1414: { using type = __undefined; }; 1414: 1414: template class _SomeTemplate, typename _Tp, 1414: typename... _Types> 1414: struct __get_first_arg<_SomeTemplate<_Tp, _Types...>> 1414: { using type = _Tp; }; 1414: 1414: 1414: 1414: template 1414: struct __replace_first_arg 1414: { }; 1414: 1414: template class _SomeTemplate, typename _Up, 1414: typename _Tp, typename... _Types> 1414: struct __replace_first_arg<_SomeTemplate<_Tp, _Types...>, _Up> 1414: { using type = _SomeTemplate<_Up, _Types...>; }; 1414: 1414: 1414: template 1414: struct __ptr_traits_elem : __get_first_arg<_Ptr> 1414: { }; 1414: 1414: 1414: 1414: template requires requires { typename _Ptr::element_type; } 1414: struct __ptr_traits_elem<_Ptr, void> 1414: { using type = typename _Ptr::element_type; }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: using __ptr_traits_elem_t = typename __ptr_traits_elem<_Ptr>::type; 1414: 1414: 1414: 1414: 1414: template::value> 1414: struct __ptr_traits_ptr_to 1414: { 1414: using pointer = _Ptr; 1414: using element_type = _Elt; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: static pointer 1414: pointer_to(element_type& __r) 1414: 1414: requires requires { 1414: { pointer::pointer_to(__r) } -> convertible_to; 1414: } 1414: 1414: { return pointer::pointer_to(__r); } 1414: }; 1414: 1414: 1414: template 1414: struct __ptr_traits_ptr_to<_Ptr, _Elt, true> 1414: { }; 1414: 1414: 1414: template 1414: struct __ptr_traits_ptr_to<_Tp*, _Tp, false> 1414: { 1414: using pointer = _Tp*; 1414: using element_type = _Tp; 1414: 1414: 1414: 1414: 1414: 1414: 1414: static constexpr pointer 1414: pointer_to(element_type& __r) noexcept 1414: { return std::addressof(__r); } 1414: }; 1414: 1414: template 1414: struct __ptr_traits_impl : __ptr_traits_ptr_to<_Ptr, _Elt> 1414: { 1414: private: 1414: template 1414: using __diff_t = typename _Tp::difference_type; 1414: 1414: template 1414: using __rebind = __type_identity>; 1414: 1414: public: 1414: 1414: using pointer = _Ptr; 1414: 1414: 1414: using element_type = _Elt; 1414: 1414: 1414: using difference_type = __detected_or_t; 1414: 1414: 1414: template 1414: using rebind = typename __detected_or_t<__replace_first_arg<_Ptr, _Up>, 1414: __rebind, _Ptr, _Up>::type; 1414: }; 1414: 1414: 1414: 1414: template 1414: struct __ptr_traits_impl<_Ptr, __undefined> 1414: { }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct pointer_traits : __ptr_traits_impl<_Ptr, __ptr_traits_elem_t<_Ptr>> 1414: { }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct pointer_traits<_Tp*> : __ptr_traits_ptr_to<_Tp*, _Tp> 1414: { 1414: 1414: typedef _Tp* pointer; 1414: 1414: typedef _Tp element_type; 1414: 1414: typedef ptrdiff_t difference_type; 1414: 1414: template using rebind = _Up*; 1414: }; 1414: 1414: 1414: template 1414: using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; 1414: # 229 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ptr_traits.h" 3 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr _Tp* 1414: to_address(_Tp* __ptr) noexcept 1414: { 1414: static_assert(!is_function_v<_Tp>, "std::to_address argument " 1414: "must not be a function pointer"); 1414: return __ptr; 1414: } 1414: # 246 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ptr_traits.h" 3 1414: template 1414: constexpr auto 1414: to_address(const _Ptr& __ptr) noexcept 1414: { 1414: if constexpr (requires { pointer_traits<_Ptr>::to_address(__ptr); }) 1414: return pointer_traits<_Ptr>::to_address(__ptr); 1414: else if constexpr (is_base_of_v<__gnu_debug::_Safe_iterator_base, _Ptr>) 1414: return std::to_address(__ptr.base().operator->()); 1414: else 1414: return std::to_address(__ptr.operator->()); 1414: } 1414: 1414: 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr auto 1414: __to_address(const _Ptr& __ptr) noexcept 1414: { return std::to_address(__ptr); } 1414: 1414: 1414: 1414: 1414: } 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/bits/iterator_concepts.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_cmp.h" 1 3 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_cmp.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: struct __is_transparent; 1414: 1414: 1414: 1414: 1414: 1414: struct identity 1414: { 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++23-extensions" 1414: template 1414: [[nodiscard]] 1414: static constexpr _Tp&& 1414: operator()(_Tp&& __t) noexcept 1414: { return std::forward<_Tp>(__t); } 1414: #pragma GCC diagnostic pop 1414: 1414: using is_transparent = __is_transparent; 1414: }; 1414: 1414: 1414: namespace ranges 1414: { 1414: namespace __detail 1414: { 1414: 1414: 1414: 1414: template 1414: concept __less_builtin_ptr_cmp 1414: = requires (_Tp&& __t, _Up&& __u) { { __t < __u } -> same_as; } 1414: && convertible_to<_Tp, const volatile void*> 1414: && convertible_to<_Up, const volatile void*> 1414: && ! requires(_Tp&& __t, _Up&& __u) 1414: { operator<(std::forward<_Tp>(__t), std::forward<_Up>(__u)); } 1414: && ! requires(_Tp&& __t, _Up&& __u) 1414: { std::forward<_Tp>(__t).operator<(std::forward<_Up>(__u)); } 1414: && std::__detail::__not_overloaded_spaceship<_Tp, _Up>; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++23-extensions" 1414: 1414: struct equal_to 1414: { 1414: template 1414: requires equality_comparable_with<_Tp, _Up> 1414: static constexpr bool 1414: operator()(_Tp&& __t, _Up&& __u) 1414: noexcept(noexcept(std::declval<_Tp>() == std::declval<_Up>())) 1414: { return std::forward<_Tp>(__t) == std::forward<_Up>(__u); } 1414: 1414: using is_transparent = __is_transparent; 1414: }; 1414: 1414: 1414: struct not_equal_to 1414: { 1414: template 1414: requires equality_comparable_with<_Tp, _Up> 1414: static constexpr bool 1414: operator()(_Tp&& __t, _Up&& __u) 1414: noexcept(noexcept(std::declval<_Tp>() == std::declval<_Up>())) 1414: { return !equal_to{}(std::forward<_Tp>(__t), std::forward<_Up>(__u)); } 1414: 1414: using is_transparent = __is_transparent; 1414: }; 1414: 1414: 1414: struct less 1414: { 1414: template 1414: requires totally_ordered_with<_Tp, _Up> 1414: static constexpr bool 1414: operator()(_Tp&& __t, _Up&& __u) 1414: noexcept(noexcept(std::declval<_Tp>() < std::declval<_Up>())) 1414: { 1414: if constexpr (__detail::__less_builtin_ptr_cmp<_Tp, _Up>) 1414: { 1414: if (std::__is_constant_evaluated()) 1414: return __t < __u; 1414: 1414: auto __x = reinterpret_cast( 1414: static_cast(std::forward<_Tp>(__t))); 1414: auto __y = reinterpret_cast( 1414: static_cast(std::forward<_Up>(__u))); 1414: return __x < __y; 1414: } 1414: else 1414: return std::forward<_Tp>(__t) < std::forward<_Up>(__u); 1414: } 1414: 1414: using is_transparent = __is_transparent; 1414: }; 1414: 1414: 1414: struct greater 1414: { 1414: template 1414: requires totally_ordered_with<_Tp, _Up> 1414: static constexpr bool 1414: operator()(_Tp&& __t, _Up&& __u) 1414: noexcept(noexcept(std::declval<_Up>() < std::declval<_Tp>())) 1414: { return less{}(std::forward<_Up>(__u), std::forward<_Tp>(__t)); } 1414: 1414: using is_transparent = __is_transparent; 1414: }; 1414: 1414: 1414: struct greater_equal 1414: { 1414: template 1414: requires totally_ordered_with<_Tp, _Up> 1414: static constexpr bool 1414: operator()(_Tp&& __t, _Up&& __u) 1414: noexcept(noexcept(std::declval<_Tp>() < std::declval<_Up>())) 1414: { return !less{}(std::forward<_Tp>(__t), std::forward<_Up>(__u)); } 1414: 1414: using is_transparent = __is_transparent; 1414: }; 1414: 1414: 1414: struct less_equal 1414: { 1414: template 1414: requires totally_ordered_with<_Tp, _Up> 1414: static constexpr bool 1414: operator()(_Tp&& __t, _Up&& __u) 1414: noexcept(noexcept(std::declval<_Up>() < std::declval<_Tp>())) 1414: { return !less{}(std::forward<_Up>(__u), std::forward<_Tp>(__t)); } 1414: 1414: using is_transparent = __is_transparent; 1414: }; 1414: #pragma GCC diagnostic pop 1414: 1414: } 1414: 1414: 1414: } 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/iterator_concepts.h" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 60 "/usr/arm-linux-gnueabihf/include/c++/16/bits/iterator_concepts.h" 3 1414: struct default_sentinel_t { }; 1414: 1414: 1414: inline constexpr default_sentinel_t default_sentinel{}; 1414: 1414: 1414: struct input_iterator_tag; 1414: struct output_iterator_tag; 1414: struct forward_iterator_tag; 1414: struct bidirectional_iterator_tag; 1414: struct random_access_iterator_tag; 1414: struct contiguous_iterator_tag; 1414: 1414: template 1414: struct iterator_traits; 1414: 1414: template requires is_object_v<_Tp> 1414: struct iterator_traits<_Tp*>; 1414: 1414: template 1414: struct __iterator_traits; 1414: 1414: namespace __detail 1414: { 1414: template 1414: using __with_ref = _Tp&; 1414: 1414: template 1414: concept __can_reference = requires { typename __with_ref<_Tp>; }; 1414: 1414: template 1414: concept __dereferenceable = requires(_Tp& __t) 1414: { 1414: { *__t } -> __can_reference; 1414: }; 1414: } 1414: 1414: template<__detail::__dereferenceable _Tp> 1414: using iter_reference_t = decltype(*std::declval<_Tp&>()); 1414: 1414: namespace ranges 1414: { 1414: 1414: 1414: namespace __imove 1414: { 1414: void iter_move() = delete; 1414: 1414: 1414: 1414: template 1414: concept __adl_imove 1414: = (std::__detail::__class_or_enum>) 1414: && requires(_Tp&& __t) { iter_move(static_cast<_Tp&&>(__t)); }; 1414: 1414: struct _IterMove 1414: { 1414: private: 1414: 1414: 1414: template 1414: using __iter_ref_t = decltype(*std::declval<_Tp>()); 1414: 1414: template 1414: struct __result 1414: { using type = __iter_ref_t<_Tp>; }; 1414: 1414: 1414: template 1414: requires __adl_imove<_Tp> 1414: struct __result<_Tp> 1414: { using type = decltype(iter_move(std::declval<_Tp>())); }; 1414: 1414: 1414: template 1414: requires (!__adl_imove<_Tp>) 1414: && is_lvalue_reference_v<__iter_ref_t<_Tp>> 1414: struct __result<_Tp> 1414: { 1414: 1414: 1414: 1414: 1414: using type 1414: = decltype(std::declval>>()); 1414: }; 1414: 1414: template 1414: static consteval bool 1414: _S_noexcept() 1414: { 1414: if constexpr (__adl_imove<_Tp>) 1414: return noexcept(iter_move(std::declval<_Tp>())); 1414: else 1414: return noexcept(*std::declval<_Tp>()); 1414: } 1414: 1414: public: 1414: 1414: template 1414: using __type = typename __result<_Tp>::type; 1414: 1414: template 1414: requires __adl_imove<_Tp> || requires { typename __iter_ref_t<_Tp>; } 1414: [[nodiscard]] 1414: constexpr __type<_Tp> 1414: operator()(_Tp&& __e) const 1414: noexcept(_S_noexcept<_Tp>()) 1414: { 1414: if constexpr (__adl_imove<_Tp>) 1414: return iter_move(static_cast<_Tp&&>(__e)); 1414: else if constexpr (is_lvalue_reference_v<__iter_ref_t<_Tp>>) 1414: return std::move(*static_cast<_Tp&&>(__e)); 1414: else 1414: return *static_cast<_Tp&&>(__e); 1414: } 1414: }; 1414: } 1414: 1414: 1414: inline namespace _Cpo { 1414: inline constexpr __imove::_IterMove iter_move{}; 1414: } 1414: } 1414: 1414: 1414: template<__detail::__dereferenceable _Tp> 1414: requires __detail::__can_reference> 1414: using iter_rvalue_reference_t = ranges::__imove::_IterMove::__type<_Tp&>; 1414: 1414: template struct incrementable_traits { }; 1414: 1414: template requires is_object_v<_Tp> 1414: struct incrementable_traits<_Tp*> 1414: { using difference_type = ptrdiff_t; }; 1414: 1414: template 1414: struct incrementable_traits 1414: : incrementable_traits<_Iter> { }; 1414: 1414: template requires requires { typename _Tp::difference_type; } 1414: struct incrementable_traits<_Tp> 1414: { using difference_type = typename _Tp::difference_type; }; 1414: 1414: template 1414: requires (!requires { typename _Tp::difference_type; } 1414: && requires(const _Tp& __a, const _Tp& __b) 1414: { { __a - __b } -> integral; }) 1414: struct incrementable_traits<_Tp> 1414: { 1414: using difference_type 1414: = make_signed_t() - std::declval<_Tp>())>; 1414: }; 1414: 1414: namespace __detail 1414: { 1414: 1414: 1414: template 1414: concept __primary_traits_iter 1414: = __is_base_of(__iterator_traits<_Iter, void>, iterator_traits<_Iter>); 1414: 1414: template 1414: struct __iter_traits_impl 1414: { using type = iterator_traits<_Iter>; }; 1414: 1414: template 1414: requires __primary_traits_iter<_Iter> 1414: struct __iter_traits_impl<_Iter, _Tp> 1414: { using type = _Tp; }; 1414: 1414: 1414: template 1414: using __iter_traits = typename __iter_traits_impl<_Iter, _Tp>::type; 1414: 1414: template 1414: using __iter_diff_t = typename 1414: __iter_traits<_Tp, incrementable_traits<_Tp>>::difference_type; 1414: } 1414: 1414: template 1414: using iter_difference_t = __detail::__iter_diff_t>; 1414: 1414: namespace __detail 1414: { 1414: template struct __cond_value_type { }; 1414: 1414: template requires is_object_v<_Tp> 1414: struct __cond_value_type<_Tp> 1414: { using value_type = remove_cv_t<_Tp>; }; 1414: 1414: template 1414: concept __has_member_value_type 1414: = requires { typename _Tp::value_type; }; 1414: 1414: template 1414: concept __has_member_element_type 1414: = requires { typename _Tp::element_type; }; 1414: 1414: } 1414: 1414: template struct indirectly_readable_traits { }; 1414: 1414: template 1414: struct indirectly_readable_traits<_Tp*> 1414: : __detail::__cond_value_type<_Tp> 1414: { }; 1414: 1414: template requires is_array_v<_Iter> 1414: struct indirectly_readable_traits<_Iter> 1414: { using value_type = remove_cv_t>; }; 1414: 1414: template 1414: struct indirectly_readable_traits 1414: : indirectly_readable_traits<_Iter> 1414: { }; 1414: 1414: template<__detail::__has_member_value_type _Tp> 1414: struct indirectly_readable_traits<_Tp> 1414: : __detail::__cond_value_type 1414: { }; 1414: 1414: template<__detail::__has_member_element_type _Tp> 1414: struct indirectly_readable_traits<_Tp> 1414: : __detail::__cond_value_type 1414: { }; 1414: 1414: 1414: 1414: template<__detail::__has_member_value_type _Tp> 1414: requires __detail::__has_member_element_type<_Tp> 1414: && same_as, 1414: remove_cv_t> 1414: struct indirectly_readable_traits<_Tp> 1414: : __detail::__cond_value_type 1414: { }; 1414: 1414: 1414: 1414: template<__detail::__has_member_value_type _Tp> 1414: requires __detail::__has_member_element_type<_Tp> 1414: struct indirectly_readable_traits<_Tp> 1414: { }; 1414: 1414: namespace __detail 1414: { 1414: template 1414: using __iter_value_t = typename 1414: __iter_traits<_Tp, indirectly_readable_traits<_Tp>>::value_type; 1414: } 1414: 1414: template 1414: using iter_value_t = __detail::__iter_value_t>; 1414: 1414: namespace __detail 1414: { 1414: 1414: 1414: template 1414: concept __cpp17_iterator = requires(_Iter __it) 1414: { 1414: { *__it } -> __can_reference; 1414: { ++__it } -> same_as<_Iter&>; 1414: { *__it++ } -> __can_reference; 1414: } && copyable<_Iter>; 1414: 1414: template 1414: concept __cpp17_input_iterator = __cpp17_iterator<_Iter> 1414: && equality_comparable<_Iter> 1414: && requires(_Iter __it) 1414: { 1414: typename incrementable_traits<_Iter>::difference_type; 1414: typename indirectly_readable_traits<_Iter>::value_type; 1414: typename common_reference_t&&, 1414: typename indirectly_readable_traits<_Iter>::value_type&>; 1414: typename common_reference_t::value_type&>; 1414: requires signed_integral< 1414: typename incrementable_traits<_Iter>::difference_type>; 1414: }; 1414: 1414: 1414: 1414: template 1414: concept __cpp17_fwd_iterator = __cpp17_input_iterator<_Iter> 1414: && constructible_from<_Iter> 1414: && is_reference_v> 1414: && same_as>, 1414: typename indirectly_readable_traits<_Iter>::value_type> 1414: && requires(_Iter __it) 1414: { 1414: { __it++ } -> convertible_to; 1414: { *__it++ } -> same_as>; 1414: }; 1414: 1414: template 1414: concept __cpp17_bidi_iterator = __cpp17_fwd_iterator<_Iter> 1414: && requires(_Iter __it) 1414: { 1414: { --__it } -> same_as<_Iter&>; 1414: { __it-- } -> convertible_to; 1414: { *__it-- } -> same_as>; 1414: }; 1414: 1414: template 1414: concept __cpp17_randacc_iterator = __cpp17_bidi_iterator<_Iter> 1414: && totally_ordered<_Iter> 1414: && requires(_Iter __it, 1414: typename incrementable_traits<_Iter>::difference_type __n) 1414: { 1414: { __it += __n } -> same_as<_Iter&>; 1414: { __it -= __n } -> same_as<_Iter&>; 1414: { __it + __n } -> same_as<_Iter>; 1414: { __n + __it } -> same_as<_Iter>; 1414: { __it - __n } -> same_as<_Iter>; 1414: { __it - __it } -> same_as; 1414: { __it[__n] } -> convertible_to>; 1414: }; 1414: 1414: template 1414: concept __iter_with_nested_types = requires { 1414: typename _Iter::iterator_category; 1414: typename _Iter::value_type; 1414: typename _Iter::difference_type; 1414: typename _Iter::reference; 1414: }; 1414: 1414: template 1414: concept __iter_without_nested_types = !__iter_with_nested_types<_Iter>; 1414: 1414: template 1414: concept __iter_without_category 1414: = !requires { typename _Iter::iterator_category; }; 1414: 1414: } 1414: 1414: template 1414: requires __detail::__iter_with_nested_types<_Iterator> 1414: struct __iterator_traits<_Iterator, void> 1414: { 1414: private: 1414: template 1414: struct __ptr 1414: { using type = void; }; 1414: 1414: template requires requires { typename _Iter::pointer; } 1414: struct __ptr<_Iter> 1414: { using type = typename _Iter::pointer; }; 1414: 1414: public: 1414: using iterator_category = typename _Iterator::iterator_category; 1414: using value_type = typename _Iterator::value_type; 1414: using difference_type = typename _Iterator::difference_type; 1414: using pointer = typename __ptr<_Iterator>::type; 1414: using reference = typename _Iterator::reference; 1414: }; 1414: 1414: template 1414: requires __detail::__iter_without_nested_types<_Iterator> 1414: && __detail::__cpp17_input_iterator<_Iterator> 1414: struct __iterator_traits<_Iterator, void> 1414: { 1414: private: 1414: template 1414: struct __cat 1414: { using type = input_iterator_tag; }; 1414: 1414: template 1414: requires requires { typename _Iter::iterator_category; } 1414: struct __cat<_Iter> 1414: { using type = typename _Iter::iterator_category; }; 1414: 1414: template 1414: requires __detail::__iter_without_category<_Iter> 1414: && __detail::__cpp17_randacc_iterator<_Iter> 1414: struct __cat<_Iter> 1414: { using type = random_access_iterator_tag; }; 1414: 1414: template 1414: requires __detail::__iter_without_category<_Iter> 1414: && __detail::__cpp17_bidi_iterator<_Iter> 1414: struct __cat<_Iter> 1414: { using type = bidirectional_iterator_tag; }; 1414: 1414: template 1414: requires __detail::__iter_without_category<_Iter> 1414: && __detail::__cpp17_fwd_iterator<_Iter> 1414: struct __cat<_Iter> 1414: { using type = forward_iterator_tag; }; 1414: 1414: template 1414: struct __ptr 1414: { using type = void; }; 1414: 1414: template requires requires { typename _Iter::pointer; } 1414: struct __ptr<_Iter> 1414: { using type = typename _Iter::pointer; }; 1414: 1414: template 1414: requires (!requires { typename _Iter::pointer; } 1414: && requires(_Iter& __it) { __it.operator->(); }) 1414: struct __ptr<_Iter> 1414: { using type = decltype(std::declval<_Iter&>().operator->()); }; 1414: 1414: template 1414: struct __ref 1414: { using type = iter_reference_t<_Iter>; }; 1414: 1414: template requires requires { typename _Iter::reference; } 1414: struct __ref<_Iter> 1414: { using type = typename _Iter::reference; }; 1414: 1414: public: 1414: using iterator_category = typename __cat<_Iterator>::type; 1414: using value_type 1414: = typename indirectly_readable_traits<_Iterator>::value_type; 1414: using difference_type 1414: = typename incrementable_traits<_Iterator>::difference_type; 1414: using pointer = typename __ptr<_Iterator>::type; 1414: using reference = typename __ref<_Iterator>::type; 1414: }; 1414: 1414: template 1414: requires __detail::__iter_without_nested_types<_Iterator> 1414: && __detail::__cpp17_iterator<_Iterator> 1414: struct __iterator_traits<_Iterator, void> 1414: { 1414: private: 1414: template 1414: struct __diff 1414: { using type = void; }; 1414: 1414: template 1414: requires requires 1414: { typename incrementable_traits<_Iter>::difference_type; } 1414: struct __diff<_Iter> 1414: { 1414: using type = typename incrementable_traits<_Iter>::difference_type; 1414: }; 1414: 1414: public: 1414: using iterator_category = output_iterator_tag; 1414: using value_type = void; 1414: using difference_type = typename __diff<_Iterator>::type; 1414: using pointer = void; 1414: using reference = void; 1414: }; 1414: 1414: namespace __detail 1414: { 1414: template 1414: struct __iter_concept_impl; 1414: 1414: 1414: template 1414: requires requires { typename __iter_traits<_Iter>::iterator_concept; } 1414: struct __iter_concept_impl<_Iter> 1414: { using type = typename __iter_traits<_Iter>::iterator_concept; }; 1414: 1414: 1414: template 1414: requires (!requires { typename __iter_traits<_Iter>::iterator_concept; } 1414: && requires { typename __iter_traits<_Iter>::iterator_category; }) 1414: struct __iter_concept_impl<_Iter> 1414: { using type = typename __iter_traits<_Iter>::iterator_category; }; 1414: 1414: 1414: template 1414: requires (!requires { typename __iter_traits<_Iter>::iterator_concept; } 1414: && !requires { typename __iter_traits<_Iter>::iterator_category; } 1414: && __primary_traits_iter<_Iter>) 1414: struct __iter_concept_impl<_Iter> 1414: { using type = random_access_iterator_tag; }; 1414: 1414: 1414: template 1414: struct __iter_concept_impl 1414: { }; 1414: 1414: 1414: template 1414: using __iter_concept = typename __iter_concept_impl<_Iter>::type; 1414: 1414: template 1414: concept __indirectly_readable_impl = requires 1414: { 1414: typename iter_value_t<_In>; 1414: typename iter_reference_t<_In>; 1414: typename iter_rvalue_reference_t<_In>; 1414: requires same_as, 1414: iter_reference_t<_In>>; 1414: requires same_as, 1414: iter_rvalue_reference_t<_In>>; 1414: } 1414: && common_reference_with&&, iter_value_t<_In>&> 1414: && common_reference_with&&, 1414: iter_rvalue_reference_t<_In>&&> 1414: && common_reference_with&&, 1414: const iter_value_t<_In>&>; 1414: 1414: } 1414: 1414: 1414: template 1414: concept indirectly_readable 1414: = __detail::__indirectly_readable_impl>; 1414: 1414: namespace __detail 1414: { 1414: template 1414: struct __indirect_value 1414: { using type = iter_value_t<_Tp>&; }; 1414: 1414: 1414: } 1414: 1414: template 1414: using __indirect_value_t = typename __detail::__indirect_value<_Tp>::type; 1414: 1414: template 1414: using iter_common_reference_t 1414: = common_reference_t, __indirect_value_t<_Tp>>; 1414: 1414: 1414: template 1414: concept indirectly_writable = requires(_Out&& __o, _Tp&& __t) 1414: { 1414: *__o = std::forward<_Tp>(__t); 1414: *std::forward<_Out>(__o) = std::forward<_Tp>(__t); 1414: const_cast&&>(*__o) 1414: = std::forward<_Tp>(__t); 1414: const_cast&&>(*std::forward<_Out>(__o)) 1414: = std::forward<_Tp>(__t); 1414: }; 1414: 1414: namespace ranges::__detail 1414: { 1414: class __max_diff_type; 1414: class __max_size_type; 1414: 1414: template 1414: concept __cv_bool = same_as; 1414: 1414: template 1414: concept __integral_nonbool = integral<_Tp> && !__cv_bool<_Tp>; 1414: 1414: template 1414: concept __is_integer_like = __integral_nonbool<_Tp> 1414: || same_as<_Tp, __max_diff_type> || same_as<_Tp, __max_size_type>; 1414: 1414: template 1414: concept __is_signed_integer_like = signed_integral<_Tp> 1414: || same_as<_Tp, __max_diff_type>; 1414: 1414: } 1414: 1414: namespace __detail { using ranges::__detail::__is_signed_integer_like; } 1414: 1414: 1414: template 1414: concept weakly_incrementable = movable<_Iter> 1414: && requires(_Iter __i) 1414: { 1414: typename iter_difference_t<_Iter>; 1414: requires __detail::__is_signed_integer_like>; 1414: { ++__i } -> same_as<_Iter&>; 1414: __i++; 1414: }; 1414: 1414: template 1414: concept incrementable = regular<_Iter> && weakly_incrementable<_Iter> 1414: && requires(_Iter __i) { { __i++ } -> same_as<_Iter>; }; 1414: 1414: template 1414: concept input_or_output_iterator 1414: = requires(_Iter __i) { { *__i } -> __detail::__can_reference; } 1414: && weakly_incrementable<_Iter>; 1414: 1414: template 1414: concept sentinel_for = semiregular<_Sent> 1414: && input_or_output_iterator<_Iter> 1414: && __detail::__weakly_eq_cmp_with<_Sent, _Iter>; 1414: 1414: template 1414: inline constexpr bool disable_sized_sentinel_for = false; 1414: 1414: template 1414: concept sized_sentinel_for = sentinel_for<_Sent, _Iter> 1414: && !disable_sized_sentinel_for, remove_cv_t<_Iter>> 1414: && requires(const _Iter& __i, const _Sent& __s) 1414: { 1414: { __s - __i } -> same_as>; 1414: { __i - __s } -> same_as>; 1414: }; 1414: 1414: template 1414: concept input_iterator = input_or_output_iterator<_Iter> 1414: && indirectly_readable<_Iter> 1414: && requires { typename __detail::__iter_concept<_Iter>; } 1414: && derived_from<__detail::__iter_concept<_Iter>, input_iterator_tag>; 1414: 1414: template 1414: concept output_iterator = input_or_output_iterator<_Iter> 1414: && indirectly_writable<_Iter, _Tp> 1414: && requires(_Iter __i, _Tp&& __t) { *__i++ = std::forward<_Tp>(__t); }; 1414: 1414: template 1414: concept forward_iterator = input_iterator<_Iter> 1414: && derived_from<__detail::__iter_concept<_Iter>, forward_iterator_tag> 1414: && incrementable<_Iter> && sentinel_for<_Iter, _Iter>; 1414: 1414: template 1414: concept bidirectional_iterator = forward_iterator<_Iter> 1414: && derived_from<__detail::__iter_concept<_Iter>, 1414: bidirectional_iterator_tag> 1414: && requires(_Iter __i) 1414: { 1414: { --__i } -> same_as<_Iter&>; 1414: { __i-- } -> same_as<_Iter>; 1414: }; 1414: 1414: template 1414: concept random_access_iterator = bidirectional_iterator<_Iter> 1414: && derived_from<__detail::__iter_concept<_Iter>, 1414: random_access_iterator_tag> 1414: && totally_ordered<_Iter> && sized_sentinel_for<_Iter, _Iter> 1414: && requires(_Iter __i, const _Iter __j, 1414: const iter_difference_t<_Iter> __n) 1414: { 1414: { __i += __n } -> same_as<_Iter&>; 1414: { __j + __n } -> same_as<_Iter>; 1414: { __n + __j } -> same_as<_Iter>; 1414: { __i -= __n } -> same_as<_Iter&>; 1414: { __j - __n } -> same_as<_Iter>; 1414: { __j[__n] } -> same_as>; 1414: }; 1414: 1414: template 1414: concept contiguous_iterator = random_access_iterator<_Iter> 1414: && derived_from<__detail::__iter_concept<_Iter>, contiguous_iterator_tag> 1414: && is_lvalue_reference_v> 1414: && same_as, remove_cvref_t>> 1414: && requires(const _Iter& __i) 1414: { 1414: { std::to_address(__i) } 1414: -> same_as>>; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: concept indirectly_unary_invocable = indirectly_readable<_Iter> 1414: && copy_constructible<_Fn> && invocable<_Fn&, __indirect_value_t<_Iter>> 1414: && invocable<_Fn&, iter_reference_t<_Iter>> 1414: && common_reference_with>, 1414: invoke_result_t<_Fn&, iter_reference_t<_Iter>>>; 1414: 1414: template 1414: concept indirectly_regular_unary_invocable = indirectly_readable<_Iter> 1414: && copy_constructible<_Fn> 1414: && regular_invocable<_Fn&, __indirect_value_t<_Iter>> 1414: && regular_invocable<_Fn&, iter_reference_t<_Iter>> 1414: && common_reference_with>, 1414: invoke_result_t<_Fn&, iter_reference_t<_Iter>>>; 1414: 1414: template 1414: concept indirect_unary_predicate = indirectly_readable<_Iter> 1414: && copy_constructible<_Fn> && predicate<_Fn&, __indirect_value_t<_Iter>> 1414: && predicate<_Fn&, iter_reference_t<_Iter>>; 1414: 1414: template 1414: concept indirect_binary_predicate 1414: = indirectly_readable<_I1> && indirectly_readable<_I2> 1414: && copy_constructible<_Fn> 1414: && predicate<_Fn&, __indirect_value_t<_I1>, __indirect_value_t<_I2>> 1414: && predicate<_Fn&, __indirect_value_t<_I1>, iter_reference_t<_I2>> 1414: && predicate<_Fn&, iter_reference_t<_I1>, __indirect_value_t<_I2>> 1414: && predicate<_Fn&, iter_reference_t<_I1>, iter_reference_t<_I2>>; 1414: 1414: template 1414: concept indirect_equivalence_relation 1414: = indirectly_readable<_I1> && indirectly_readable<_I2> 1414: && copy_constructible<_Fn> 1414: && equivalence_relation<_Fn&, __indirect_value_t<_I1>, __indirect_value_t<_I2>> 1414: && equivalence_relation<_Fn&, __indirect_value_t<_I1>, iter_reference_t<_I2>> 1414: && equivalence_relation<_Fn&, iter_reference_t<_I1>, __indirect_value_t<_I2>> 1414: && equivalence_relation<_Fn&, iter_reference_t<_I1>, 1414: iter_reference_t<_I2>>; 1414: 1414: template 1414: concept indirect_strict_weak_order 1414: = indirectly_readable<_I1> && indirectly_readable<_I2> 1414: && copy_constructible<_Fn> 1414: && strict_weak_order<_Fn&, __indirect_value_t<_I1>, __indirect_value_t<_I2>> 1414: && strict_weak_order<_Fn&, __indirect_value_t<_I1>, iter_reference_t<_I2>> 1414: && strict_weak_order<_Fn&, iter_reference_t<_I1>, __indirect_value_t<_I2>> 1414: && strict_weak_order<_Fn&, iter_reference_t<_I1>, iter_reference_t<_I2>>; 1414: 1414: template 1414: requires (indirectly_readable<_Is> && ...) 1414: && invocable<_Fn, iter_reference_t<_Is>...> 1414: using indirect_result_t = invoke_result_t<_Fn, iter_reference_t<_Is>...>; 1414: 1414: namespace __detail 1414: { 1414: template 1414: struct __projected 1414: { 1414: struct __type 1414: { 1414: using value_type = remove_cvref_t>; 1414: indirect_result_t<_Proj&, _Iter> operator*() const; 1414: 1414: 1414: 1414: using __projected_Iter = _Iter; 1414: using __projected_Proj = _Proj; 1414: }; 1414: }; 1414: 1414: template 1414: struct __projected<_Iter, _Proj> 1414: { 1414: struct __type 1414: { 1414: using value_type = remove_cvref_t>; 1414: using difference_type = iter_difference_t<_Iter>; 1414: indirect_result_t<_Proj&, _Iter> operator*() const; 1414: 1414: using __projected_Iter = _Iter; 1414: using __projected_Proj = _Proj; 1414: }; 1414: }; 1414: } 1414: 1414: 1414: template _Proj> 1414: using projected = typename __detail::__projected<_Iter, _Proj>::__type; 1414: 1414: 1414: template 1414: requires same_as<_Tp, projected> 1414: struct __detail::__indirect_value<_Tp> 1414: { 1414: using _Iter = typename _Tp::__projected_Iter; 1414: using _Proj = typename _Tp::__projected_Proj; 1414: using type = invoke_result_t<_Proj&, __indirect_value_t<_Iter>>; 1414: }; 1414: # 824 "/usr/arm-linux-gnueabihf/include/c++/16/bits/iterator_concepts.h" 3 1414: template 1414: concept indirectly_movable = indirectly_readable<_In> 1414: && indirectly_writable<_Out, iter_rvalue_reference_t<_In>>; 1414: 1414: template 1414: concept indirectly_movable_storable = indirectly_movable<_In, _Out> 1414: && indirectly_writable<_Out, iter_value_t<_In>> 1414: && movable> 1414: && constructible_from, iter_rvalue_reference_t<_In>> 1414: && assignable_from&, iter_rvalue_reference_t<_In>>; 1414: 1414: 1414: template 1414: concept indirectly_copyable = indirectly_readable<_In> 1414: && indirectly_writable<_Out, iter_reference_t<_In>>; 1414: 1414: template 1414: concept indirectly_copyable_storable = indirectly_copyable<_In, _Out> 1414: && indirectly_writable<_Out, iter_value_t<_In>&> 1414: && indirectly_writable<_Out, const iter_value_t<_In>&> 1414: && indirectly_writable<_Out, iter_value_t<_In>&&> 1414: && indirectly_writable<_Out, const iter_value_t<_In>&&> 1414: && copyable> 1414: && constructible_from, iter_reference_t<_In>> 1414: && assignable_from&, iter_reference_t<_In>>; 1414: 1414: namespace ranges 1414: { 1414: 1414: 1414: namespace __iswap 1414: { 1414: template 1414: void iter_swap(_It1, _It2) = delete; 1414: 1414: 1414: 1414: template 1414: concept __adl_iswap 1414: = (std::__detail::__class_or_enum> 1414: || std::__detail::__class_or_enum>) 1414: && requires(_Tp&& __t, _Up&& __u) { 1414: iter_swap(static_cast<_Tp&&>(__t), static_cast<_Up&&>(__u)); 1414: }; 1414: 1414: template 1414: constexpr iter_value_t<_Xp> 1414: __iter_exchange_move(_Xp&& __x, _Yp&& __y) 1414: noexcept(noexcept(iter_value_t<_Xp>(iter_move(__x))) 1414: && noexcept(*__x = iter_move(__y))) 1414: { 1414: iter_value_t<_Xp> __old_value(iter_move(__x)); 1414: *__x = iter_move(__y); 1414: return __old_value; 1414: } 1414: 1414: struct _IterSwap 1414: { 1414: private: 1414: template 1414: static consteval bool 1414: _S_noexcept() 1414: { 1414: if constexpr (__adl_iswap<_Tp, _Up>) 1414: return noexcept(iter_swap(std::declval<_Tp>(), 1414: std::declval<_Up>())); 1414: else if constexpr (indirectly_readable<_Tp> 1414: && indirectly_readable<_Up> 1414: && swappable_with, iter_reference_t<_Up>>) 1414: return noexcept(ranges::swap(*std::declval<_Tp>(), 1414: *std::declval<_Up>())); 1414: else 1414: return noexcept(*std::declval<_Tp>() 1414: = __iswap::__iter_exchange_move(std::declval<_Up>(), 1414: std::declval<_Tp>())); 1414: } 1414: 1414: public: 1414: template 1414: requires __adl_iswap<_Tp, _Up> 1414: || (indirectly_readable> 1414: && indirectly_readable> 1414: && swappable_with, iter_reference_t<_Up>>) 1414: || (indirectly_movable_storable<_Tp, _Up> 1414: && indirectly_movable_storable<_Up, _Tp>) 1414: constexpr void 1414: operator()(_Tp&& __e1, _Up&& __e2) const 1414: noexcept(_S_noexcept<_Tp, _Up>()) 1414: { 1414: if constexpr (__adl_iswap<_Tp, _Up>) 1414: iter_swap(static_cast<_Tp&&>(__e1), static_cast<_Up&&>(__e2)); 1414: else if constexpr (indirectly_readable<_Tp> 1414: && indirectly_readable<_Up> 1414: && swappable_with, iter_reference_t<_Up>>) 1414: ranges::swap(*__e1, *__e2); 1414: else 1414: *__e1 = __iswap::__iter_exchange_move(__e2, __e1); 1414: } 1414: }; 1414: } 1414: 1414: 1414: inline namespace _Cpo { 1414: inline constexpr __iswap::_IterSwap iter_swap{}; 1414: } 1414: 1414: } 1414: 1414: 1414: template 1414: concept indirectly_swappable 1414: = indirectly_readable<_I1> && indirectly_readable<_I2> 1414: && requires(const _I1 __i1, const _I2 __i2) 1414: { 1414: ranges::iter_swap(__i1, __i1); 1414: ranges::iter_swap(__i2, __i2); 1414: ranges::iter_swap(__i1, __i2); 1414: ranges::iter_swap(__i2, __i1); 1414: }; 1414: 1414: 1414: template 1414: concept indirectly_comparable 1414: = indirect_binary_predicate<_Rel, projected<_I1, _P1>, 1414: projected<_I2, _P2>>; 1414: 1414: 1414: template 1414: concept permutable = forward_iterator<_Iter> 1414: && indirectly_movable_storable<_Iter, _Iter> 1414: && indirectly_swappable<_Iter, _Iter>; 1414: 1414: 1414: template 1414: concept mergeable = input_iterator<_I1> && input_iterator<_I2> 1414: && weakly_incrementable<_Out> && indirectly_copyable<_I1, _Out> 1414: && indirectly_copyable<_I2, _Out> 1414: && indirect_strict_weak_order<_Rel, projected<_I1, _P1>, 1414: projected<_I2, _P2>>; 1414: 1414: 1414: template 1414: concept sortable = permutable<_Iter> 1414: && indirect_strict_weak_order<_Rel, projected<_Iter, _Proj>>; 1414: 1414: struct unreachable_sentinel_t 1414: { 1414: template 1414: friend constexpr bool 1414: operator==(unreachable_sentinel_t, const _It&) noexcept 1414: { return false; } 1414: }; 1414: 1414: inline constexpr unreachable_sentinel_t unreachable_sentinel{}; 1414: 1414: 1414: namespace ranges::__access 1414: { 1414: using std::__detail::__class_or_enum; 1414: 1414: template 1414: concept __member_begin = requires(_Tp& __t) 1414: { 1414: { ::std::__decay_t(__t.begin()) } -> input_or_output_iterator; 1414: }; 1414: 1414: 1414: void begin() = delete; 1414: 1414: template 1414: concept __adl_begin = __class_or_enum> 1414: && requires(_Tp& __t) 1414: { 1414: { ::std::__decay_t(begin(__t)) } -> input_or_output_iterator; 1414: }; 1414: 1414: 1414: 1414: template 1414: requires is_array_v<_Tp> || __member_begin<_Tp&> || __adl_begin<_Tp&> 1414: constexpr auto 1414: __begin(_Tp& __t) 1414: { 1414: if constexpr (is_array_v<_Tp>) 1414: return __t + 0; 1414: else if constexpr (__member_begin<_Tp&>) 1414: return __t.begin(); 1414: else 1414: return begin(__t); 1414: } 1414: } 1414: 1414: namespace __detail 1414: { 1414: 1414: template 1414: using __range_iter_t 1414: = decltype(ranges::__access::__begin(std::declval<_Tp&>())); 1414: 1414: } 1414: 1414: 1414: 1414: } 1414: # 74 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_types.h" 2 3 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 95 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_types.h" 3 1414: struct input_iterator_tag { }; 1414: 1414: 1414: struct output_iterator_tag { }; 1414: 1414: 1414: struct forward_iterator_tag : public input_iterator_tag { }; 1414: 1414: 1414: 1414: struct bidirectional_iterator_tag : public forward_iterator_tag { }; 1414: 1414: 1414: 1414: struct random_access_iterator_tag : public bidirectional_iterator_tag { }; 1414: 1414: 1414: 1414: struct contiguous_iterator_tag : public random_access_iterator_tag { }; 1414: # 127 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_types.h" 3 1414: template 1414: struct [[__deprecated__]] iterator 1414: { 1414: 1414: typedef _Category iterator_category; 1414: 1414: typedef _Tp value_type; 1414: 1414: typedef _Distance difference_type; 1414: 1414: typedef _Pointer pointer; 1414: 1414: typedef _Reference reference; 1414: }; 1414: # 151 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_types.h" 3 1414: template 1414: struct iterator_traits; 1414: 1414: 1414: 1414: 1414: template> 1414: struct __iterator_traits { }; 1414: # 178 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_types.h" 3 1414: template 1414: struct iterator_traits 1414: : public __iterator_traits<_Iterator> { }; 1414: # 196 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_types.h" 3 1414: template 1414: 1414: requires is_object_v<_Tp> 1414: 1414: struct iterator_traits<_Tp*> 1414: { 1414: using iterator_concept = contiguous_iterator_tag; 1414: using iterator_category = random_access_iterator_tag; 1414: using value_type = remove_cv_t<_Tp>; 1414: using difference_type = ptrdiff_t; 1414: using pointer = _Tp*; 1414: using reference = _Tp&; 1414: }; 1414: # 237 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_types.h" 3 1414: template 1414: __attribute__((__always_inline__)) 1414: inline constexpr 1414: typename iterator_traits<_Iter>::iterator_category 1414: __iterator_category(const _Iter&) 1414: { return typename iterator_traits<_Iter>::iterator_category(); } 1414: 1414: 1414: 1414: 1414: template 1414: using __iter_category_t 1414: = typename iterator_traits<_Iter>::iterator_category; 1414: 1414: template 1414: using _RequireInputIter = 1414: __enable_if_t, 1414: input_iterator_tag>::value>; 1414: 1414: 1414: template 1414: concept __has_input_iter_cat 1414: = is_convertible_v<__iter_category_t<_InIter>, input_iterator_tag>; 1414: 1414: 1414: 1414: template 1414: concept __any_input_iterator 1414: = input_iterator<_InIterator> || __has_input_iter_cat<_InIterator>; 1414: 1414: 1414: 1414: template> 1414: struct __is_random_access_iter 1414: : is_base_of 1414: { 1414: typedef is_base_of _Base; 1414: enum { __value = _Base::value }; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: } 1414: # 65 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_funcs.h" 1 3 1414: # 66 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_funcs.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/concept_check.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/bits/concept_check.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wvariadic-macros" 1414: # 86 "/usr/arm-linux-gnueabihf/include/c++/16/bits/concept_check.h" 3 1414: #pragma GCC diagnostic pop 1414: # 67 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_funcs.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/debug/assertions.h" 1 3 1414: # 68 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_funcs.h" 2 3 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: template struct _List_iterator; 1414: template struct _List_const_iterator; 1414: 1414: 1414: template 1414: inline constexpr 1414: typename iterator_traits<_InputIterator>::difference_type 1414: __distance(_InputIterator __first, _InputIterator __last, 1414: input_iterator_tag) 1414: { 1414: 1414: 1414: 1414: typename iterator_traits<_InputIterator>::difference_type __n = 0; 1414: while (__first != __last) 1414: { 1414: ++__first; 1414: ++__n; 1414: } 1414: return __n; 1414: } 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: inline constexpr 1414: typename iterator_traits<_RandomAccessIterator>::difference_type 1414: __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, 1414: random_access_iterator_tag) 1414: { 1414: 1414: 1414: 1414: return __last - __first; 1414: } 1414: 1414: 1414: 1414: template 1414: ptrdiff_t 1414: __distance(std::_List_iterator<_Tp>, 1414: std::_List_iterator<_Tp>, 1414: input_iterator_tag); 1414: 1414: template 1414: ptrdiff_t 1414: __distance(std::_List_const_iterator<_Tp>, 1414: std::_List_const_iterator<_Tp>, 1414: input_iterator_tag); 1414: 1414: 1414: 1414: 1414: template 1414: void 1414: __distance(_OutputIterator, _OutputIterator, output_iterator_tag) = delete; 1414: 1414: 1414: 1414: namespace __detail 1414: { 1414: 1414: 1414: template 1414: concept __iter_category_converts_to_concept 1414: = convertible_to::iterator_category, 1414: typename __iter_traits<_Iter>::iterator_concept>; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: concept __promotable_iterator 1414: = input_iterator<_Iter> 1414: && requires { typename __iter_traits<_Iter>::iterator_concept; } 1414: && ! __iter_category_converts_to_concept<_Iter>; 1414: } 1414: # 168 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_funcs.h" 3 1414: template 1414: [[__nodiscard__]] __attribute__((__always_inline__)) 1414: inline constexpr 1414: typename iterator_traits<_InputIterator>::difference_type 1414: distance(_InputIterator __first, _InputIterator __last) 1414: { 1414: # 182 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_funcs.h" 3 1414: if constexpr (__detail::__promotable_iterator<_InputIterator>) 1414: { 1414: if constexpr (random_access_iterator<_InputIterator>) 1414: return __last - __first; 1414: else 1414: return std::__distance(std::move(__first), std::move(__last), 1414: input_iterator_tag()); 1414: } 1414: else 1414: 1414: 1414: return std::__distance(__first, __last, 1414: std::__iterator_category(__first)); 1414: } 1414: 1414: template 1414: inline constexpr void 1414: __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) 1414: { 1414: 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) std::__glibcxx_assert_fail(); } while (false); 1414: while (__n-- > 0) 1414: ++__i; 1414: } 1414: 1414: template 1414: inline constexpr void 1414: __advance(_BidirectionalIterator& __i, _Distance __n, 1414: bidirectional_iterator_tag) 1414: { 1414: 1414: 1414: 1414: if (__n > 0) 1414: while (__n--) 1414: ++__i; 1414: else 1414: while (__n++) 1414: --__i; 1414: } 1414: 1414: template 1414: inline constexpr void 1414: __advance(_RandomAccessIterator& __i, _Distance __n, 1414: random_access_iterator_tag) 1414: { 1414: 1414: 1414: 1414: if (__builtin_constant_p(__n) && __n == 1) 1414: ++__i; 1414: else if (__builtin_constant_p(__n) && __n == -1) 1414: --__i; 1414: else 1414: __i += __n; 1414: } 1414: 1414: 1414: 1414: template 1414: void 1414: __advance(_OutputIterator&, _Distance, output_iterator_tag) = delete; 1414: # 258 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_funcs.h" 3 1414: template 1414: __attribute__((__always_inline__)) 1414: inline constexpr void 1414: advance(_InputIterator& __i, _Distance __n) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: if constexpr (__detail::__promotable_iterator<_InputIterator> 1414: && ranges::__detail::__is_integer_like<_Distance>) 1414: { 1414: auto __d = static_cast>(__n); 1414: if constexpr (random_access_iterator<_InputIterator>) 1414: std::__advance(__i, __d, random_access_iterator_tag()); 1414: else if constexpr (bidirectional_iterator<_InputIterator>) 1414: std::__advance(__i, __d, bidirectional_iterator_tag()); 1414: else 1414: std::__advance(__i, __d, input_iterator_tag()); 1414: } 1414: else 1414: 1414: { 1414: 1414: typename iterator_traits<_InputIterator>::difference_type __d = __n; 1414: std::__advance(__i, __d, std::__iterator_category(__i)); 1414: } 1414: } 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] [[__gnu__::__always_inline__]] 1414: inline constexpr _InputIterator 1414: next(_InputIterator __x, typename 1414: iterator_traits<_InputIterator>::difference_type __n = 1) 1414: { 1414: 1414: 1414: std::advance(__x, __n); 1414: return __x; 1414: } 1414: 1414: template 1414: [[__nodiscard__]] [[__gnu__::__always_inline__]] 1414: inline constexpr _BidirectionalIterator 1414: prev(_BidirectionalIterator __x, typename 1414: iterator_traits<_BidirectionalIterator>::difference_type __n = 1) 1414: { 1414: 1414: 1414: 1414: std::advance(__x, -__n); 1414: return __x; 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: consteval auto 1414: __iter_concept_or_category() 1414: { 1414: if constexpr (__detail::__promotable_iterator<_Iter>) 1414: { 1414: using __type = __detail::__iter_traits<_Iter>::iterator_concept; 1414: if constexpr (derived_from<__type, random_access_iterator_tag>) 1414: return random_access_iterator_tag{}; 1414: else 1414: return __type{}; 1414: } 1414: else 1414: return typename iterator_traits<_Iter>::iterator_category{}; 1414: } 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr auto 1414: __iter_concept_or_category(const _Iter&) 1414: { return std::__iter_concept_or_category<_Iter>(); } 1414: # 359 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_funcs.h" 3 1414: template())> 1414: struct __is_any_random_access_iter 1414: 1414: : is_base_of 1414: 1414: { enum { __value = __is_base_of(random_access_iterator_tag, _Cat) }; }; 1414: # 376 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator_base_funcs.h" 3 1414: 1414: } 1414: # 66 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 1 3 1414: # 75 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/new" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/new" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception.h" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception.h" 3 1414: extern "C++" { 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: # 61 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception.h" 3 1414: class exception 1414: { 1414: public: 1414: exception() noexcept { } 1414: 1414: 1414: 1414: 1414: virtual ~exception() noexcept; 1414: 1414: 1414: exception(const exception&) = default; 1414: exception& operator=(const exception&) = default; 1414: exception(exception&&) = default; 1414: exception& operator=(exception&&) = default; 1414: # 85 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception.h" 3 1414: virtual const char* 1414: what() const noexcept; 1414: 1414: }; 1414: 1414: 1414: 1414: } 1414: 1414: } 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/new" 2 3 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 50 "/usr/arm-linux-gnueabihf/include/c++/16/new" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_except.h" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_except.h" 3 1414: extern "C++" 1414: { 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: class bad_alloc : public exception 1414: { 1414: public: 1414: bad_alloc() throw() { } 1414: 1414: 1414: bad_alloc(const bad_alloc&) = default; 1414: bad_alloc& operator=(const bad_alloc&) = default; 1414: # 76 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_except.h" 3 1414: virtual ~bad_alloc() throw(); 1414: 1414: 1414: virtual const char* what() const throw(); 1414: 1414: }; 1414: 1414: 1414: class bad_array_new_length : public bad_alloc 1414: { 1414: public: 1414: bad_array_new_length() throw() { } 1414: # 101 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_except.h" 3 1414: virtual ~bad_array_new_length() throw(); 1414: 1414: 1414: virtual const char* what() const throw(); 1414: 1414: }; 1414: 1414: 1414: 1414: } 1414: 1414: } 1414: # 51 "/usr/arm-linux-gnueabihf/include/c++/16/new" 2 3 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: 1414: #pragma GCC visibility push(default) 1414: 1414: extern "C++" { 1414: 1414: namespace std 1414: { 1414: 1414: enum class align_val_t: size_t {}; 1414: 1414: 1414: struct nothrow_t 1414: { 1414: 1414: explicit nothrow_t() = default; 1414: 1414: }; 1414: 1414: extern const nothrow_t nothrow; 1414: 1414: 1414: 1414: typedef void (*new_handler)(); 1414: 1414: 1414: 1414: new_handler set_new_handler(new_handler) throw(); 1414: 1414: 1414: 1414: new_handler get_new_handler() noexcept; 1414: 1414: } 1414: # 99 "/usr/arm-linux-gnueabihf/include/c++/16/new" 3 1414: [[__nodiscard__]] void* operator new(std::size_t) 1414: 1414: __attribute__((__externally_visible__, __malloc__)); 1414: [[__nodiscard__]] void* operator new[](std::size_t) 1414: 1414: __attribute__((__externally_visible__, __malloc__)); 1414: void operator delete(void*) noexcept 1414: __attribute__((__externally_visible__)); 1414: void operator delete[](void*) noexcept 1414: __attribute__((__externally_visible__)); 1414: 1414: void operator delete(void*, std::size_t) 1414: noexcept 1414: __attribute__((__externally_visible__)); 1414: void operator delete[](void*, std::size_t) 1414: noexcept 1414: __attribute__((__externally_visible__)); 1414: 1414: [[__nodiscard__]] void* operator new(std::size_t, const std::nothrow_t&) 1414: noexcept 1414: __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); 1414: [[__nodiscard__]] void* operator new[](std::size_t, const std::nothrow_t&) 1414: noexcept 1414: __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); 1414: void operator delete(void*, const std::nothrow_t&) 1414: noexcept 1414: __attribute__((__externally_visible__)); 1414: void operator delete[](void*, const std::nothrow_t&) 1414: noexcept 1414: __attribute__((__externally_visible__)); 1414: 1414: [[__nodiscard__]] void* operator new(std::size_t, std::align_val_t) 1414: 1414: __attribute__((__externally_visible__, __alloc_size__ (1), __alloc_align__ (2), __malloc__)); 1414: [[__nodiscard__]] void* operator new(std::size_t, std::align_val_t, const std::nothrow_t&) 1414: noexcept 1414: __attribute__((__externally_visible__, __alloc_size__ (1), __alloc_align__ (2), __malloc__)); 1414: void operator delete(void*, std::align_val_t) 1414: noexcept __attribute__((__externally_visible__)); 1414: void operator delete(void*, std::align_val_t, const std::nothrow_t&) 1414: 1414: noexcept __attribute__((__externally_visible__)); 1414: [[__nodiscard__]] void* operator new[](std::size_t, std::align_val_t) 1414: 1414: __attribute__((__externally_visible__, __alloc_size__ (1), __alloc_align__ (2), __malloc__)); 1414: [[__nodiscard__]] void* operator new[](std::size_t, std::align_val_t, const std::nothrow_t&) 1414: noexcept 1414: __attribute__((__externally_visible__, __alloc_size__ (1), __alloc_align__ (2), __malloc__)); 1414: void operator delete[](void*, std::align_val_t) 1414: noexcept __attribute__((__externally_visible__)); 1414: void operator delete[](void*, std::align_val_t, const std::nothrow_t&) 1414: 1414: noexcept __attribute__((__externally_visible__)); 1414: 1414: void operator delete(void*, std::size_t, std::align_val_t) 1414: noexcept __attribute__((__externally_visible__)); 1414: void operator delete[](void*, std::size_t, std::align_val_t) 1414: noexcept __attribute__((__externally_visible__)); 1414: # 167 "/usr/arm-linux-gnueabihf/include/c++/16/new" 3 1414: [[__nodiscard__]] inline 1414: void* operator new(std::size_t, void* __p) 1414: noexcept 1414: { return __p; } 1414: [[__nodiscard__]] inline 1414: void* operator new[](std::size_t, void* __p) 1414: noexcept 1414: { return __p; } 1414: 1414: 1414: inline void operator delete (void*, void*) 1414: noexcept 1414: { } 1414: inline void operator delete[](void*, void*) 1414: noexcept 1414: { } 1414: 1414: 1414: 1414: 1414: } 1414: 1414: namespace std 1414: { 1414: 1414: 1414: template 1414: [[nodiscard]] constexpr _Tp* 1414: launder(_Tp* __p) noexcept 1414: { 1414: if constexpr (__is_same(const volatile _Tp, const volatile void)) 1414: static_assert(!__is_same(const volatile _Tp, const volatile void), 1414: "std::launder argument must not be a void pointer"); 1414: 1414: else if constexpr (__is_function(_Tp)) 1414: static_assert(!__is_function(_Tp), 1414: "std::launder argument must not be a function pointer"); 1414: 1414: else 1414: return __builtin_launder(__p); 1414: return nullptr; 1414: } 1414: 1414: 1414: 1414: inline constexpr size_t hardware_destructive_interference_size = 64; 1414: inline constexpr size_t hardware_constructive_interference_size = 64; 1414: 1414: 1414: 1414: 1414: 1414: 1414: struct destroying_delete_t 1414: { 1414: explicit destroying_delete_t() = default; 1414: }; 1414: 1414: inline constexpr destroying_delete_t destroying_delete{}; 1414: 1414: } 1414: 1414: #pragma GCC visibility pop 1414: #pragma GCC diagnostic pop 1414: # 76 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_construct.h" 1 3 1414: # 73 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_construct.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: template 1414: constexpr inline void 1414: destroy_at(_Tp* __location) 1414: { 1414: if constexpr (202002L > 201703L && is_array_v<_Tp>) 1414: { 1414: for (auto& __x : *__location) 1414: std::destroy_at(std::addressof(__x)); 1414: } 1414: else 1414: __location->~_Tp(); 1414: } 1414: 1414: 1414: template 1414: requires (!is_unbounded_array_v<_Tp>) 1414: && requires { ::new((void*)0) _Tp(std::declval<_Args>()...); } 1414: constexpr _Tp* 1414: construct_at(_Tp* __location, _Args&&... __args) 1414: noexcept(noexcept(::new((void*)0) _Tp(std::declval<_Args>()...))) 1414: { 1414: void* __loc = __location; 1414: 1414: 1414: if constexpr (is_array_v<_Tp>) 1414: { 1414: static_assert(sizeof...(_Args) == 0, "std::construct_at for array " 1414: "types must not use any arguments to initialize the " 1414: "array"); 1414: return ::new(__loc) _Tp[1](); 1414: } 1414: else 1414: return ::new(__loc) _Tp(std::forward<_Args>(__args)...); 1414: } 1414: # 120 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_construct.h" 3 1414: template 1414: constexpr 1414: inline void 1414: _Construct(_Tp* __p, _Args&&... __args) 1414: { 1414: 1414: if (std::is_constant_evaluated()) 1414: { 1414: 1414: std::construct_at(__p, std::forward<_Args>(__args)...); 1414: return; 1414: } 1414: 1414: ::new(static_cast(__p)) _Tp(std::forward<_Args>(__args)...); 1414: } 1414: # 146 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_construct.h" 3 1414: template 1414: 1414: inline void 1414: _Construct_novalue(_T1* __p) 1414: { ::new(static_cast(__p)) _T1; } 1414: 1414: template 1414: constexpr void 1414: _Destroy(_ForwardIterator __first, _ForwardIterator __last); 1414: 1414: 1414: 1414: 1414: template 1414: constexpr inline void 1414: _Destroy(_Tp* __pointer) 1414: { 1414: 1414: std::destroy_at(__pointer); 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: # 217 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_construct.h" 3 1414: template 1414: constexpr inline void 1414: _Destroy(_ForwardIterator __first, _ForwardIterator __last) 1414: { 1414: typedef typename iterator_traits<_ForwardIterator>::value_type 1414: _Value_type; 1414: 1414: if constexpr (!is_trivially_destructible<_Value_type>::value) 1414: for (; __first != __last; ++__first) 1414: std::_Destroy(std::addressof(*__first)); 1414: 1414: else if (std::is_constant_evaluated()) 1414: for (; __first != __last; ++__first) 1414: std::destroy_at(std::addressof(*__first)); 1414: 1414: 1414: 1414: 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr inline _ForwardIterator 1414: _Destroy_n(_ForwardIterator __first, _Size __count) 1414: { 1414: typedef typename iterator_traits<_ForwardIterator>::value_type 1414: _Value_type; 1414: 1414: if constexpr (!is_trivially_destructible<_Value_type>::value) 1414: for (; __count > 0; (void)++__first, --__count) 1414: std::_Destroy(std::addressof(*__first)); 1414: 1414: else if (std::is_constant_evaluated()) 1414: for (; __count > 0; (void)++__first, --__count) 1414: std::destroy_at(std::addressof(*__first)); 1414: 1414: else 1414: std::advance(__first, __count); 1414: return __first; 1414: 1414: 1414: 1414: 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: template 1414: constexpr inline void 1414: destroy(_ForwardIterator __first, _ForwardIterator __last) 1414: { 1414: std::_Destroy(__first, __last); 1414: } 1414: 1414: template 1414: constexpr inline _ForwardIterator 1414: destroy_n(_ForwardIterator __first, _Size __count) 1414: { 1414: return std::_Destroy_n(__first, __count); 1414: } 1414: # 407 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_construct.h" 3 1414: 1414: } 1414: # 79 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 96 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: namespace __detail 1414: { 1414: 1414: 1414: template 1414: using __clamp_iter_cat 1414: = __conditional_t, _Limit, _Otherwise>; 1414: } 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: # 130 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: class reverse_iterator 1414: : public iterator::iterator_category, 1414: typename iterator_traits<_Iterator>::value_type, 1414: typename iterator_traits<_Iterator>::difference_type, 1414: typename iterator_traits<_Iterator>::pointer, 1414: typename iterator_traits<_Iterator>::reference> 1414: { 1414: template 1414: friend class reverse_iterator; 1414: 1414: 1414: 1414: 1414: template 1414: static constexpr bool __convertible = !is_same_v<_Iter, _Iterator> 1414: && convertible_to; 1414: 1414: 1414: protected: 1414: _Iterator current; 1414: 1414: typedef iterator_traits<_Iterator> __traits_type; 1414: 1414: public: 1414: typedef _Iterator iterator_type; 1414: typedef typename __traits_type::pointer pointer; 1414: 1414: 1414: 1414: 1414: using iterator_concept 1414: = __conditional_t, 1414: random_access_iterator_tag, 1414: bidirectional_iterator_tag>; 1414: using iterator_category 1414: = __detail::__clamp_iter_cat; 1414: using value_type = iter_value_t<_Iterator>; 1414: using difference_type = iter_difference_t<_Iterator>; 1414: using reference = iter_reference_t<_Iterator>; 1414: # 180 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: constexpr 1414: reverse_iterator() 1414: noexcept(noexcept(_Iterator())) 1414: : current() 1414: { } 1414: 1414: 1414: 1414: 1414: explicit constexpr 1414: reverse_iterator(iterator_type __x) 1414: noexcept(noexcept(_Iterator(__x))) 1414: : current(__x) 1414: { } 1414: 1414: 1414: 1414: 1414: constexpr 1414: reverse_iterator(const reverse_iterator& __x) 1414: noexcept(noexcept(_Iterator(__x.current))) 1414: : current(__x.current) 1414: { } 1414: 1414: 1414: reverse_iterator& operator=(const reverse_iterator&) = default; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: 1414: requires __convertible<_Iter> 1414: 1414: constexpr 1414: reverse_iterator(const reverse_iterator<_Iter>& __x) 1414: noexcept(noexcept(_Iterator(__x.current))) 1414: : current(__x.current) 1414: { } 1414: 1414: 1414: template 1414: 1414: requires __convertible<_Iter> 1414: && assignable_from<_Iterator&, const _Iter&> 1414: 1414: constexpr 1414: reverse_iterator& 1414: operator=(const reverse_iterator<_Iter>& __x) 1414: noexcept(noexcept(current = __x.current)) 1414: { 1414: current = __x.current; 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: constexpr iterator_type 1414: base() const 1414: noexcept(noexcept(_Iterator(current))) 1414: { return current; } 1414: # 257 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: [[__nodiscard__]] 1414: constexpr reference 1414: operator*() const 1414: { 1414: _Iterator __tmp = current; 1414: return *--__tmp; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: constexpr pointer 1414: operator->() const 1414: 1414: requires is_pointer_v<_Iterator> 1414: || requires(const _Iterator __i) { __i.operator->(); } 1414: 1414: { 1414: 1414: 1414: _Iterator __tmp = current; 1414: --__tmp; 1414: return _S_to_pointer(__tmp); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr reverse_iterator& 1414: operator++() 1414: { 1414: --current; 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr reverse_iterator 1414: operator++(int) 1414: { 1414: reverse_iterator __tmp = *this; 1414: --current; 1414: return __tmp; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr reverse_iterator& 1414: operator--() 1414: { 1414: ++current; 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr reverse_iterator 1414: operator--(int) 1414: { 1414: reverse_iterator __tmp = *this; 1414: ++current; 1414: return __tmp; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: constexpr reverse_iterator 1414: operator+(difference_type __n) const 1414: { return reverse_iterator(current - __n); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr reverse_iterator& 1414: operator+=(difference_type __n) 1414: { 1414: current -= __n; 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: constexpr reverse_iterator 1414: operator-(difference_type __n) const 1414: { return reverse_iterator(current + __n); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr reverse_iterator& 1414: operator-=(difference_type __n) 1414: { 1414: current += __n; 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: constexpr reference 1414: operator[](difference_type __n) const 1414: { return *(*this + __n); } 1414: 1414: 1414: [[nodiscard]] 1414: friend constexpr iter_rvalue_reference_t<_Iterator> 1414: iter_move(const reverse_iterator& __i) 1414: noexcept(is_nothrow_copy_constructible_v<_Iterator> 1414: && noexcept(ranges::iter_move(--std::declval<_Iterator&>()))) 1414: { 1414: auto __tmp = __i.base(); 1414: return ranges::iter_move(--__tmp); 1414: } 1414: 1414: template _Iter2> 1414: friend constexpr void 1414: iter_swap(const reverse_iterator& __x, 1414: const reverse_iterator<_Iter2>& __y) 1414: noexcept(is_nothrow_copy_constructible_v<_Iterator> 1414: && is_nothrow_copy_constructible_v<_Iter2> 1414: && noexcept(ranges::iter_swap(--std::declval<_Iterator&>(), 1414: --std::declval<_Iter2&>()))) 1414: { 1414: auto __xtmp = __x.base(); 1414: auto __ytmp = __y.base(); 1414: ranges::iter_swap(--__xtmp, --__ytmp); 1414: } 1414: 1414: 1414: private: 1414: template 1414: static constexpr _Tp* 1414: _S_to_pointer(_Tp* __p) 1414: { return __p; } 1414: 1414: template 1414: static constexpr pointer 1414: _S_to_pointer(_Tp __t) 1414: { return __t.operator->(); } 1414: }; 1414: # 526 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: [[nodiscard]] 1414: constexpr bool 1414: operator==(const reverse_iterator<_IteratorL>& __x, 1414: const reverse_iterator<_IteratorR>& __y) 1414: requires requires { { __x.base() == __y.base() } -> convertible_to; } 1414: { return __x.base() == __y.base(); } 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr bool 1414: operator!=(const reverse_iterator<_IteratorL>& __x, 1414: const reverse_iterator<_IteratorR>& __y) 1414: requires requires { { __x.base() != __y.base() } -> convertible_to; } 1414: { return __x.base() != __y.base(); } 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr bool 1414: operator<(const reverse_iterator<_IteratorL>& __x, 1414: const reverse_iterator<_IteratorR>& __y) 1414: requires requires { { __x.base() > __y.base() } -> convertible_to; } 1414: { return __x.base() > __y.base(); } 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr bool 1414: operator>(const reverse_iterator<_IteratorL>& __x, 1414: const reverse_iterator<_IteratorR>& __y) 1414: requires requires { { __x.base() < __y.base() } -> convertible_to; } 1414: { return __x.base() < __y.base(); } 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr bool 1414: operator<=(const reverse_iterator<_IteratorL>& __x, 1414: const reverse_iterator<_IteratorR>& __y) 1414: requires requires { { __x.base() >= __y.base() } -> convertible_to; } 1414: { return __x.base() >= __y.base(); } 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr bool 1414: operator>=(const reverse_iterator<_IteratorL>& __x, 1414: const reverse_iterator<_IteratorR>& __y) 1414: requires requires { { __x.base() <= __y.base() } -> convertible_to; } 1414: { return __x.base() <= __y.base(); } 1414: 1414: template _IteratorR> 1414: [[nodiscard]] 1414: constexpr compare_three_way_result_t<_IteratorL, _IteratorR> 1414: operator<=>(const reverse_iterator<_IteratorL>& __x, 1414: const reverse_iterator<_IteratorR>& __y) 1414: { return __y.base() <=> __x.base(); } 1414: 1414: 1414: 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr bool 1414: operator==(const reverse_iterator<_Iterator>& __x, 1414: const reverse_iterator<_Iterator>& __y) 1414: requires requires { { __x.base() == __y.base() } -> convertible_to; } 1414: { return __x.base() == __y.base(); } 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr compare_three_way_result_t<_Iterator, _Iterator> 1414: operator<=>(const reverse_iterator<_Iterator>& __x, 1414: const reverse_iterator<_Iterator>& __y) 1414: { return __y.base() <=> __x.base(); } 1414: # 617 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr auto 1414: operator-(const reverse_iterator<_IteratorL>& __x, 1414: const reverse_iterator<_IteratorR>& __y) 1414: -> decltype(__y.base() - __x.base()) 1414: { return __y.base() - __x.base(); } 1414: 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr reverse_iterator<_Iterator> 1414: operator+(typename reverse_iterator<_Iterator>::difference_type __n, 1414: const reverse_iterator<_Iterator>& __x) 1414: { return reverse_iterator<_Iterator>(__x.base() - __n); } 1414: 1414: 1414: 1414: template 1414: inline constexpr reverse_iterator<_Iterator> 1414: __make_reverse_iterator(_Iterator __i) 1414: { return reverse_iterator<_Iterator>(__i); } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr reverse_iterator<_Iterator> 1414: make_reverse_iterator(_Iterator __i) 1414: { return reverse_iterator<_Iterator>(__i); } 1414: 1414: 1414: template 1414: requires (!sized_sentinel_for<_Iterator1, _Iterator2>) 1414: inline constexpr bool 1414: disable_sized_sentinel_for, 1414: reverse_iterator<_Iterator2>> = true; 1414: 1414: 1414: 1414: template 1414: struct __is_move_iterator > 1414: : __is_move_iterator<_Iterator> 1414: { }; 1414: # 676 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: class back_insert_iterator 1414: : public iterator 1414: { 1414: protected: 1414: _Container* container; 1414: 1414: public: 1414: 1414: typedef _Container container_type; 1414: 1414: using difference_type = ptrdiff_t; 1414: 1414: 1414: 1414: explicit constexpr 1414: back_insert_iterator(_Container& __x) 1414: : container(std::__addressof(__x)) { } 1414: # 714 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: constexpr 1414: back_insert_iterator& 1414: operator=(const typename _Container::value_type& __value) 1414: { 1414: container->push_back(__value); 1414: return *this; 1414: } 1414: 1414: constexpr 1414: back_insert_iterator& 1414: operator=(typename _Container::value_type&& __value) 1414: { 1414: container->push_back(std::move(__value)); 1414: return *this; 1414: } 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: back_insert_iterator& 1414: operator*() 1414: { return *this; } 1414: 1414: 1414: constexpr 1414: back_insert_iterator& 1414: operator++() 1414: { return *this; } 1414: 1414: 1414: constexpr 1414: back_insert_iterator 1414: operator++(int) 1414: { return *this; } 1414: }; 1414: # 761 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline back_insert_iterator<_Container> 1414: back_inserter(_Container& __x) 1414: { return back_insert_iterator<_Container>(__x); } 1414: # 777 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: class front_insert_iterator 1414: : public iterator 1414: { 1414: protected: 1414: _Container* container; 1414: 1414: public: 1414: 1414: typedef _Container container_type; 1414: 1414: using difference_type = ptrdiff_t; 1414: 1414: 1414: 1414: explicit constexpr 1414: front_insert_iterator(_Container& __x) 1414: : container(std::__addressof(__x)) { } 1414: # 815 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: constexpr 1414: front_insert_iterator& 1414: operator=(const typename _Container::value_type& __value) 1414: { 1414: container->push_front(__value); 1414: return *this; 1414: } 1414: 1414: constexpr 1414: front_insert_iterator& 1414: operator=(typename _Container::value_type&& __value) 1414: { 1414: container->push_front(std::move(__value)); 1414: return *this; 1414: } 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: front_insert_iterator& 1414: operator*() 1414: { return *this; } 1414: 1414: 1414: constexpr 1414: front_insert_iterator& 1414: operator++() 1414: { return *this; } 1414: 1414: 1414: constexpr 1414: front_insert_iterator 1414: operator++(int) 1414: { return *this; } 1414: }; 1414: # 862 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline front_insert_iterator<_Container> 1414: front_inserter(_Container& __x) 1414: { return front_insert_iterator<_Container>(__x); } 1414: # 882 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: class insert_iterator 1414: : public iterator 1414: { 1414: 1414: using _Iter = std::__detail::__range_iter_t<_Container>; 1414: 1414: 1414: 1414: protected: 1414: _Container* container; 1414: _Iter iter; 1414: 1414: public: 1414: 1414: typedef _Container container_type; 1414: 1414: 1414: using difference_type = ptrdiff_t; 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: insert_iterator(_Container& __x, _Iter __i) 1414: : container(std::__addressof(__x)), iter(__i) {} 1414: # 943 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: constexpr 1414: insert_iterator& 1414: operator=(const typename _Container::value_type& __value) 1414: { 1414: iter = container->insert(iter, __value); 1414: ++iter; 1414: return *this; 1414: } 1414: 1414: constexpr 1414: insert_iterator& 1414: operator=(typename _Container::value_type&& __value) 1414: { 1414: iter = container->insert(iter, std::move(__value)); 1414: ++iter; 1414: return *this; 1414: } 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: insert_iterator& 1414: operator*() 1414: { return *this; } 1414: 1414: 1414: constexpr 1414: insert_iterator& 1414: operator++() 1414: { return *this; } 1414: 1414: 1414: constexpr 1414: insert_iterator& 1414: operator++(int) 1414: { return *this; } 1414: }; 1414: 1414: #pragma GCC diagnostic pop 1414: # 996 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: [[nodiscard]] 1414: constexpr insert_iterator<_Container> 1414: inserter(_Container& __x, std::__detail::__range_iter_t<_Container> __i) 1414: { return insert_iterator<_Container>(__x, __i); } 1414: # 1011 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: 1414: } 1414: 1414: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 1025 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: class __normal_iterator 1414: { 1414: protected: 1414: _Iterator _M_current; 1414: 1414: typedef std::iterator_traits<_Iterator> __traits_type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: public: 1414: typedef _Iterator iterator_type; 1414: typedef typename __traits_type::iterator_category iterator_category; 1414: typedef typename __traits_type::value_type value_type; 1414: typedef typename __traits_type::difference_type difference_type; 1414: typedef typename __traits_type::reference reference; 1414: typedef typename __traits_type::pointer pointer; 1414: 1414: 1414: using iterator_concept = std::__detail::__iter_concept<_Iterator>; 1414: 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: __normal_iterator() noexcept 1414: : _M_current() { } 1414: 1414: __attribute__((__always_inline__)) 1414: explicit constexpr 1414: __normal_iterator(const _Iterator& __i) noexcept 1414: : _M_current(__i) { } 1414: 1414: 1414: 1414: 1414: template requires std::is_convertible_v<_Iter, _Iterator> 1414: 1414: 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr 1414: __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) 1414: noexcept 1414: # 1082 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: : _M_current(__i.base()) { } 1414: 1414: 1414: 1414: [[__nodiscard__]] __attribute__((__always_inline__)) 1414: constexpr 1414: reference 1414: operator*() const noexcept 1414: { return *_M_current; } 1414: 1414: [[__nodiscard__]] __attribute__((__always_inline__)) 1414: constexpr 1414: pointer 1414: operator->() const noexcept 1414: { return _M_current; } 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: __normal_iterator& 1414: operator++() noexcept 1414: { 1414: ++_M_current; 1414: return *this; 1414: } 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: __normal_iterator 1414: operator++(int) noexcept 1414: { return __normal_iterator(_M_current++); } 1414: 1414: 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: __normal_iterator& 1414: operator--() noexcept 1414: { 1414: --_M_current; 1414: return *this; 1414: } 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: __normal_iterator 1414: operator--(int) noexcept 1414: { return __normal_iterator(_M_current--); } 1414: 1414: 1414: 1414: [[__nodiscard__]] __attribute__((__always_inline__)) 1414: constexpr 1414: reference 1414: operator[](difference_type __n) const noexcept 1414: { return _M_current[__n]; } 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: __normal_iterator& 1414: operator+=(difference_type __n) noexcept 1414: { _M_current += __n; return *this; } 1414: 1414: [[__nodiscard__]] __attribute__((__always_inline__)) 1414: constexpr 1414: __normal_iterator 1414: operator+(difference_type __n) const noexcept 1414: { return __normal_iterator(_M_current + __n); } 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: __normal_iterator& 1414: operator-=(difference_type __n) noexcept 1414: { _M_current -= __n; return *this; } 1414: 1414: [[__nodiscard__]] __attribute__((__always_inline__)) 1414: constexpr 1414: __normal_iterator 1414: operator-(difference_type __n) const noexcept 1414: { return __normal_iterator(_M_current - __n); } 1414: 1414: [[__nodiscard__]] __attribute__((__always_inline__)) 1414: constexpr 1414: const _Iterator& 1414: base() const noexcept 1414: { return _M_current; } 1414: 1414: private: 1414: # 1178 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: friend 1414: constexpr bool 1414: operator==(const __normal_iterator& __lhs, 1414: const __normal_iterator<_Iter, _Container>& __rhs) 1414: noexcept(noexcept(__lhs.base() == __rhs.base())) 1414: requires requires { 1414: { __lhs.base() == __rhs.base() } -> std::convertible_to; 1414: } 1414: { return __lhs.base() == __rhs.base(); } 1414: 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: friend 1414: constexpr bool 1414: operator==(const __normal_iterator& __lhs, const __normal_iterator& __rhs) 1414: noexcept(noexcept(__lhs.base() == __rhs.base())) 1414: requires requires { 1414: { __lhs.base() == __rhs.base() } -> std::convertible_to; 1414: } 1414: { return __lhs.base() == __rhs.base(); } 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: friend 1414: constexpr std::__detail::__synth3way_t<_Iterator, _Iter> 1414: operator<=>(const __normal_iterator& __lhs, 1414: const __normal_iterator<_Iter, _Container>& __rhs) 1414: noexcept(noexcept(std::__detail::__synth3way(__lhs.base(), __rhs.base()))) 1414: requires requires { 1414: std::__detail::__synth3way(__lhs.base(), __rhs.base()); 1414: } 1414: { return std::__detail::__synth3way(__lhs.base(), __rhs.base()); } 1414: # 1328 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: friend 1414: 1414: 1414: constexpr auto 1414: operator-(const __normal_iterator& __lhs, 1414: const __normal_iterator<_Iter, _Container>& __rhs) noexcept 1414: -> decltype(__lhs.base() - __rhs.base()) 1414: 1414: 1414: 1414: 1414: 1414: 1414: { return __lhs.base() - __rhs.base(); } 1414: 1414: [[__nodiscard__]] __attribute__((__always_inline__)) 1414: friend 1414: constexpr 1414: difference_type 1414: operator-(const __normal_iterator& __lhs, const __normal_iterator& __rhs) 1414: noexcept 1414: { return __lhs.base() - __rhs.base(); } 1414: 1414: [[__nodiscard__]] __attribute__((__always_inline__)) 1414: friend 1414: constexpr 1414: __normal_iterator 1414: operator+(difference_type __n, const __normal_iterator& __i) 1414: noexcept 1414: { return __normal_iterator(__i.base() + __n); } 1414: }; 1414: 1414: 1414: } 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 1378 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: class move_sentinel 1414: { 1414: public: 1414: constexpr 1414: move_sentinel() 1414: noexcept(is_nothrow_default_constructible_v<_Sent>) 1414: : _M_last() { } 1414: 1414: constexpr explicit 1414: move_sentinel(_Sent __s) 1414: noexcept(is_nothrow_move_constructible_v<_Sent>) 1414: : _M_last(std::move(__s)) { } 1414: 1414: template requires convertible_to 1414: constexpr 1414: move_sentinel(const move_sentinel<_S2>& __s) 1414: noexcept(is_nothrow_constructible_v<_Sent, const _S2&>) 1414: : _M_last(__s.base()) 1414: { } 1414: 1414: template requires assignable_from<_Sent&, const _S2&> 1414: constexpr move_sentinel& 1414: operator=(const move_sentinel<_S2>& __s) 1414: noexcept(is_nothrow_assignable_v<_Sent, const _S2&>) 1414: { 1414: _M_last = __s.base(); 1414: return *this; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr _Sent 1414: base() const 1414: noexcept(is_nothrow_copy_constructible_v<_Sent>) 1414: { return _M_last; } 1414: 1414: private: 1414: _Sent _M_last; 1414: }; 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: struct __move_iter_cat 1414: { }; 1414: 1414: template 1414: requires requires { typename __iter_category_t<_Iterator>; } 1414: struct __move_iter_cat<_Iterator> 1414: { 1414: using iterator_category 1414: = __clamp_iter_cat<__iter_category_t<_Iterator>, 1414: random_access_iterator_tag>; 1414: }; 1414: } 1414: # 1447 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: class move_iterator 1414: 1414: : public __detail::__move_iter_cat<_Iterator> 1414: 1414: { 1414: _Iterator _M_current; 1414: 1414: using __traits_type = iterator_traits<_Iterator>; 1414: 1414: 1414: 1414: 1414: template 1414: friend class move_iterator; 1414: 1414: 1414: 1414: 1414: template 1414: static constexpr bool __convertible = !is_same_v<_Iter2, _Iterator> 1414: && convertible_to; 1414: 1414: 1414: 1414: static auto 1414: _S_iter_concept() 1414: { 1414: if constexpr (random_access_iterator<_Iterator>) 1414: return random_access_iterator_tag{}; 1414: else if constexpr (bidirectional_iterator<_Iterator>) 1414: return bidirectional_iterator_tag{}; 1414: else if constexpr (forward_iterator<_Iterator>) 1414: return forward_iterator_tag{}; 1414: else 1414: return input_iterator_tag{}; 1414: } 1414: 1414: 1414: public: 1414: using iterator_type = _Iterator; 1414: 1414: 1414: using iterator_concept = decltype(_S_iter_concept()); 1414: 1414: 1414: using value_type = iter_value_t<_Iterator>; 1414: using difference_type = iter_difference_t<_Iterator>; 1414: using pointer = _Iterator; 1414: using reference = iter_rvalue_reference_t<_Iterator>; 1414: # 1511 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: constexpr 1414: move_iterator() 1414: : _M_current() { } 1414: 1414: explicit constexpr 1414: move_iterator(iterator_type __i) 1414: : _M_current(std::move(__i)) { } 1414: 1414: template 1414: 1414: requires __convertible<_Iter> 1414: 1414: constexpr 1414: move_iterator(const move_iterator<_Iter>& __i) 1414: : _M_current(__i._M_current) { } 1414: 1414: template 1414: 1414: requires __convertible<_Iter> 1414: && assignable_from<_Iterator&, const _Iter&> 1414: 1414: constexpr 1414: move_iterator& operator=(const move_iterator<_Iter>& __i) 1414: { 1414: _M_current = __i._M_current; 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[nodiscard]] 1414: constexpr const iterator_type& 1414: base() const & noexcept 1414: { return _M_current; } 1414: 1414: [[nodiscard]] 1414: constexpr iterator_type 1414: base() && 1414: { return std::move(_M_current); } 1414: 1414: 1414: [[__nodiscard__]] 1414: constexpr reference 1414: operator*() const 1414: 1414: { return ranges::iter_move(_M_current); } 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: constexpr pointer 1414: operator->() const 1414: { return _M_current; } 1414: 1414: constexpr move_iterator& 1414: operator++() 1414: { 1414: ++_M_current; 1414: return *this; 1414: } 1414: 1414: constexpr move_iterator 1414: operator++(int) 1414: { 1414: move_iterator __tmp = *this; 1414: ++_M_current; 1414: return __tmp; 1414: } 1414: 1414: 1414: constexpr void 1414: operator++(int) requires (!forward_iterator<_Iterator>) 1414: { ++_M_current; } 1414: 1414: 1414: constexpr move_iterator& 1414: operator--() 1414: { 1414: --_M_current; 1414: return *this; 1414: } 1414: 1414: constexpr move_iterator 1414: operator--(int) 1414: { 1414: move_iterator __tmp = *this; 1414: --_M_current; 1414: return __tmp; 1414: } 1414: 1414: [[__nodiscard__]] 1414: constexpr move_iterator 1414: operator+(difference_type __n) const 1414: { return move_iterator(_M_current + __n); } 1414: 1414: constexpr move_iterator& 1414: operator+=(difference_type __n) 1414: { 1414: _M_current += __n; 1414: return *this; 1414: } 1414: 1414: [[__nodiscard__]] 1414: constexpr move_iterator 1414: operator-(difference_type __n) const 1414: { return move_iterator(_M_current - __n); } 1414: 1414: constexpr move_iterator& 1414: operator-=(difference_type __n) 1414: { 1414: _M_current -= __n; 1414: return *this; 1414: } 1414: 1414: [[__nodiscard__]] 1414: constexpr reference 1414: operator[](difference_type __n) const 1414: 1414: { return ranges::iter_move(_M_current + __n); } 1414: 1414: 1414: 1414: 1414: 1414: template _Sent> 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator==(const move_iterator& __x, const move_sentinel<_Sent>& __y) 1414: { return __x.base() == __y.base(); } 1414: 1414: template _Sent> 1414: [[nodiscard]] 1414: friend constexpr iter_difference_t<_Iterator> 1414: operator-(const move_sentinel<_Sent>& __x, const move_iterator& __y) 1414: { return __x.base() - __y.base(); } 1414: 1414: template _Sent> 1414: [[nodiscard]] 1414: friend constexpr iter_difference_t<_Iterator> 1414: operator-(const move_iterator& __x, const move_sentinel<_Sent>& __y) 1414: { return __x.base() - __y.base(); } 1414: 1414: [[nodiscard]] 1414: friend constexpr iter_rvalue_reference_t<_Iterator> 1414: iter_move(const move_iterator& __i) 1414: noexcept(noexcept(ranges::iter_move(__i._M_current))) 1414: { return ranges::iter_move(__i._M_current); } 1414: 1414: template _Iter2> 1414: friend constexpr void 1414: iter_swap(const move_iterator& __x, const move_iterator<_Iter2>& __y) 1414: noexcept(noexcept(ranges::iter_swap(__x._M_current, __y._M_current))) 1414: { return ranges::iter_swap(__x._M_current, __y._M_current); } 1414: 1414: }; 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr bool 1414: operator==(const move_iterator<_IteratorL>& __x, 1414: const move_iterator<_IteratorR>& __y) 1414: 1414: requires requires { { __x.base() == __y.base() } -> convertible_to; } 1414: 1414: { return __x.base() == __y.base(); } 1414: 1414: 1414: template _IteratorR> 1414: [[__nodiscard__]] 1414: constexpr compare_three_way_result_t<_IteratorL, _IteratorR> 1414: operator<=>(const move_iterator<_IteratorL>& __x, 1414: const move_iterator<_IteratorR>& __y) 1414: { return __x.base() <=> __y.base(); } 1414: # 1699 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr bool 1414: operator<(const move_iterator<_IteratorL>& __x, 1414: const move_iterator<_IteratorR>& __y) 1414: 1414: requires requires { { __x.base() < __y.base() } -> convertible_to; } 1414: 1414: { return __x.base() < __y.base(); } 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr bool 1414: operator<=(const move_iterator<_IteratorL>& __x, 1414: const move_iterator<_IteratorR>& __y) 1414: 1414: requires requires { { __y.base() < __x.base() } -> convertible_to; } 1414: 1414: { return !(__y < __x); } 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr bool 1414: operator>(const move_iterator<_IteratorL>& __x, 1414: const move_iterator<_IteratorR>& __y) 1414: 1414: requires requires { { __y.base() < __x.base() } -> convertible_to; } 1414: 1414: { return __y < __x; } 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr bool 1414: operator>=(const move_iterator<_IteratorL>& __x, 1414: const move_iterator<_IteratorR>& __y) 1414: 1414: requires requires { { __x.base() < __y.base() } -> convertible_to; } 1414: 1414: { return !(__x < __y); } 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr bool 1414: operator==(const move_iterator<_Iterator>& __x, 1414: const move_iterator<_Iterator>& __y) 1414: 1414: { return __x.base() == __y.base(); } 1414: 1414: 1414: template 1414: [[__nodiscard__]] 1414: constexpr compare_three_way_result_t<_Iterator> 1414: operator<=>(const move_iterator<_Iterator>& __x, 1414: const move_iterator<_Iterator>& __y) 1414: { return __x.base() <=> __y.base(); } 1414: # 1795 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr auto 1414: operator-(const move_iterator<_IteratorL>& __x, 1414: const move_iterator<_IteratorR>& __y) 1414: -> decltype(__x.base() - __y.base()) 1414: { return __x.base() - __y.base(); } 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr move_iterator<_Iterator> 1414: operator+(typename move_iterator<_Iterator>::difference_type __n, 1414: const move_iterator<_Iterator>& __x) 1414: 1414: requires requires { { __x.base() + __n } -> same_as<_Iterator>; } 1414: 1414: { return __x + __n; } 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr move_iterator<_Iterator> 1414: make_move_iterator(_Iterator __i) 1414: { return move_iterator<_Iterator>(std::move(__i)); } 1414: 1414: template::value_type>::value, 1414: _Iterator, move_iterator<_Iterator>>> 1414: [[__nodiscard__]] 1414: constexpr _ReturnType 1414: __make_move_if_noexcept_iterator(_Iterator __i) 1414: { return _ReturnType(__i); } 1414: 1414: 1414: 1414: template::value, 1414: const _Tp*, move_iterator<_Tp*>>> 1414: [[__nodiscard__]] 1414: constexpr _ReturnType 1414: __make_move_if_noexcept_iterator(_Tp* __i) 1414: { return _ReturnType(__i); } 1414: 1414: template 1414: struct __is_move_iterator > 1414: { 1414: enum { __value = 1 }; 1414: typedef __true_type __type; 1414: }; 1414: # 1856 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: requires (!sized_sentinel_for<_Iterator1, _Iterator2>) 1414: inline constexpr bool 1414: disable_sized_sentinel_for, 1414: move_iterator<_Iterator2>> = true; 1414: 1414: 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: concept __common_iter_has_arrow = indirectly_readable 1414: && (requires(const _It& __it) { __it.operator->(); } 1414: || is_reference_v> 1414: || constructible_from, iter_reference_t<_It>>); 1414: 1414: template 1414: concept __common_iter_use_postfix_proxy 1414: = (!requires (_It& __i) { { *__i++ } -> __can_reference; }) 1414: && constructible_from, iter_reference_t<_It>> 1414: && move_constructible>; 1414: } 1414: 1414: 1414: 1414: template _Sent> 1414: requires (!same_as<_It, _Sent>) && copyable<_It> 1414: class common_iterator 1414: { 1414: template 1414: static constexpr bool 1414: _S_noexcept1() 1414: { 1414: if constexpr (is_trivially_default_constructible_v<_Tp>) 1414: return is_nothrow_assignable_v<_Tp&, _Up>; 1414: else 1414: return is_nothrow_constructible_v<_Tp, _Up>; 1414: } 1414: 1414: template 1414: static constexpr bool 1414: _S_noexcept() 1414: { return _S_noexcept1<_It, _It2>() && _S_noexcept1<_Sent, _Sent2>(); } 1414: 1414: class __arrow_proxy 1414: { 1414: iter_value_t<_It> _M_keep; 1414: 1414: constexpr 1414: __arrow_proxy(iter_reference_t<_It>&& __x) 1414: : _M_keep(std::move(__x)) { } 1414: 1414: friend class common_iterator; 1414: 1414: public: 1414: constexpr const iter_value_t<_It>* 1414: operator->() const noexcept 1414: { return std::__addressof(_M_keep); } 1414: }; 1414: 1414: class __postfix_proxy 1414: { 1414: iter_value_t<_It> _M_keep; 1414: 1414: constexpr 1414: __postfix_proxy(iter_reference_t<_It>&& __x) 1414: : _M_keep(std::forward>(__x)) { } 1414: 1414: friend class common_iterator; 1414: 1414: public: 1414: constexpr const iter_value_t<_It>& 1414: operator*() const noexcept 1414: { return _M_keep; } 1414: }; 1414: 1414: public: 1414: constexpr 1414: common_iterator() 1414: noexcept(is_nothrow_default_constructible_v<_It>) 1414: requires default_initializable<_It> 1414: : _M_it(), _M_index(0) 1414: { } 1414: 1414: constexpr 1414: common_iterator(_It __i) 1414: noexcept(is_nothrow_move_constructible_v<_It>) 1414: : _M_it(std::move(__i)), _M_index(0) 1414: { } 1414: 1414: constexpr 1414: common_iterator(_Sent __s) 1414: noexcept(is_nothrow_move_constructible_v<_Sent>) 1414: : _M_sent(std::move(__s)), _M_index(1) 1414: { } 1414: 1414: template 1414: requires convertible_to 1414: && convertible_to 1414: constexpr 1414: common_iterator(const common_iterator<_It2, _Sent2>& __x) 1414: noexcept(_S_noexcept()) 1414: : _M_valueless(), _M_index(__x._M_index) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__x._M_has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: if (_M_index == 0) 1414: { 1414: if constexpr (is_trivially_default_constructible_v<_It>) 1414: _M_it = std::move(__x._M_it); 1414: else 1414: std::construct_at(std::__addressof(_M_it), __x._M_it); 1414: } 1414: else if (_M_index == 1) 1414: { 1414: if constexpr (is_trivially_default_constructible_v<_Sent>) 1414: _M_sent = std::move(__x._M_sent); 1414: else 1414: std::construct_at(std::__addressof(_M_sent), __x._M_sent); 1414: } 1414: } 1414: 1414: common_iterator(const common_iterator&) = default; 1414: 1414: constexpr 1414: common_iterator(const common_iterator& __x) 1414: noexcept(_S_noexcept()) 1414: requires (!is_trivially_copyable_v<_It> || !is_trivially_copyable_v<_Sent>) 1414: : _M_valueless(), _M_index(__x._M_index) 1414: { 1414: if (_M_index == 0) 1414: { 1414: if constexpr (is_trivially_default_constructible_v<_It>) 1414: _M_it = __x._M_it; 1414: else 1414: std::construct_at(std::__addressof(_M_it), __x._M_it); 1414: } 1414: else if (_M_index == 1) 1414: { 1414: if constexpr (is_trivially_default_constructible_v<_Sent>) 1414: _M_sent = __x._M_sent; 1414: else 1414: std::construct_at(std::__addressof(_M_sent), __x._M_sent); 1414: } 1414: } 1414: 1414: common_iterator(common_iterator&&) = default; 1414: 1414: constexpr 1414: common_iterator(common_iterator&& __x) 1414: noexcept(_S_noexcept<_It, _Sent>()) 1414: requires (!is_trivially_copyable_v<_It> || !is_trivially_copyable_v<_Sent>) 1414: : _M_valueless(), _M_index(__x._M_index) 1414: { 1414: if (_M_index == 0) 1414: { 1414: if constexpr (is_trivially_default_constructible_v<_It>) 1414: _M_it = std::move(__x._M_it); 1414: else 1414: std::construct_at(std::__addressof(_M_it), std::move(__x._M_it)); 1414: } 1414: else if (_M_index == 1) 1414: { 1414: if constexpr (is_trivially_default_constructible_v<_Sent>) 1414: _M_sent = std::move(__x._M_sent); 1414: else 1414: std::construct_at(std::__addressof(_M_sent), 1414: std::move(__x._M_sent)); 1414: } 1414: } 1414: 1414: constexpr common_iterator& 1414: operator=(const common_iterator&) = default; 1414: 1414: constexpr common_iterator& 1414: operator=(const common_iterator& __x) 1414: noexcept(is_nothrow_copy_assignable_v<_It> 1414: && is_nothrow_copy_assignable_v<_Sent> 1414: && is_nothrow_copy_constructible_v<_It> 1414: && is_nothrow_copy_constructible_v<_Sent>) 1414: requires (!is_trivially_copy_assignable_v<_It> 1414: || !is_trivially_copy_assignable_v<_Sent>) 1414: { 1414: _M_assign(__x); 1414: return *this; 1414: } 1414: 1414: constexpr common_iterator& 1414: operator=(common_iterator&&) = default; 1414: 1414: constexpr common_iterator& 1414: operator=(common_iterator&& __x) 1414: noexcept(is_nothrow_move_assignable_v<_It> 1414: && is_nothrow_move_assignable_v<_Sent> 1414: && is_nothrow_move_constructible_v<_It> 1414: && is_nothrow_move_constructible_v<_Sent>) 1414: requires (!is_trivially_move_assignable_v<_It> 1414: || !is_trivially_move_assignable_v<_Sent>) 1414: { 1414: _M_assign(std::move(__x)); 1414: return *this; 1414: } 1414: 1414: template 1414: requires convertible_to 1414: && convertible_to 1414: && assignable_from<_It&, const _It2&> 1414: && assignable_from<_Sent&, const _Sent2&> 1414: constexpr common_iterator& 1414: operator=(const common_iterator<_It2, _Sent2>& __x) 1414: noexcept(is_nothrow_constructible_v<_It, const _It2&> 1414: && is_nothrow_constructible_v<_Sent, const _Sent2&> 1414: && is_nothrow_assignable_v<_It&, const _It2&> 1414: && is_nothrow_assignable_v<_Sent&, const _Sent2&>) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__x._M_has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: _M_assign(__x); 1414: return *this; 1414: } 1414: 1414: 1414: ~common_iterator() = default; 1414: 1414: constexpr 1414: ~common_iterator() 1414: requires (!is_trivially_destructible_v<_It> 1414: || !is_trivially_destructible_v<_Sent>) 1414: 1414: 1414: 1414: 1414: { 1414: if (_M_index == 0) 1414: _M_it.~_It(); 1414: else if (_M_index == 1) 1414: _M_sent.~_Sent(); 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr decltype(auto) 1414: operator*() 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_index == 0)) std::__glibcxx_assert_fail(); } while (false); 1414: return *_M_it; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr decltype(auto) 1414: operator*() const requires __detail::__dereferenceable 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_index == 0)) std::__glibcxx_assert_fail(); } while (false); 1414: return *_M_it; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr auto 1414: operator->() const requires __detail::__common_iter_has_arrow<_It> 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_index == 0)) std::__glibcxx_assert_fail(); } while (false); 1414: if constexpr (is_pointer_v<_It> || requires { _M_it.operator->(); }) 1414: return _M_it; 1414: else if constexpr (is_reference_v>) 1414: { 1414: auto&& __tmp = *_M_it; 1414: return std::__addressof(__tmp); 1414: } 1414: else 1414: return __arrow_proxy{*_M_it}; 1414: } 1414: 1414: constexpr common_iterator& 1414: operator++() 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_index == 0)) std::__glibcxx_assert_fail(); } while (false); 1414: ++_M_it; 1414: return *this; 1414: } 1414: 1414: constexpr decltype(auto) 1414: operator++(int) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_index == 0)) std::__glibcxx_assert_fail(); } while (false); 1414: if constexpr (forward_iterator<_It>) 1414: { 1414: common_iterator __tmp = *this; 1414: ++*this; 1414: return __tmp; 1414: } 1414: else if constexpr (!__detail::__common_iter_use_postfix_proxy<_It>) 1414: return _M_it++; 1414: else 1414: { 1414: __postfix_proxy __p(**this); 1414: ++*this; 1414: return __p; 1414: } 1414: } 1414: 1414: template _Sent2> 1414: requires sentinel_for<_Sent, _It2> 1414: friend constexpr bool 1414: operator== [[nodiscard]] (const common_iterator& __x, 1414: const common_iterator<_It2, _Sent2>& __y) 1414: { 1414: switch(__x._M_index << 2 | __y._M_index) 1414: { 1414: case 0b0000: 1414: case 0b0101: 1414: return true; 1414: case 0b0001: 1414: return __x._M_it == __y._M_sent; 1414: case 0b0100: 1414: return __x._M_sent == __y._M_it; 1414: default: 1414: do { if (std::__is_constant_evaluated() && !bool(__x._M_has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: do { if (std::__is_constant_evaluated() && !bool(__y._M_has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: __builtin_unreachable(); 1414: } 1414: } 1414: 1414: template _Sent2> 1414: requires sentinel_for<_Sent, _It2> && equality_comparable_with<_It, _It2> 1414: friend constexpr bool 1414: operator== [[nodiscard]] (const common_iterator& __x, 1414: const common_iterator<_It2, _Sent2>& __y) 1414: { 1414: switch(__x._M_index << 2 | __y._M_index) 1414: { 1414: case 0b0101: 1414: return true; 1414: case 0b0000: 1414: return __x._M_it == __y._M_it; 1414: case 0b0001: 1414: return __x._M_it == __y._M_sent; 1414: case 0b0100: 1414: return __x._M_sent == __y._M_it; 1414: default: 1414: do { if (std::__is_constant_evaluated() && !bool(__x._M_has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: do { if (std::__is_constant_evaluated() && !bool(__y._M_has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: __builtin_unreachable(); 1414: } 1414: } 1414: 1414: template _It2, sized_sentinel_for<_It> _Sent2> 1414: requires sized_sentinel_for<_Sent, _It2> 1414: friend constexpr iter_difference_t<_It2> 1414: operator- [[nodiscard]] (const common_iterator& __x, 1414: const common_iterator<_It2, _Sent2>& __y) 1414: { 1414: switch(__x._M_index << 2 | __y._M_index) 1414: { 1414: case 0b0101: 1414: return 0; 1414: case 0b0000: 1414: return __x._M_it - __y._M_it; 1414: case 0b0001: 1414: return __x._M_it - __y._M_sent; 1414: case 0b0100: 1414: return __x._M_sent - __y._M_it; 1414: default: 1414: do { if (std::__is_constant_evaluated() && !bool(__x._M_has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: do { if (std::__is_constant_evaluated() && !bool(__y._M_has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: __builtin_unreachable(); 1414: } 1414: } 1414: 1414: [[nodiscard]] 1414: friend constexpr iter_rvalue_reference_t<_It> 1414: iter_move(const common_iterator& __i) 1414: noexcept(noexcept(ranges::iter_move(std::declval()))) 1414: requires input_iterator<_It> 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__i._M_index == 0)) std::__glibcxx_assert_fail(); } while (false); 1414: return ranges::iter_move(__i._M_it); 1414: } 1414: 1414: template _It2, typename _Sent2> 1414: friend constexpr void 1414: iter_swap(const common_iterator& __x, 1414: const common_iterator<_It2, _Sent2>& __y) 1414: noexcept(noexcept(ranges::iter_swap(std::declval(), 1414: std::declval()))) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__x._M_index == 0)) std::__glibcxx_assert_fail(); } while (false); 1414: do { if (std::__is_constant_evaluated() && !bool(__y._M_index == 0)) std::__glibcxx_assert_fail(); } while (false); 1414: return ranges::iter_swap(__x._M_it, __y._M_it); 1414: } 1414: 1414: private: 1414: template _Sent2> 1414: requires (!same_as<_It2, _Sent2>) && copyable<_It2> 1414: friend class common_iterator; 1414: 1414: constexpr bool 1414: _M_has_value() const noexcept { return _M_index != _S_valueless; } 1414: 1414: template 1414: constexpr void 1414: _M_assign(_CIt&& __x) 1414: { 1414: if (_M_index == __x._M_index) 1414: { 1414: if (_M_index == 0) 1414: _M_it = std::forward<_CIt>(__x)._M_it; 1414: else if (_M_index == 1) 1414: _M_sent = std::forward<_CIt>(__x)._M_sent; 1414: } 1414: else 1414: { 1414: if (_M_index == 0) 1414: _M_it.~_It(); 1414: else if (_M_index == 1) 1414: _M_sent.~_Sent(); 1414: _M_index = _S_valueless; 1414: 1414: if (__x._M_index == 0) 1414: std::construct_at(std::__addressof(_M_it), 1414: std::forward<_CIt>(__x)._M_it); 1414: else if (__x._M_index == 1) 1414: std::construct_at(std::__addressof(_M_sent), 1414: std::forward<_CIt>(__x)._M_sent); 1414: _M_index = __x._M_index; 1414: } 1414: } 1414: 1414: union 1414: { 1414: _It _M_it; 1414: _Sent _M_sent; 1414: unsigned char _M_valueless; 1414: }; 1414: unsigned char _M_index; 1414: 1414: static constexpr unsigned char _S_valueless{2}; 1414: }; 1414: 1414: template 1414: struct incrementable_traits> 1414: { 1414: using difference_type = iter_difference_t<_It>; 1414: }; 1414: 1414: template 1414: struct iterator_traits> 1414: { 1414: private: 1414: template 1414: struct __ptr 1414: { 1414: using type = void; 1414: }; 1414: 1414: template 1414: requires __detail::__common_iter_has_arrow<_Iter> 1414: struct __ptr<_Iter> 1414: { 1414: using _CIter = common_iterator<_Iter, _Sent>; 1414: using type = decltype(std::declval().operator->()); 1414: }; 1414: 1414: static auto 1414: _S_iter_cat() 1414: { 1414: if constexpr (requires { requires derived_from<__iter_category_t<_It>, 1414: forward_iterator_tag>; }) 1414: return forward_iterator_tag{}; 1414: else 1414: return input_iterator_tag{}; 1414: } 1414: 1414: public: 1414: using iterator_concept = __conditional_t, 1414: forward_iterator_tag, 1414: input_iterator_tag>; 1414: using iterator_category = decltype(_S_iter_cat()); 1414: using value_type = iter_value_t<_It>; 1414: using difference_type = iter_difference_t<_It>; 1414: using pointer = typename __ptr<_It>::type; 1414: using reference = iter_reference_t<_It>; 1414: }; 1414: 1414: 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: struct __counted_iter_value_type 1414: { }; 1414: 1414: template 1414: struct __counted_iter_value_type<_It> 1414: { using value_type = iter_value_t<_It>; }; 1414: 1414: template 1414: struct __counted_iter_concept 1414: { }; 1414: 1414: template 1414: requires requires { typename _It::iterator_concept; } 1414: struct __counted_iter_concept<_It> 1414: { using iterator_concept = typename _It::iterator_concept; }; 1414: 1414: template 1414: struct __counted_iter_cat 1414: { }; 1414: 1414: template 1414: requires requires { typename _It::iterator_category; } 1414: struct __counted_iter_cat<_It> 1414: { using iterator_category = typename _It::iterator_category; }; 1414: } 1414: 1414: 1414: 1414: template 1414: class counted_iterator 1414: : public __detail::__counted_iter_value_type<_It>, 1414: public __detail::__counted_iter_concept<_It>, 1414: public __detail::__counted_iter_cat<_It> 1414: { 1414: public: 1414: using iterator_type = _It; 1414: 1414: using difference_type = iter_difference_t<_It>; 1414: 1414: 1414: 1414: constexpr counted_iterator() requires default_initializable<_It> = default; 1414: 1414: constexpr 1414: counted_iterator(_It __i, iter_difference_t<_It> __n) 1414: : _M_current(std::move(__i)), _M_length(__n) 1414: { do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) std::__glibcxx_assert_fail(); } while (false); } 1414: 1414: template 1414: requires convertible_to 1414: constexpr 1414: counted_iterator(const counted_iterator<_It2>& __x) 1414: : _M_current(__x._M_current), _M_length(__x._M_length) 1414: { } 1414: 1414: template 1414: requires assignable_from<_It&, const _It2&> 1414: constexpr counted_iterator& 1414: operator=(const counted_iterator<_It2>& __x) 1414: { 1414: _M_current = __x._M_current; 1414: _M_length = __x._M_length; 1414: return *this; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr const _It& 1414: base() const & noexcept 1414: { return _M_current; } 1414: 1414: [[nodiscard]] 1414: constexpr _It 1414: base() && 1414: noexcept(is_nothrow_move_constructible_v<_It>) 1414: { return std::move(_M_current); } 1414: 1414: [[nodiscard]] 1414: constexpr iter_difference_t<_It> 1414: count() const noexcept { return _M_length; } 1414: 1414: [[nodiscard]] 1414: constexpr decltype(auto) 1414: operator*() 1414: noexcept(noexcept(*_M_current)) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_length > 0)) std::__glibcxx_assert_fail(); } while (false); 1414: return *_M_current; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr decltype(auto) 1414: operator*() const 1414: noexcept(noexcept(*_M_current)) 1414: requires __detail::__dereferenceable 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_length > 0)) std::__glibcxx_assert_fail(); } while (false); 1414: return *_M_current; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr auto 1414: operator->() const noexcept 1414: requires contiguous_iterator<_It> 1414: { return std::to_address(_M_current); } 1414: 1414: constexpr counted_iterator& 1414: operator++() 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_length > 0)) std::__glibcxx_assert_fail(); } while (false); 1414: ++_M_current; 1414: --_M_length; 1414: return *this; 1414: } 1414: 1414: constexpr decltype(auto) 1414: operator++(int) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_length > 0)) std::__glibcxx_assert_fail(); } while (false); 1414: --_M_length; 1414: try 1414: { 1414: return _M_current++; 1414: } catch(...) { 1414: ++_M_length; 1414: throw; 1414: } 1414: } 1414: 1414: constexpr counted_iterator 1414: operator++(int) requires forward_iterator<_It> 1414: { 1414: auto __tmp = *this; 1414: ++*this; 1414: return __tmp; 1414: } 1414: 1414: constexpr counted_iterator& 1414: operator--() requires bidirectional_iterator<_It> 1414: { 1414: --_M_current; 1414: ++_M_length; 1414: return *this; 1414: } 1414: 1414: constexpr counted_iterator 1414: operator--(int) requires bidirectional_iterator<_It> 1414: { 1414: auto __tmp = *this; 1414: --*this; 1414: return __tmp; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr counted_iterator 1414: operator+(iter_difference_t<_It> __n) const 1414: requires random_access_iterator<_It> 1414: { return counted_iterator(_M_current + __n, _M_length - __n); } 1414: 1414: [[nodiscard]] 1414: friend constexpr counted_iterator 1414: operator+(iter_difference_t<_It> __n, const counted_iterator& __x) 1414: requires random_access_iterator<_It> 1414: { return __x + __n; } 1414: 1414: constexpr counted_iterator& 1414: operator+=(iter_difference_t<_It> __n) 1414: requires random_access_iterator<_It> 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__n <= _M_length)) std::__glibcxx_assert_fail(); } while (false); 1414: _M_current += __n; 1414: _M_length -= __n; 1414: return *this; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr counted_iterator 1414: operator-(iter_difference_t<_It> __n) const 1414: requires random_access_iterator<_It> 1414: { return counted_iterator(_M_current - __n, _M_length + __n); } 1414: 1414: template _It2> 1414: [[nodiscard]] 1414: friend constexpr iter_difference_t<_It2> 1414: operator-(const counted_iterator& __x, 1414: const counted_iterator<_It2>& __y) noexcept 1414: { return __y._M_length - __x._M_length; } 1414: 1414: [[nodiscard]] 1414: friend constexpr iter_difference_t<_It> 1414: operator-(const counted_iterator& __x, default_sentinel_t) noexcept 1414: { return -__x._M_length; } 1414: 1414: [[nodiscard]] 1414: friend constexpr iter_difference_t<_It> 1414: operator-(default_sentinel_t, const counted_iterator& __y) noexcept 1414: { return __y._M_length; } 1414: 1414: constexpr counted_iterator& 1414: operator-=(iter_difference_t<_It> __n) 1414: requires random_access_iterator<_It> 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(-__n <= _M_length)) std::__glibcxx_assert_fail(); } while (false); 1414: _M_current -= __n; 1414: _M_length += __n; 1414: return *this; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr decltype(auto) 1414: operator[](iter_difference_t<_It> __n) const 1414: noexcept(noexcept(_M_current[__n])) 1414: requires random_access_iterator<_It> 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__n < _M_length)) std::__glibcxx_assert_fail(); } while (false); 1414: return _M_current[__n]; 1414: } 1414: 1414: template _It2> 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator==(const counted_iterator& __x, 1414: const counted_iterator<_It2>& __y) noexcept 1414: { return __x._M_length == __y._M_length; } 1414: 1414: [[nodiscard]] 1414: friend constexpr bool 1414: operator==(const counted_iterator& __x, default_sentinel_t) noexcept 1414: { return __x._M_length == 0; } 1414: 1414: template _It2> 1414: [[nodiscard]] 1414: friend constexpr strong_ordering 1414: operator<=>(const counted_iterator& __x, 1414: const counted_iterator<_It2>& __y) noexcept 1414: { return __y._M_length <=> __x._M_length; } 1414: 1414: [[nodiscard]] 1414: friend constexpr iter_rvalue_reference_t<_It> 1414: iter_move(const counted_iterator& __i) 1414: noexcept(noexcept(ranges::iter_move(__i._M_current))) 1414: requires input_iterator<_It> 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__i._M_length > 0)) std::__glibcxx_assert_fail(); } while (false); 1414: return ranges::iter_move(__i._M_current); 1414: } 1414: 1414: template _It2> 1414: friend constexpr void 1414: iter_swap(const counted_iterator& __x, 1414: const counted_iterator<_It2>& __y) 1414: noexcept(noexcept(ranges::iter_swap(__x._M_current, __y._M_current))) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__x._M_length > 0 && __y._M_length > 0)) std::__glibcxx_assert_fail(); } while (false); 1414: ranges::iter_swap(__x._M_current, __y._M_current); 1414: } 1414: 1414: private: 1414: template friend class counted_iterator; 1414: 1414: _It _M_current = _It(); 1414: iter_difference_t<_It> _M_length = 0; 1414: }; 1414: 1414: template 1414: requires same_as<__detail::__iter_traits<_It>, iterator_traits<_It>> 1414: struct iterator_traits> : iterator_traits<_It> 1414: { 1414: using pointer = __conditional_t, 1414: add_pointer_t>, 1414: void>; 1414: }; 1414: # 2993 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: 1414: } 1414: 1414: namespace __gnu_debug 1414: { 1414: template 1414: class _Safe_iterator; 1414: } 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] __attribute__((__always_inline__)) 1414: constexpr 1414: inline _Iterator 1414: __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) 1414: noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) 1414: { return __it.base(); } 1414: 1414: 1414: template 1414: [[__nodiscard__]] __attribute__((__always_inline__)) 1414: constexpr 1414: inline _Iterator 1414: __niter_base(_Iterator __it) 1414: noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) 1414: { return __it; } 1414: # 3040 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: constexpr 1414: decltype(std::__niter_base(std::declval<_Ite>())) 1414: __niter_base(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, 1414: std::random_access_iterator_tag>&) 1414: noexcept(std::is_nothrow_copy_constructible<_Ite>::value); 1414: 1414: 1414: 1414: template 1414: constexpr 1414: inline auto 1414: __niter_base(reverse_iterator<_Iterator> __it) 1414: -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) 1414: { return __make_reverse_iterator(__niter_base(__it.base())); } 1414: 1414: template 1414: constexpr 1414: inline auto 1414: __niter_base(move_iterator<_Iterator> __it) 1414: -> decltype(make_move_iterator(__niter_base(__it.base()))) 1414: { return make_move_iterator(__niter_base(__it.base())); } 1414: 1414: template 1414: constexpr 1414: inline auto 1414: __miter_base(reverse_iterator<_Iterator> __it) 1414: -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) 1414: { return __make_reverse_iterator(__miter_base(__it.base())); } 1414: 1414: template 1414: constexpr 1414: inline auto 1414: __miter_base(move_iterator<_Iterator> __it) 1414: -> decltype(__miter_base(__it.base())) 1414: { return __miter_base(__it.base()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] 1414: constexpr 1414: inline _From 1414: __niter_wrap(_From __from, _To __res) 1414: { return __from + (std::__niter_base(__res) - std::__niter_base(__from)); } 1414: 1414: 1414: template 1414: [[__nodiscard__]] __attribute__((__always_inline__)) 1414: constexpr 1414: inline _Iterator 1414: __niter_wrap(const _Iterator&, _Iterator __res) 1414: { return __res; } 1414: # 3105 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_iterator.h" 3 1414: template 1414: using __iter_key_t = __remove_cvref_t< 1414: 1414: 1414: 1414: typename iterator_traits<_InputIterator>::value_type::first_type>; 1414: 1414: 1414: template 1414: using __iter_val_t = __remove_cvref_t< 1414: 1414: 1414: 1414: typename iterator_traits<_InputIterator>::value_type::second_type>; 1414: 1414: 1414: template 1414: struct pair; 1414: 1414: template 1414: using __iter_to_alloc_t 1414: = pair, __iter_val_t<_InputIterator>>; 1414: 1414: 1414: 1414: } 1414: # 67 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/debug/debug.h" 1 3 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/debug/debug.h" 3 1414: namespace std 1414: { 1414: namespace __debug { } 1414: } 1414: 1414: 1414: 1414: 1414: namespace __gnu_debug 1414: { 1414: using namespace std::__debug; 1414: 1414: template 1414: class _Safe_iterator; 1414: } 1414: # 69 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/predefined_ops.h" 1 3 1414: # 33 "/usr/arm-linux-gnueabihf/include/c++/16/bits/predefined_ops.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 1 3 1414: # 66 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 119 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: template 1414: struct unary_function 1414: { 1414: 1414: typedef _Arg argument_type; 1414: 1414: 1414: typedef _Result result_type; 1414: } __attribute__ ((__deprecated__)); 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct binary_function 1414: { 1414: 1414: typedef _Arg1 first_argument_type; 1414: 1414: 1414: typedef _Arg2 second_argument_type; 1414: 1414: 1414: typedef _Result result_type; 1414: } __attribute__ ((__deprecated__)); 1414: # 160 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: struct __is_transparent; 1414: 1414: template 1414: struct plus; 1414: 1414: template 1414: struct minus; 1414: 1414: template 1414: struct multiplies; 1414: 1414: template 1414: struct divides; 1414: 1414: template 1414: struct modulus; 1414: 1414: template 1414: struct negate; 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: 1414: 1414: template 1414: struct plus : public binary_function<_Tp, _Tp, _Tp> 1414: { 1414: 1414: constexpr 1414: _Tp 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x + __y; } 1414: }; 1414: 1414: 1414: template 1414: struct minus : public binary_function<_Tp, _Tp, _Tp> 1414: { 1414: constexpr 1414: _Tp 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x - __y; } 1414: }; 1414: 1414: 1414: template 1414: struct multiplies : public binary_function<_Tp, _Tp, _Tp> 1414: { 1414: constexpr 1414: _Tp 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x * __y; } 1414: }; 1414: 1414: 1414: template 1414: struct divides : public binary_function<_Tp, _Tp, _Tp> 1414: { 1414: constexpr 1414: _Tp 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x / __y; } 1414: }; 1414: 1414: 1414: template 1414: struct modulus : public binary_function<_Tp, _Tp, _Tp> 1414: { 1414: constexpr 1414: _Tp 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x % __y; } 1414: }; 1414: 1414: 1414: template 1414: struct negate : public unary_function<_Tp, _Tp> 1414: { 1414: constexpr 1414: _Tp 1414: operator()(const _Tp& __x) const 1414: { return -__x; } 1414: }; 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: template<> 1414: struct plus 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) + std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) + std::forward<_Up>(__u)) 1414: { return std::forward<_Tp>(__t) + std::forward<_Up>(__u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: 1414: template<> 1414: struct minus 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) - std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) - std::forward<_Up>(__u)) 1414: { return std::forward<_Tp>(__t) - std::forward<_Up>(__u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: 1414: template<> 1414: struct multiplies 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) * std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) * std::forward<_Up>(__u)) 1414: { return std::forward<_Tp>(__t) * std::forward<_Up>(__u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: 1414: template<> 1414: struct divides 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) / std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) / std::forward<_Up>(__u)) 1414: { return std::forward<_Tp>(__t) / std::forward<_Up>(__u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: 1414: template<> 1414: struct modulus 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) % std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) % std::forward<_Up>(__u)) 1414: { return std::forward<_Tp>(__t) % std::forward<_Up>(__u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: 1414: template<> 1414: struct negate 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t) const 1414: noexcept(noexcept(-std::forward<_Tp>(__t))) 1414: -> decltype(-std::forward<_Tp>(__t)) 1414: { return -std::forward<_Tp>(__t); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: # 349 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: template 1414: struct equal_to; 1414: 1414: template 1414: struct not_equal_to; 1414: 1414: template 1414: struct greater; 1414: 1414: template 1414: struct less; 1414: 1414: template 1414: struct greater_equal; 1414: 1414: template 1414: struct less_equal; 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: 1414: 1414: template 1414: struct equal_to : public binary_function<_Tp, _Tp, bool> 1414: { 1414: constexpr 1414: bool 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x == __y; } 1414: }; 1414: 1414: 1414: template 1414: struct not_equal_to : public binary_function<_Tp, _Tp, bool> 1414: { 1414: constexpr 1414: bool 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x != __y; } 1414: }; 1414: 1414: 1414: template 1414: struct greater : public binary_function<_Tp, _Tp, bool> 1414: { 1414: constexpr 1414: bool 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x > __y; } 1414: }; 1414: 1414: 1414: template 1414: struct less : public binary_function<_Tp, _Tp, bool> 1414: { 1414: constexpr 1414: bool 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x < __y; } 1414: }; 1414: 1414: 1414: template 1414: struct greater_equal : public binary_function<_Tp, _Tp, bool> 1414: { 1414: constexpr 1414: bool 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x >= __y; } 1414: }; 1414: 1414: 1414: template 1414: struct less_equal : public binary_function<_Tp, _Tp, bool> 1414: { 1414: constexpr 1414: bool 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x <= __y; } 1414: }; 1414: 1414: 1414: template 1414: struct greater<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 1414: { 1414: constexpr bool 1414: operator()(_Tp* __x, _Tp* __y) const noexcept 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __x > __y; 1414: 1414: return (unsigned int)__x > (unsigned int)__y; 1414: } 1414: }; 1414: 1414: 1414: template 1414: struct less<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 1414: { 1414: constexpr bool 1414: operator()(_Tp* __x, _Tp* __y) const noexcept 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __x < __y; 1414: 1414: return (unsigned int)__x < (unsigned int)__y; 1414: } 1414: }; 1414: 1414: 1414: template 1414: struct greater_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 1414: { 1414: constexpr bool 1414: operator()(_Tp* __x, _Tp* __y) const noexcept 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __x >= __y; 1414: 1414: return (unsigned int)__x >= (unsigned int)__y; 1414: } 1414: }; 1414: 1414: 1414: template 1414: struct less_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 1414: { 1414: constexpr bool 1414: operator()(_Tp* __x, _Tp* __y) const noexcept 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __x <= __y; 1414: 1414: return (unsigned int)__x <= (unsigned int)__y; 1414: } 1414: }; 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: template<> 1414: struct equal_to 1414: { 1414: template 1414: constexpr auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) == std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) == std::forward<_Up>(__u)) 1414: { return std::forward<_Tp>(__t) == std::forward<_Up>(__u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: 1414: template<> 1414: struct not_equal_to 1414: { 1414: template 1414: constexpr auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) != std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) != std::forward<_Up>(__u)) 1414: { return std::forward<_Tp>(__t) != std::forward<_Up>(__u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: 1414: template<> 1414: struct greater 1414: { 1414: template 1414: constexpr auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) > std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) > std::forward<_Up>(__u)) 1414: { 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: if constexpr (__ptr_cmp<_Tp, _Up>) 1414: return greater{}( 1414: static_cast(std::forward<_Tp>(__t)), 1414: static_cast(std::forward<_Up>(__u))); 1414: else 1414: return std::forward<_Tp>(__t) > std::forward<_Up>(__u); 1414: #pragma GCC diagnostic pop 1414: } 1414: 1414: template 1414: constexpr bool 1414: operator()(_Tp* __t, _Up* __u) const noexcept 1414: { return greater>{}(__t, __u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: 1414: private: 1414: 1414: template 1414: static constexpr bool __ptr_cmp = requires 1414: { 1414: requires 1414: ! requires 1414: { operator>(std::declval<_Tp>(), std::declval<_Up>()); } 1414: && ! requires 1414: { std::declval<_Tp>().operator>(std::declval<_Up>()); } 1414: && __detail::__not_overloaded_spaceship<_Tp, _Up> 1414: && is_convertible_v<_Tp, const volatile void*> 1414: && is_convertible_v<_Up, const volatile void*>; 1414: }; 1414: # 590 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: }; 1414: 1414: 1414: template<> 1414: struct less 1414: { 1414: template 1414: constexpr auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) < std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) < std::forward<_Up>(__u)) 1414: { 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: if constexpr (__ptr_cmp<_Tp, _Up>) 1414: return less{}( 1414: static_cast(std::forward<_Tp>(__t)), 1414: static_cast(std::forward<_Up>(__u))); 1414: else 1414: return std::forward<_Tp>(__t) < std::forward<_Up>(__u); 1414: #pragma GCC diagnostic pop 1414: } 1414: 1414: template 1414: constexpr bool 1414: operator()(_Tp* __t, _Up* __u) const noexcept 1414: { return less>{}(__t, __u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: 1414: private: 1414: 1414: template 1414: static constexpr bool __ptr_cmp = requires 1414: { 1414: requires 1414: ! requires 1414: { operator<(std::declval<_Tp>(), std::declval<_Up>()); } 1414: && ! requires 1414: { std::declval<_Tp>().operator<(std::declval<_Up>()); } 1414: && __detail::__not_overloaded_spaceship<_Tp, _Up> 1414: && is_convertible_v<_Tp, const volatile void*> 1414: && is_convertible_v<_Up, const volatile void*>; 1414: }; 1414: # 661 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: }; 1414: 1414: 1414: template<> 1414: struct greater_equal 1414: { 1414: template 1414: constexpr auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) >= std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) >= std::forward<_Up>(__u)) 1414: { 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: if constexpr (__ptr_cmp<_Tp, _Up>) 1414: return greater_equal{}( 1414: static_cast(std::forward<_Tp>(__t)), 1414: static_cast(std::forward<_Up>(__u))); 1414: else 1414: return std::forward<_Tp>(__t) >= std::forward<_Up>(__u); 1414: #pragma GCC diagnostic pop 1414: } 1414: 1414: template 1414: constexpr bool 1414: operator()(_Tp* __t, _Up* __u) const noexcept 1414: { return greater_equal>{}(__t, __u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: 1414: private: 1414: 1414: template 1414: static constexpr bool __ptr_cmp = requires 1414: { 1414: requires 1414: ! requires 1414: { operator>=(std::declval<_Tp>(), std::declval<_Up>()); } 1414: && ! requires 1414: { std::declval<_Tp>().operator>=(std::declval<_Up>()); } 1414: && __detail::__not_overloaded_spaceship<_Tp, _Up> 1414: && is_convertible_v<_Tp, const volatile void*> 1414: && is_convertible_v<_Up, const volatile void*>; 1414: }; 1414: # 732 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: }; 1414: 1414: 1414: template<> 1414: struct less_equal 1414: { 1414: template 1414: constexpr auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) <= std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) <= std::forward<_Up>(__u)) 1414: { 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: if constexpr (__ptr_cmp<_Tp, _Up>) 1414: return less_equal{}( 1414: static_cast(std::forward<_Tp>(__t)), 1414: static_cast(std::forward<_Up>(__u))); 1414: else 1414: return std::forward<_Tp>(__t) <= std::forward<_Up>(__u); 1414: #pragma GCC diagnostic pop 1414: } 1414: 1414: template 1414: constexpr bool 1414: operator()(_Tp* __t, _Up* __u) const noexcept 1414: { return less_equal>{}(__t, __u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: 1414: private: 1414: 1414: template 1414: static constexpr bool __ptr_cmp = requires 1414: { 1414: requires 1414: ! requires 1414: { operator<=(std::declval<_Tp>(), std::declval<_Up>()); } 1414: && ! requires 1414: { std::declval<_Tp>().operator<=(std::declval<_Up>()); } 1414: && __detail::__not_overloaded_spaceship<_Tp, _Up> 1414: && is_convertible_v<_Tp, const volatile void*> 1414: && is_convertible_v<_Up, const volatile void*>; 1414: }; 1414: # 803 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: }; 1414: # 869 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: template 1414: struct logical_and; 1414: 1414: template 1414: struct logical_or; 1414: 1414: template 1414: struct logical_not; 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: 1414: 1414: template 1414: struct logical_and : public binary_function<_Tp, _Tp, bool> 1414: { 1414: constexpr 1414: bool 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x && __y; } 1414: }; 1414: 1414: 1414: template 1414: struct logical_or : public binary_function<_Tp, _Tp, bool> 1414: { 1414: constexpr 1414: bool 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x || __y; } 1414: }; 1414: 1414: 1414: template 1414: struct logical_not : public unary_function<_Tp, bool> 1414: { 1414: constexpr 1414: bool 1414: operator()(const _Tp& __x) const 1414: { return !__x; } 1414: }; 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: template<> 1414: struct logical_and 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) && std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) && std::forward<_Up>(__u)) 1414: { return std::forward<_Tp>(__t) && std::forward<_Up>(__u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: 1414: template<> 1414: struct logical_or 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) || std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) || std::forward<_Up>(__u)) 1414: { return std::forward<_Tp>(__t) || std::forward<_Up>(__u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: 1414: template<> 1414: struct logical_not 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t) const 1414: noexcept(noexcept(!std::forward<_Tp>(__t))) 1414: -> decltype(!std::forward<_Tp>(__t)) 1414: { return !std::forward<_Tp>(__t); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: 1414: 1414: 1414: template 1414: struct bit_and; 1414: 1414: template 1414: struct bit_or; 1414: 1414: template 1414: struct bit_xor; 1414: 1414: template 1414: struct bit_not; 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: 1414: 1414: 1414: template 1414: struct bit_and : public binary_function<_Tp, _Tp, _Tp> 1414: { 1414: constexpr 1414: _Tp 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x & __y; } 1414: }; 1414: 1414: template 1414: struct bit_or : public binary_function<_Tp, _Tp, _Tp> 1414: { 1414: constexpr 1414: _Tp 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x | __y; } 1414: }; 1414: 1414: template 1414: struct bit_xor : public binary_function<_Tp, _Tp, _Tp> 1414: { 1414: constexpr 1414: _Tp 1414: operator()(const _Tp& __x, const _Tp& __y) const 1414: { return __x ^ __y; } 1414: }; 1414: 1414: template 1414: struct bit_not : public unary_function<_Tp, _Tp> 1414: { 1414: constexpr 1414: _Tp 1414: operator()(const _Tp& __x) const 1414: { return ~__x; } 1414: }; 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: template <> 1414: struct bit_and 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) & std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) & std::forward<_Up>(__u)) 1414: { return std::forward<_Tp>(__t) & std::forward<_Up>(__u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: template <> 1414: struct bit_or 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) | std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) | std::forward<_Up>(__u)) 1414: { return std::forward<_Tp>(__t) | std::forward<_Up>(__u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: template <> 1414: struct bit_xor 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t, _Up&& __u) const 1414: noexcept(noexcept(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u))) 1414: -> decltype(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u)) 1414: { return std::forward<_Tp>(__t) ^ std::forward<_Up>(__u); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: template <> 1414: struct bit_not 1414: { 1414: template 1414: constexpr 1414: auto 1414: operator()(_Tp&& __t) const 1414: noexcept(noexcept(~std::forward<_Tp>(__t))) 1414: -> decltype(~std::forward<_Tp>(__t)) 1414: { return ~std::forward<_Tp>(__t); } 1414: 1414: typedef __is_transparent is_transparent; 1414: }; 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: # 1111 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: template 1414: class [[__deprecated__]] unary_negate 1414: : public unary_function 1414: { 1414: protected: 1414: _Predicate _M_pred; 1414: 1414: public: 1414: constexpr 1414: explicit 1414: unary_negate(const _Predicate& __x) : _M_pred(__x) { } 1414: 1414: constexpr 1414: bool 1414: operator()(const typename _Predicate::argument_type& __x) const 1414: { return !_M_pred(__x); } 1414: }; 1414: 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::not_fn" "' instead"))) 1414: constexpr 1414: inline unary_negate<_Predicate> 1414: not1(const _Predicate& __pred) 1414: { return unary_negate<_Predicate>(__pred); } 1414: 1414: 1414: template 1414: class [[__deprecated__]] binary_negate 1414: : public binary_function 1414: { 1414: protected: 1414: _Predicate _M_pred; 1414: 1414: public: 1414: constexpr 1414: explicit 1414: binary_negate(const _Predicate& __x) : _M_pred(__x) { } 1414: 1414: constexpr 1414: bool 1414: operator()(const typename _Predicate::first_argument_type& __x, 1414: const typename _Predicate::second_argument_type& __y) const 1414: { return !_M_pred(__x, __y); } 1414: }; 1414: 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::not_fn" "' instead"))) 1414: constexpr 1414: inline binary_negate<_Predicate> 1414: not2(const _Predicate& __pred) 1414: { return binary_negate<_Predicate>(__pred); } 1414: # 1192 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: template 1414: class pointer_to_unary_function : public unary_function<_Arg, _Result> 1414: { 1414: protected: 1414: _Result (*_M_ptr)(_Arg); 1414: 1414: public: 1414: pointer_to_unary_function() { } 1414: 1414: explicit 1414: pointer_to_unary_function(_Result (*__x)(_Arg)) 1414: : _M_ptr(__x) { } 1414: 1414: _Result 1414: operator()(_Arg __x) const 1414: { return _M_ptr(__x); } 1414: } __attribute__ ((__deprecated__)); 1414: 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::function" "' instead"))) 1414: inline pointer_to_unary_function<_Arg, _Result> 1414: ptr_fun(_Result (*__x)(_Arg)) 1414: { return pointer_to_unary_function<_Arg, _Result>(__x); } 1414: 1414: 1414: template 1414: class pointer_to_binary_function 1414: : public binary_function<_Arg1, _Arg2, _Result> 1414: { 1414: protected: 1414: _Result (*_M_ptr)(_Arg1, _Arg2); 1414: 1414: public: 1414: pointer_to_binary_function() { } 1414: 1414: explicit 1414: pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) 1414: : _M_ptr(__x) { } 1414: 1414: _Result 1414: operator()(_Arg1 __x, _Arg2 __y) const 1414: { return _M_ptr(__x, __y); } 1414: } __attribute__ ((__deprecated__)); 1414: 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::function" "' instead"))) 1414: inline pointer_to_binary_function<_Arg1, _Arg2, _Result> 1414: ptr_fun(_Result (*__x)(_Arg1, _Arg2)) 1414: { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } 1414: 1414: 1414: template 1414: struct _Identity 1414: : public unary_function<_Tp, _Tp> 1414: { 1414: _Tp& 1414: operator()(_Tp& __x) const 1414: { return __x; } 1414: 1414: const _Tp& 1414: operator()(const _Tp& __x) const 1414: { return __x; } 1414: }; 1414: 1414: 1414: template struct _Identity : _Identity<_Tp> { }; 1414: 1414: template 1414: struct _Select1st 1414: : public unary_function<_Pair, typename _Pair::first_type> 1414: { 1414: typename _Pair::first_type& 1414: operator()(_Pair& __x) const 1414: { return __x.first; } 1414: 1414: const typename _Pair::first_type& 1414: operator()(const _Pair& __x) const 1414: { return __x.first; } 1414: 1414: 1414: template 1414: typename _Pair2::first_type& 1414: operator()(_Pair2& __x) const 1414: { return __x.first; } 1414: 1414: template 1414: const typename _Pair2::first_type& 1414: operator()(const _Pair2& __x) const 1414: { return __x.first; } 1414: 1414: }; 1414: 1414: template 1414: struct _Select2nd 1414: : public unary_function<_Pair, typename _Pair::second_type> 1414: { 1414: typename _Pair::second_type& 1414: operator()(_Pair& __x) const 1414: { return __x.second; } 1414: 1414: const typename _Pair::second_type& 1414: operator()(const _Pair& __x) const 1414: { return __x.second; } 1414: }; 1414: # 1319 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: template 1414: class mem_fun_t : public unary_function<_Tp*, _Ret> 1414: { 1414: public: 1414: explicit 1414: mem_fun_t(_Ret (_Tp::*__pf)()) 1414: : _M_f(__pf) { } 1414: 1414: _Ret 1414: operator()(_Tp* __p) const 1414: { return (__p->*_M_f)(); } 1414: 1414: private: 1414: _Ret (_Tp::*_M_f)(); 1414: } __attribute__ ((__deprecated__)); 1414: 1414: 1414: template 1414: class const_mem_fun_t : public unary_function 1414: { 1414: public: 1414: explicit 1414: const_mem_fun_t(_Ret (_Tp::*__pf)() const) 1414: : _M_f(__pf) { } 1414: 1414: _Ret 1414: operator()(const _Tp* __p) const 1414: { return (__p->*_M_f)(); } 1414: 1414: private: 1414: _Ret (_Tp::*_M_f)() const; 1414: } __attribute__ ((__deprecated__)); 1414: 1414: 1414: template 1414: class mem_fun_ref_t : public unary_function<_Tp, _Ret> 1414: { 1414: public: 1414: explicit 1414: mem_fun_ref_t(_Ret (_Tp::*__pf)()) 1414: : _M_f(__pf) { } 1414: 1414: _Ret 1414: operator()(_Tp& __r) const 1414: { return (__r.*_M_f)(); } 1414: 1414: private: 1414: _Ret (_Tp::*_M_f)(); 1414: } __attribute__ ((__deprecated__)); 1414: 1414: 1414: template 1414: class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> 1414: { 1414: public: 1414: explicit 1414: const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) 1414: : _M_f(__pf) { } 1414: 1414: _Ret 1414: operator()(const _Tp& __r) const 1414: { return (__r.*_M_f)(); } 1414: 1414: private: 1414: _Ret (_Tp::*_M_f)() const; 1414: } __attribute__ ((__deprecated__)); 1414: 1414: 1414: template 1414: class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> 1414: { 1414: public: 1414: explicit 1414: mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) 1414: : _M_f(__pf) { } 1414: 1414: _Ret 1414: operator()(_Tp* __p, _Arg __x) const 1414: { return (__p->*_M_f)(__x); } 1414: 1414: private: 1414: _Ret (_Tp::*_M_f)(_Arg); 1414: } __attribute__ ((__deprecated__)); 1414: 1414: 1414: template 1414: class const_mem_fun1_t : public binary_function 1414: { 1414: public: 1414: explicit 1414: const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) 1414: : _M_f(__pf) { } 1414: 1414: _Ret 1414: operator()(const _Tp* __p, _Arg __x) const 1414: { return (__p->*_M_f)(__x); } 1414: 1414: private: 1414: _Ret (_Tp::*_M_f)(_Arg) const; 1414: } __attribute__ ((__deprecated__)); 1414: 1414: 1414: template 1414: class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 1414: { 1414: public: 1414: explicit 1414: mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) 1414: : _M_f(__pf) { } 1414: 1414: _Ret 1414: operator()(_Tp& __r, _Arg __x) const 1414: { return (__r.*_M_f)(__x); } 1414: 1414: private: 1414: _Ret (_Tp::*_M_f)(_Arg); 1414: } __attribute__ ((__deprecated__)); 1414: 1414: 1414: template 1414: class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 1414: { 1414: public: 1414: explicit 1414: const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) 1414: : _M_f(__pf) { } 1414: 1414: _Ret 1414: operator()(const _Tp& __r, _Arg __x) const 1414: { return (__r.*_M_f)(__x); } 1414: 1414: private: 1414: _Ret (_Tp::*_M_f)(_Arg) const; 1414: } __attribute__ ((__deprecated__)); 1414: 1414: 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 1414: inline mem_fun_t<_Ret, _Tp> 1414: mem_fun(_Ret (_Tp::*__f)()) 1414: { return mem_fun_t<_Ret, _Tp>(__f); } 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 1414: inline const_mem_fun_t<_Ret, _Tp> 1414: mem_fun(_Ret (_Tp::*__f)() const) 1414: { return const_mem_fun_t<_Ret, _Tp>(__f); } 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 1414: inline mem_fun_ref_t<_Ret, _Tp> 1414: mem_fun_ref(_Ret (_Tp::*__f)()) 1414: { return mem_fun_ref_t<_Ret, _Tp>(__f); } 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 1414: inline const_mem_fun_ref_t<_Ret, _Tp> 1414: mem_fun_ref(_Ret (_Tp::*__f)() const) 1414: { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 1414: inline mem_fun1_t<_Ret, _Tp, _Arg> 1414: mem_fun(_Ret (_Tp::*__f)(_Arg)) 1414: { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 1414: inline const_mem_fun1_t<_Ret, _Tp, _Arg> 1414: mem_fun(_Ret (_Tp::*__f)(_Arg) const) 1414: { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 1414: inline mem_fun1_ref_t<_Ret, _Tp, _Arg> 1414: mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) 1414: { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 1414: inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> 1414: mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) 1414: { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: 1414: template> 1414: struct __has_is_transparent 1414: { }; 1414: 1414: template 1414: struct __has_is_transparent<_Func, _SfinaeType, 1414: __void_t> 1414: { typedef void type; }; 1414: 1414: template 1414: using __has_is_transparent_t 1414: = typename __has_is_transparent<_Func, _SfinaeType>::type; 1414: 1414: 1414: template 1414: concept __transparent_comparator 1414: = requires { typename _Func::is_transparent; }; 1414: # 1541 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 3 1414: template class> 1414: constexpr bool __is_std_op_template = false; 1414: 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: template<> 1414: inline constexpr bool __is_std_op_template = true; 1414: 1414: template 1414: constexpr bool __is_std_op_wrapper = false; 1414: 1414: template class _Ft, typename _Tp> 1414: constexpr bool __is_std_op_wrapper<_Ft<_Tp>> 1414: = __is_std_op_template<_Ft>; 1414: 1414: 1414: } 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/backward/binders.h" 1 3 1414: # 60 "/usr/arm-linux-gnueabihf/include/c++/16/backward/binders.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 107 "/usr/arm-linux-gnueabihf/include/c++/16/backward/binders.h" 3 1414: template 1414: class binder1st 1414: : public unary_function 1414: { 1414: protected: 1414: _Operation op; 1414: typename _Operation::first_argument_type value; 1414: 1414: public: 1414: binder1st(const _Operation& __x, 1414: const typename _Operation::first_argument_type& __y) 1414: : op(__x), value(__y) { } 1414: 1414: typename _Operation::result_type 1414: operator()(const typename _Operation::second_argument_type& __x) const 1414: { return op(value, __x); } 1414: 1414: 1414: 1414: typename _Operation::result_type 1414: operator()(typename _Operation::second_argument_type& __x) const 1414: { return op(value, __x); } 1414: } __attribute__ ((__deprecated__ ("use '" "std::bind" "' instead"))); 1414: 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::bind" "' instead"))) 1414: inline binder1st<_Operation> 1414: bind1st(const _Operation& __fn, const _Tp& __x) 1414: { 1414: typedef typename _Operation::first_argument_type _Arg1_type; 1414: return binder1st<_Operation>(__fn, _Arg1_type(__x)); 1414: } 1414: 1414: 1414: template 1414: class binder2nd 1414: : public unary_function 1414: { 1414: protected: 1414: _Operation op; 1414: typename _Operation::second_argument_type value; 1414: 1414: public: 1414: binder2nd(const _Operation& __x, 1414: const typename _Operation::second_argument_type& __y) 1414: : op(__x), value(__y) { } 1414: 1414: typename _Operation::result_type 1414: operator()(const typename _Operation::first_argument_type& __x) const 1414: { return op(__x, value); } 1414: 1414: 1414: 1414: typename _Operation::result_type 1414: operator()(typename _Operation::first_argument_type& __x) const 1414: { return op(__x, value); } 1414: } __attribute__ ((__deprecated__ ("use '" "std::bind" "' instead"))); 1414: 1414: 1414: template 1414: __attribute__ ((__deprecated__ ("use '" "std::bind" "' instead"))) 1414: inline binder2nd<_Operation> 1414: bind2nd(const _Operation& __fn, const _Tp& __x) 1414: { 1414: typedef typename _Operation::second_argument_type _Arg2_type; 1414: return binder2nd<_Operation>(__fn, _Arg2_type(__x)); 1414: } 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 1595 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_function.h" 2 3 1414: # 34 "/usr/arm-linux-gnueabihf/include/c++/16/bits/predefined_ops.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: namespace __gnu_cxx 1414: { 1414: namespace __ops 1414: { 1414: 1414: 1414: typedef std::equal_to equal_to; 1414: typedef std::less less; 1414: 1414: 1414: 1414: template 1414: using __by_ref_or_value_fn 1414: = std::__conditional_t, 1414: std::is_scalar<_Fn>>::value, 1414: _Fn, _Fn&>; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct _Comp_with_val 1414: { 1414: using _Fn = __by_ref_or_value_fn<_Func>; 1414: 1414: explicit constexpr 1414: _Comp_with_val(_Fn __f, const _Value& __v) 1414: : _M_f(__f), _M_val(__v) { } 1414: 1414: [[__no_unique_address__]] _Fn _M_f; 1414: const _Value& _M_val; 1414: 1414: template 1414: constexpr bool 1414: operator()(_Tp&& __arg) 1414: { 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: if constexpr (_Val_2nd) 1414: return _M_f(__arg, _M_val); 1414: else 1414: return _M_f(_M_val, __arg); 1414: #pragma GCC diagnostic pop 1414: } 1414: }; 1414: 1414: template 1414: using _Comp_with_val_1st = _Comp_with_val<_Func, _Value, false>; 1414: template 1414: using _Comp_with_val_2nd = _Comp_with_val<_Func, _Value, true>; 1414: 1414: template 1414: struct _Unary_negate 1414: { 1414: using _Fn = __by_ref_or_value_fn<_Func>; 1414: 1414: explicit constexpr 1414: _Unary_negate(_Fn __f) : _M_f(__f) { } 1414: 1414: [[__no_unique_address__]] _Fn _M_f; 1414: 1414: template 1414: constexpr bool 1414: operator()(_Tp&& __arg) { return !_M_f(__arg); } 1414: }; 1414: 1414: template 1414: constexpr _Unary_negate<_Func> 1414: not1(_Func& __f) 1414: { return _Unary_negate<_Func>(__f); } 1414: # 190 "/usr/arm-linux-gnueabihf/include/c++/16/bits/predefined_ops.h" 3 1414: template 1414: constexpr inline _Comp_with_val_1st<_Func, _Value> 1414: bind1st(_Func& __f, const _Value& __val) 1414: { return _Comp_with_val_1st<_Func, _Value>(__f, __val); } 1414: 1414: template 1414: constexpr inline _Comp_with_val_2nd<_Func, _Value> 1414: bind2nd(_Func& __f, const _Value& __val) 1414: { return _Comp_with_val_2nd<_Func, _Value>(__f, __val); } 1414: 1414: 1414: template 1414: constexpr inline _Comp_with_val_2nd 1414: __equal_to(const _Value& __val) 1414: { return _Comp_with_val_2nd(equal_to(), __val); } 1414: 1414: } 1414: } 1414: # 71 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 2 3 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bit" 1 3 1414: # 63 "/usr/arm-linux-gnueabihf/include/c++/16/bit" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 64 "/usr/arm-linux-gnueabihf/include/c++/16/bit" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 87 "/usr/arm-linux-gnueabihf/include/c++/16/bit" 3 1414: template 1414: [[nodiscard]] 1414: constexpr _To 1414: bit_cast(const _From& __from) noexcept 1414: 1414: requires (sizeof(_To) == sizeof(_From)) 1414: && is_trivially_copyable_v<_To> && is_trivially_copyable_v<_From> 1414: 1414: { 1414: return __builtin_bit_cast(_To, __from); 1414: } 1414: # 156 "/usr/arm-linux-gnueabihf/include/c++/16/bit" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: 1414: template 1414: constexpr _Tp 1414: __rotl(_Tp __x, int __s) noexcept 1414: { 1414: constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; 1414: if constexpr ((_Nd & (_Nd - 1)) == 0) 1414: { 1414: 1414: 1414: constexpr unsigned __uNd = _Nd; 1414: const auto __r = static_cast(__s); 1414: return (__x << (__r % __uNd)) | (__x >> ((-__r) % __uNd)); 1414: } 1414: const int __r = __s % _Nd; 1414: if (__r == 0) 1414: return __x; 1414: else if (__r > 0) 1414: return (__x << __r) | (__x >> ((_Nd - __r) % _Nd)); 1414: else 1414: return (__x >> -__r) | (__x << ((_Nd + __r) % _Nd)); 1414: } 1414: 1414: template 1414: constexpr _Tp 1414: __rotr(_Tp __x, int __s) noexcept 1414: { 1414: constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; 1414: if constexpr ((_Nd & (_Nd - 1)) == 0) 1414: { 1414: 1414: 1414: constexpr unsigned __uNd = _Nd; 1414: const auto __r = static_cast(__s); 1414: return (__x >> (__r % __uNd)) | (__x << ((-__r) % __uNd)); 1414: } 1414: const int __r = __s % _Nd; 1414: if (__r == 0) 1414: return __x; 1414: else if (__r > 0) 1414: return (__x >> __r) | (__x << ((_Nd - __r) % _Nd)); 1414: else 1414: return (__x << -__r) | (__x >> ((_Nd + __r) % _Nd)); 1414: } 1414: 1414: template 1414: constexpr int 1414: __countl_zero(_Tp __x) noexcept 1414: { 1414: using __gnu_cxx::__int_traits; 1414: constexpr auto _Nd = __int_traits<_Tp>::__digits; 1414: 1414: 1414: return __builtin_clzg(__x, _Nd); 1414: # 251 "/usr/arm-linux-gnueabihf/include/c++/16/bit" 3 1414: } 1414: 1414: template 1414: constexpr int 1414: __countl_one(_Tp __x) noexcept 1414: { 1414: return std::__countl_zero<_Tp>((_Tp)~__x); 1414: } 1414: 1414: template 1414: constexpr int 1414: __countr_zero(_Tp __x) noexcept 1414: { 1414: using __gnu_cxx::__int_traits; 1414: constexpr auto _Nd = __int_traits<_Tp>::__digits; 1414: 1414: 1414: return __builtin_ctzg(__x, _Nd); 1414: # 296 "/usr/arm-linux-gnueabihf/include/c++/16/bit" 3 1414: } 1414: 1414: template 1414: constexpr int 1414: __countr_one(_Tp __x) noexcept 1414: { 1414: return std::__countr_zero((_Tp)~__x); 1414: } 1414: 1414: template 1414: constexpr int 1414: __popcount(_Tp __x) noexcept 1414: { 1414: 1414: return __builtin_popcountg(__x); 1414: # 336 "/usr/arm-linux-gnueabihf/include/c++/16/bit" 3 1414: } 1414: 1414: template 1414: constexpr bool 1414: __has_single_bit(_Tp __x) noexcept 1414: { return std::__popcount(__x) == 1; } 1414: 1414: template 1414: constexpr _Tp 1414: __bit_ceil(_Tp __x) noexcept 1414: { 1414: using __gnu_cxx::__int_traits; 1414: constexpr auto _Nd = __int_traits<_Tp>::__digits; 1414: if (__x == 0 || __x == 1) 1414: return 1; 1414: auto __shift_exponent = _Nd - std::__countl_zero((_Tp)(__x - 1u)); 1414: 1414: 1414: 1414: 1414: if (!std::__is_constant_evaluated()) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__shift_exponent != __int_traits<_Tp>::__digits)) std::__glibcxx_assert_fail(); } while (false); 1414: } 1414: 1414: using __promoted_type = decltype(__x << 1); 1414: if constexpr (!is_same<__promoted_type, _Tp>::value) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: const int __extra_exp = sizeof(__promoted_type) / sizeof(_Tp) / 2; 1414: __shift_exponent |= (__shift_exponent & _Nd) << __extra_exp; 1414: } 1414: return (_Tp)1u << __shift_exponent; 1414: } 1414: 1414: template 1414: constexpr _Tp 1414: __bit_floor(_Tp __x) noexcept 1414: { 1414: constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; 1414: if (__x == 0) 1414: return 0; 1414: return (_Tp)1u << (_Nd - std::__countl_zero((_Tp)(__x >> 1))); 1414: } 1414: 1414: template 1414: constexpr int 1414: __bit_width(_Tp __x) noexcept 1414: { 1414: constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; 1414: return _Nd - std::__countl_zero(__x); 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: 1414: 1414: template 1414: concept __unsigned_integer = __is_unsigned_integer<_Tp>::value; 1414: 1414: 1414: 1414: 1414: 1414: template<__unsigned_integer _Tp> 1414: [[nodiscard]] constexpr _Tp 1414: rotl(_Tp __x, int __s) noexcept 1414: { return std::__rotl(__x, __s); } 1414: 1414: 1414: template<__unsigned_integer _Tp> 1414: [[nodiscard]] constexpr _Tp 1414: rotr(_Tp __x, int __s) noexcept 1414: { return std::__rotr(__x, __s); } 1414: 1414: 1414: 1414: 1414: template<__unsigned_integer _Tp> 1414: constexpr int 1414: countl_zero(_Tp __x) noexcept 1414: { return std::__countl_zero(__x); } 1414: 1414: 1414: template<__unsigned_integer _Tp> 1414: constexpr int 1414: countl_one(_Tp __x) noexcept 1414: { return std::__countl_one(__x); } 1414: 1414: 1414: template<__unsigned_integer _Tp> 1414: constexpr int 1414: countr_zero(_Tp __x) noexcept 1414: { return std::__countr_zero(__x); } 1414: 1414: 1414: template<__unsigned_integer _Tp> 1414: constexpr int 1414: countr_one(_Tp __x) noexcept 1414: { return std::__countr_one(__x); } 1414: 1414: 1414: template<__unsigned_integer _Tp> 1414: constexpr int 1414: popcount(_Tp __x) noexcept 1414: { return std::__popcount(__x); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template<__unsigned_integer _Tp> 1414: constexpr bool 1414: has_single_bit(_Tp __x) noexcept 1414: { return std::__has_single_bit(__x); } 1414: 1414: 1414: template<__unsigned_integer _Tp> 1414: constexpr _Tp 1414: bit_ceil(_Tp __x) noexcept 1414: { return std::__bit_ceil(__x); } 1414: 1414: 1414: template<__unsigned_integer _Tp> 1414: constexpr _Tp 1414: bit_floor(_Tp __x) noexcept 1414: { return std::__bit_floor(__x); } 1414: 1414: 1414: 1414: 1414: template<__unsigned_integer _Tp> 1414: constexpr int 1414: bit_width(_Tp __x) noexcept 1414: { return std::__bit_width(__x); } 1414: # 489 "/usr/arm-linux-gnueabihf/include/c++/16/bit" 3 1414: enum class endian 1414: { 1414: little = 1234, 1414: big = 4321, 1414: native = 1234 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: } 1414: # 76 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr 1414: inline int 1414: __memcmp(const _Tp* __first1, const _Up* __first2, size_t __num) 1414: { 1414: 1414: static_assert(sizeof(_Tp) == sizeof(_Up), "can be compared with memcmp"); 1414: 1414: 1414: if (std::is_constant_evaluated()) 1414: { 1414: for(; __num > 0; ++__first1, ++__first2, --__num) 1414: if (*__first1 != *__first2) 1414: return *__first1 < *__first2 ? -1 : 1; 1414: return 0; 1414: } 1414: else 1414: 1414: return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); 1414: } 1414: # 151 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: constexpr 1414: inline void 1414: iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) 1414: { 1414: 1414: 1414: 1414: 1414: # 184 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: swap(*__a, *__b); 1414: 1414: } 1414: # 200 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: constexpr 1414: _ForwardIterator2 1414: swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1414: _ForwardIterator2 __first2) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: ; 1414: 1414: for (; __first1 != __last1; ++__first1, (void)++__first2) 1414: std::iter_swap(__first1, __first2); 1414: return __first2; 1414: } 1414: # 229 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline const _Tp& 1414: min(const _Tp& __a, const _Tp& __b) 1414: { 1414: 1414: 1414: 1414: if (__b < __a) 1414: return __b; 1414: return __a; 1414: } 1414: # 253 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline const _Tp& 1414: max(const _Tp& __a, const _Tp& __b) 1414: { 1414: 1414: 1414: 1414: if (__a < __b) 1414: return __b; 1414: return __a; 1414: } 1414: # 277 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline const _Tp& 1414: min(const _Tp& __a, const _Tp& __b, _Compare __comp) 1414: { 1414: 1414: if (__comp(__b, __a)) 1414: return __b; 1414: return __a; 1414: } 1414: # 299 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline const _Tp& 1414: max(const _Tp& __a, const _Tp& __b, _Compare __comp) 1414: { 1414: 1414: if (__comp(__a, __b)) 1414: return __b; 1414: return __a; 1414: } 1414: 1414: 1414: 1414: template 1414: struct _Deque_iterator; 1414: 1414: struct _Bit_iterator; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct char_traits; 1414: 1414: template 1414: class istreambuf_iterator; 1414: 1414: template 1414: class ostreambuf_iterator; 1414: 1414: template 1414: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1414: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 1414: __copy_move_a2(_CharT*, _CharT*, 1414: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 1414: 1414: template 1414: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1414: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 1414: __copy_move_a2(const _CharT*, const _CharT*, 1414: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 1414: 1414: template 1414: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1414: _CharT*>::__type 1414: __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, 1414: istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); 1414: 1414: template 1414: typename __gnu_cxx::__enable_if< 1414: __is_char<_CharT>::__value, 1414: std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type 1414: __copy_move_a2( 1414: istreambuf_iterator<_CharT, char_traits<_CharT> >, 1414: istreambuf_iterator<_CharT, char_traits<_CharT> >, 1414: std::_Deque_iterator<_CharT, _CharT&, _CharT*>); 1414: 1414: 1414: 1414: template 1414: concept __memcpyable_iterators 1414: = contiguous_iterator<_OutIter> && contiguous_iterator<_InIter> 1414: && sized_sentinel_for<_Sent, _InIter> 1414: && requires (_OutIter __o, _InIter __i) { 1414: requires !!__memcpyable::__value; 1414: }; 1414: # 393 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: template 1414: __attribute__((__always_inline__)) constexpr 1414: inline void 1414: __assign_one(_OutIter& __out, _InIter& __in) 1414: { 1414: 1414: if constexpr (_IsMove) 1414: *__out = std::move(*__in); 1414: else 1414: 1414: *__out = *__in; 1414: } 1414: 1414: template 1414: constexpr 1414: inline _OutIter 1414: __copy_move_a2(_InIter __first, _Sent __last, _OutIter __result) 1414: { 1414: typedef __decltype(*__first) _InRef; 1414: typedef __decltype(*__result) _OutRef; 1414: if constexpr (!__is_trivially_assignable(_OutRef, _InRef)) 1414: { } 1414: else if (std::__is_constant_evaluated()) 1414: { } 1414: else if constexpr (__memcpyable<_OutIter, _InIter>::__value) 1414: { 1414: ptrdiff_t __n = std::distance(__first, __last); 1414: if (__builtin_expect(__n > 1, true)) 1414: { 1414: __builtin_memmove(__result, 1414: __first, 1414: __n * sizeof(*__first)); 1414: __result += __n; 1414: } 1414: else if (__n == 1) 1414: { 1414: std::__assign_one<_IsMove>(__result, __first); 1414: ++__result; 1414: } 1414: return __result; 1414: } 1414: 1414: else if constexpr (__memcpyable_iterators<_OutIter, _InIter, _Sent>) 1414: { 1414: if (auto __n = __last - __first; __n > 1) [[likely]] 1414: { 1414: void* __dest = std::to_address(__result); 1414: const void* __src = std::to_address(__first); 1414: size_t __nbytes = __n * sizeof(iter_value_t<_InIter>); 1414: 1414: 1414: (void) std::to_address(__result += __n); 1414: (void) std::to_address(__first += __n); 1414: __builtin_memmove(__dest, __src, __nbytes); 1414: } 1414: else if (__n == 1) 1414: { 1414: std::__assign_one<_IsMove>(__result, __first); 1414: ++__result; 1414: } 1414: return __result; 1414: } 1414: 1414: 1414: for (; __first != __last; ++__result, (void)++__first) 1414: std::__assign_one<_IsMove>(__result, __first); 1414: return __result; 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: template 1414: _OI 1414: __copy_move_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, 1414: std::_Deque_iterator<_Tp, _Ref, _Ptr>, 1414: _OI); 1414: 1414: template 1414: std::_Deque_iterator<_OTp, _OTp&, _OTp*> 1414: __copy_move_a1(std::_Deque_iterator<_ITp, _IRef, _IPtr>, 1414: std::_Deque_iterator<_ITp, _IRef, _IPtr>, 1414: std::_Deque_iterator<_OTp, _OTp&, _OTp*>); 1414: 1414: template 1414: typename __gnu_cxx::__enable_if< 1414: __is_any_random_access_iter<_II>::__value, 1414: std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type 1414: __copy_move_a1(_II, _II, std::_Deque_iterator<_Tp, _Tp&, _Tp*>); 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline _OI 1414: __copy_move_a1(_II __first, _II __last, _OI __result) 1414: { return std::__copy_move_a2<_IsMove>(__first, __last, __result); } 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline _OI 1414: __copy_move_a(_II __first, _II __last, _OI __result) 1414: { 1414: return std::__niter_wrap(__result, 1414: std::__copy_move_a1<_IsMove>(std::__niter_base(__first), 1414: std::__niter_base(__last), 1414: std::__niter_base(__result))); 1414: } 1414: 1414: template 1414: constexpr 1414: _OI 1414: __copy_move_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 1414: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 1414: _OI); 1414: 1414: template 1414: constexpr 1414: __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> 1414: __copy_move_a(_II, _II, 1414: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); 1414: 1414: template 1414: constexpr 1414: ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> 1414: __copy_move_a(const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 1414: const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 1414: const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: template 1414: constexpr 1414: _OutputIterator 1414: __copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result, 1414: bool) 1414: { 1414: typedef __decltype(*__first) _InRef; 1414: typedef __decltype(*__result) _OutRef; 1414: if constexpr (!__is_trivially_assignable(_OutRef, _InRef)) 1414: { } 1414: 1414: else if (std::is_constant_evaluated()) 1414: { } 1414: 1414: else if constexpr (__memcpyable<_OutputIterator, 1414: _InputIterator>::__value) 1414: { 1414: if (__builtin_expect(__n > 1, true)) 1414: { 1414: __builtin_memmove(__result, 1414: __first, 1414: __n * sizeof(*__first)); 1414: __result += __n; 1414: } 1414: else if (__n == 1) 1414: *__result++ = *__first; 1414: return __result; 1414: } 1414: 1414: else if constexpr (__memcpyable_iterators<_OutputIterator, 1414: _InputIterator>) 1414: { 1414: if (__n > 1) [[likely]] 1414: { 1414: void* __dest = std::to_address(__result); 1414: const void* __src = std::to_address(__first); 1414: size_t __nbytes = __n * sizeof(iter_value_t<_InputIterator>); 1414: 1414: 1414: (void) std::to_address(__result += __n); 1414: (void) std::to_address(__first += __n); 1414: __builtin_memmove(__dest, __src, __nbytes); 1414: } 1414: else if (__n == 1) 1414: *__result++ = *__first; 1414: return __result; 1414: } 1414: 1414: 1414: if (__n > 0) 1414: { 1414: while (true) 1414: { 1414: *__result = *__first; 1414: ++__result; 1414: if (--__n > 0) 1414: ++__first; 1414: else 1414: break; 1414: } 1414: } 1414: return __result; 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: template 1414: typename __gnu_cxx::__enable_if< 1414: __is_char<_CharT>::__value, _CharT*>::__type 1414: __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, 1414: _Size, _CharT*, bool); 1414: 1414: template 1414: typename __gnu_cxx::__enable_if< 1414: __is_char<_CharT>::__value, 1414: std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type 1414: __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, _Size, 1414: std::_Deque_iterator<_CharT, _CharT&, _CharT*>, 1414: bool); 1414: # 628 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: constexpr 1414: inline _OI 1414: copy(_II __first, _II __last, _OI __result) 1414: { 1414: 1414: 1414: 1414: 1414: ; 1414: 1414: return std::__copy_move_a<__is_move_iterator<_II>::__value> 1414: (std::__miter_base(__first), std::__miter_base(__last), __result); 1414: } 1414: # 661 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: constexpr 1414: inline _OI 1414: move(_II __first, _II __last, _OI __result) 1414: { 1414: 1414: 1414: 1414: 1414: ; 1414: 1414: return std::__copy_move_a(std::__miter_base(__first), 1414: std::__miter_base(__last), __result); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: template 1414: constexpr 1414: inline _BI2 1414: __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 1414: { 1414: typedef __decltype(*__first) _InRef; 1414: typedef __decltype(*__result) _OutRef; 1414: if constexpr (!__is_trivially_assignable(_OutRef, _InRef)) 1414: { } 1414: 1414: else if (std::is_constant_evaluated()) 1414: { } 1414: 1414: else if constexpr (__memcpyable<_BI2, _BI1>::__value) 1414: { 1414: ptrdiff_t __n = std::distance(__first, __last); 1414: std::advance(__result, -__n); 1414: if (__builtin_expect(__n > 1, true)) 1414: { 1414: __builtin_memmove(__result, 1414: __first, 1414: __n * sizeof(*__first)); 1414: } 1414: else if (__n == 1) 1414: std::__assign_one<_IsMove>(__result, __first); 1414: return __result; 1414: } 1414: 1414: else if constexpr (__memcpyable_iterators<_BI2, _BI1>) 1414: { 1414: if (auto __n = __last - __first; __n > 1) [[likely]] 1414: { 1414: const void* __src = std::to_address(__first); 1414: 1414: 1414: (void) std::to_address(__result -= __n); 1414: (void) std::to_address(__first += __n); 1414: void* __dest = std::to_address(__result); 1414: size_t __nbytes = __n * sizeof(iter_value_t<_BI1>); 1414: __builtin_memmove(__dest, __src, __nbytes); 1414: } 1414: else if (__n == 1) 1414: { 1414: --__result; 1414: std::__assign_one<_IsMove>(__result, __first); 1414: } 1414: return __result; 1414: } 1414: 1414: 1414: while (__first != __last) 1414: { 1414: --__last; 1414: --__result; 1414: std::__assign_one<_IsMove>(__result, __last); 1414: } 1414: return __result; 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline _BI2 1414: __copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) 1414: { return std::__copy_move_backward_a2<_IsMove>(__first, __last, __result); } 1414: 1414: template 1414: _OI 1414: __copy_move_backward_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, 1414: std::_Deque_iterator<_Tp, _Ref, _Ptr>, 1414: _OI); 1414: 1414: template 1414: std::_Deque_iterator<_OTp, _OTp&, _OTp*> 1414: __copy_move_backward_a1( 1414: std::_Deque_iterator<_ITp, _IRef, _IPtr>, 1414: std::_Deque_iterator<_ITp, _IRef, _IPtr>, 1414: std::_Deque_iterator<_OTp, _OTp&, _OTp*>); 1414: 1414: template 1414: typename __gnu_cxx::__enable_if< 1414: __is_any_random_access_iter<_II>::__value, 1414: std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type 1414: __copy_move_backward_a1(_II, _II, 1414: std::_Deque_iterator<_Tp, _Tp&, _Tp*>); 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline _OI 1414: __copy_move_backward_a(_II __first, _II __last, _OI __result) 1414: { 1414: return std::__niter_wrap(__result, 1414: std::__copy_move_backward_a1<_IsMove> 1414: (std::__niter_base(__first), std::__niter_base(__last), 1414: std::__niter_base(__result))); 1414: } 1414: 1414: template 1414: constexpr 1414: _OI 1414: __copy_move_backward_a( 1414: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 1414: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 1414: _OI); 1414: 1414: template 1414: constexpr 1414: __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> 1414: __copy_move_backward_a(_II, _II, 1414: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); 1414: 1414: template 1414: constexpr 1414: ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> 1414: __copy_move_backward_a( 1414: const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 1414: const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 1414: const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); 1414: # 831 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline _BI2 1414: copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: ; 1414: 1414: return std::__copy_move_backward_a<__is_move_iterator<_BI1>::__value> 1414: (std::__miter_base(__first), std::__miter_base(__last), __result); 1414: } 1414: # 867 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline _BI2 1414: move_backward(_BI1 __first, _BI1 __last, _BI2 __result) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: ; 1414: 1414: return std::__copy_move_backward_a(std::__miter_base(__first), 1414: std::__miter_base(__last), 1414: __result); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: template 1414: constexpr 1414: inline void 1414: __fill_a1(_ForwardIterator __first, _ForwardIterator __last, 1414: const _Tp& __value) 1414: { 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: 1414: 1414: 1414: 1414: const bool __load_outside_loop = 1414: 1414: 1414: __is_trivially_constructible(_Tp, const _Tp&) 1414: && __is_trivially_assignable(__decltype(*__first), const _Tp&) 1414: 1414: 1414: 1414: 1414: && sizeof(_Tp) <= sizeof(long long); 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: typedef typename __gnu_cxx::__conditional_type<__load_outside_loop, 1414: const _Tp, 1414: const _Tp&>::__type _Up; 1414: _Up __val(__value); 1414: for (; __first != __last; ++__first) 1414: *__first = __val; 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: template 1414: constexpr 1414: inline typename 1414: __gnu_cxx::__enable_if<__is_byte<_Up>::__value 1414: && (__are_same<_Up, _Tp>::__value 1414: || __memcpyable_integer<_Tp>::__width), 1414: void>::__type 1414: __fill_a1(_Up* __first, _Up* __last, const _Tp& __x) 1414: { 1414: 1414: 1414: const _Up __val = __x; 1414: 1414: if (std::is_constant_evaluated()) 1414: { 1414: for (; __first != __last; ++__first) 1414: *__first = __val; 1414: return; 1414: } 1414: 1414: if (const size_t __len = __last - __first) 1414: __builtin_memset(__first, static_cast(__val), __len); 1414: } 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline void 1414: __fill_a1(::__gnu_cxx::__normal_iterator<_Ite, _Cont> __first, 1414: ::__gnu_cxx::__normal_iterator<_Ite, _Cont> __last, 1414: const _Tp& __value) 1414: { std::__fill_a1(__first.base(), __last.base(), __value); } 1414: 1414: template 1414: void 1414: __fill_a1(const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, 1414: const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, 1414: const _VTp&); 1414: 1414: constexpr 1414: void 1414: __fill_a1(std::_Bit_iterator, std::_Bit_iterator, 1414: const bool&); 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline void 1414: __fill_a(_FIte __first, _FIte __last, const _Tp& __value) 1414: { std::__fill_a1(__first, __last, __value); } 1414: 1414: template 1414: constexpr 1414: void 1414: __fill_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 1414: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 1414: const _Tp&); 1414: # 997 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline void 1414: fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) 1414: { 1414: 1414: 1414: 1414: ; 1414: 1414: std::__fill_a(__first, __last, __value); 1414: } 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: 1414: inline constexpr int 1414: __size_to_integer(int __n) { return __n; } 1414: inline constexpr unsigned 1414: __size_to_integer(unsigned __n) { return __n; } 1414: inline constexpr long 1414: __size_to_integer(long __n) { return __n; } 1414: inline constexpr unsigned long 1414: __size_to_integer(unsigned long __n) { return __n; } 1414: inline constexpr long long 1414: __size_to_integer(long long __n) { return __n; } 1414: inline constexpr unsigned long long 1414: __size_to_integer(unsigned long long __n) { return __n; } 1414: # 1059 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: inline constexpr long long 1414: __size_to_integer(float __n) { return (long long)__n; } 1414: inline constexpr long long 1414: __size_to_integer(double __n) { return (long long)__n; } 1414: inline constexpr long long 1414: __size_to_integer(long double __n) { return (long long)__n; } 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic pop 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: template 1414: constexpr 1414: inline _OutputIterator 1414: __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) 1414: { 1414: 1414: const bool __load_outside_loop = 1414: 1414: 1414: __is_trivially_constructible(_Tp, const _Tp&) 1414: && __is_trivially_assignable(__decltype(*__first), const _Tp&) 1414: 1414: 1414: 1414: 1414: && sizeof(_Tp) <= sizeof(long long); 1414: 1414: 1414: 1414: typedef typename __gnu_cxx::__conditional_type<__load_outside_loop, 1414: const _Tp, 1414: const _Tp&>::__type _Up; 1414: _Up __val(__value); 1414: for (; __n > 0; --__n, (void) ++__first) 1414: *__first = __val; 1414: return __first; 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: template 1414: constexpr 1414: ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> 1414: __fill_n_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>& __first, 1414: _Size __n, const _Tp& __value, 1414: std::input_iterator_tag); 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline _OutputIterator 1414: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, 1414: std::output_iterator_tag) 1414: { 1414: 1414: static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); 1414: 1414: return __fill_n_a1(__first, __n, __value); 1414: } 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline _OutputIterator 1414: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, 1414: std::input_iterator_tag) 1414: { 1414: 1414: static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); 1414: 1414: return __fill_n_a1(__first, __n, __value); 1414: } 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline _OutputIterator 1414: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, 1414: std::random_access_iterator_tag) 1414: { 1414: 1414: static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); 1414: 1414: if (__n <= 0) 1414: return __first; 1414: 1414: typename iterator_traits<_OutputIterator>::difference_type __d = __n; 1414: ; 1414: 1414: _OutputIterator __last = __first + __d; 1414: std::__fill_a(__first, __last, __value); 1414: return __last; 1414: } 1414: # 1175 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline _OI 1414: fill_n(_OI __first, _Size __n, const _Tp& __value) 1414: { 1414: 1414: 1414: 1414: return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, 1414: std::__iterator_category(__first)); 1414: } 1414: 1414: template 1414: struct __equal 1414: { 1414: template 1414: constexpr 1414: static bool 1414: equal(_II1 __first1, _II1 __last1, _II2 __first2) 1414: { 1414: for (; __first1 != __last1; ++__first1, (void) ++__first2) 1414: if (!(*__first1 == *__first2)) 1414: return false; 1414: return true; 1414: } 1414: }; 1414: 1414: template<> 1414: struct __equal 1414: { 1414: template 1414: constexpr 1414: static bool 1414: equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) 1414: { 1414: if (const size_t __len = (__last1 - __first1)) 1414: return !std::__memcmp(__first1, __first2, __len); 1414: return true; 1414: } 1414: }; 1414: 1414: template 1414: typename __gnu_cxx::__enable_if< 1414: __is_any_random_access_iter<_II>::__value, bool>::__type 1414: __equal_aux1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, 1414: std::_Deque_iterator<_Tp, _Ref, _Ptr>, 1414: _II); 1414: 1414: template 1414: bool 1414: __equal_aux1(std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 1414: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 1414: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); 1414: 1414: template 1414: typename __gnu_cxx::__enable_if< 1414: __is_any_random_access_iter<_II>::__value, bool>::__type 1414: __equal_aux1(_II, _II, 1414: std::_Deque_iterator<_Tp, _Ref, _Ptr>); 1414: 1414: template 1414: constexpr 1414: inline bool 1414: __equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) 1414: { 1414: typedef typename iterator_traits<_II1>::value_type _ValueType1; 1414: const bool __simple = ((__is_integer<_ValueType1>::__value 1414: 1414: || __is_pointer(_ValueType1) 1414: 1414: 1414: 1414: || is_same_v<_ValueType1, byte> 1414: 1414: ) && __memcmpable<_II1, _II2>::__value); 1414: return std::__equal<__simple>::equal(__first1, __last1, __first2); 1414: } 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: inline bool 1414: __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) 1414: { 1414: return std::__equal_aux1(std::__niter_base(__first1), 1414: std::__niter_base(__last1), 1414: std::__niter_base(__first2)); 1414: } 1414: 1414: template 1414: constexpr 1414: bool 1414: __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 1414: const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 1414: _II2); 1414: 1414: template 1414: constexpr 1414: bool 1414: __equal_aux(_II1, _II1, 1414: const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); 1414: 1414: template 1414: constexpr 1414: bool 1414: __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 1414: const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 1414: const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); 1414: 1414: template 1414: struct __lc_rai 1414: { 1414: template 1414: constexpr 1414: static _II1 1414: __newlast1(_II1, _II1 __last1, _II2, _II2) 1414: { return __last1; } 1414: 1414: template 1414: constexpr 1414: static bool 1414: __cnd2(_II __first, _II __last) 1414: { return __first != __last; } 1414: }; 1414: 1414: template<> 1414: struct __lc_rai 1414: { 1414: template 1414: constexpr 1414: static _RAI1 1414: __newlast1(_RAI1 __first1, _RAI1 __last1, 1414: _RAI2 __first2, _RAI2 __last2) 1414: { 1414: typedef typename iterator_traits<_RAI1>::difference_type _Diff1; 1414: typedef typename iterator_traits<_RAI2>::difference_type _Diff2; 1414: const _Diff1 __diff1 = __last1 - __first1; 1414: const _Diff2 __diff2 = __last2 - __first2; 1414: return __diff2 < __diff1 ? __first1 + _Diff1(__diff2) : __last1; 1414: } 1414: 1414: template 1414: static constexpr bool 1414: __cnd2(_RAI, _RAI) 1414: { return true; } 1414: }; 1414: 1414: template 1414: constexpr 1414: bool 1414: __lexicographical_compare_impl(_II1 __first1, _II1 __last1, 1414: _II2 __first2, _II2 __last2, 1414: _Compare __comp) 1414: { 1414: typedef __decltype(std::__iter_concept_or_category<_II1>()) _Category1; 1414: typedef __decltype(std::__iter_concept_or_category<_II2>()) _Category2; 1414: typedef std::__lc_rai<_Category1, _Category2> __rai_type; 1414: 1414: __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); 1414: for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); 1414: ++__first1, (void)++__first2) 1414: { 1414: if (__comp(*__first1, *__first2)) 1414: return true; 1414: if (__comp(*__first2, *__first1)) 1414: return false; 1414: } 1414: return __first1 == __last1 && __first2 != __last2; 1414: } 1414: 1414: template 1414: struct __lexicographical_compare 1414: { 1414: template 1414: constexpr 1414: static bool 1414: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 1414: { 1414: using __gnu_cxx::__ops::less; 1414: return std::__lexicographical_compare_impl(__first1, __last1, 1414: __first2, __last2, 1414: less()); 1414: } 1414: 1414: template 1414: constexpr 1414: static int 1414: __3way(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 1414: { 1414: while (__first1 != __last1) 1414: { 1414: if (__first2 == __last2) 1414: return +1; 1414: if (*__first1 < *__first2) 1414: return -1; 1414: if (*__first2 < *__first1) 1414: return +1; 1414: ++__first1; 1414: ++__first2; 1414: } 1414: return int(__first2 == __last2) - 1; 1414: } 1414: }; 1414: 1414: template<> 1414: struct __lexicographical_compare 1414: { 1414: template 1414: constexpr 1414: static bool 1414: __lc(const _Tp* __first1, const _Tp* __last1, 1414: const _Up* __first2, const _Up* __last2) 1414: { return __3way(__first1, __last1, __first2, __last2) < 0; } 1414: 1414: template 1414: constexpr 1414: static ptrdiff_t 1414: __3way(const _Tp* __first1, const _Tp* __last1, 1414: const _Up* __first2, const _Up* __last2) 1414: { 1414: const size_t __len1 = __last1 - __first1; 1414: const size_t __len2 = __last2 - __first2; 1414: if (const size_t __len = std::min(__len1, __len2)) 1414: if (int __result = std::__memcmp(__first1, __first2, __len)) 1414: return __result; 1414: return ptrdiff_t(__len1 - __len2); 1414: } 1414: }; 1414: 1414: template 1414: constexpr 1414: inline bool 1414: __lexicographical_compare_aux1(_II1 __first1, _II1 __last1, 1414: _II2 __first2, _II2 __last2) 1414: { 1414: typedef typename iterator_traits<_II1>::value_type _ValueType1; 1414: typedef typename iterator_traits<_II2>::value_type _ValueType2; 1414: 1414: const bool __simple = 1414: (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value 1414: && __is_pointer(_II1) && __is_pointer(_II2) 1414: 1414: 1414: 1414: 1414: && !is_volatile_v>> 1414: && !is_volatile_v>> 1414: 1414: ); 1414: 1414: 1414: 1414: 1414: return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, 1414: __first2, __last2); 1414: } 1414: 1414: template 1414: bool 1414: __lexicographical_compare_aux1( 1414: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 1414: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 1414: _Tp2*, _Tp2*); 1414: 1414: template 1414: bool 1414: __lexicographical_compare_aux1(_Tp1*, _Tp1*, 1414: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, 1414: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); 1414: 1414: template 1414: bool 1414: __lexicographical_compare_aux1( 1414: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 1414: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 1414: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, 1414: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); 1414: 1414: template 1414: constexpr 1414: inline bool 1414: __lexicographical_compare_aux(_II1 __first1, _II1 __last1, 1414: _II2 __first2, _II2 __last2) 1414: { 1414: return std::__lexicographical_compare_aux1(std::__niter_base(__first1), 1414: std::__niter_base(__last1), 1414: std::__niter_base(__first2), 1414: std::__niter_base(__last2)); 1414: } 1414: 1414: template 1414: constexpr 1414: bool 1414: __lexicographical_compare_aux( 1414: const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, 1414: const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, 1414: _II2, _II2); 1414: 1414: template 1414: constexpr 1414: bool 1414: __lexicographical_compare_aux( 1414: _II1, _II1, 1414: const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, 1414: const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); 1414: 1414: template 1414: constexpr 1414: bool 1414: __lexicographical_compare_aux( 1414: const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, 1414: const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, 1414: const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, 1414: const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); 1414: 1414: template 1414: constexpr 1414: _ForwardIterator 1414: __lower_bound(_ForwardIterator __first, _ForwardIterator __last, 1414: const _Tp& __val, _Compare __comp) 1414: { 1414: typedef typename iterator_traits<_ForwardIterator>::difference_type 1414: _DistanceType; 1414: 1414: _DistanceType __len = std::distance(__first, __last); 1414: 1414: while (__len > 0) 1414: { 1414: _DistanceType __half = __len >> 1; 1414: _ForwardIterator __middle = __first; 1414: std::advance(__middle, __half); 1414: if (__comp(*__middle, __val)) 1414: { 1414: __first = __middle; 1414: ++__first; 1414: __len = __len - __half - 1; 1414: } 1414: else 1414: __len = __half; 1414: } 1414: return __first; 1414: } 1414: # 1538 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline _ForwardIterator 1414: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 1414: const _Tp& __val) 1414: { 1414: 1414: 1414: 1414: 1414: ; 1414: 1414: return std::__lower_bound(__first, __last, __val, 1414: __gnu_cxx::__ops::less()); 1414: } 1414: 1414: 1414: 1414: template 1414: inline constexpr _Tp 1414: __lg(_Tp __n) 1414: { 1414: 1414: return std::__bit_width(make_unsigned_t<_Tp>(__n)) - 1; 1414: # 1574 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: } 1414: 1414: 1414: # 1590 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline bool 1414: equal(_II1 __first1, _II1 __last1, _II2 __first2) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: ; 1414: 1414: return std::__equal_aux(__first1, __last1, __first2); 1414: } 1414: # 1621 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline bool 1414: equal(_IIter1 __first1, _IIter1 __last1, 1414: _IIter2 __first2, _BinaryPredicate __binary_pred) 1414: { 1414: 1414: 1414: 1414: ; 1414: 1414: for (; __first1 != __last1; ++__first1, (void)++__first2) 1414: if (!bool(__binary_pred(*__first1, *__first2))) 1414: return false; 1414: return true; 1414: } 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: 1414: 1414: template 1414: constexpr 1414: inline bool 1414: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 1414: { 1414: using _RATag = random_access_iterator_tag; 1414: using _Cat1 = decltype(std::__iter_concept_or_category<_II1>()); 1414: using _Cat2 = decltype(std::__iter_concept_or_category<_II2>()); 1414: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 1414: if constexpr (_RAIters::value) 1414: { 1414: if ((__last1 - __first1) != (__last2 - __first2)) 1414: return false; 1414: return std::equal(__first1, __last1, __first2); 1414: } 1414: else 1414: { 1414: for (; __first1 != __last1 && __first2 != __last2; 1414: ++__first1, (void)++__first2) 1414: if (!(*__first1 == *__first2)) 1414: return false; 1414: return __first1 == __last1 && __first2 == __last2; 1414: } 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: inline bool 1414: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, 1414: _BinaryPredicate __binary_pred) 1414: { 1414: using _RATag = random_access_iterator_tag; 1414: using _Cat1 = decltype(std::__iter_concept_or_category<_II1>()); 1414: using _Cat2 = decltype(std::__iter_concept_or_category<_II2>()); 1414: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 1414: if constexpr (_RAIters::value) 1414: { 1414: if ((__last1 - __first1) != (__last2 - __first2)) 1414: return false; 1414: return std::equal(__first1, __last1, __first2, 1414: __binary_pred); 1414: } 1414: else 1414: { 1414: for (; __first1 != __last1 && __first2 != __last2; 1414: ++__first1, (void)++__first2) 1414: if (!bool(__binary_pred(*__first1, *__first2))) 1414: return false; 1414: return __first1 == __last1 && __first2 == __last2; 1414: } 1414: } 1414: #pragma GCC diagnostic pop 1414: # 1712 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline bool 1414: equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: ; 1414: ; 1414: 1414: return std::__equal4(__first1, __last1, __first2, __last2); 1414: } 1414: # 1745 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline bool 1414: equal(_IIter1 __first1, _IIter1 __last1, 1414: _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) 1414: { 1414: 1414: 1414: 1414: ; 1414: ; 1414: 1414: return std::__equal4(__first1, __last1, __first2, __last2, 1414: __binary_pred); 1414: } 1414: # 1777 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline bool 1414: lexicographical_compare(_II1 __first1, _II1 __last1, 1414: _II2 __first2, _II2 __last2) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: ; 1414: ; 1414: 1414: return std::__lexicographical_compare_aux(__first1, __last1, 1414: __first2, __last2); 1414: } 1414: # 1812 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline bool 1414: lexicographical_compare(_II1 __first1, _II1 __last1, 1414: _II2 __first2, _II2 __last2, _Compare __comp) 1414: { 1414: 1414: 1414: 1414: ; 1414: ; 1414: 1414: return std::__lexicographical_compare_impl 1414: (__first1, __last1, __first2, __last2, __comp); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: concept __memcmp_ordered_with 1414: = (__is_memcmp_ordered_with, 1414: iter_value_t<_Iter2>>::__value) 1414: && contiguous_iterator<_Iter1> && contiguous_iterator<_Iter2>; 1414: 1414: 1414: 1414: template 1414: constexpr auto 1414: __min_cmp(_Tp __x, _Tp __y) 1414: { 1414: struct _Res { 1414: _Tp _M_min; 1414: decltype(__x <=> __y) _M_cmp; 1414: }; 1414: auto __c = __x <=> __y; 1414: if (__c > 0) 1414: return _Res{__y, __c}; 1414: return _Res{__x, __c}; 1414: } 1414: # 1865 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[nodiscard]] constexpr auto 1414: lexicographical_compare_three_way(_InputIter1 __first1, 1414: _InputIter1 __last1, 1414: _InputIter2 __first2, 1414: _InputIter2 __last2, 1414: _Comp __comp) 1414: -> decltype(__comp(*__first1, *__first2)) 1414: { 1414: 1414: 1414: 1414: ; 1414: ; 1414: 1414: using _Cat = decltype(__comp(*__first1, *__first2)); 1414: static_assert(same_as, _Cat>); 1414: 1414: if (!std::__is_constant_evaluated()) 1414: if constexpr (same_as<_Comp, __detail::_Synth3way> 1414: || same_as<_Comp, compare_three_way>) 1414: if constexpr (__memcmp_ordered_with<_InputIter1, _InputIter2>) 1414: { 1414: const auto [__len, __lencmp] = std:: 1414: __min_cmp(__last1 - __first1, __last2 - __first2); 1414: if (__len) 1414: { 1414: const auto __blen = __len * sizeof(*__first1); 1414: const auto __c 1414: = __builtin_memcmp(&*__first1, &*__first2, __blen) <=> 0; 1414: if (__c != 0) 1414: return __c; 1414: } 1414: return __lencmp; 1414: } 1414: 1414: while (__first1 != __last1) 1414: { 1414: if (__first2 == __last2) 1414: return strong_ordering::greater; 1414: if (auto __cmp = __comp(*__first1, *__first2); __cmp != 0) 1414: return __cmp; 1414: ++__first1; 1414: ++__first2; 1414: } 1414: return (__first2 == __last2) <=> true; 1414: } 1414: 1414: template 1414: constexpr auto 1414: lexicographical_compare_three_way(_InputIter1 __first1, 1414: _InputIter1 __last1, 1414: _InputIter2 __first2, 1414: _InputIter2 __last2) 1414: { 1414: return std:: 1414: lexicographical_compare_three_way(__first1, __last1, __first2, __last2, 1414: compare_three_way{}); 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: pair<_InputIterator1, _InputIterator2> 1414: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 1414: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 1414: { 1414: while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) 1414: { 1414: ++__first1; 1414: ++__first2; 1414: } 1414: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 1414: } 1414: # 1954 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline pair<_InputIterator1, _InputIterator2> 1414: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 1414: _InputIterator2 __first2) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: ; 1414: 1414: return std::__mismatch(__first1, __last1, __first2, 1414: __gnu_cxx::__ops::equal_to()); 1414: } 1414: # 1988 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline pair<_InputIterator1, _InputIterator2> 1414: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 1414: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 1414: { 1414: 1414: 1414: 1414: ; 1414: 1414: return std::__mismatch(__first1, __last1, __first2, 1414: __binary_pred); 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: pair<_InputIterator1, _InputIterator2> 1414: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 1414: _InputIterator2 __first2, _InputIterator2 __last2, 1414: _BinaryPredicate __binary_pred) 1414: { 1414: while (__first1 != __last1 && __first2 != __last2 1414: && __binary_pred(*__first1, *__first2)) 1414: { 1414: ++__first1; 1414: ++__first2; 1414: } 1414: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 1414: } 1414: # 2036 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline pair<_InputIterator1, _InputIterator2> 1414: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 1414: _InputIterator2 __first2, _InputIterator2 __last2) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: ; 1414: ; 1414: 1414: return std::__mismatch(__first1, __last1, __first2, __last2, 1414: __gnu_cxx::__ops::equal_to()); 1414: } 1414: # 2072 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline pair<_InputIterator1, _InputIterator2> 1414: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 1414: _InputIterator2 __first2, _InputIterator2 __last2, 1414: _BinaryPredicate __binary_pred) 1414: { 1414: 1414: 1414: 1414: ; 1414: ; 1414: 1414: return std::__mismatch(__first1, __last1, __first2, __last2, 1414: __binary_pred); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr 1414: inline _Iterator 1414: __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) 1414: { 1414: #pragma GCC unroll 4 1414: while (__first != __last && !__pred(*__first)) 1414: ++__first; 1414: return __first; 1414: } 1414: 1414: template 1414: constexpr 1414: typename iterator_traits<_InputIterator>::difference_type 1414: __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 1414: { 1414: typename iterator_traits<_InputIterator>::difference_type __n = 0; 1414: for (; __first != __last; ++__first) 1414: if (__pred(*__first)) 1414: ++__n; 1414: return __n; 1414: } 1414: 1414: template 1414: constexpr 1414: _ForwardIterator 1414: __remove_if(_ForwardIterator __first, _ForwardIterator __last, 1414: _Predicate __pred) 1414: { 1414: __first = std::__find_if(__first, __last, __pred); 1414: if (__first == __last) 1414: return __first; 1414: _ForwardIterator __result = __first; 1414: ++__first; 1414: for (; __first != __last; ++__first) 1414: if (!__pred(*__first)) 1414: { 1414: *__result = std::move(*__first); 1414: ++__result; 1414: } 1414: return __result; 1414: } 1414: 1414: template 1414: constexpr 1414: _ForwardIterator1 1414: __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1414: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 1414: _BinaryPredicate __predicate) 1414: { 1414: 1414: if (__first1 == __last1 || __first2 == __last2) 1414: return __first1; 1414: 1414: __decltype(*__first2) __first2_val(*__first2); 1414: __decltype(__gnu_cxx::__ops::bind2nd(__predicate, __first2_val)) 1414: __match_first = __gnu_cxx::__ops::bind2nd(__predicate, __first2_val); 1414: 1414: 1414: _ForwardIterator2 __p1(__first2); 1414: if (++__p1 == __last2) 1414: return std::__find_if(__first1, __last1, __match_first); 1414: 1414: 1414: _ForwardIterator1 __current = __first1; 1414: 1414: for (;;) 1414: { 1414: __first1 = std::__find_if(__first1, __last1, __match_first); 1414: 1414: if (__first1 == __last1) 1414: return __last1; 1414: 1414: _ForwardIterator2 __p = __p1; 1414: __current = __first1; 1414: if (++__current == __last1) 1414: return __last1; 1414: 1414: while (__predicate(*__current, *__p)) 1414: { 1414: if (++__p == __last2) 1414: return __first1; 1414: if (++__current == __last1) 1414: return __last1; 1414: } 1414: ++__first1; 1414: } 1414: return __first1; 1414: } 1414: 1414: 1414: 1414: template 1414: constexpr 1414: bool 1414: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1414: _ForwardIterator2 __first2, _BinaryPredicate __pred) 1414: { 1414: 1414: 1414: for (; __first1 != __last1; ++__first1, (void)++__first2) 1414: if (!__pred(*__first1, *__first2)) 1414: break; 1414: 1414: if (__first1 == __last1) 1414: return true; 1414: 1414: 1414: 1414: _ForwardIterator2 __last2 = __first2; 1414: std::advance(__last2, std::distance(__first1, __last1)); 1414: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 1414: { 1414: auto&& __scan_val = *__scan; 1414: auto __scaneq = __gnu_cxx::__ops::bind1st(__pred, __scan_val); 1414: if (__scan != std::__find_if(__first1, __scan, __scaneq)) 1414: continue; 1414: 1414: auto __matches = std::__count_if(__first2, __last2, __scaneq); 1414: if (0 == __matches 1414: || std::__count_if(__scan, __last1, __scaneq) != __matches) 1414: return false; 1414: } 1414: return true; 1414: } 1414: # 2234 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: constexpr 1414: inline bool 1414: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1414: _ForwardIterator2 __first2) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: ; 1414: 1414: return std::__is_permutation(__first1, __last1, __first2, 1414: __gnu_cxx::__ops::equal_to()); 1414: } 1414: 1414: 1414: 1414: # 2276 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_algobase.h" 3 1414: template 1414: constexpr 1414: inline _ForwardIterator1 1414: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1414: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 1414: _BinaryPredicate __predicate) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: ; 1414: ; 1414: 1414: return std::__search(__first1, __last1, __first2, __last2, __predicate); 1414: } 1414: 1414: 1414: 1414: } 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/array" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/range_access.h" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/range_access.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: inline constexpr auto 1414: begin(_Container& __cont) noexcept(noexcept(__cont.begin())) 1414: -> decltype(__cont.begin()) 1414: { return __cont.begin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: inline constexpr auto 1414: begin(const _Container& __cont) noexcept(noexcept(__cont.begin())) 1414: -> decltype(__cont.begin()) 1414: { return __cont.begin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: inline constexpr auto 1414: end(_Container& __cont) noexcept(noexcept(__cont.end())) 1414: -> decltype(__cont.end()) 1414: { return __cont.end(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: inline constexpr auto 1414: end(const _Container& __cont) noexcept(noexcept(__cont.end())) 1414: -> decltype(__cont.end()) 1414: { return __cont.end(); } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: inline constexpr _Tp* 1414: begin(_Tp (&__arr)[_Nm]) noexcept 1414: { return __arr; } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: inline constexpr _Tp* 1414: end(_Tp (&__arr)[_Nm]) noexcept 1414: { return __arr + _Nm; } 1414: 1414: 1414: 1414: template class valarray; 1414: 1414: template _Tp* begin(valarray<_Tp>&) noexcept; 1414: template const _Tp* begin(const valarray<_Tp>&) noexcept; 1414: template _Tp* end(valarray<_Tp>&) noexcept; 1414: template const _Tp* end(const valarray<_Tp>&) noexcept; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: constexpr auto 1414: cbegin(const _Container& __cont) noexcept(noexcept(std::begin(__cont))) 1414: -> decltype(std::begin(__cont)) 1414: { return std::begin(__cont); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: constexpr auto 1414: cend(const _Container& __cont) noexcept(noexcept(std::end(__cont))) 1414: -> decltype(std::end(__cont)) 1414: { return std::end(__cont); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: inline constexpr auto 1414: rbegin(_Container& __cont) noexcept(noexcept(__cont.rbegin())) 1414: -> decltype(__cont.rbegin()) 1414: { return __cont.rbegin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: inline constexpr auto 1414: rbegin(const _Container& __cont) noexcept(noexcept(__cont.rbegin())) 1414: -> decltype(__cont.rbegin()) 1414: { return __cont.rbegin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: inline constexpr auto 1414: rend(_Container& __cont) noexcept(noexcept(__cont.rend())) 1414: -> decltype(__cont.rend()) 1414: { return __cont.rend(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: inline constexpr auto 1414: rend(const _Container& __cont) noexcept(noexcept(__cont.rend())) 1414: -> decltype(__cont.rend()) 1414: { return __cont.rend(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr reverse_iterator<_Tp*> 1414: rbegin(_Tp (&__arr)[_Nm]) noexcept 1414: { return reverse_iterator<_Tp*>(__arr + _Nm); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr reverse_iterator<_Tp*> 1414: rend(_Tp (&__arr)[_Nm]) noexcept 1414: { return reverse_iterator<_Tp*>(__arr); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr reverse_iterator 1414: rbegin(initializer_list<_Tp> __il) noexcept 1414: { return reverse_iterator(__il.end()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline constexpr reverse_iterator 1414: rend(initializer_list<_Tp> __il) noexcept 1414: { return reverse_iterator(__il.begin()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: inline constexpr auto 1414: crbegin(const _Container& __cont) noexcept(noexcept(std::rbegin(__cont))) 1414: -> decltype(std::rbegin(__cont)) 1414: { return std::rbegin(__cont); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__, __gnu__::__always_inline__]] 1414: inline constexpr auto 1414: crend(const _Container& __cont) noexcept(noexcept(std::rend(__cont))) 1414: -> decltype(std::rend(__cont)) 1414: { return std::rend(__cont); } 1414: # 271 "/usr/arm-linux-gnueabihf/include/c++/16/bits/range_access.h" 3 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr auto 1414: size(const _Container& __cont) noexcept(noexcept(__cont.size())) 1414: -> decltype(__cont.size()) 1414: { return __cont.size(); } 1414: 1414: 1414: 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr size_t 1414: size(const _Tp (&)[_Nm]) noexcept 1414: { return _Nm; } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr auto 1414: empty(const _Container& __cont) noexcept(noexcept(__cont.empty())) 1414: -> decltype(__cont.empty()) 1414: { return __cont.empty(); } 1414: 1414: 1414: 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr bool 1414: empty(const _Tp (&)[_Nm]) noexcept 1414: { return false; } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr bool 1414: empty(initializer_list<_Tp> __il) noexcept 1414: { return __il.size() == 0;} 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr auto 1414: data(_Container& __cont) noexcept(noexcept(__cont.data())) 1414: -> decltype(__cont.data()) 1414: { return __cont.data(); } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr auto 1414: data(const _Container& __cont) noexcept(noexcept(__cont.data())) 1414: -> decltype(__cont.data()) 1414: { return __cont.data(); } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr _Tp* 1414: data(_Tp (&__array)[_Nm]) noexcept 1414: { return __array; } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr const _Tp* 1414: data(initializer_list<_Tp> __il) noexcept 1414: { return __il.begin(); } 1414: 1414: 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr auto 1414: ssize(const _Container& __cont) noexcept(noexcept(__cont.size())) 1414: -> common_type_t> 1414: { 1414: using type = make_signed_t; 1414: return static_cast>(__cont.size()); 1414: } 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr ptrdiff_t 1414: ssize(const _Tp (&)[_Num]) noexcept 1414: { return _Num; } 1414: 1414: 1414: } 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/array" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 55 "/usr/arm-linux-gnueabihf/include/c++/16/array" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: struct __array_traits 1414: { 1414: using _Type = _Tp[_Nm]; 1414: using _Is_swappable = __is_swappable<_Tp>; 1414: using _Is_nothrow_swappable = __is_nothrow_swappable<_Tp>; 1414: }; 1414: 1414: template 1414: struct __array_traits<_Tp, 0> 1414: { 1414: 1414: struct _Type 1414: { 1414: 1414: __attribute__((__always_inline__,__noreturn__)) 1414: _Tp& operator[](size_t) const noexcept { __builtin_trap(); } 1414: 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr explicit operator _Tp*() const noexcept { return nullptr; } 1414: }; 1414: 1414: using _Is_swappable = true_type; 1414: using _Is_nothrow_swappable = true_type; 1414: }; 1414: # 101 "/usr/arm-linux-gnueabihf/include/c++/16/array" 3 1414: template 1414: struct array 1414: { 1414: typedef _Tp value_type; 1414: typedef value_type* pointer; 1414: typedef const value_type* const_pointer; 1414: typedef value_type& reference; 1414: typedef const value_type& const_reference; 1414: typedef value_type* iterator; 1414: typedef const value_type* const_iterator; 1414: typedef std::size_t size_type; 1414: typedef std::ptrdiff_t difference_type; 1414: typedef std::reverse_iterator reverse_iterator; 1414: typedef std::reverse_iterator const_reverse_iterator; 1414: 1414: 1414: typename __array_traits<_Tp, _Nm>::_Type _M_elems; 1414: 1414: 1414: 1414: 1414: constexpr void 1414: fill(const value_type& __u) 1414: { std::fill_n(begin(), size(), __u); } 1414: 1414: constexpr void 1414: swap(array& __other) 1414: noexcept(__array_traits<_Tp, _Nm>::_Is_nothrow_swappable::value) 1414: { std::swap_ranges(begin(), end(), __other.begin()); } 1414: 1414: 1414: [[__gnu__::__const__, __nodiscard__]] 1414: constexpr iterator 1414: begin() noexcept 1414: { return iterator(data()); } 1414: 1414: [[__nodiscard__]] 1414: constexpr const_iterator 1414: begin() const noexcept 1414: { return const_iterator(data()); } 1414: 1414: [[__gnu__::__const__, __nodiscard__]] 1414: constexpr iterator 1414: end() noexcept 1414: { return iterator(data() + _Nm); } 1414: 1414: [[__nodiscard__]] 1414: constexpr const_iterator 1414: end() const noexcept 1414: { return const_iterator(data() + _Nm); } 1414: 1414: [[__gnu__::__const__, __nodiscard__]] 1414: constexpr reverse_iterator 1414: rbegin() noexcept 1414: { return reverse_iterator(end()); } 1414: 1414: [[__nodiscard__]] 1414: constexpr const_reverse_iterator 1414: rbegin() const noexcept 1414: { return const_reverse_iterator(end()); } 1414: 1414: [[__gnu__::__const__, __nodiscard__]] 1414: constexpr reverse_iterator 1414: rend() noexcept 1414: { return reverse_iterator(begin()); } 1414: 1414: [[__nodiscard__]] 1414: constexpr const_reverse_iterator 1414: rend() const noexcept 1414: { return const_reverse_iterator(begin()); } 1414: 1414: [[__nodiscard__]] 1414: constexpr const_iterator 1414: cbegin() const noexcept 1414: { return const_iterator(data()); } 1414: 1414: [[__nodiscard__]] 1414: constexpr const_iterator 1414: cend() const noexcept 1414: { return const_iterator(data() + _Nm); } 1414: 1414: [[__nodiscard__]] 1414: constexpr const_reverse_iterator 1414: crbegin() const noexcept 1414: { return const_reverse_iterator(end()); } 1414: 1414: [[__nodiscard__]] 1414: constexpr const_reverse_iterator 1414: crend() const noexcept 1414: { return const_reverse_iterator(begin()); } 1414: 1414: 1414: [[__nodiscard__, __gnu__::__const__, __gnu__::__always_inline__]] 1414: constexpr size_type 1414: size() const noexcept { return _Nm; } 1414: 1414: [[__nodiscard__, __gnu__::__const__, __gnu__::__always_inline__]] 1414: constexpr size_type 1414: max_size() const noexcept { return _Nm; } 1414: 1414: [[__nodiscard__, __gnu__::__const__, __gnu__::__always_inline__]] 1414: constexpr bool 1414: empty() const noexcept { return size() == 0; } 1414: 1414: 1414: [[__nodiscard__]] 1414: constexpr reference 1414: operator[](size_type __n) noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__n < this->size())) std::__glibcxx_assert_fail(); } while (false); 1414: return _M_elems[__n]; 1414: } 1414: 1414: [[__nodiscard__]] 1414: constexpr const_reference 1414: operator[](size_type __n) const noexcept 1414: { 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(__n < this->size())) std::__glibcxx_assert_fail(); } while (false); 1414: 1414: return _M_elems[__n]; 1414: } 1414: 1414: constexpr reference 1414: at(size_type __n) 1414: { 1414: if (__n >= _Nm) 1414: std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 1414: , 1414: __n, _Nm); 1414: return _M_elems[__n]; 1414: } 1414: 1414: constexpr const_reference 1414: at(size_type __n) const 1414: { 1414: 1414: 1414: return __n < _Nm ? _M_elems[__n] 1414: : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 1414: , 1414: __n, _Nm), 1414: _M_elems[__n]); 1414: } 1414: 1414: [[__nodiscard__]] 1414: constexpr reference 1414: front() noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return _M_elems[(size_type)0]; 1414: } 1414: 1414: [[__nodiscard__]] 1414: constexpr const_reference 1414: front() const noexcept 1414: { 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: 1414: return _M_elems[(size_type)0]; 1414: } 1414: 1414: [[__nodiscard__]] 1414: constexpr reference 1414: back() noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return _M_elems[_Nm - 1]; 1414: } 1414: 1414: [[__nodiscard__]] 1414: constexpr const_reference 1414: back() const noexcept 1414: { 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: 1414: return _M_elems[_Nm - 1]; 1414: } 1414: 1414: [[__nodiscard__, __gnu__::__const__, __gnu__::__always_inline__]] 1414: constexpr pointer 1414: data() noexcept 1414: { return static_cast(_M_elems); } 1414: 1414: [[__nodiscard__]] 1414: constexpr const_pointer 1414: data() const noexcept 1414: { return static_cast(_M_elems); } 1414: }; 1414: 1414: 1414: template 1414: array(_Tp, _Up...) 1414: -> array && ...), _Tp>, 1414: 1 + sizeof...(_Up)>; 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] 1414: constexpr 1414: inline bool 1414: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 1414: { return std::__equal_aux1(__one.begin(), __one.end(), __two.begin()); } 1414: 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr __detail::__synth3way_t<_Tp> 1414: operator<=>(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 1414: { 1414: if constexpr (_Nm && __is_memcmp_ordered<_Tp>::__value) 1414: if (!std::__is_constant_evaluated()) 1414: { 1414: constexpr size_t __n = _Nm * sizeof(_Tp); 1414: return __builtin_memcmp(__a.data(), __b.data(), __n) <=> 0; 1414: } 1414: 1414: for (size_t __i = 0; __i < _Nm; ++__i) 1414: { 1414: auto __c = __detail::__synth3way(__a[__i], __b[__i]); 1414: if (__c != 0) 1414: return __c; 1414: } 1414: return strong_ordering::equal; 1414: } 1414: # 370 "/usr/arm-linux-gnueabihf/include/c++/16/array" 3 1414: template 1414: constexpr 1414: inline 1414: 1414: 1414: __enable_if_t<__array_traits<_Tp, _Nm>::_Is_swappable::value> 1414: 1414: 1414: 1414: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 1414: noexcept(noexcept(__one.swap(__two))) 1414: { __one.swap(__two); } 1414: 1414: 1414: 1414: 1414: template 1414: __enable_if_t::_Is_swappable::value> 1414: swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&) = delete; 1414: 1414: 1414: template 1414: [[__nodiscard__]] 1414: constexpr _Tp& 1414: get(array<_Tp, _Nm>& __arr) noexcept 1414: { 1414: static_assert(_Int < _Nm, "array index is within bounds"); 1414: return __arr._M_elems[_Int]; 1414: } 1414: 1414: template 1414: [[__nodiscard__]] 1414: constexpr _Tp&& 1414: get(array<_Tp, _Nm>&& __arr) noexcept 1414: { 1414: static_assert(_Int < _Nm, "array index is within bounds"); 1414: return std::move(std::get<_Int>(__arr)); 1414: } 1414: 1414: template 1414: [[__nodiscard__]] 1414: constexpr const _Tp& 1414: get(const array<_Tp, _Nm>& __arr) noexcept 1414: { 1414: static_assert(_Int < _Nm, "array index is within bounds"); 1414: return __arr._M_elems[_Int]; 1414: } 1414: 1414: template 1414: [[__nodiscard__]] 1414: constexpr const _Tp&& 1414: get(const array<_Tp, _Nm>&& __arr) noexcept 1414: { 1414: static_assert(_Int < _Nm, "array index is within bounds"); 1414: return std::move(std::get<_Int>(__arr)); 1414: } 1414: 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr array, _Nm> 1414: to_array(_Tp (&__a)[_Nm]) 1414: noexcept(is_nothrow_constructible_v<_Tp, _Tp&>) 1414: { 1414: static_assert(!is_array_v<_Tp>); 1414: static_assert(is_constructible_v<_Tp, _Tp&>); 1414: if constexpr (is_constructible_v<_Tp, _Tp&>) 1414: { 1414: if constexpr (is_trivially_copyable_v<_Tp> 1414: && is_trivially_default_constructible_v<_Tp> 1414: && is_copy_assignable_v<_Tp>) 1414: { 1414: array, _Nm> __arr; 1414: if (!__is_constant_evaluated() && _Nm != 0) 1414: __builtin_memcpy((void*)__arr.data(), (void*)__a, sizeof(__a)); 1414: else 1414: for (size_t __i = 0; __i < _Nm; ++__i) 1414: __arr._M_elems[__i] = __a[__i]; 1414: return __arr; 1414: } 1414: else 1414: return [&__a](index_sequence<_Idx...>) { 1414: return array, _Nm>{{ __a[_Idx]... }}; 1414: }(make_index_sequence<_Nm>{}); 1414: } 1414: else 1414: __builtin_unreachable(); 1414: } 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr array, _Nm> 1414: to_array(_Tp (&&__a)[_Nm]) 1414: noexcept(is_nothrow_move_constructible_v<_Tp>) 1414: { 1414: static_assert(!is_array_v<_Tp>); 1414: static_assert(is_move_constructible_v<_Tp>); 1414: if constexpr (is_move_constructible_v<_Tp>) 1414: { 1414: if constexpr (is_trivially_copyable_v<_Tp> 1414: && is_trivially_default_constructible_v<_Tp> 1414: && is_copy_assignable_v<_Tp>) 1414: { 1414: array, _Nm> __arr; 1414: if (!__is_constant_evaluated() && _Nm != 0) 1414: __builtin_memcpy((void*)__arr.data(), (void*)__a, sizeof(__a)); 1414: else 1414: for (size_t __i = 0; __i < _Nm; ++__i) 1414: __arr._M_elems[__i] = __a[__i]; 1414: return __arr; 1414: } 1414: else 1414: return [&__a](index_sequence<_Idx...>) { 1414: return array, _Nm>{{ std::move(__a[_Idx])... }}; 1414: }(make_index_sequence<_Nm>{}); 1414: } 1414: else 1414: __builtin_unreachable(); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct tuple_size> 1414: : public integral_constant { }; 1414: 1414: 1414: template 1414: struct tuple_element<_Ind, array<_Tp, _Nm>> 1414: { 1414: static_assert(_Ind < _Nm, "array index is in range"); 1414: using type = _Tp; 1414: }; 1414: 1414: 1414: template 1414: inline constexpr size_t tuple_size_v> = _Nm; 1414: 1414: template 1414: inline constexpr size_t tuple_size_v> = _Nm; 1414: 1414: 1414: template 1414: struct __is_tuple_like_impl> : true_type 1414: { }; 1414: 1414: 1414: } 1414: # 12 "build/include/public/botan/ipv6_address.h" 2 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 2 3 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/exception" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/exception" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/exception" 2 3 1414: 1414: extern "C++" { 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: # 58 "/usr/arm-linux-gnueabihf/include/c++/16/exception" 3 1414: class bad_exception : public exception 1414: { 1414: public: 1414: bad_exception() noexcept { } 1414: # 76 "/usr/arm-linux-gnueabihf/include/c++/16/exception" 3 1414: virtual ~bad_exception() noexcept; 1414: 1414: 1414: virtual const char* 1414: what() const noexcept; 1414: 1414: }; 1414: 1414: 1414: typedef void (*terminate_handler) (); 1414: 1414: 1414: terminate_handler set_terminate(terminate_handler) noexcept; 1414: 1414: 1414: 1414: terminate_handler get_terminate() noexcept; 1414: 1414: 1414: 1414: 1414: void terminate() noexcept __attribute__ ((__noreturn__,__cold__)); 1414: 1414: 1414: 1414: typedef void (*__attribute__ ((__deprecated__)) unexpected_handler) (); 1414: 1414: 1414: 1414: 1414: 1414: __attribute__ ((__deprecated__)) 1414: unexpected_handler set_unexpected(unexpected_handler) noexcept; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: __attribute__ ((__deprecated__)) 1414: unexpected_handler get_unexpected() noexcept; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: __attribute__ ((__deprecated__)) 1414: void unexpected() __attribute__ ((__noreturn__,__cold__)); 1414: # 140 "/usr/arm-linux-gnueabihf/include/c++/16/exception" 3 1414: __attribute__ ((__deprecated__ ("use '" "std::uncaught_exceptions()" "' instead"))) 1414: bool uncaught_exception() noexcept __attribute__ ((__pure__)); 1414: 1414: 1414: 1414: 1414: 1414: 1414: int uncaught_exceptions() noexcept __attribute__ ((__pure__)); 1414: 1414: 1414: 1414: } 1414: 1414: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 174 "/usr/arm-linux-gnueabihf/include/c++/16/exception" 3 1414: void __verbose_terminate_handler(); 1414: 1414: 1414: } 1414: 1414: } 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 1 3 1414: # 36 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cxxabi_init_exception.h" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cxxabi_init_exception.h" 3 1414: #pragma GCC visibility push(default) 1414: 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cxxabi_init_exception.h" 2 3 1414: # 52 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cxxabi_init_exception.h" 3 1414: namespace std 1414: { 1414: class type_info; 1414: } 1414: 1414: namespace __cxxabiv1 1414: { 1414: struct __cxa_refcounted_exception; 1414: 1414: extern "C" 1414: { 1414: 1414: void* 1414: __cxa_allocate_exception(size_t) noexcept; 1414: 1414: void 1414: __cxa_free_exception(void*) noexcept; 1414: 1414: 1414: __cxa_refcounted_exception* 1414: __cxa_init_primary_exception(void *__object, std::type_info *__tinfo, 1414: void ( *__dest) (void *)) 1414: noexcept; 1414: 1414: } 1414: } 1414: 1414: 1414: 1414: #pragma GCC visibility pop 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/typeinfo" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/c++/16/typeinfo" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/hash_bytes.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/bits/hash_bytes.h" 3 1414: namespace std 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: size_t 1414: _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); 1414: 1414: 1414: 1414: 1414: 1414: size_t 1414: _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); 1414: 1414: 1414: } 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/typeinfo" 2 3 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/typeinfo" 2 3 1414: 1414: #pragma GCC visibility push(default) 1414: 1414: extern "C++" { 1414: 1414: namespace __cxxabiv1 1414: { 1414: class __class_type_info; 1414: } 1414: # 85 "/usr/arm-linux-gnueabihf/include/c++/16/typeinfo" 3 1414: namespace std 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: class type_info 1414: { 1414: public: 1414: 1414: 1414: 1414: 1414: virtual ~type_info(); 1414: 1414: 1414: 1414: const char* name() const noexcept 1414: { return __name[0] == '*' ? __name + 1 : __name; } 1414: 1414: 1414: 1414: bool before(const type_info& __arg) const noexcept; 1414: 1414: 1414: bool operator==(const type_info& __arg) const noexcept; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: size_t hash_code() const noexcept 1414: { 1414: 1414: return _Hash_bytes(name(), __builtin_strlen(name()), 1414: static_cast(0xc70f6907UL)); 1414: 1414: 1414: 1414: } 1414: 1414: 1414: 1414: virtual bool __is_pointer_p() const; 1414: 1414: 1414: virtual bool __is_function_p() const; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, 1414: unsigned __outer) const; 1414: 1414: 1414: virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, 1414: void **__obj_ptr) const; 1414: 1414: protected: 1414: const char *__name; 1414: 1414: explicit type_info(const char *__n): __name(__n) { } 1414: 1414: private: 1414: 1414: 1414: type_info& operator=(const type_info&) = delete; 1414: type_info(const type_info&) = delete; 1414: 1414: 1414: 1414: 1414: 1414: 1414: bool __equal(const type_info&) const noexcept; 1414: 1414: }; 1414: # 224 "/usr/arm-linux-gnueabihf/include/c++/16/typeinfo" 3 1414: class bad_cast : public exception 1414: { 1414: public: 1414: bad_cast() noexcept { } 1414: # 241 "/usr/arm-linux-gnueabihf/include/c++/16/typeinfo" 3 1414: virtual ~bad_cast() noexcept; 1414: 1414: 1414: virtual const char* what() const noexcept; 1414: 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: class bad_typeid : public exception 1414: { 1414: public: 1414: bad_typeid () noexcept { } 1414: # 269 "/usr/arm-linux-gnueabihf/include/c++/16/typeinfo" 3 1414: virtual ~bad_typeid() noexcept; 1414: 1414: 1414: virtual const char* what() const noexcept; 1414: 1414: }; 1414: } 1414: 1414: } 1414: 1414: #pragma GCC visibility pop 1414: # 38 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 2 3 1414: # 50 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 3 1414: extern "C++" { 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: class type_info; 1414: 1414: 1414: 1414: 1414: 1414: 1414: namespace __exception_ptr 1414: { 1414: class exception_ptr; 1414: } 1414: 1414: using __exception_ptr::exception_ptr; 1414: # 75 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 3 1414: exception_ptr current_exception() noexcept; 1414: 1414: template 1414: exception_ptr make_exception_ptr(_Ex) 1414: noexcept; 1414: 1414: 1414: void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); 1414: # 91 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 3 1414: namespace __exception_ptr 1414: { 1414: using std::rethrow_exception; 1414: # 105 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 3 1414: class exception_ptr 1414: { 1414: void* _M_exception_object; 1414: # 127 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 3 1414: explicit exception_ptr(void* __e) noexcept; 1414: 1414: 1414: void _M_addref() noexcept; 1414: void _M_release() noexcept; 1414: 1414: void *_M_get() const noexcept __attribute__ ((__pure__)); 1414: 1414: friend exception_ptr std::current_exception() noexcept; 1414: friend void std::rethrow_exception(exception_ptr); 1414: template 1414: friend exception_ptr std::make_exception_ptr(_Ex) 1414: noexcept; 1414: 1414: 1414: 1414: 1414: 1414: 1414: const void* _M_exception_ptr_cast(const type_info&) const 1414: noexcept; 1414: 1414: public: 1414: exception_ptr() noexcept; 1414: 1414: exception_ptr(const exception_ptr&) 1414: noexcept; 1414: 1414: 1414: exception_ptr(nullptr_t) noexcept 1414: : _M_exception_object(nullptr) 1414: { } 1414: 1414: exception_ptr(exception_ptr&& __o) noexcept 1414: : _M_exception_object(__o._M_exception_object) 1414: { __o._M_exception_object = nullptr; } 1414: # 172 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 3 1414: exception_ptr& 1414: operator=(const exception_ptr&) noexcept; 1414: 1414: 1414: exception_ptr& 1414: operator=(exception_ptr&& __o) noexcept 1414: { 1414: exception_ptr(static_cast(__o)).swap(*this); 1414: return *this; 1414: } 1414: 1414: 1414: ~exception_ptr() noexcept; 1414: 1414: void 1414: swap(exception_ptr&) noexcept; 1414: # 198 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 3 1414: explicit operator bool() const noexcept 1414: { return _M_exception_object; } 1414: 1414: 1414: 1414: 1414: friend bool 1414: operator==(const exception_ptr&, const exception_ptr&) noexcept = default; 1414: # 219 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 3 1414: friend void 1414: swap(exception_ptr& __lhs, exception_ptr& __rhs); 1414: 1414: const class std::type_info* 1414: __cxa_exception_type() const noexcept 1414: __attribute__ ((__pure__)); 1414: }; 1414: 1414: 1414: inline 1414: exception_ptr::exception_ptr() noexcept 1414: : _M_exception_object(0) 1414: { } 1414: 1414: 1414: inline 1414: exception_ptr::exception_ptr(const exception_ptr& __other) 1414: noexcept 1414: : _M_exception_object(__other._M_exception_object) 1414: { 1414: if (_M_exception_object) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: _M_addref(); 1414: } 1414: } 1414: 1414: 1414: inline 1414: exception_ptr::~exception_ptr() noexcept 1414: { 1414: if (_M_exception_object) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: _M_release(); 1414: } 1414: } 1414: 1414: 1414: inline exception_ptr& 1414: exception_ptr::operator=(const exception_ptr& __other) noexcept 1414: { 1414: exception_ptr(__other).swap(*this); 1414: return *this; 1414: } 1414: 1414: 1414: inline void 1414: exception_ptr::swap(exception_ptr &__other) noexcept 1414: { 1414: void *__tmp = _M_exception_object; 1414: _M_exception_object = __other._M_exception_object; 1414: __other._M_exception_object = __tmp; 1414: } 1414: 1414: 1414: inline void 1414: swap(exception_ptr& __lhs, exception_ptr& __rhs) 1414: { __lhs.swap(__rhs); } 1414: 1414: 1414: template 1414: 1414: inline void 1414: __dest_thunk(void* __x) 1414: { static_cast<_Ex*>(__x)->~_Ex(); } 1414: 1414: 1414: } 1414: 1414: using __exception_ptr::swap; 1414: 1414: 1414: template 1414: 1414: 1414: 1414: 1414: 1414: exception_ptr 1414: make_exception_ptr(_Ex __ex) noexcept 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: { 1414: using _Ex2 = typename decay<_Ex>::type; 1414: void* __e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); 1414: (void) __cxxabiv1::__cxa_init_primary_exception( 1414: __e, const_cast(&typeid(_Ex)), 1414: __exception_ptr::__dest_thunk<_Ex2>); 1414: try 1414: { 1414: ::new (__e) _Ex2(__ex); 1414: return exception_ptr(__e); 1414: } 1414: catch(...) 1414: { 1414: __cxxabiv1::__cxa_free_exception(__e); 1414: return current_exception(); 1414: } 1414: } 1414: 1414: 1414: 1414: try 1414: { 1414: throw __ex; 1414: } 1414: catch(...) 1414: { 1414: 1414: 1414: 1414: return current_exception(); 1414: 1414: } 1414: 1414: return exception_ptr(); 1414: } 1414: # 398 "/usr/arm-linux-gnueabihf/include/c++/16/bits/exception_ptr.h" 3 1414: } 1414: 1414: } 1414: # 183 "/usr/arm-linux-gnueabihf/include/c++/16/exception" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/nested_exception.h" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/bits/nested_exception.h" 3 1414: extern "C++" { 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: # 59 "/usr/arm-linux-gnueabihf/include/c++/16/bits/nested_exception.h" 3 1414: class nested_exception 1414: { 1414: exception_ptr _M_ptr; 1414: 1414: public: 1414: 1414: nested_exception() noexcept : _M_ptr(current_exception()) { } 1414: 1414: nested_exception(const nested_exception&) noexcept = default; 1414: 1414: nested_exception& operator=(const nested_exception&) noexcept = default; 1414: 1414: virtual ~nested_exception() noexcept; 1414: 1414: 1414: [[noreturn]] 1414: void 1414: rethrow_nested() const 1414: { 1414: if (_M_ptr) 1414: rethrow_exception(_M_ptr); 1414: std::terminate(); 1414: } 1414: 1414: 1414: exception_ptr 1414: nested_ptr() const noexcept 1414: { return _M_ptr; } 1414: }; 1414: 1414: 1414: 1414: template 1414: struct _Nested_exception : public _Except, public nested_exception 1414: { 1414: explicit _Nested_exception(const _Except& __ex) 1414: : _Except(__ex) 1414: { } 1414: 1414: explicit _Nested_exception(_Except&& __ex) 1414: : _Except(static_cast<_Except&&>(__ex)) 1414: { } 1414: }; 1414: # 145 "/usr/arm-linux-gnueabihf/include/c++/16/bits/nested_exception.h" 3 1414: template 1414: [[noreturn]] 1414: inline void 1414: throw_with_nested(_Tp&& __t) 1414: { 1414: using _Up = typename decay<_Tp>::type; 1414: using _CopyConstructible 1414: = __and_, is_move_constructible<_Up>>; 1414: static_assert(_CopyConstructible::value, 1414: "throw_with_nested argument must be CopyConstructible"); 1414: 1414: 1414: if constexpr (is_class_v<_Up>) 1414: if constexpr (!is_final_v<_Up>) 1414: if constexpr (!is_base_of_v) 1414: throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; 1414: throw std::forward<_Tp>(__t); 1414: 1414: 1414: 1414: 1414: 1414: } 1414: # 203 "/usr/arm-linux-gnueabihf/include/c++/16/bits/nested_exception.h" 3 1414: template 1414: 1414: 1414: 1414: inline void 1414: rethrow_if_nested(const _Ex& __ex) 1414: { 1414: const _Ex* __ptr = __builtin_addressof(__ex); 1414: # 223 "/usr/arm-linux-gnueabihf/include/c++/16/bits/nested_exception.h" 3 1414: if constexpr (!is_polymorphic_v<_Ex>) 1414: return; 1414: else if constexpr (is_base_of_v 1414: && !is_convertible_v<_Ex*, nested_exception*>) 1414: return; 1414: 1414: 1414: 1414: 1414: else if (auto __ne_ptr = dynamic_cast(__ptr)) 1414: __ne_ptr->rethrow_nested(); 1414: 1414: } 1414: 1414: 1414: } 1414: 1414: } 1414: # 184 "/usr/arm-linux-gnueabihf/include/c++/16/exception" 2 3 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/enable_special_members.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/bits/enable_special_members.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: struct _Enable_default_constructor_tag 1414: { 1414: explicit constexpr _Enable_default_constructor_tag() = default; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct _Enable_default_constructor 1414: { 1414: constexpr _Enable_default_constructor() noexcept = default; 1414: constexpr _Enable_default_constructor(_Enable_default_constructor const&) 1414: noexcept = default; 1414: constexpr _Enable_default_constructor(_Enable_default_constructor&&) 1414: noexcept = default; 1414: _Enable_default_constructor& 1414: operator=(_Enable_default_constructor const&) noexcept = default; 1414: _Enable_default_constructor& 1414: operator=(_Enable_default_constructor&&) noexcept = default; 1414: 1414: 1414: constexpr explicit 1414: _Enable_default_constructor(_Enable_default_constructor_tag) { } 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct _Enable_destructor { }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct _Enable_copy_move { }; 1414: # 98 "/usr/arm-linux-gnueabihf/include/c++/16/bits/enable_special_members.h" 3 1414: template 1414: struct _Enable_special_members 1414: : private _Enable_default_constructor<_Default, _Tag>, 1414: private _Enable_destructor<_Destructor, _Tag>, 1414: private _Enable_copy_move<_Copy, _CopyAssignment, 1414: _Move, _MoveAssignment, 1414: _Tag> 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct _Enable_default_constructor 1414: { 1414: constexpr _Enable_default_constructor() noexcept = delete; 1414: constexpr _Enable_default_constructor(_Enable_default_constructor const&) 1414: noexcept = default; 1414: constexpr _Enable_default_constructor(_Enable_default_constructor&&) 1414: noexcept = default; 1414: _Enable_default_constructor& 1414: operator=(_Enable_default_constructor const&) noexcept = default; 1414: _Enable_default_constructor& 1414: operator=(_Enable_default_constructor&&) noexcept = default; 1414: 1414: 1414: constexpr explicit 1414: _Enable_default_constructor(_Enable_default_constructor_tag) { } 1414: }; 1414: 1414: template 1414: struct _Enable_destructor 1414: { ~_Enable_destructor() noexcept = delete; }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = default; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = default; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = default; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = default; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = default; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = default; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = default; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = delete; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = delete; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = delete; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = delete; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = delete; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = default; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = delete; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = delete; 1414: }; 1414: 1414: template 1414: struct _Enable_copy_move 1414: { 1414: constexpr _Enable_copy_move() noexcept = default; 1414: constexpr _Enable_copy_move(_Enable_copy_move const&) noexcept = delete; 1414: constexpr _Enable_copy_move(_Enable_copy_move&&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move const&) noexcept = delete; 1414: _Enable_copy_move& 1414: operator=(_Enable_copy_move&&) noexcept = delete; 1414: }; 1414: 1414: 1414: 1414: } 1414: # 51 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/functional_hash.h" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/bits/functional_hash.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 52 "/usr/arm-linux-gnueabihf/include/c++/16/bits/functional_hash.h" 3 1414: template 1414: struct __hash_base 1414: { 1414: 1414: 1414: 1414: 1414: }; 1414: 1414: 1414: 1414: template struct __hash_empty_base { }; 1414: 1414: 1414: 1414: template 1414: struct hash; 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++14-extensions" 1414: template 1414: constexpr bool __is_hash_enabled_for = false; 1414: 1414: template 1414: constexpr bool 1414: __is_hash_enabled_for<_Tp, 1414: __void_t()(declval<_Tp>()))>> 1414: = true; 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: template 1414: struct __hash_not_enabled 1414: { 1414: __hash_not_enabled(__hash_not_enabled&&) = delete; 1414: ~__hash_not_enabled() = delete; 1414: }; 1414: 1414: 1414: template 1414: struct __hash_enum : public __hash_base 1414: { 1414: size_t 1414: operator()(_Tp __val) const noexcept 1414: { 1414: using __type = typename underlying_type<_Tp>::type; 1414: return hash<__type>{}(static_cast<__type>(__val)); 1414: } 1414: }; 1414: 1414: 1414: template 1414: struct hash 1414: : __conditional_t<__is_enum(_Tp), __hash_enum<_Tp>, __hash_not_enabled<_Tp>> 1414: { }; 1414: 1414: 1414: template 1414: struct hash<_Tp*> : public __hash_base 1414: { 1414: size_t 1414: operator()(_Tp* __p) const noexcept 1414: { return reinterpret_cast(__p); } 1414: }; 1414: # 128 "/usr/arm-linux-gnueabihf/include/c++/16/bits/functional_hash.h" 3 1414: template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(char8_t __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; 1414: 1414: 1414: template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; 1414: # 213 "/usr/arm-linux-gnueabihf/include/c++/16/bits/functional_hash.h" 3 1414: struct _Hash_impl 1414: { 1414: static size_t 1414: hash(const void* __ptr, size_t __clength, 1414: size_t __seed = static_cast(0xc70f6907UL)) 1414: { return _Hash_bytes(__ptr, __clength, __seed); } 1414: 1414: template 1414: static size_t 1414: hash(const _Tp& __val) 1414: { return hash(&__val, sizeof(__val)); } 1414: 1414: template 1414: static size_t 1414: __hash_combine(const _Tp& __val, size_t __hash) 1414: { return hash(&__val, sizeof(__val), __hash); } 1414: }; 1414: 1414: 1414: struct _Fnv_hash_impl 1414: { 1414: static size_t 1414: hash(const void* __ptr, size_t __clength, 1414: size_t __seed = static_cast(2166136261UL)) 1414: { return _Fnv_hash_bytes(__ptr, __clength, __seed); } 1414: 1414: template 1414: static size_t 1414: hash(const _Tp& __val) 1414: { return hash(&__val, sizeof(__val)); } 1414: 1414: template 1414: static size_t 1414: __hash_combine(const _Tp& __val, size_t __hash) 1414: { return hash(&__val, sizeof(__val), __hash); } 1414: }; 1414: 1414: 1414: template<> 1414: struct hash : public __hash_base 1414: { 1414: size_t 1414: operator()(float __val) const noexcept 1414: { 1414: 1414: return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; 1414: } 1414: }; 1414: 1414: 1414: template<> 1414: struct hash : public __hash_base 1414: { 1414: size_t 1414: operator()(double __val) const noexcept 1414: { 1414: 1414: return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; 1414: } 1414: }; 1414: 1414: 1414: template<> 1414: struct hash 1414: : public __hash_base 1414: { 1414: __attribute__ ((__pure__)) size_t 1414: operator()(long double __val) const noexcept; 1414: }; 1414: 1414: 1414: template<> 1414: struct hash : public __hash_base 1414: { 1414: size_t 1414: operator()(nullptr_t) const noexcept 1414: { return 0; } 1414: }; 1414: # 306 "/usr/arm-linux-gnueabihf/include/c++/16/bits/functional_hash.h" 3 1414: template 1414: struct __is_fast_hash : public std::true_type 1414: { }; 1414: 1414: template<> 1414: struct __is_fast_hash> : public std::false_type 1414: { }; 1414: 1414: 1414: } 1414: # 53 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 2 3 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/invoke.h" 1 3 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/bits/invoke.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 55 "/usr/arm-linux-gnueabihf/include/c++/16/bits/invoke.h" 3 1414: template::type> 1414: constexpr _Up&& 1414: __invfwd(typename remove_reference<_Tp>::type& __t) noexcept 1414: { return static_cast<_Up&&>(__t); } 1414: 1414: template 1414: constexpr _Res 1414: __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) 1414: { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } 1414: 1414: template 1414: constexpr _Res 1414: __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, 1414: _Args&&... __args) 1414: { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } 1414: 1414: template 1414: constexpr _Res 1414: __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, 1414: _Args&&... __args) 1414: { 1414: return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); 1414: } 1414: 1414: template 1414: constexpr _Res 1414: __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) 1414: { return __invfwd<_Tp>(__t).*__f; } 1414: 1414: template 1414: constexpr _Res 1414: __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) 1414: { return (*std::forward<_Tp>(__t)).*__f; } 1414: 1414: 1414: template 1414: constexpr typename __invoke_result<_Callable, _Args...>::type 1414: __invoke(_Callable&& __fn, _Args&&... __args) 1414: noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) 1414: { 1414: using __result = __invoke_result<_Callable, _Args...>; 1414: using __type = typename __result::type; 1414: using __tag = typename __result::__invoke_type; 1414: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 1414: std::forward<_Args>(__args)...); 1414: } 1414: 1414: 1414: 1414: template 1414: constexpr enable_if_t, _Res> 1414: __invoke_r(_Callable&& __fn, _Args&&... __args) 1414: noexcept(is_nothrow_invocable_r_v<_Res, _Callable, _Args...>) 1414: { 1414: using __result = __invoke_result<_Callable, _Args...>; 1414: using __type = typename __result::type; 1414: using __tag = typename __result::__invoke_type; 1414: if constexpr (is_void_v<_Res>) 1414: std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 1414: std::forward<_Args>(__args)...); 1414: else 1414: return std::__invoke_impl<__type>(__tag{}, 1414: std::forward<_Callable>(__fn), 1414: std::forward<_Args>(__args)...); 1414: } 1414: # 157 "/usr/arm-linux-gnueabihf/include/c++/16/bits/invoke.h" 3 1414: 1414: } 1414: # 58 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 2 3 1414: # 70 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: class optional; 1414: 1414: 1414: struct nullopt_t 1414: { 1414: 1414: 1414: 1414: 1414: 1414: enum class _Construct { _Token }; 1414: 1414: 1414: explicit constexpr nullopt_t(_Construct) noexcept { } 1414: }; 1414: 1414: 1414: inline constexpr nullopt_t nullopt { nullopt_t::_Construct::_Token }; 1414: 1414: template struct _Optional_func { _Fn& _M_f; }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: class bad_optional_access : public exception 1414: { 1414: public: 1414: bad_optional_access() = default; 1414: virtual ~bad_optional_access() = default; 1414: 1414: 1414: 1414: 1414: const char* what() const noexcept override 1414: { return "bad optional access"; } 1414: }; 1414: 1414: 1414: [[__noreturn__]] 1414: 1414: 1414: 1414: inline 1414: 1414: void 1414: __throw_bad_optional_access() 1414: { (throw (bad_optional_access())); } 1414: 1414: 1414: 1414: template 1414: struct _Optional_payload_base 1414: { 1414: using _Stored_type = remove_const_t<_Tp>; 1414: 1414: _Optional_payload_base() = default; 1414: ~_Optional_payload_base() = default; 1414: 1414: template 1414: constexpr 1414: _Optional_payload_base(in_place_t __tag, _Args&&... __args) 1414: : _M_payload(__tag, std::forward<_Args>(__args)...), 1414: _M_engaged(true) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Optional_payload_base(std::initializer_list<_Up> __il, 1414: _Args&&... __args) 1414: : _M_payload(__il, std::forward<_Args>(__args)...), 1414: _M_engaged(true) 1414: { } 1414: 1414: 1414: 1414: constexpr 1414: _Optional_payload_base(bool , 1414: const _Optional_payload_base& __other) 1414: { 1414: if (__other._M_engaged) 1414: this->_M_construct(__other._M_get()); 1414: } 1414: 1414: 1414: 1414: constexpr 1414: _Optional_payload_base(bool , 1414: _Optional_payload_base&& __other) 1414: { 1414: if (__other._M_engaged) 1414: this->_M_construct(std::move(__other._M_get())); 1414: } 1414: 1414: 1414: 1414: _Optional_payload_base(const _Optional_payload_base&) = default; 1414: 1414: 1414: 1414: _Optional_payload_base(_Optional_payload_base&&) = default; 1414: 1414: _Optional_payload_base& 1414: operator=(const _Optional_payload_base&) = default; 1414: 1414: _Optional_payload_base& 1414: operator=(_Optional_payload_base&&) = default; 1414: 1414: 1414: constexpr void 1414: _M_copy_assign(const _Optional_payload_base& __other) 1414: { 1414: if (this->_M_engaged && __other._M_engaged) 1414: this->_M_get() = __other._M_get(); 1414: else 1414: { 1414: if (__other._M_engaged) 1414: this->_M_construct(__other._M_get()); 1414: else 1414: this->_M_reset(); 1414: } 1414: } 1414: 1414: 1414: constexpr void 1414: _M_move_assign(_Optional_payload_base&& __other) 1414: noexcept(__and_v, 1414: is_nothrow_move_assignable<_Tp>>) 1414: { 1414: if (this->_M_engaged && __other._M_engaged) 1414: this->_M_get() = std::move(__other._M_get()); 1414: else 1414: { 1414: if (__other._M_engaged) 1414: this->_M_construct(std::move(__other._M_get())); 1414: else 1414: this->_M_reset(); 1414: } 1414: } 1414: 1414: struct _Empty_byte { }; 1414: 1414: template> 1414: union _Storage 1414: { 1414: constexpr _Storage() noexcept : _M_empty() { } 1414: 1414: template 1414: constexpr 1414: _Storage(in_place_t, _Args&&... __args) 1414: : _M_value(std::forward<_Args>(__args)...) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Storage(std::initializer_list<_Vp> __il, _Args&&... __args) 1414: : _M_value(__il, std::forward<_Args>(__args)...) 1414: { } 1414: 1414: 1414: template 1414: constexpr 1414: _Storage(_Optional_func<_Fn> __f, _Arg&& __arg) 1414: : _M_value(std::__invoke(std::forward<_Fn>(__f._M_f), 1414: std::forward<_Arg>(__arg))) 1414: { } 1414: 1414: 1414: 1414: ~_Storage() = default; 1414: 1414: 1414: constexpr 1414: ~_Storage() requires (!is_trivially_destructible_v<_Up>) 1414: { } 1414: 1414: _Storage(const _Storage&) = default; 1414: _Storage(_Storage&&) = default; 1414: _Storage& operator=(const _Storage&) = default; 1414: _Storage& operator=(_Storage&&) = default; 1414: 1414: 1414: _Empty_byte _M_empty; 1414: _Up _M_value; 1414: }; 1414: # 307 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: _Storage<_Stored_type> _M_payload; 1414: 1414: bool _M_engaged = false; 1414: 1414: template 1414: constexpr void 1414: _M_construct(_Args&&... __args) 1414: noexcept(is_nothrow_constructible_v<_Stored_type, _Args...>) 1414: { 1414: std::_Construct(std::__addressof(this->_M_payload._M_value), 1414: std::forward<_Args>(__args)...); 1414: this->_M_engaged = true; 1414: } 1414: 1414: constexpr void 1414: _M_destroy() noexcept 1414: { 1414: _M_engaged = false; 1414: _M_payload._M_value.~_Stored_type(); 1414: 1414: 1414: 1414: 1414: 1414: } 1414: 1414: 1414: template 1414: constexpr void 1414: _M_apply(_Optional_func<_Fn> __f, _Up&& __x) 1414: { 1414: std::construct_at(std::__addressof(this->_M_payload), 1414: __f, std::forward<_Up>(__x)); 1414: _M_engaged = true; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr _Tp& 1414: _M_get() noexcept 1414: { return this->_M_payload._M_value; } 1414: 1414: constexpr const _Tp& 1414: _M_get() const noexcept 1414: { return this->_M_payload._M_value; } 1414: 1414: 1414: constexpr void 1414: _M_reset() noexcept 1414: { 1414: if (this->_M_engaged) 1414: _M_destroy(); 1414: else 1414: this->_M_engaged = false; 1414: } 1414: }; 1414: 1414: 1414: template , 1414: bool = 1414: is_trivially_copy_assignable_v<_Tp> 1414: && is_trivially_copy_constructible_v<_Tp>, 1414: bool = 1414: is_trivially_move_assignable_v<_Tp> 1414: && is_trivially_move_constructible_v<_Tp>> 1414: struct _Optional_payload; 1414: 1414: 1414: template 1414: struct _Optional_payload<_Tp, true, true, true> 1414: : _Optional_payload_base<_Tp> 1414: { 1414: using _Optional_payload_base<_Tp>::_Optional_payload_base; 1414: 1414: _Optional_payload() = default; 1414: }; 1414: 1414: 1414: template 1414: struct _Optional_payload<_Tp, true, false, true> 1414: : _Optional_payload_base<_Tp> 1414: { 1414: using _Optional_payload_base<_Tp>::_Optional_payload_base; 1414: 1414: _Optional_payload() = default; 1414: ~_Optional_payload() = default; 1414: _Optional_payload(const _Optional_payload&) = default; 1414: _Optional_payload(_Optional_payload&&) = default; 1414: _Optional_payload& operator=(_Optional_payload&&) = default; 1414: 1414: 1414: constexpr 1414: _Optional_payload& 1414: operator=(const _Optional_payload& __other) 1414: { 1414: this->_M_copy_assign(__other); 1414: return *this; 1414: } 1414: }; 1414: 1414: 1414: template 1414: struct _Optional_payload<_Tp, true, true, false> 1414: : _Optional_payload_base<_Tp> 1414: { 1414: using _Optional_payload_base<_Tp>::_Optional_payload_base; 1414: 1414: _Optional_payload() = default; 1414: ~_Optional_payload() = default; 1414: _Optional_payload(const _Optional_payload&) = default; 1414: _Optional_payload(_Optional_payload&&) = default; 1414: _Optional_payload& operator=(const _Optional_payload&) = default; 1414: 1414: 1414: constexpr 1414: _Optional_payload& 1414: operator=(_Optional_payload&& __other) 1414: noexcept(__and_v, 1414: is_nothrow_move_assignable<_Tp>>) 1414: { 1414: this->_M_move_assign(std::move(__other)); 1414: return *this; 1414: } 1414: }; 1414: 1414: 1414: template 1414: struct _Optional_payload<_Tp, true, false, false> 1414: : _Optional_payload_base<_Tp> 1414: { 1414: using _Optional_payload_base<_Tp>::_Optional_payload_base; 1414: 1414: _Optional_payload() = default; 1414: ~_Optional_payload() = default; 1414: _Optional_payload(const _Optional_payload&) = default; 1414: _Optional_payload(_Optional_payload&&) = default; 1414: 1414: 1414: constexpr 1414: _Optional_payload& 1414: operator=(const _Optional_payload& __other) 1414: { 1414: this->_M_copy_assign(__other); 1414: return *this; 1414: } 1414: 1414: 1414: constexpr 1414: _Optional_payload& 1414: operator=(_Optional_payload&& __other) 1414: noexcept(__and_v, 1414: is_nothrow_move_assignable<_Tp>>) 1414: { 1414: this->_M_move_assign(std::move(__other)); 1414: return *this; 1414: } 1414: }; 1414: 1414: 1414: template 1414: struct _Optional_payload<_Tp, false, _Copy, _Move> 1414: : _Optional_payload<_Tp, true, false, false> 1414: { 1414: 1414: using _Optional_payload<_Tp, true, false, false>::_Optional_payload; 1414: _Optional_payload() = default; 1414: _Optional_payload(const _Optional_payload&) = default; 1414: _Optional_payload(_Optional_payload&&) = default; 1414: _Optional_payload& operator=(const _Optional_payload&) = default; 1414: _Optional_payload& operator=(_Optional_payload&&) = default; 1414: 1414: 1414: constexpr ~_Optional_payload() { this->_M_reset(); } 1414: }; 1414: # 505 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: template, 1414: bool = is_trivially_move_constructible_v<_Tp>> 1414: struct _Optional_base 1414: { 1414: 1414: constexpr _Optional_base() = default; 1414: 1414: 1414: template, bool> = false> 1414: constexpr explicit 1414: _Optional_base(in_place_t, _Args&&... __args) 1414: : _M_payload(in_place, std::forward<_Args>(__args)...) 1414: { } 1414: 1414: template&, 1414: _Args...>, bool> = false> 1414: constexpr explicit 1414: _Optional_base(in_place_t, 1414: initializer_list<_Up> __il, 1414: _Args&&... __args) 1414: : _M_payload(in_place, __il, std::forward<_Args>(__args)...) 1414: { } 1414: 1414: 1414: constexpr 1414: _Optional_base(const _Optional_base& __other) 1414: noexcept(is_nothrow_copy_constructible_v<_Tp>) 1414: : _M_payload(__other._M_payload._M_engaged, __other._M_payload) 1414: { } 1414: 1414: constexpr 1414: _Optional_base(_Optional_base&& __other) 1414: noexcept(is_nothrow_move_constructible_v<_Tp>) 1414: : _M_payload(__other._M_payload._M_engaged, 1414: std::move(__other._M_payload)) 1414: { } 1414: 1414: 1414: 1414: 1414: constexpr _Optional_base(const _Optional_base&) 1414: requires is_trivially_copy_constructible_v<_Tp> = default; 1414: 1414: constexpr _Optional_base(_Optional_base&&) 1414: requires is_trivially_move_constructible_v<_Tp> = default; 1414: 1414: 1414: 1414: _Optional_base& operator=(const _Optional_base&) = default; 1414: _Optional_base& operator=(_Optional_base&&) = default; 1414: 1414: _Optional_payload<_Tp> _M_payload; 1414: 1414: protected: 1414: 1414: using _Stored_type = remove_const_t<_Tp>; 1414: 1414: 1414: 1414: template 1414: constexpr void 1414: _M_construct(_Args&&... __args) 1414: noexcept(is_nothrow_constructible_v<_Stored_type, _Args...>) 1414: { 1414: _M_payload._M_construct(std::forward<_Args>(__args)...); 1414: } 1414: 1414: constexpr void 1414: _M_destruct() noexcept 1414: { _M_payload._M_destroy(); } 1414: 1414: 1414: constexpr void 1414: _M_reset() noexcept 1414: { _M_payload._M_reset(); } 1414: 1414: constexpr bool _M_is_engaged() const noexcept 1414: { return _M_payload._M_engaged; } 1414: 1414: 1414: constexpr _Tp& 1414: _M_get() noexcept 1414: { return _M_payload._M_get(); } 1414: 1414: constexpr const _Tp& 1414: _M_get() const noexcept 1414: { return _M_payload._M_get(); } 1414: }; 1414: # 769 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: template 1414: inline constexpr bool __is_optional_v = false; 1414: template 1414: inline constexpr bool __is_optional_v> = true; 1414: 1414: template 1414: using __converts_from_any_cvref = __or_< 1414: is_constructible<_Tp, _Wp&>, is_convertible<_Wp&, _Tp>, 1414: is_constructible<_Tp, _Wp>, is_convertible<_Wp, _Tp>, 1414: is_constructible<_Tp, const _Wp&>, is_convertible, 1414: is_constructible<_Tp, const _Wp>, is_convertible 1414: >; 1414: 1414: template 1414: using __converts_from_optional 1414: = __converts_from_any_cvref<_Tp, optional<_Up>>; 1414: 1414: template 1414: using __assigns_from_optional = 1414: __or_&>, 1414: is_assignable<_Tp&, optional<_Up>&>, 1414: is_assignable<_Tp&, const optional<_Up>&&>, 1414: is_assignable<_Tp&, optional<_Up>&&>>; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr bool __is_valid_contained_type_for_optional = 1414: ( 1414: 1414: 1414: 1414: (is_object_v<_Tp> && is_destructible_v<_Tp> && !is_array_v<_Tp>) 1414: ) 1414: && !is_same_v>, nullopt_t> 1414: && !is_same_v>, in_place_t>; 1414: 1414: 1414: 1414: 1414: template 1414: class optional 1414: : private _Optional_base<_Tp>, 1414: private _Enable_copy_move< 1414: 1414: is_copy_constructible_v<_Tp>, 1414: 1414: __and_v, is_copy_assignable<_Tp>>, 1414: 1414: is_move_constructible_v<_Tp>, 1414: 1414: __and_v, is_move_assignable<_Tp>>, 1414: 1414: optional<_Tp>> 1414: { 1414: static_assert(__is_valid_contained_type_for_optional<_Tp>); 1414: 1414: private: 1414: using _Base = _Optional_base<_Tp>; 1414: # 838 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: template> 1414: static constexpr bool __not_constructing_bool_from_optional 1414: = true; 1414: 1414: 1414: 1414: template 1414: static constexpr bool 1414: __not_constructing_bool_from_optional<_From, bool> 1414: = !__is_optional_v>; 1414: 1414: 1414: 1414: 1414: 1414: template> 1414: static constexpr bool __construct_from_contained_value 1414: = !__converts_from_optional<_Tp, _From>::value; 1414: 1414: 1414: 1414: template 1414: static constexpr bool __construct_from_contained_value<_From, bool> 1414: = true; 1414: # 891 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: public: 1414: using value_type = _Tp; 1414: 1414: 1414: 1414: 1414: 1414: constexpr optional() noexcept { } 1414: 1414: constexpr optional(nullopt_t) noexcept { } 1414: 1414: 1414: 1414: template> 1414: requires (!is_same_v>) 1414: && (!is_same_v>) 1414: && is_constructible_v<_Tp, _Up> 1414: && __not_constructing_bool_from_optional<_Up> 1414: constexpr explicit(!is_convertible_v<_Up, _Tp>) 1414: optional(_Up&& __t) 1414: noexcept(is_nothrow_constructible_v<_Tp, _Up>) 1414: : _Base(std::in_place, std::forward<_Up>(__t)) { } 1414: 1414: template 1414: requires (!is_same_v<_Tp, _Up>) 1414: && is_constructible_v<_Tp, const _Up&> 1414: && __construct_from_contained_value<_Up> 1414: constexpr explicit(!is_convertible_v) 1414: optional(const optional<_Up>& __t) 1414: noexcept(is_nothrow_constructible_v<_Tp, const _Up&>) 1414: { 1414: if (__t) 1414: emplace(__t._M_fwd()); 1414: } 1414: 1414: template 1414: requires (!is_same_v<_Tp, _Up>) 1414: && is_constructible_v<_Tp, _Up> 1414: && __construct_from_contained_value<_Up> 1414: constexpr explicit(!is_convertible_v<_Up, _Tp>) 1414: optional(optional<_Up>&& __t) 1414: noexcept(is_nothrow_constructible_v<_Tp, _Up>) 1414: { 1414: if (__t) 1414: emplace(std::move(__t)._M_fwd()); 1414: } 1414: 1414: template 1414: requires is_constructible_v<_Tp, _Args...> 1414: explicit constexpr 1414: optional(in_place_t, _Args&&... __args) 1414: noexcept(is_nothrow_constructible_v<_Tp, _Args...>) 1414: : _Base(std::in_place, std::forward<_Args>(__args)...) 1414: { } 1414: 1414: template 1414: requires is_constructible_v<_Tp, initializer_list<_Up>&, _Args...> 1414: explicit constexpr 1414: optional(in_place_t, initializer_list<_Up> __il, _Args&&... __args) 1414: noexcept(is_nothrow_constructible_v<_Tp, initializer_list<_Up>&, 1414: _Args...>) 1414: : _Base(std::in_place, __il, std::forward<_Args>(__args)...) 1414: { } 1414: # 1046 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: constexpr optional& 1414: operator=(nullopt_t) noexcept 1414: { 1414: this->_M_reset(); 1414: return *this; 1414: } 1414: 1414: template> 1414: 1414: requires (!is_same_v>) 1414: && (!(is_scalar_v<_Tp> && is_same_v<_Tp, decay_t<_Up>>)) 1414: && is_constructible_v<_Tp, _Up> 1414: && is_assignable_v<_Tp&, _Up> 1414: constexpr optional& 1414: # 1068 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: operator=(_Up&& __u) 1414: noexcept(__and_v, 1414: is_nothrow_assignable<_Tp&, _Up>>) 1414: { 1414: if (this->_M_is_engaged()) 1414: this->_M_get() = std::forward<_Up>(__u); 1414: else 1414: this->_M_construct(std::forward<_Up>(__u)); 1414: 1414: return *this; 1414: } 1414: 1414: template 1414: 1414: requires (!is_same_v<_Tp, _Up>) 1414: && is_constructible_v<_Tp, const _Up&> 1414: && is_assignable_v<_Tp&, const _Up&> 1414: && (!__converts_from_optional<_Tp, _Up>::value) 1414: && (!__assigns_from_optional<_Tp, _Up>::value) 1414: constexpr optional& 1414: # 1096 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: operator=(const optional<_Up>& __u) 1414: noexcept(__and_v, 1414: is_nothrow_assignable<_Tp&, const _Up&>>) 1414: { 1414: if (__u) 1414: { 1414: if (this->_M_is_engaged()) 1414: this->_M_get() = __u._M_fwd(); 1414: else 1414: this->_M_construct(__u._M_fwd()); 1414: } 1414: else 1414: { 1414: this->_M_reset(); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: 1414: requires (!is_same_v<_Tp, _Up>) 1414: && is_constructible_v<_Tp, _Up> 1414: && is_assignable_v<_Tp&, _Up> 1414: && (!__converts_from_optional<_Tp, _Up>::value) 1414: && (!__assigns_from_optional<_Tp, _Up>::value) 1414: constexpr optional& 1414: # 1130 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: operator=(optional<_Up>&& __u) 1414: noexcept(__and_v, 1414: is_nothrow_assignable<_Tp&, _Up>>) 1414: { 1414: if (__u) 1414: { 1414: if (this->_M_is_engaged()) 1414: this->_M_get() = std::move(__u)._M_fwd(); 1414: else 1414: this->_M_construct(std::move(__u)._M_fwd()); 1414: } 1414: else 1414: { 1414: this->_M_reset(); 1414: } 1414: 1414: return *this; 1414: } 1414: 1414: 1414: 1414: template 1414: constexpr 1414: enable_if_t, _Tp&> 1414: emplace(_Args&&... __args) 1414: noexcept(is_nothrow_constructible_v<_Tp, _Args...>) 1414: { 1414: this->_M_reset(); 1414: this->_M_construct(std::forward<_Args>(__args)...); 1414: return this->_M_get(); 1414: } 1414: 1414: template 1414: constexpr 1414: enable_if_t&, _Args...>, 1414: _Tp&> 1414: emplace(initializer_list<_Up> __il, _Args&&... __args) 1414: noexcept(is_nothrow_constructible_v<_Tp, initializer_list<_Up>&, 1414: _Args...>) 1414: { 1414: this->_M_reset(); 1414: this->_M_construct(__il, std::forward<_Args>(__args)...); 1414: return this->_M_get(); 1414: } 1414: 1414: 1414: 1414: 1414: constexpr void 1414: swap(optional& __other) 1414: noexcept(is_nothrow_move_constructible_v<_Tp> 1414: && is_nothrow_swappable_v<_Tp>) 1414: { 1414: using std::swap; 1414: 1414: if (this->_M_is_engaged() && __other._M_is_engaged()) 1414: swap(this->_M_get(), __other._M_get()); 1414: else if (this->_M_is_engaged()) 1414: { 1414: __other._M_construct(std::move(this->_M_get())); 1414: this->_M_destruct(); 1414: } 1414: else if (__other._M_is_engaged()) 1414: { 1414: this->_M_construct(std::move(__other._M_get())); 1414: __other._M_destruct(); 1414: } 1414: } 1414: # 1227 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: constexpr const _Tp* 1414: operator->() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(this->_M_is_engaged())) std::__glibcxx_assert_fail(); } while (false); 1414: return std::__addressof(this->_M_get()); 1414: } 1414: 1414: constexpr _Tp* 1414: operator->() noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(this->_M_is_engaged())) std::__glibcxx_assert_fail(); } while (false); 1414: return std::__addressof(this->_M_get()); 1414: } 1414: 1414: constexpr const _Tp& 1414: operator*() const& noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(this->_M_is_engaged())) std::__glibcxx_assert_fail(); } while (false); 1414: return this->_M_get(); 1414: } 1414: 1414: constexpr _Tp& 1414: operator*()& noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(this->_M_is_engaged())) std::__glibcxx_assert_fail(); } while (false); 1414: return this->_M_get(); 1414: } 1414: 1414: constexpr _Tp&& 1414: operator*()&& noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(this->_M_is_engaged())) std::__glibcxx_assert_fail(); } while (false); 1414: return std::move(this->_M_get()); 1414: } 1414: 1414: constexpr const _Tp&& 1414: operator*() const&& noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(this->_M_is_engaged())) std::__glibcxx_assert_fail(); } while (false); 1414: return std::move(this->_M_get()); 1414: } 1414: 1414: constexpr explicit operator bool() const noexcept 1414: { return this->_M_is_engaged(); } 1414: 1414: constexpr bool has_value() const noexcept 1414: { return this->_M_is_engaged(); } 1414: 1414: constexpr const _Tp& 1414: value() const& 1414: { 1414: if (this->_M_is_engaged()) 1414: return this->_M_get(); 1414: __throw_bad_optional_access(); 1414: } 1414: 1414: constexpr _Tp& 1414: value()& 1414: { 1414: if (this->_M_is_engaged()) 1414: return this->_M_get(); 1414: __throw_bad_optional_access(); 1414: } 1414: 1414: constexpr _Tp&& 1414: value()&& 1414: { 1414: if (this->_M_is_engaged()) 1414: return std::move(this->_M_get()); 1414: __throw_bad_optional_access(); 1414: } 1414: 1414: constexpr const _Tp&& 1414: value() const&& 1414: { 1414: if (this->_M_is_engaged()) 1414: return std::move(this->_M_get()); 1414: __throw_bad_optional_access(); 1414: } 1414: 1414: 1414: 1414: template> 1414: constexpr remove_cv_t<_Tp> 1414: value_or(_Up&& __u) const& 1414: { 1414: using _Xp = remove_cv_t<_Tp>; 1414: static_assert(is_convertible_v); 1414: static_assert(is_convertible_v<_Up, _Xp>); 1414: 1414: if (this->_M_is_engaged()) 1414: return this->_M_get(); 1414: return std::forward<_Up>(__u); 1414: } 1414: 1414: template> 1414: constexpr remove_cv_t<_Tp> 1414: value_or(_Up&& __u) && 1414: { 1414: using _Xp = remove_cv_t<_Tp>; 1414: static_assert(is_convertible_v<_Tp, _Xp>); 1414: static_assert(is_convertible_v<_Up, _Xp>); 1414: 1414: if (this->_M_is_engaged()) 1414: return std::move(this->_M_get()); 1414: return std::forward<_Up>(__u); 1414: } 1414: # 1469 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: constexpr void reset() noexcept { this->_M_reset(); } 1414: 1414: private: 1414: using _Base::_M_get; 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr _Tp& 1414: _M_fwd() & noexcept 1414: { return _M_get(); } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr _Tp&& 1414: _M_fwd() && noexcept 1414: { return std::move(_M_get()); } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr const _Tp& 1414: _M_fwd() const& noexcept 1414: { return _M_get(); } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr const _Tp&& 1414: _M_fwd() const&& noexcept 1414: { return std::move(_M_get()); } 1414: 1414: template friend class optional; 1414: # 1504 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: }; 1414: # 1837 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: template 1414: using __optional_relop_t = 1414: enable_if_t, bool>; 1414: 1414: template 1414: using __optional_eq_t = __optional_relop_t< 1414: decltype(std::declval() == std::declval()) 1414: >; 1414: 1414: template 1414: using __optional_ne_t = __optional_relop_t< 1414: decltype(std::declval() != std::declval()) 1414: >; 1414: 1414: template 1414: using __optional_lt_t = __optional_relop_t< 1414: decltype(std::declval() < std::declval()) 1414: >; 1414: 1414: template 1414: using __optional_gt_t = __optional_relop_t< 1414: decltype(std::declval() > std::declval()) 1414: >; 1414: 1414: template 1414: using __optional_le_t = __optional_relop_t< 1414: decltype(std::declval() <= std::declval()) 1414: >; 1414: 1414: template 1414: using __optional_ge_t = __optional_relop_t< 1414: decltype(std::declval() >= std::declval()) 1414: >; 1414: 1414: 1414: template 1414: constexpr auto 1414: operator==(const optional<_Tp>& __lhs, const optional<_Up>& __rhs) 1414: -> __optional_eq_t<_Tp, _Up> 1414: { 1414: if (__lhs.has_value() != __rhs.has_value()) 1414: return false; 1414: if (!__lhs.has_value()) 1414: return true; 1414: return *__lhs == *__rhs; 1414: } 1414: 1414: template 1414: constexpr auto 1414: operator!=(const optional<_Tp>& __lhs, const optional<_Up>& __rhs) 1414: -> __optional_ne_t<_Tp, _Up> 1414: { 1414: if (__lhs.has_value() != __rhs.has_value()) 1414: return true; 1414: if (!__lhs.has_value()) 1414: return false; 1414: return *__lhs != *__rhs; 1414: } 1414: 1414: template 1414: constexpr auto 1414: operator<(const optional<_Tp>& __lhs, const optional<_Up>& __rhs) 1414: -> __optional_lt_t<_Tp, _Up> 1414: { 1414: if (!__rhs.has_value()) 1414: return false; 1414: if (!__lhs.has_value()) 1414: return true; 1414: return *__lhs < *__rhs; 1414: } 1414: 1414: template 1414: constexpr auto 1414: operator>(const optional<_Tp>& __lhs, const optional<_Up>& __rhs) 1414: -> __optional_gt_t<_Tp, _Up> 1414: { 1414: if (!__lhs.has_value()) 1414: return false; 1414: if (!__rhs.has_value()) 1414: return true; 1414: return *__lhs > *__rhs; 1414: } 1414: 1414: template 1414: constexpr auto 1414: operator<=(const optional<_Tp>& __lhs, const optional<_Up>& __rhs) 1414: -> __optional_le_t<_Tp, _Up> 1414: { 1414: if (!__lhs.has_value()) 1414: return true; 1414: if (!__rhs.has_value()) 1414: return false; 1414: return *__lhs <= *__rhs; 1414: } 1414: 1414: template 1414: constexpr auto 1414: operator>=(const optional<_Tp>& __lhs, const optional<_Up>& __rhs) 1414: -> __optional_ge_t<_Tp, _Up> 1414: { 1414: if (!__rhs.has_value()) 1414: return true; 1414: if (!__lhs.has_value()) 1414: return false; 1414: return *__lhs >= *__rhs; 1414: } 1414: 1414: 1414: template _Up> 1414: [[nodiscard]] 1414: constexpr compare_three_way_result_t<_Tp, _Up> 1414: operator<=>(const optional<_Tp>& __x, const optional<_Up>& __y) 1414: { 1414: return __x && __y ? *__x <=> *__y : bool(__x) <=> bool(__y); 1414: } 1414: 1414: 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr bool 1414: operator==(const optional<_Tp>& __lhs, nullopt_t) noexcept 1414: { return !__lhs; } 1414: 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr strong_ordering 1414: operator<=>(const optional<_Tp>& __x, nullopt_t) noexcept 1414: { return bool(__x) <=> false; } 1414: # 2033 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: template 1414: requires (!__is_optional_v<_Up>) 1414: constexpr auto 1414: operator== [[nodiscard]] (const optional<_Tp>& __lhs, const _Up& __rhs) 1414: -> __optional_eq_t<_Tp, _Up> 1414: { 1414: if (__lhs.has_value()) 1414: return *__lhs == __rhs; 1414: return false; 1414: } 1414: 1414: template 1414: requires (!__is_optional_v<_Tp>) 1414: constexpr auto 1414: operator== [[nodiscard]] (const _Tp& __lhs, const optional<_Up>& __rhs) 1414: -> __optional_eq_t<_Tp, _Up> 1414: { 1414: if (__rhs.has_value()) 1414: return __lhs == *__rhs; 1414: return false; 1414: } 1414: 1414: template 1414: requires (!__is_optional_v<_Up>) 1414: constexpr auto 1414: operator!= [[nodiscard]] (const optional<_Tp>& __lhs, const _Up& __rhs) 1414: -> __optional_ne_t<_Tp, _Up> 1414: { 1414: if (__lhs.has_value()) 1414: return *__lhs != __rhs; 1414: return true; 1414: } 1414: 1414: template 1414: requires (!__is_optional_v<_Tp>) 1414: constexpr auto 1414: operator!= [[nodiscard]] (const _Tp& __lhs, const optional<_Up>& __rhs) 1414: -> __optional_ne_t<_Tp, _Up> 1414: { 1414: if (__rhs.has_value()) 1414: return __lhs != *__rhs; 1414: return true; 1414: } 1414: 1414: template 1414: requires (!__is_optional_v<_Up>) 1414: constexpr auto 1414: operator< [[nodiscard]] (const optional<_Tp>& __lhs, const _Up& __rhs) 1414: -> __optional_lt_t<_Tp, _Up> 1414: { 1414: if (__lhs.has_value()) 1414: return *__lhs < __rhs; 1414: return true; 1414: } 1414: 1414: template 1414: requires (!__is_optional_v<_Tp>) 1414: constexpr auto 1414: operator< [[nodiscard]] (const _Tp& __lhs, const optional<_Up>& __rhs) 1414: -> __optional_lt_t<_Tp, _Up> 1414: { 1414: if (__rhs.has_value()) 1414: return __lhs < *__rhs; 1414: return false; 1414: } 1414: 1414: template 1414: requires (!__is_optional_v<_Up>) 1414: constexpr auto 1414: operator> [[nodiscard]] (const optional<_Tp>& __lhs, const _Up& __rhs) 1414: -> __optional_gt_t<_Tp, _Up> 1414: { 1414: if (__lhs.has_value()) 1414: return *__lhs > __rhs; 1414: return false; 1414: } 1414: 1414: template 1414: requires (!__is_optional_v<_Tp>) 1414: constexpr auto 1414: operator> [[nodiscard]] (const _Tp& __lhs, const optional<_Up>& __rhs) 1414: -> __optional_gt_t<_Tp, _Up> 1414: { 1414: if (__rhs.has_value()) 1414: return __lhs > *__rhs; 1414: return true; 1414: } 1414: 1414: template 1414: requires (!__is_optional_v<_Up>) 1414: constexpr auto 1414: operator<= [[nodiscard]] (const optional<_Tp>& __lhs, const _Up& __rhs) 1414: -> __optional_le_t<_Tp, _Up> 1414: { 1414: if (__lhs.has_value()) 1414: return *__lhs <= __rhs; 1414: return true; 1414: } 1414: 1414: template 1414: requires (!__is_optional_v<_Tp>) 1414: constexpr auto 1414: operator<= [[nodiscard]] (const _Tp& __lhs, const optional<_Up>& __rhs) 1414: -> __optional_le_t<_Tp, _Up> 1414: { 1414: if (__rhs.has_value()) 1414: return __lhs <= *__rhs; 1414: return false; 1414: } 1414: 1414: template 1414: requires (!__is_optional_v<_Up>) 1414: constexpr auto 1414: operator>= [[nodiscard]] (const optional<_Tp>& __lhs, const _Up& __rhs) 1414: -> __optional_ge_t<_Tp, _Up> 1414: { 1414: if (__lhs.has_value()) 1414: return *__lhs >= __rhs; 1414: return false; 1414: } 1414: 1414: template 1414: requires (!__is_optional_v<_Tp>) 1414: constexpr auto 1414: operator>= [[nodiscard]] (const _Tp& __lhs, const optional<_Up>& __rhs) 1414: -> __optional_ge_t<_Tp, _Up> 1414: { 1414: if (__rhs.has_value()) 1414: return __lhs >= *__rhs; 1414: return true; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: concept __is_derived_from_optional = requires (const _Tp& __t) { 1414: [](const optional<_Up>&){ }(__t); 1414: }; 1414: 1414: template 1414: requires (!__is_derived_from_optional<_Up>) 1414: && requires { typename compare_three_way_result_t<_Tp, _Up>; } 1414: && three_way_comparable_with<_Tp, _Up> 1414: constexpr compare_three_way_result_t<_Tp, _Up> 1414: operator<=> [[nodiscard]] (const optional<_Tp>& __x, const _Up& __v) 1414: { return bool(__x) ? *__x <=> __v : strong_ordering::less; } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr 1414: inline enable_if_t && is_swappable_v<_Tp>> 1414: swap(optional<_Tp>& __lhs, optional<_Tp>& __rhs) 1414: noexcept(noexcept(__lhs.swap(__rhs))) 1414: { __lhs.swap(__rhs); } 1414: # 2205 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: template 1414: enable_if_t && is_swappable_v<_Tp>)> 1414: swap(optional<_Tp>&, optional<_Tp>&) = delete; 1414: 1414: 1414: 1414: 1414: template 1414: 1414: constexpr 1414: enable_if_t, _Tp>, 1414: optional>> 1414: make_optional(_Tp&& __t) 1414: noexcept(is_nothrow_constructible_v>, _Tp>) 1414: { return optional>( std::forward<_Tp>(__t) ); } 1414: 1414: template 1414: constexpr 1414: enable_if_t, 1414: optional<_Tp>> 1414: make_optional(_Args&&... __args) 1414: noexcept(is_nothrow_constructible_v<_Tp, _Args...>) 1414: { return optional<_Tp>( in_place, std::forward<_Args>(__args)... ); } 1414: 1414: template 1414: constexpr 1414: enable_if_t&, _Args...>, 1414: optional<_Tp>> 1414: make_optional(initializer_list<_Up> __il, _Args&&... __args) 1414: noexcept(is_nothrow_constructible_v<_Tp, initializer_list<_Up>&, _Args...>) 1414: { return optional<_Tp>( in_place, __il, std::forward<_Args>(__args)... ); } 1414: 1414: 1414: 1414: template> 1414: struct __optional_hash 1414: 1414: : public __hash_empty_base<_Up> 1414: 1414: { 1414: 1414: 1414: 1414: 1414: 1414: size_t 1414: operator()(const optional<_Tp>& __t) const 1414: noexcept(noexcept(hash<_Up>{}(*__t))) 1414: { 1414: 1414: 1414: constexpr size_t __magic_disengaged_hash = static_cast(-3333); 1414: return __t ? hash<_Up>{}(*__t) : __magic_disengaged_hash; 1414: } 1414: }; 1414: 1414: template 1414: struct hash> 1414: 1414: : public __conditional_t<__is_hash_enabled_for>, 1414: __optional_hash<_Tp>, 1414: __hash_not_enabled<_Tp>> 1414: { }; 1414: 1414: template 1414: struct __is_fast_hash>> : __is_fast_hash> 1414: { }; 1414: 1414: 1414: 1414: 1414: template optional(_Tp) -> optional<_Tp>; 1414: # 2299 "/usr/arm-linux-gnueabihf/include/c++/16/optional" 3 1414: 1414: } 1414: # 13 "build/include/public/botan/ipv6_address.h" 2 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/span" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/span" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/span" 2 3 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/max_size_type.h" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/bits/max_size_type.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/numbers" 1 3 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/numbers" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/c++/16/numbers" 2 3 1414: 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wpedantic" 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: namespace numbers 1414: { 1414: 1414: 1414: template 1414: using _Enable_if_floating = enable_if_t, _Tp>; 1414: 1414: 1414: 1414: template 1414: inline constexpr _Tp e_v 1414: = _Enable_if_floating<_Tp>(2.718281828459045235360287471352662498L); 1414: 1414: 1414: template 1414: inline constexpr _Tp log2e_v 1414: = _Enable_if_floating<_Tp>(1.442695040888963407359924681001892137L); 1414: 1414: 1414: template 1414: inline constexpr _Tp log10e_v 1414: = _Enable_if_floating<_Tp>(0.434294481903251827651128918916605082L); 1414: 1414: 1414: template 1414: inline constexpr _Tp pi_v 1414: = _Enable_if_floating<_Tp>(3.141592653589793238462643383279502884L); 1414: 1414: 1414: template 1414: inline constexpr _Tp inv_pi_v 1414: = _Enable_if_floating<_Tp>(0.318309886183790671537767526745028724L); 1414: 1414: 1414: template 1414: inline constexpr _Tp inv_sqrtpi_v 1414: = _Enable_if_floating<_Tp>(0.564189583547756286948079451560772586L); 1414: 1414: 1414: template 1414: inline constexpr _Tp ln2_v 1414: = _Enable_if_floating<_Tp>(0.693147180559945309417232121458176568L); 1414: 1414: 1414: template 1414: inline constexpr _Tp ln10_v 1414: = _Enable_if_floating<_Tp>(2.302585092994045684017991454684364208L); 1414: 1414: 1414: template 1414: inline constexpr _Tp sqrt2_v 1414: = _Enable_if_floating<_Tp>(1.414213562373095048801688724209698079L); 1414: 1414: 1414: template 1414: inline constexpr _Tp sqrt3_v 1414: = _Enable_if_floating<_Tp>(1.732050807568877293527446341505872367L); 1414: 1414: 1414: template 1414: inline constexpr _Tp inv_sqrt3_v 1414: = _Enable_if_floating<_Tp>(0.577350269189625764509148780501957456L); 1414: 1414: 1414: template 1414: inline constexpr _Tp egamma_v 1414: = _Enable_if_floating<_Tp>(0.577215664901532860606512090082402431L); 1414: 1414: 1414: template 1414: inline constexpr _Tp phi_v 1414: = _Enable_if_floating<_Tp>(1.618033988749894848204586834365638118L); 1414: 1414: inline constexpr double e = e_v; 1414: inline constexpr double log2e = log2e_v; 1414: inline constexpr double log10e = log10e_v; 1414: inline constexpr double pi = pi_v; 1414: inline constexpr double inv_pi = inv_pi_v; 1414: inline constexpr double inv_sqrtpi = inv_sqrtpi_v; 1414: inline constexpr double ln2 = ln2_v; 1414: inline constexpr double ln10 = ln10_v; 1414: inline constexpr double sqrt2 = sqrt2_v; 1414: inline constexpr double sqrt3 = sqrt3_v; 1414: inline constexpr double inv_sqrt3 = inv_sqrt3_v; 1414: inline constexpr double egamma = egamma_v; 1414: inline constexpr double phi = phi_v; 1414: # 235 "/usr/arm-linux-gnueabihf/include/c++/16/numbers" 3 1414: } 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/max_size_type.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/limits" 1 3 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/limits" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wpedantic" 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: #pragma GCC diagnostic ignored "-Wc++23-extensions" 1414: # 165 "/usr/arm-linux-gnueabihf/include/c++/16/limits" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: enum float_round_style 1414: { 1414: round_indeterminate = -1, 1414: round_toward_zero = 0, 1414: round_to_nearest = 1, 1414: round_toward_infinity = 2, 1414: round_toward_neg_infinity = 3 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: enum float_denorm_style 1414: { 1414: 1414: denorm_indeterminate = -1, 1414: 1414: denorm_absent = 0, 1414: 1414: denorm_present = 1 1414: }; 1414: # 209 "/usr/arm-linux-gnueabihf/include/c++/16/limits" 3 1414: struct __numeric_limits_base 1414: { 1414: 1414: 1414: static constexpr bool is_specialized = false; 1414: 1414: 1414: 1414: 1414: static constexpr int digits = 0; 1414: 1414: 1414: static constexpr int digits10 = 0; 1414: 1414: 1414: 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: 1414: 1414: static constexpr bool is_signed = false; 1414: 1414: 1414: static constexpr bool is_integer = false; 1414: 1414: 1414: 1414: 1414: static constexpr bool is_exact = false; 1414: 1414: 1414: 1414: static constexpr int radix = 0; 1414: 1414: 1414: 1414: static constexpr int min_exponent = 0; 1414: 1414: 1414: 1414: static constexpr int min_exponent10 = 0; 1414: 1414: 1414: 1414: 1414: static constexpr int max_exponent = 0; 1414: 1414: 1414: 1414: static constexpr int max_exponent10 = 0; 1414: 1414: 1414: static constexpr bool has_infinity = false; 1414: 1414: 1414: 1414: static constexpr bool has_quiet_NaN = false; 1414: 1414: 1414: 1414: static constexpr bool has_signaling_NaN = false; 1414: 1414: 1414: static constexpr float_denorm_style has_denorm = denorm_absent; 1414: 1414: 1414: 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: 1414: 1414: static constexpr bool is_iec559 = false; 1414: 1414: 1414: 1414: 1414: static constexpr bool is_bounded = false; 1414: # 295 "/usr/arm-linux-gnueabihf/include/c++/16/limits" 3 1414: static constexpr bool is_modulo = false; 1414: 1414: 1414: static constexpr bool traps = false; 1414: 1414: 1414: static constexpr bool tinyness_before = false; 1414: 1414: 1414: 1414: 1414: static constexpr float_round_style round_style = 1414: round_toward_zero; 1414: }; 1414: # 318 "/usr/arm-linux-gnueabihf/include/c++/16/limits" 3 1414: template 1414: struct numeric_limits : public __numeric_limits_base 1414: { 1414: 1414: 1414: static constexpr _Tp 1414: min() noexcept { return _Tp(); } 1414: 1414: 1414: static constexpr _Tp 1414: max() noexcept { return _Tp(); } 1414: 1414: 1414: 1414: 1414: static constexpr _Tp 1414: lowest() noexcept { return _Tp(); } 1414: 1414: 1414: 1414: 1414: static constexpr _Tp 1414: epsilon() noexcept { return _Tp(); } 1414: 1414: 1414: static constexpr _Tp 1414: round_error() noexcept { return _Tp(); } 1414: 1414: 1414: static constexpr _Tp 1414: infinity() noexcept { return _Tp(); } 1414: 1414: 1414: 1414: static constexpr _Tp 1414: quiet_NaN() noexcept { return _Tp(); } 1414: 1414: 1414: 1414: static constexpr _Tp 1414: signaling_NaN() noexcept { return _Tp(); } 1414: 1414: 1414: 1414: 1414: static constexpr _Tp 1414: denorm_min() noexcept { return _Tp(); } 1414: }; 1414: 1414: 1414: 1414: 1414: template 1414: struct numeric_limits 1414: : public numeric_limits<_Tp> { }; 1414: 1414: template 1414: struct numeric_limits 1414: : public numeric_limits<_Tp> { }; 1414: 1414: template 1414: struct numeric_limits 1414: : public numeric_limits<_Tp> { }; 1414: # 390 "/usr/arm-linux-gnueabihf/include/c++/16/limits" 3 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr bool 1414: min() noexcept { return false; } 1414: 1414: static constexpr bool 1414: max() noexcept { return true; } 1414: 1414: 1414: static constexpr bool 1414: lowest() noexcept { return min(); } 1414: 1414: static constexpr int digits = 1; 1414: static constexpr int digits10 = 0; 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = false; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr bool 1414: epsilon() noexcept { return false; } 1414: 1414: static constexpr bool 1414: round_error() noexcept { return false; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr bool 1414: infinity() noexcept { return false; } 1414: 1414: static constexpr bool 1414: quiet_NaN() noexcept { return false; } 1414: 1414: static constexpr bool 1414: signaling_NaN() noexcept { return false; } 1414: 1414: static constexpr bool 1414: denorm_min() noexcept { return false; } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = false; 1414: 1414: 1414: 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr char 1414: min() noexcept { return (((char)(-1) < 0) ? -(((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0) - 1 : (char)0); } 1414: 1414: static constexpr char 1414: max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } 1414: 1414: 1414: static constexpr char 1414: lowest() noexcept { return min(); } 1414: 1414: 1414: static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); 1414: static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = ((char)(-1) < 0); 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr char 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr char 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr 1414: char infinity() noexcept { return char(); } 1414: 1414: static constexpr char 1414: quiet_NaN() noexcept { return char(); } 1414: 1414: static constexpr char 1414: signaling_NaN() noexcept { return char(); } 1414: 1414: static constexpr char 1414: denorm_min() noexcept { return static_cast(0); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = !is_signed; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr signed char 1414: min() noexcept { return -0x7f - 1; } 1414: 1414: static constexpr signed char 1414: max() noexcept { return 0x7f; } 1414: 1414: 1414: static constexpr signed char 1414: lowest() noexcept { return min(); } 1414: 1414: 1414: static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); 1414: static constexpr int digits10 1414: = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = true; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr signed char 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr signed char 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr signed char 1414: infinity() noexcept { return static_cast(0); } 1414: 1414: static constexpr signed char 1414: quiet_NaN() noexcept { return static_cast(0); } 1414: 1414: static constexpr signed char 1414: signaling_NaN() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr signed char 1414: denorm_min() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = false; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr unsigned char 1414: min() noexcept { return 0; } 1414: 1414: static constexpr unsigned char 1414: max() noexcept { return 0x7f * 2U + 1; } 1414: 1414: 1414: static constexpr unsigned char 1414: lowest() noexcept { return min(); } 1414: 1414: 1414: static constexpr int digits 1414: = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); 1414: static constexpr int digits10 1414: = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = false; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr unsigned char 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr unsigned char 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr unsigned char 1414: infinity() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned char 1414: quiet_NaN() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned char 1414: signaling_NaN() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned char 1414: denorm_min() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = true; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr wchar_t 1414: min() noexcept { return (((wchar_t)(-1) < 0) ? -(((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0) - 1 : (wchar_t)0); } 1414: 1414: static constexpr wchar_t 1414: max() noexcept { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); } 1414: 1414: 1414: static constexpr wchar_t 1414: lowest() noexcept { return min(); } 1414: 1414: 1414: static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); 1414: static constexpr int digits10 1414: = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = ((wchar_t)(-1) < 0); 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr wchar_t 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr wchar_t 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr wchar_t 1414: infinity() noexcept { return wchar_t(); } 1414: 1414: static constexpr wchar_t 1414: quiet_NaN() noexcept { return wchar_t(); } 1414: 1414: static constexpr wchar_t 1414: signaling_NaN() noexcept { return wchar_t(); } 1414: 1414: static constexpr wchar_t 1414: denorm_min() noexcept { return wchar_t(); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = !is_signed; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr char8_t 1414: min() noexcept { return (((char8_t)(-1) < 0) ? -(((char8_t)(-1) < 0) ? (((((char8_t)1 << ((sizeof(char8_t) * 8 - ((char8_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char8_t)0) - 1 : (char8_t)0); } 1414: 1414: static constexpr char8_t 1414: max() noexcept { return (((char8_t)(-1) < 0) ? (((((char8_t)1 << ((sizeof(char8_t) * 8 - ((char8_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char8_t)0); } 1414: 1414: static constexpr char8_t 1414: lowest() noexcept { return min(); } 1414: 1414: static constexpr int digits = (sizeof(char8_t) * 8 - ((char8_t)(-1) < 0)); 1414: static constexpr int digits10 = ((sizeof(char8_t) * 8 - ((char8_t)(-1) < 0)) * 643L / 2136); 1414: static constexpr int max_digits10 = 0; 1414: static constexpr bool is_signed = ((char8_t)(-1) < 0); 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr char8_t 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr char8_t 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr char8_t 1414: infinity() noexcept { return char8_t(); } 1414: 1414: static constexpr char8_t 1414: quiet_NaN() noexcept { return char8_t(); } 1414: 1414: static constexpr char8_t 1414: signaling_NaN() noexcept { return char8_t(); } 1414: 1414: static constexpr char8_t 1414: denorm_min() noexcept { return char8_t(); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = !is_signed; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr char16_t 1414: min() noexcept { return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); } 1414: 1414: static constexpr char16_t 1414: max() noexcept { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); } 1414: 1414: static constexpr char16_t 1414: lowest() noexcept { return min(); } 1414: 1414: static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); 1414: static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); 1414: static constexpr int max_digits10 = 0; 1414: static constexpr bool is_signed = ((char16_t)(-1) < 0); 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr char16_t 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr char16_t 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr char16_t 1414: infinity() noexcept { return char16_t(); } 1414: 1414: static constexpr char16_t 1414: quiet_NaN() noexcept { return char16_t(); } 1414: 1414: static constexpr char16_t 1414: signaling_NaN() noexcept { return char16_t(); } 1414: 1414: static constexpr char16_t 1414: denorm_min() noexcept { return char16_t(); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = !is_signed; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style = round_toward_zero; 1414: }; 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr char32_t 1414: min() noexcept { return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); } 1414: 1414: static constexpr char32_t 1414: max() noexcept { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); } 1414: 1414: static constexpr char32_t 1414: lowest() noexcept { return min(); } 1414: 1414: static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); 1414: static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); 1414: static constexpr int max_digits10 = 0; 1414: static constexpr bool is_signed = ((char32_t)(-1) < 0); 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr char32_t 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr char32_t 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr char32_t 1414: infinity() noexcept { return char32_t(); } 1414: 1414: static constexpr char32_t 1414: quiet_NaN() noexcept { return char32_t(); } 1414: 1414: static constexpr char32_t 1414: signaling_NaN() noexcept { return char32_t(); } 1414: 1414: static constexpr char32_t 1414: denorm_min() noexcept { return char32_t(); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = !is_signed; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style = round_toward_zero; 1414: }; 1414: 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr short 1414: min() noexcept { return -0x7fff - 1; } 1414: 1414: static constexpr short 1414: max() noexcept { return 0x7fff; } 1414: 1414: 1414: static constexpr short 1414: lowest() noexcept { return min(); } 1414: 1414: 1414: static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); 1414: static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = true; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr short 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr short 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr short 1414: infinity() noexcept { return short(); } 1414: 1414: static constexpr short 1414: quiet_NaN() noexcept { return short(); } 1414: 1414: static constexpr short 1414: signaling_NaN() noexcept { return short(); } 1414: 1414: static constexpr short 1414: denorm_min() noexcept { return short(); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = false; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr unsigned short 1414: min() noexcept { return 0; } 1414: 1414: static constexpr unsigned short 1414: max() noexcept { return 0x7fff * 2U + 1; } 1414: 1414: 1414: static constexpr unsigned short 1414: lowest() noexcept { return min(); } 1414: 1414: 1414: static constexpr int digits 1414: = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); 1414: static constexpr int digits10 1414: = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = false; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr unsigned short 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr unsigned short 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr unsigned short 1414: infinity() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned short 1414: quiet_NaN() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned short 1414: signaling_NaN() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned short 1414: denorm_min() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = true; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr int 1414: min() noexcept { return -0x7fffffff - 1; } 1414: 1414: static constexpr int 1414: max() noexcept { return 0x7fffffff; } 1414: 1414: 1414: static constexpr int 1414: lowest() noexcept { return min(); } 1414: 1414: 1414: static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); 1414: static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = true; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr int 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr int 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr int 1414: infinity() noexcept { return static_cast(0); } 1414: 1414: static constexpr int 1414: quiet_NaN() noexcept { return static_cast(0); } 1414: 1414: static constexpr int 1414: signaling_NaN() noexcept { return static_cast(0); } 1414: 1414: static constexpr int 1414: denorm_min() noexcept { return static_cast(0); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = false; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr unsigned int 1414: min() noexcept { return 0; } 1414: 1414: static constexpr unsigned int 1414: max() noexcept { return 0x7fffffff * 2U + 1; } 1414: 1414: 1414: static constexpr unsigned int 1414: lowest() noexcept { return min(); } 1414: 1414: 1414: static constexpr int digits 1414: = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); 1414: static constexpr int digits10 1414: = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = false; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr unsigned int 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr unsigned int 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr unsigned int 1414: infinity() noexcept { return static_cast(0); } 1414: 1414: static constexpr unsigned int 1414: quiet_NaN() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned int 1414: signaling_NaN() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned int 1414: denorm_min() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = true; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr long 1414: min() noexcept { return -0x7fffffffL - 1; } 1414: 1414: static constexpr long 1414: max() noexcept { return 0x7fffffffL; } 1414: 1414: 1414: static constexpr long 1414: lowest() noexcept { return min(); } 1414: 1414: 1414: static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); 1414: static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = true; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr long 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr long 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr long 1414: infinity() noexcept { return static_cast(0); } 1414: 1414: static constexpr long 1414: quiet_NaN() noexcept { return static_cast(0); } 1414: 1414: static constexpr long 1414: signaling_NaN() noexcept { return static_cast(0); } 1414: 1414: static constexpr long 1414: denorm_min() noexcept { return static_cast(0); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = false; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr unsigned long 1414: min() noexcept { return 0; } 1414: 1414: static constexpr unsigned long 1414: max() noexcept { return 0x7fffffffL * 2UL + 1; } 1414: 1414: 1414: static constexpr unsigned long 1414: lowest() noexcept { return min(); } 1414: 1414: 1414: static constexpr int digits 1414: = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); 1414: static constexpr int digits10 1414: = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = false; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr unsigned long 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr unsigned long 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr unsigned long 1414: infinity() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned long 1414: quiet_NaN() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned long 1414: signaling_NaN() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned long 1414: denorm_min() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = true; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr long long 1414: min() noexcept { return -0x7fffffffffffffffLL - 1; } 1414: 1414: static constexpr long long 1414: max() noexcept { return 0x7fffffffffffffffLL; } 1414: 1414: 1414: static constexpr long long 1414: lowest() noexcept { return min(); } 1414: 1414: 1414: static constexpr int digits 1414: = (sizeof(long long) * 8 - ((long long)(-1) < 0)); 1414: static constexpr int digits10 1414: = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = true; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr long long 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr long long 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr long long 1414: infinity() noexcept { return static_cast(0); } 1414: 1414: static constexpr long long 1414: quiet_NaN() noexcept { return static_cast(0); } 1414: 1414: static constexpr long long 1414: signaling_NaN() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr long long 1414: denorm_min() noexcept { return static_cast(0); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = false; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr unsigned long long 1414: min() noexcept { return 0; } 1414: 1414: static constexpr unsigned long long 1414: max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } 1414: 1414: 1414: static constexpr unsigned long long 1414: lowest() noexcept { return min(); } 1414: 1414: 1414: static constexpr int digits 1414: = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); 1414: static constexpr int digits10 1414: = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); 1414: 1414: static constexpr int max_digits10 = 0; 1414: 1414: static constexpr bool is_signed = false; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr unsigned long long 1414: epsilon() noexcept { return 0; } 1414: 1414: static constexpr unsigned long long 1414: round_error() noexcept { return 0; } 1414: 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr float_denorm_style has_denorm 1414: = denorm_absent; 1414: static constexpr bool has_denorm_loss = false; 1414: 1414: static constexpr unsigned long long 1414: infinity() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned long long 1414: quiet_NaN() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned long long 1414: signaling_NaN() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr unsigned long long 1414: denorm_min() noexcept 1414: { return static_cast(0); } 1414: 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = true; 1414: 1414: static constexpr bool traps = true; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_round_style round_style 1414: = round_toward_zero; 1414: }; 1414: # 1675 "/usr/arm-linux-gnueabihf/include/c++/16/limits" 3 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr float 1414: min() noexcept { return 1.1754943508222875e-38F; } 1414: 1414: static constexpr float 1414: max() noexcept { return 3.4028234663852886e+38F; } 1414: 1414: 1414: static constexpr float 1414: lowest() noexcept { return -3.4028234663852886e+38F; } 1414: 1414: 1414: static constexpr int digits = 24; 1414: static constexpr int digits10 = 6; 1414: 1414: static constexpr int max_digits10 1414: = (2 + (24) * 643L / 2136); 1414: 1414: static constexpr bool is_signed = true; 1414: static constexpr bool is_integer = false; 1414: static constexpr bool is_exact = false; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr float 1414: epsilon() noexcept { return 1.1920928955078125e-7F; } 1414: 1414: static constexpr float 1414: round_error() noexcept { return 0.5F; } 1414: 1414: static constexpr int min_exponent = (-125); 1414: static constexpr int min_exponent10 = (-37); 1414: static constexpr int max_exponent = 128; 1414: static constexpr int max_exponent10 = 38; 1414: 1414: static constexpr bool has_infinity = 1; 1414: static constexpr bool has_quiet_NaN = 1; 1414: static constexpr bool has_signaling_NaN = has_quiet_NaN; 1414: static constexpr float_denorm_style has_denorm 1414: = bool(1) ? denorm_present : denorm_absent; 1414: static constexpr bool has_denorm_loss 1414: = false; 1414: 1414: static constexpr float 1414: infinity() noexcept { return __builtin_huge_valf(); } 1414: 1414: static constexpr float 1414: quiet_NaN() noexcept { return __builtin_nanf(""); } 1414: 1414: static constexpr float 1414: signaling_NaN() noexcept { return __builtin_nansf(""); } 1414: 1414: static constexpr float 1414: denorm_min() noexcept { return 1.4012984643248171e-45F; } 1414: 1414: static constexpr bool is_iec559 1414: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = false; 1414: 1414: static constexpr bool traps = false; 1414: static constexpr bool tinyness_before 1414: = false; 1414: static constexpr float_round_style round_style 1414: = round_to_nearest; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr double 1414: min() noexcept { return double(2.2250738585072014e-308L); } 1414: 1414: static constexpr double 1414: max() noexcept { return double(1.7976931348623157e+308L); } 1414: 1414: 1414: static constexpr double 1414: lowest() noexcept { return -double(1.7976931348623157e+308L); } 1414: 1414: 1414: static constexpr int digits = 53; 1414: static constexpr int digits10 = 15; 1414: 1414: static constexpr int max_digits10 1414: = (2 + (53) * 643L / 2136); 1414: 1414: static constexpr bool is_signed = true; 1414: static constexpr bool is_integer = false; 1414: static constexpr bool is_exact = false; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr double 1414: epsilon() noexcept { return double(2.2204460492503131e-16L); } 1414: 1414: static constexpr double 1414: round_error() noexcept { return 0.5; } 1414: 1414: static constexpr int min_exponent = (-1021); 1414: static constexpr int min_exponent10 = (-307); 1414: static constexpr int max_exponent = 1024; 1414: static constexpr int max_exponent10 = 308; 1414: 1414: static constexpr bool has_infinity = 1; 1414: static constexpr bool has_quiet_NaN = 1; 1414: static constexpr bool has_signaling_NaN = has_quiet_NaN; 1414: static constexpr float_denorm_style has_denorm 1414: = bool(1) ? denorm_present : denorm_absent; 1414: static constexpr bool has_denorm_loss 1414: = false; 1414: 1414: static constexpr double 1414: infinity() noexcept { return __builtin_huge_val(); } 1414: 1414: static constexpr double 1414: quiet_NaN() noexcept { return __builtin_nan(""); } 1414: 1414: static constexpr double 1414: signaling_NaN() noexcept { return __builtin_nans(""); } 1414: 1414: static constexpr double 1414: denorm_min() noexcept { return double(4.9406564584124654e-324L); } 1414: 1414: static constexpr bool is_iec559 1414: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = false; 1414: 1414: static constexpr bool traps = false; 1414: static constexpr bool tinyness_before 1414: = false; 1414: static constexpr float_round_style round_style 1414: = round_to_nearest; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: static constexpr bool is_specialized = true; 1414: 1414: static constexpr long double 1414: min() noexcept { return 2.2250738585072014e-308L; } 1414: 1414: static constexpr long double 1414: max() noexcept { return 1.7976931348623157e+308L; } 1414: 1414: 1414: static constexpr long double 1414: lowest() noexcept { return -1.7976931348623157e+308L; } 1414: 1414: 1414: static constexpr int digits = 53; 1414: static constexpr int digits10 = 15; 1414: 1414: static constexpr int max_digits10 1414: = (2 + (53) * 643L / 2136); 1414: 1414: static constexpr bool is_signed = true; 1414: static constexpr bool is_integer = false; 1414: static constexpr bool is_exact = false; 1414: static constexpr int radix = 2; 1414: 1414: static constexpr long double 1414: epsilon() noexcept { return 2.2204460492503131e-16L; } 1414: 1414: static constexpr long double 1414: round_error() noexcept { return 0.5L; } 1414: 1414: static constexpr int min_exponent = (-1021); 1414: static constexpr int min_exponent10 = (-307); 1414: static constexpr int max_exponent = 1024; 1414: static constexpr int max_exponent10 = 308; 1414: 1414: static constexpr bool has_infinity = 1; 1414: static constexpr bool has_quiet_NaN = 1; 1414: static constexpr bool has_signaling_NaN = has_quiet_NaN; 1414: static constexpr float_denorm_style has_denorm 1414: = bool(1) ? denorm_present : denorm_absent; 1414: static constexpr bool has_denorm_loss 1414: = false; 1414: 1414: static constexpr long double 1414: infinity() noexcept { return __builtin_huge_vall(); } 1414: 1414: static constexpr long double 1414: quiet_NaN() noexcept { return __builtin_nanl(""); } 1414: 1414: static constexpr long double 1414: signaling_NaN() noexcept { return __builtin_nansl(""); } 1414: 1414: static constexpr long double 1414: denorm_min() noexcept { return 4.9406564584124654e-324L; } 1414: 1414: static constexpr bool is_iec559 1414: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = false; 1414: 1414: static constexpr bool traps = false; 1414: static constexpr bool tinyness_before = 1414: false; 1414: static constexpr float_round_style round_style = 1414: round_to_nearest; 1414: }; 1414: # 1995 "/usr/arm-linux-gnueabihf/include/c++/16/limits" 3 1414: __extension__ template<> struct numeric_limits<_Float32> { static constexpr bool is_specialized = true; static constexpr _Float32 min() noexcept { return 1.1754943508222875e-38F32; } static constexpr _Float32 max() noexcept { return 3.4028234663852886e+38F32; } static constexpr _Float32 lowest() noexcept { return -3.4028234663852886e+38F32; } static constexpr int digits = 24; static constexpr int digits10 = 6; static constexpr int max_digits10 = (2 + (24) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float32 epsilon() noexcept { return 1.1920928955078125e-7F32; } static constexpr _Float32 round_error() noexcept { return 0.5F32; } static constexpr int min_exponent = (-125); static constexpr int min_exponent10 = (-37); static constexpr int max_exponent = 128; static constexpr int max_exponent10 = 38; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float32 infinity() noexcept { return __builtin_huge_valf32(); } static constexpr _Float32 quiet_NaN() noexcept { return __builtin_nanf32(""); } static constexpr _Float32 signaling_NaN() noexcept { return __builtin_nansf32(""); } static constexpr _Float32 denorm_min() noexcept { return 1.4012984643248171e-45F32; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; 1414: 1414: 1414: __extension__ template<> struct numeric_limits<_Float64> { static constexpr bool is_specialized = true; static constexpr _Float64 min() noexcept { return 2.2250738585072014e-308F64; } static constexpr _Float64 max() noexcept { return 1.7976931348623157e+308F64; } static constexpr _Float64 lowest() noexcept { return -1.7976931348623157e+308F64; } static constexpr int digits = 53; static constexpr int digits10 = 15; static constexpr int max_digits10 = (2 + (53) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float64 epsilon() noexcept { return 2.2204460492503131e-16F64; } static constexpr _Float64 round_error() noexcept { return 0.5F64; } static constexpr int min_exponent = (-1021); static constexpr int min_exponent10 = (-307); static constexpr int max_exponent = 1024; static constexpr int max_exponent10 = 308; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float64 infinity() noexcept { return __builtin_huge_valf64(); } static constexpr _Float64 quiet_NaN() noexcept { return __builtin_nanf64(""); } static constexpr _Float64 signaling_NaN() noexcept { return __builtin_nansf64(""); } static constexpr _Float64 denorm_min() noexcept { return 4.9406564584124654e-324F64; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; 1414: # 2228 "/usr/arm-linux-gnueabihf/include/c++/16/limits" 3 1414: 1414: } 1414: # 2238 "/usr/arm-linux-gnueabihf/include/c++/16/limits" 3 1414: #pragma GCC diagnostic pop 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/max_size_type.h" 2 3 1414: # 50 "/usr/arm-linux-gnueabihf/include/c++/16/bits/max_size_type.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: struct numeric_limits; 1414: 1414: namespace ranges 1414: { 1414: namespace __detail 1414: { 1414: class __max_size_type 1414: { 1414: public: 1414: __max_size_type() = default; 1414: 1414: template requires integral<_Tp> 1414: constexpr 1414: __max_size_type(_Tp __i) noexcept 1414: : _M_val(__i), _M_msb(__i < 0) 1414: { } 1414: 1414: constexpr explicit 1414: __max_size_type(const __max_diff_type& __d) noexcept; 1414: 1414: template requires integral<_Tp> 1414: constexpr explicit 1414: operator _Tp() const noexcept 1414: { return _M_val; } 1414: 1414: constexpr explicit 1414: operator bool() const noexcept 1414: { return _M_val != 0 || _M_msb != 0; } 1414: 1414: constexpr __max_size_type 1414: operator+() const noexcept 1414: { return *this; } 1414: 1414: constexpr __max_size_type 1414: operator~() const noexcept 1414: { return __max_size_type{~_M_val, !_M_msb}; } 1414: 1414: constexpr __max_size_type 1414: operator-() const noexcept 1414: { return operator~() + 1; } 1414: 1414: constexpr __max_size_type& 1414: operator++() noexcept 1414: { return *this += 1; } 1414: 1414: constexpr __max_size_type 1414: operator++(int) noexcept 1414: { 1414: auto __tmp = *this; 1414: ++*this; 1414: return __tmp; 1414: } 1414: 1414: constexpr __max_size_type& 1414: operator--() noexcept 1414: { return *this -= 1; } 1414: 1414: constexpr __max_size_type 1414: operator--(int) noexcept 1414: { 1414: auto __tmp = *this; 1414: --*this; 1414: return __tmp; 1414: } 1414: 1414: constexpr __max_size_type& 1414: operator+=(const __max_size_type& __r) noexcept 1414: { 1414: const auto __sum = _M_val + __r._M_val; 1414: const bool __overflow = (__sum < _M_val); 1414: _M_msb = _M_msb ^ __r._M_msb ^ __overflow; 1414: _M_val = __sum; 1414: return *this; 1414: } 1414: 1414: constexpr __max_size_type& 1414: operator-=(const __max_size_type& __r) noexcept 1414: { return *this += -__r; } 1414: 1414: constexpr __max_size_type& 1414: operator*=(__max_size_type __r) noexcept 1414: { 1414: constexpr __max_size_type __threshold 1414: = __rep(1) << (_S_rep_bits / 2 - 1); 1414: if (_M_val < __threshold && __r < __threshold) 1414: 1414: 1414: _M_val = _M_val * __r._M_val; 1414: else 1414: { 1414: 1414: 1414: 1414: const bool __lsb = _M_val & 1; 1414: const bool __rlsb = __r._M_val & 1; 1414: *this >>= 1; 1414: __r >>= 1; 1414: _M_val = (2 * _M_val * __r._M_val 1414: + _M_val * __rlsb + __r._M_val * __lsb); 1414: *this <<= 1; 1414: *this += __rlsb * __lsb; 1414: } 1414: 1414: return *this; 1414: } 1414: 1414: constexpr __max_size_type& 1414: operator/=(const __max_size_type& __r) noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__r != 0)) std::__glibcxx_assert_fail(); } while (false); 1414: 1414: if (!_M_msb && !__r._M_msb) [[likely]] 1414: _M_val /= __r._M_val; 1414: else if (_M_msb && __r._M_msb) 1414: { 1414: _M_val = (_M_val >= __r._M_val); 1414: _M_msb = 0; 1414: } 1414: else if (!_M_msb && __r._M_msb) 1414: _M_val = 0; 1414: else if (_M_msb && !__r._M_msb) 1414: { 1414: 1414: 1414: 1414: 1414: const auto __orig = *this; 1414: *this >>= 1; 1414: _M_val /= __r._M_val; 1414: *this <<= 1; 1414: if (__orig - *this * __r >= __r) 1414: ++_M_val; 1414: } 1414: return *this; 1414: } 1414: 1414: constexpr __max_size_type& 1414: operator%=(const __max_size_type& __r) noexcept 1414: { 1414: if (!_M_msb && !__r._M_msb) [[likely]] 1414: _M_val %= __r._M_val; 1414: else 1414: *this -= (*this / __r) * __r; 1414: return *this; 1414: } 1414: 1414: constexpr __max_size_type& 1414: operator<<=(const __max_size_type& __r) noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__r <= _S_rep_bits)) std::__glibcxx_assert_fail(); } while (false); 1414: if (__r != 0) 1414: { 1414: _M_msb = (_M_val >> (_S_rep_bits - __r._M_val)) & 1; 1414: 1414: if (__r._M_val == _S_rep_bits) [[unlikely]] 1414: _M_val = 0; 1414: else 1414: _M_val <<= __r._M_val; 1414: } 1414: return *this; 1414: } 1414: 1414: constexpr __max_size_type& 1414: operator>>=(const __max_size_type& __r) noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__r <= _S_rep_bits)) std::__glibcxx_assert_fail(); } while (false); 1414: if (__r != 0) 1414: { 1414: if (__r._M_val == _S_rep_bits) [[unlikely]] 1414: _M_val = 0; 1414: else 1414: _M_val >>= __r._M_val; 1414: 1414: if (_M_msb) [[unlikely]] 1414: { 1414: _M_val |= __rep(1) << (_S_rep_bits - __r._M_val); 1414: _M_msb = 0; 1414: } 1414: } 1414: return *this; 1414: } 1414: 1414: constexpr __max_size_type& 1414: operator&=(const __max_size_type& __r) noexcept 1414: { 1414: _M_val &= __r._M_val; 1414: _M_msb &= __r._M_msb; 1414: return *this; 1414: } 1414: 1414: constexpr __max_size_type& 1414: operator|=(const __max_size_type& __r) noexcept 1414: { 1414: _M_val |= __r._M_val; 1414: _M_msb |= __r._M_msb; 1414: return *this; 1414: } 1414: 1414: constexpr __max_size_type& 1414: operator^=(const __max_size_type& __r) noexcept 1414: { 1414: _M_val ^= __r._M_val; 1414: _M_msb ^= __r._M_msb; 1414: return *this; 1414: } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator+=(_Tp& __a, const __max_size_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a + __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator-=(_Tp& __a, const __max_size_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a - __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator*=(_Tp& __a, const __max_size_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a * __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator/=(_Tp& __a, const __max_size_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a / __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator%=(_Tp& __a, const __max_size_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a % __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator&=(_Tp& __a, const __max_size_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a & __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator|=(_Tp& __a, const __max_size_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a | __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator^=(_Tp& __a, const __max_size_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a ^ __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator<<=(_Tp& __a, const __max_size_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a << __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator>>=(_Tp& __a, const __max_size_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a >> __b)); } 1414: 1414: friend constexpr __max_size_type 1414: operator+(__max_size_type __l, const __max_size_type& __r) noexcept 1414: { 1414: __l += __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_size_type 1414: operator-(__max_size_type __l, const __max_size_type& __r) noexcept 1414: { 1414: __l -= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_size_type 1414: operator*(__max_size_type __l, const __max_size_type& __r) noexcept 1414: { 1414: __l *= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_size_type 1414: operator/(__max_size_type __l, const __max_size_type& __r) noexcept 1414: { 1414: __l /= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_size_type 1414: operator%(__max_size_type __l, const __max_size_type& __r) noexcept 1414: { 1414: __l %= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_size_type 1414: operator<<(__max_size_type __l, const __max_size_type& __r) noexcept 1414: { 1414: __l <<= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_size_type 1414: operator>>(__max_size_type __l, const __max_size_type& __r) noexcept 1414: { 1414: __l >>= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_size_type 1414: operator&(__max_size_type __l, const __max_size_type& __r) noexcept 1414: { 1414: __l &= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_size_type 1414: operator|(__max_size_type __l, const __max_size_type& __r) noexcept 1414: { 1414: __l |= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_size_type 1414: operator^(__max_size_type __l, const __max_size_type& __r) noexcept 1414: { 1414: __l ^= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr bool 1414: operator==(const __max_size_type& __l, const __max_size_type& __r) noexcept 1414: { return __l._M_val == __r._M_val && __l._M_msb == __r._M_msb; } 1414: 1414: 1414: friend constexpr strong_ordering 1414: operator<=>(const __max_size_type& __l, const __max_size_type& __r) noexcept 1414: { 1414: if (__l._M_msb ^ __r._M_msb) 1414: return __l._M_msb ? strong_ordering::greater : strong_ordering::less; 1414: else 1414: return __l._M_val <=> __r._M_val; 1414: } 1414: # 425 "/usr/arm-linux-gnueabihf/include/c++/16/bits/max_size_type.h" 3 1414: using __rep = unsigned long long; 1414: 1414: static constexpr size_t _S_rep_bits = sizeof(__rep) * 8; 1414: 1414: __rep _M_val = 0; 1414: unsigned _M_msb:1 = 0; 1414: 1414: private: 1414: constexpr explicit 1414: __max_size_type(__rep __val, int __msb) noexcept 1414: : _M_val(__val), _M_msb(__msb) 1414: { } 1414: 1414: friend __max_diff_type; 1414: friend std::numeric_limits<__max_size_type>; 1414: friend std::numeric_limits<__max_diff_type>; 1414: }; 1414: 1414: class __max_diff_type 1414: { 1414: public: 1414: __max_diff_type() = default; 1414: 1414: template requires integral<_Tp> 1414: constexpr 1414: __max_diff_type(_Tp __i) noexcept 1414: : _M_rep(__i) 1414: { } 1414: 1414: constexpr explicit 1414: __max_diff_type(const __max_size_type& __d) noexcept 1414: : _M_rep(__d) 1414: { } 1414: 1414: template requires integral<_Tp> 1414: constexpr explicit 1414: operator _Tp() const noexcept 1414: { return static_cast<_Tp>(_M_rep); } 1414: 1414: constexpr explicit 1414: operator bool() const noexcept 1414: { return _M_rep != 0; } 1414: 1414: constexpr __max_diff_type 1414: operator+() const noexcept 1414: { return *this; } 1414: 1414: constexpr __max_diff_type 1414: operator-() const noexcept 1414: { return __max_diff_type(-_M_rep); } 1414: 1414: constexpr __max_diff_type 1414: operator~() const noexcept 1414: { return __max_diff_type(~_M_rep); } 1414: 1414: constexpr __max_diff_type& 1414: operator++() noexcept 1414: { return *this += 1; } 1414: 1414: constexpr __max_diff_type 1414: operator++(int) noexcept 1414: { 1414: auto __tmp = *this; 1414: ++*this; 1414: return __tmp; 1414: } 1414: 1414: constexpr __max_diff_type& 1414: operator--() noexcept 1414: { return *this -= 1; } 1414: 1414: constexpr __max_diff_type 1414: operator--(int) noexcept 1414: { 1414: auto __tmp = *this; 1414: --*this; 1414: return __tmp; 1414: } 1414: 1414: constexpr __max_diff_type& 1414: operator+=(const __max_diff_type& __r) noexcept 1414: { 1414: _M_rep += __r._M_rep; 1414: return *this; 1414: } 1414: 1414: constexpr __max_diff_type& 1414: operator-=(const __max_diff_type& __r) noexcept 1414: { 1414: _M_rep -= __r._M_rep; 1414: return *this; 1414: } 1414: 1414: constexpr __max_diff_type& 1414: operator*=(const __max_diff_type& __r) noexcept 1414: { 1414: _M_rep *= __r._M_rep; 1414: return *this; 1414: } 1414: 1414: constexpr __max_diff_type& 1414: operator/=(const __max_diff_type& __r) noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__r != 0)) std::__glibcxx_assert_fail(); } while (false); 1414: const bool __neg = *this < 0; 1414: const bool __rneg = __r < 0; 1414: if (!__neg && !__rneg) 1414: _M_rep = _M_rep / __r._M_rep; 1414: else if (__neg && __rneg) 1414: _M_rep = -_M_rep / -__r._M_rep; 1414: else if (__neg && !__rneg) 1414: _M_rep = -(-_M_rep / __r._M_rep); 1414: else 1414: _M_rep = -(_M_rep / -__r._M_rep); 1414: return *this ; 1414: } 1414: 1414: constexpr __max_diff_type& 1414: operator%=(const __max_diff_type& __r) noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__r != 0)) std::__glibcxx_assert_fail(); } while (false); 1414: if (*this >= 0 && __r > 0) 1414: _M_rep %= __r._M_rep; 1414: else 1414: *this -= (*this / __r) * __r; 1414: return *this; 1414: } 1414: 1414: constexpr __max_diff_type& 1414: operator<<=(const __max_diff_type& __r) noexcept 1414: { 1414: _M_rep.operator<<=(__r._M_rep); 1414: return *this; 1414: } 1414: 1414: constexpr __max_diff_type& 1414: operator>>=(const __max_diff_type& __r) noexcept 1414: { 1414: 1414: const auto __msb = _M_rep._M_msb; 1414: _M_rep >>= __r._M_rep; 1414: if (__msb) 1414: _M_rep |= ~(__max_size_type(-1) >> __r._M_rep); 1414: return *this; 1414: } 1414: 1414: constexpr __max_diff_type& 1414: operator&=(const __max_diff_type& __r) noexcept 1414: { 1414: _M_rep &= __r._M_rep; 1414: return *this; 1414: } 1414: 1414: constexpr __max_diff_type& 1414: operator|=(const __max_diff_type& __r) noexcept 1414: { 1414: _M_rep |= __r._M_rep; 1414: return *this; 1414: } 1414: 1414: constexpr __max_diff_type& 1414: operator^=(const __max_diff_type& __r) noexcept 1414: { 1414: _M_rep ^= __r._M_rep; 1414: return *this; 1414: } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator+=(_Tp& __a, const __max_diff_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a + __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator-=(_Tp& __a, const __max_diff_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a - __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator*=(_Tp& __a, const __max_diff_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a * __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator/=(_Tp& __a, const __max_diff_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a / __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator%=(_Tp& __a, const __max_diff_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a % __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator&=(_Tp& __a, const __max_diff_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a & __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator|=(_Tp& __a, const __max_diff_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a | __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator^=(_Tp& __a, const __max_diff_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a ^ __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator<<=(_Tp& __a, const __max_diff_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a << __b)); } 1414: 1414: template requires integral<_Tp> 1414: friend constexpr _Tp& 1414: operator>>=(_Tp& __a, const __max_diff_type& __b) noexcept 1414: { return (__a = static_cast<_Tp>(__a >> __b)); } 1414: 1414: friend constexpr __max_diff_type 1414: operator+(__max_diff_type __l, const __max_diff_type& __r) noexcept 1414: { 1414: __l += __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_diff_type 1414: operator-(__max_diff_type __l, const __max_diff_type& __r) noexcept 1414: { 1414: __l -= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_diff_type 1414: operator*(__max_diff_type __l, const __max_diff_type& __r) noexcept 1414: { 1414: __l *= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_diff_type 1414: operator/(__max_diff_type __l, const __max_diff_type& __r) noexcept 1414: { 1414: __l /= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_diff_type 1414: operator%(__max_diff_type __l, const __max_diff_type& __r) noexcept 1414: { 1414: __l %= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_diff_type 1414: operator<<(__max_diff_type __l, const __max_diff_type& __r) noexcept 1414: { 1414: __l <<= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_diff_type 1414: operator>>(__max_diff_type __l, const __max_diff_type& __r) noexcept 1414: { 1414: __l >>= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_diff_type 1414: operator&(__max_diff_type __l, const __max_diff_type& __r) noexcept 1414: { 1414: __l &= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_diff_type 1414: operator|(__max_diff_type __l, const __max_diff_type& __r) noexcept 1414: { 1414: __l |= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr __max_diff_type 1414: operator^(__max_diff_type __l, const __max_diff_type& __r) noexcept 1414: { 1414: __l ^= __r; 1414: return __l; 1414: } 1414: 1414: friend constexpr bool 1414: operator==(const __max_diff_type& __l, const __max_diff_type& __r) noexcept 1414: { return __l._M_rep == __r._M_rep; } 1414: 1414: 1414: constexpr strong_ordering 1414: operator<=>(const __max_diff_type& __r) const noexcept 1414: { 1414: const auto __lsign = _M_rep._M_msb; 1414: const auto __rsign = __r._M_rep._M_msb; 1414: if (__lsign ^ __rsign) 1414: return __lsign ? strong_ordering::less : strong_ordering::greater; 1414: else 1414: return _M_rep <=> __r._M_rep; 1414: } 1414: # 756 "/usr/arm-linux-gnueabihf/include/c++/16/bits/max_size_type.h" 3 1414: __max_size_type _M_rep = 0; 1414: 1414: friend class __max_size_type; 1414: }; 1414: 1414: constexpr 1414: __max_size_type::__max_size_type(const __max_diff_type& __d) noexcept 1414: : __max_size_type(__d._M_rep) 1414: { } 1414: 1414: } 1414: } 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: using _Sp = ranges::__detail::__max_size_type; 1414: static constexpr bool is_specialized = true; 1414: static constexpr bool is_signed = false; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = true; 1414: static constexpr bool traps = true; 1414: static constexpr int radix = 2; 1414: static constexpr int digits 1414: = __gnu_cxx::__int_traits<_Sp::__rep>::__digits + 1; 1414: static constexpr int digits10 1414: = static_cast(digits * numbers::ln2 / numbers::ln10); 1414: static constexpr int max_digits10 = 0; 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr bool has_denorm_loss = false; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_denorm_style has_denorm = denorm_absent; 1414: static constexpr float_round_style round_style = round_toward_zero; 1414: 1414: static constexpr _Sp 1414: min() noexcept 1414: { return 0; } 1414: 1414: static constexpr _Sp 1414: max() noexcept 1414: { return _Sp(static_cast<_Sp::__rep>(-1), 1); } 1414: 1414: static constexpr _Sp 1414: lowest() noexcept 1414: { return min(); } 1414: 1414: static constexpr _Sp 1414: denorm_min() noexcept 1414: { return 0; } 1414: 1414: static constexpr _Sp 1414: epsilon() noexcept 1414: { return 0; } 1414: 1414: static constexpr _Sp 1414: round_error() noexcept 1414: { return 0; } 1414: 1414: static constexpr _Sp 1414: infinity() noexcept 1414: { return 0; } 1414: 1414: static constexpr _Sp 1414: quiet_NaN() noexcept 1414: { return 0; } 1414: 1414: static constexpr _Sp 1414: signaling_NaN() noexcept 1414: { return 0; } 1414: }; 1414: 1414: template<> 1414: struct numeric_limits 1414: { 1414: using _Dp = ranges::__detail::__max_diff_type; 1414: using _Sp = ranges::__detail::__max_size_type; 1414: static constexpr bool is_specialized = true; 1414: static constexpr bool is_signed = true; 1414: static constexpr bool is_integer = true; 1414: static constexpr bool is_exact = true; 1414: static constexpr bool is_bounded = true; 1414: static constexpr bool is_modulo = false; 1414: static constexpr bool traps = true; 1414: static constexpr int radix = 2; 1414: static constexpr int digits = numeric_limits<_Sp>::digits - 1; 1414: static constexpr int digits10 1414: = static_cast(digits * numbers::ln2 / numbers::ln10); 1414: static constexpr int max_digits10 = 0; 1414: static constexpr int min_exponent = 0; 1414: static constexpr int min_exponent10 = 0; 1414: static constexpr int max_exponent = 0; 1414: static constexpr int max_exponent10 = 0; 1414: static constexpr bool is_iec559 = false; 1414: static constexpr bool has_infinity = false; 1414: static constexpr bool has_quiet_NaN = false; 1414: static constexpr bool has_signaling_NaN = false; 1414: static constexpr bool has_denorm_loss = false; 1414: static constexpr bool tinyness_before = false; 1414: static constexpr float_denorm_style has_denorm = denorm_absent; 1414: static constexpr float_round_style round_style = round_toward_zero; 1414: 1414: static constexpr _Dp 1414: min() noexcept 1414: { return _Dp(_Sp(0, 1)); } 1414: 1414: static constexpr _Dp 1414: max() noexcept 1414: { return _Dp(_Sp(static_cast<_Sp::__rep>(-1), 0)); } 1414: 1414: static constexpr _Dp 1414: lowest() noexcept 1414: { return min(); } 1414: 1414: static constexpr _Dp 1414: denorm_min() noexcept 1414: { return 0; } 1414: 1414: static constexpr _Dp 1414: epsilon() noexcept 1414: { return 0; } 1414: 1414: static constexpr _Dp 1414: round_error() noexcept 1414: { return 0; } 1414: 1414: static constexpr _Dp 1414: infinity() noexcept 1414: { return 0; } 1414: 1414: static constexpr _Dp 1414: quiet_NaN() noexcept 1414: { return 0; } 1414: 1414: static constexpr _Dp 1414: signaling_NaN() noexcept 1414: { return 0; } 1414: }; 1414: 1414: template<> 1414: inline constexpr int 1414: __bit_width(ranges::__detail::__max_size_type __x) noexcept 1414: { 1414: if (__x._M_msb) 1414: return numeric_limits::digits; 1414: else 1414: return std::__bit_width(__x._M_val); 1414: } 1414: 1414: 1414: } 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wpedantic" 1414: # 58 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: namespace ranges 1414: { 1414: template 1414: inline constexpr bool disable_sized_range = false; 1414: 1414: template 1414: inline constexpr bool enable_borrowed_range = false; 1414: 1414: namespace __detail 1414: { 1414: [[__gnu__::__always_inline__]] 1414: constexpr __max_size_type 1414: __to_unsigned_like(__max_size_type __t) noexcept 1414: { return __t; } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr __max_size_type 1414: __to_unsigned_like(__max_diff_type __t) noexcept 1414: { return __max_size_type(__t); } 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr auto 1414: __to_unsigned_like(_Tp __t) noexcept 1414: { return static_cast>(__t); } 1414: 1414: template 1414: using __make_unsigned_like_t 1414: = decltype(__detail::__to_unsigned_like(std::declval<_Tp>())); 1414: 1414: 1414: template 1414: concept __maybe_borrowed_range 1414: = is_lvalue_reference_v<_Tp> 1414: || enable_borrowed_range>; 1414: 1414: } 1414: 1414: 1414: namespace __access 1414: { 1414: using std::ranges::__detail::__maybe_borrowed_range; 1414: using std::__detail::__range_iter_t; 1414: 1414: struct _Begin 1414: { 1414: private: 1414: template 1414: static consteval bool 1414: _S_noexcept() 1414: { 1414: if constexpr (is_array_v>) 1414: return true; 1414: else if constexpr (__member_begin<_Tp>) 1414: return noexcept(::std::__decay_t().begin()))>(std::declval<_Tp&>().begin())); 1414: else 1414: return noexcept(::std::__decay_t())))>(begin(std::declval<_Tp&>()))); 1414: } 1414: 1414: public: 1414: template<__maybe_borrowed_range _Tp> 1414: requires is_array_v> || __member_begin<_Tp> 1414: || __adl_begin<_Tp> 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr auto 1414: operator()(_Tp&& __t) const noexcept(_S_noexcept<_Tp&>()) 1414: { 1414: if constexpr (is_array_v>) 1414: { 1414: static_assert(is_lvalue_reference_v<_Tp>); 1414: return __t + 0; 1414: } 1414: else if constexpr (__member_begin<_Tp>) 1414: return __t.begin(); 1414: else 1414: return begin(__t); 1414: } 1414: }; 1414: 1414: template 1414: concept __member_end = requires(_Tp& __t) 1414: { 1414: { ::std::__decay_t(__t.end()) } -> sentinel_for<__range_iter_t<_Tp>>; 1414: }; 1414: 1414: 1414: void end() = delete; 1414: 1414: template 1414: concept __adl_end = __class_or_enum> 1414: && requires(_Tp& __t) 1414: { 1414: { ::std::__decay_t(end(__t)) } -> sentinel_for<__range_iter_t<_Tp>>; 1414: }; 1414: 1414: struct _End 1414: { 1414: private: 1414: template 1414: static consteval bool 1414: _S_noexcept() 1414: { 1414: if constexpr (is_bounded_array_v>) 1414: return true; 1414: else if constexpr (__member_end<_Tp>) 1414: return noexcept(::std::__decay_t().end()))>(std::declval<_Tp&>().end())); 1414: else 1414: return noexcept(::std::__decay_t())))>(end(std::declval<_Tp&>()))); 1414: } 1414: 1414: public: 1414: template<__maybe_borrowed_range _Tp> 1414: requires is_bounded_array_v> 1414: || __member_end<_Tp> || __adl_end<_Tp> 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr auto 1414: operator()(_Tp&& __t) const noexcept(_S_noexcept<_Tp&>()) 1414: { 1414: if constexpr (is_bounded_array_v>) 1414: { 1414: static_assert(is_lvalue_reference_v<_Tp>); 1414: return __t + extent_v>; 1414: } 1414: else if constexpr (__member_end<_Tp>) 1414: return __t.end(); 1414: else 1414: return end(__t); 1414: } 1414: }; 1414: 1414: template 1414: concept __member_rbegin = requires(_Tp& __t) 1414: { 1414: { ::std::__decay_t(__t.rbegin()) } -> input_or_output_iterator; 1414: }; 1414: 1414: void rbegin() = delete; 1414: 1414: template 1414: concept __adl_rbegin = __class_or_enum> 1414: && requires(_Tp& __t) 1414: { 1414: { ::std::__decay_t(rbegin(__t)) } -> input_or_output_iterator; 1414: }; 1414: 1414: template 1414: concept __reversable = requires(_Tp& __t) 1414: { 1414: { _Begin{}(__t) } -> bidirectional_iterator; 1414: { _End{}(__t) } -> same_as; 1414: }; 1414: 1414: struct _RBegin 1414: { 1414: private: 1414: template 1414: static consteval bool 1414: _S_noexcept() 1414: { 1414: if constexpr (__member_rbegin<_Tp>) 1414: return noexcept(::std::__decay_t().rbegin()))>(std::declval<_Tp&>().rbegin())); 1414: else if constexpr (__adl_rbegin<_Tp>) 1414: return noexcept(::std::__decay_t())))>(rbegin(std::declval<_Tp&>()))); 1414: else 1414: { 1414: if constexpr (noexcept(_End{}(std::declval<_Tp&>()))) 1414: { 1414: using _It = decltype(_End{}(std::declval<_Tp&>())); 1414: 1414: return is_nothrow_copy_constructible_v<_It>; 1414: } 1414: else 1414: return false; 1414: } 1414: } 1414: 1414: public: 1414: template<__maybe_borrowed_range _Tp> 1414: requires __member_rbegin<_Tp> || __adl_rbegin<_Tp> || __reversable<_Tp> 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr auto 1414: operator()(_Tp&& __t) const 1414: noexcept(_S_noexcept<_Tp&>()) 1414: { 1414: if constexpr (__member_rbegin<_Tp>) 1414: return __t.rbegin(); 1414: else if constexpr (__adl_rbegin<_Tp>) 1414: return rbegin(__t); 1414: else 1414: return std::make_reverse_iterator(_End{}(__t)); 1414: } 1414: }; 1414: 1414: template 1414: concept __member_rend = requires(_Tp& __t) 1414: { 1414: { ::std::__decay_t(__t.rend()) } 1414: -> sentinel_for(__t)))>; 1414: }; 1414: 1414: void rend() = delete; 1414: 1414: template 1414: concept __adl_rend = __class_or_enum> 1414: && requires(_Tp& __t) 1414: { 1414: { ::std::__decay_t(rend(__t)) } 1414: -> sentinel_for(__t)))>; 1414: }; 1414: 1414: struct _REnd 1414: { 1414: private: 1414: template 1414: static consteval bool 1414: _S_noexcept() 1414: { 1414: if constexpr (__member_rend<_Tp>) 1414: return noexcept(::std::__decay_t().rend()))>(std::declval<_Tp&>().rend())); 1414: else if constexpr (__adl_rend<_Tp>) 1414: return noexcept(::std::__decay_t())))>(rend(std::declval<_Tp&>()))); 1414: else 1414: { 1414: if constexpr (noexcept(_Begin{}(std::declval<_Tp&>()))) 1414: { 1414: using _It = decltype(_Begin{}(std::declval<_Tp&>())); 1414: 1414: return is_nothrow_copy_constructible_v<_It>; 1414: } 1414: else 1414: return false; 1414: } 1414: } 1414: 1414: public: 1414: template<__maybe_borrowed_range _Tp> 1414: requires __member_rend<_Tp> || __adl_rend<_Tp> || __reversable<_Tp> 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr auto 1414: operator()(_Tp&& __t) const 1414: noexcept(_S_noexcept<_Tp&>()) 1414: { 1414: if constexpr (__member_rend<_Tp>) 1414: return __t.rend(); 1414: else if constexpr (__adl_rend<_Tp>) 1414: return rend(__t); 1414: else 1414: return std::make_reverse_iterator(_Begin{}(__t)); 1414: } 1414: }; 1414: 1414: template 1414: concept __member_size = !disable_sized_range> 1414: && requires(_Tp& __t) 1414: { 1414: { ::std::__decay_t(__t.size()) } -> __detail::__is_integer_like; 1414: }; 1414: 1414: void size() = delete; 1414: 1414: template 1414: concept __adl_size = __class_or_enum> 1414: && !disable_sized_range> 1414: && requires(_Tp& __t) 1414: { 1414: { ::std::__decay_t(size(__t)) } -> __detail::__is_integer_like; 1414: }; 1414: 1414: template 1414: concept __sentinel_size = requires(_Tp& __t) 1414: { 1414: requires (!is_unbounded_array_v>); 1414: 1414: { _Begin{}(__t) } -> forward_iterator; 1414: 1414: { _End{}(__t) } -> sized_sentinel_for; 1414: 1414: __detail::__to_unsigned_like(_End{}(__t) - _Begin{}(__t)); 1414: }; 1414: 1414: struct _Size 1414: { 1414: private: 1414: template 1414: static consteval bool 1414: _S_noexcept() 1414: { 1414: if constexpr (is_bounded_array_v>) 1414: return true; 1414: else if constexpr (__member_size<_Tp>) 1414: return noexcept(::std::__decay_t().size()))>(std::declval<_Tp&>().size())); 1414: else if constexpr (__adl_size<_Tp>) 1414: return noexcept(::std::__decay_t())))>(size(std::declval<_Tp&>()))); 1414: else if constexpr (__sentinel_size<_Tp>) 1414: return noexcept(_End{}(std::declval<_Tp&>()) 1414: - _Begin{}(std::declval<_Tp&>())); 1414: } 1414: 1414: public: 1414: template 1414: requires is_bounded_array_v> 1414: || __member_size<_Tp> || __adl_size<_Tp> || __sentinel_size<_Tp> 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr auto 1414: operator()(_Tp&& __t) const noexcept(_S_noexcept<_Tp&>()) 1414: { 1414: if constexpr (is_bounded_array_v>) 1414: return extent_v>; 1414: else if constexpr (__member_size<_Tp>) 1414: return __t.size(); 1414: else if constexpr (__adl_size<_Tp>) 1414: return size(__t); 1414: else if constexpr (__sentinel_size<_Tp>) 1414: return __detail::__to_unsigned_like(_End{}(__t) - _Begin{}(__t)); 1414: } 1414: }; 1414: 1414: struct _SSize 1414: { 1414: 1414: 1414: template 1414: requires requires (_Tp& __t) { _Size{}(__t); } 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr auto 1414: operator()(_Tp&& __t) const noexcept(noexcept(_Size{}(__t))) 1414: { 1414: auto __size = _Size{}(__t); 1414: using __size_type = decltype(__size); 1414: 1414: if constexpr (integral<__size_type>) 1414: { 1414: using __gnu_cxx::__int_traits; 1414: if constexpr (__int_traits<__size_type>::__digits 1414: < __int_traits::__digits) 1414: return static_cast(__size); 1414: else 1414: return static_cast>(__size); 1414: } 1414: else 1414: return __detail::__max_diff_type(__size); 1414: } 1414: }; 1414: 1414: template 1414: concept __member_empty = requires(_Tp& __t) { bool(__t.empty()); }; 1414: 1414: template 1414: concept __size0_empty = requires(_Tp& __t) { _Size{}(__t) == 0; }; 1414: 1414: template 1414: concept __eq_iter_empty = requires(_Tp& __t) 1414: { 1414: requires (!is_unbounded_array_v>); 1414: 1414: { _Begin{}(__t) } -> forward_iterator; 1414: 1414: bool(_Begin{}(__t) == _End{}(__t)); 1414: }; 1414: 1414: struct _Empty 1414: { 1414: private: 1414: template 1414: static consteval bool 1414: _S_noexcept() 1414: { 1414: if constexpr (__member_empty<_Tp>) 1414: return noexcept(bool(std::declval<_Tp&>().empty())); 1414: else if constexpr (__size0_empty<_Tp>) 1414: return noexcept(_Size{}(std::declval<_Tp&>()) == 0); 1414: else 1414: return noexcept(bool(_Begin{}(std::declval<_Tp&>()) 1414: == _End{}(std::declval<_Tp&>()))); 1414: } 1414: 1414: public: 1414: template 1414: requires __member_empty<_Tp> || __size0_empty<_Tp> 1414: || __eq_iter_empty<_Tp> 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr bool 1414: operator()(_Tp&& __t) const noexcept(_S_noexcept<_Tp&>()) 1414: { 1414: if constexpr (__member_empty<_Tp>) 1414: return bool(__t.empty()); 1414: else if constexpr (__size0_empty<_Tp>) 1414: return _Size{}(__t) == 0; 1414: else 1414: return bool(_Begin{}(__t) == _End{}(__t)); 1414: } 1414: }; 1414: 1414: template 1414: concept __pointer_to_object = is_pointer_v<_Tp> 1414: && is_object_v>; 1414: 1414: template 1414: concept __member_data = requires(_Tp& __t) 1414: { 1414: { ::std::__decay_t(__t.data()) } -> __pointer_to_object; 1414: }; 1414: 1414: template 1414: concept __begin_data = contiguous_iterator<__range_iter_t<_Tp>>; 1414: 1414: struct _Data 1414: { 1414: private: 1414: template 1414: static consteval bool 1414: _S_noexcept() 1414: { 1414: if constexpr (__member_data<_Tp>) 1414: return noexcept(::std::__decay_t().data()))>(std::declval<_Tp&>().data())); 1414: else 1414: return noexcept(_Begin{}(std::declval<_Tp&>())); 1414: } 1414: 1414: public: 1414: template<__maybe_borrowed_range _Tp> 1414: requires __member_data<_Tp> || __begin_data<_Tp> 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr auto 1414: operator()(_Tp&& __t) const noexcept(_S_noexcept<_Tp>()) 1414: { 1414: if constexpr (__member_data<_Tp>) 1414: return __t.data(); 1414: else 1414: return std::to_address(_Begin{}(__t)); 1414: } 1414: }; 1414: 1414: } 1414: 1414: inline namespace _Cpo 1414: { 1414: inline constexpr ranges::__access::_Begin begin{}; 1414: inline constexpr ranges::__access::_End end{}; 1414: inline constexpr ranges::__access::_RBegin rbegin{}; 1414: inline constexpr ranges::__access::_REnd rend{}; 1414: inline constexpr ranges::__access::_Size size{}; 1414: inline constexpr ranges::__access::_SSize ssize{}; 1414: inline constexpr ranges::__access::_Empty empty{}; 1414: inline constexpr ranges::__access::_Data data{}; 1414: } 1414: 1414: 1414: template 1414: concept range = requires(_Tp& __t) 1414: { 1414: ranges::begin(__t); 1414: ranges::end(__t); 1414: }; 1414: 1414: 1414: template 1414: concept borrowed_range 1414: = range<_Tp> && __detail::__maybe_borrowed_range<_Tp>; 1414: 1414: template 1414: using iterator_t = std::__detail::__range_iter_t<_Tp>; 1414: 1414: template 1414: using sentinel_t = decltype(ranges::end(std::declval<_Range&>())); 1414: # 534 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 3 1414: template 1414: using range_difference_t = iter_difference_t>; 1414: 1414: template 1414: using range_value_t = iter_value_t>; 1414: 1414: template 1414: using range_reference_t = iter_reference_t>; 1414: 1414: template 1414: using range_rvalue_reference_t 1414: = iter_rvalue_reference_t>; 1414: 1414: 1414: 1414: template 1414: using range_common_reference_t 1414: = iter_common_reference_t>; 1414: 1414: 1414: template 1414: concept sized_range = range<_Tp> 1414: && requires(_Tp& __t) { ranges::size(__t); }; 1414: 1414: template 1414: using range_size_t = decltype(ranges::size(std::declval<_Range&>())); 1414: 1414: template 1414: requires is_class_v<_Derived> && same_as<_Derived, remove_cv_t<_Derived>> 1414: class view_interface; 1414: 1414: namespace __detail 1414: { 1414: template 1414: requires (!same_as<_Tp, view_interface<_Up>>) 1414: void __is_derived_from_view_interface_fn(const _Tp&, 1414: const view_interface<_Up>&); 1414: 1414: 1414: 1414: template 1414: concept __is_derived_from_view_interface 1414: = requires (_Tp __t) { __is_derived_from_view_interface_fn(__t, __t); }; 1414: } 1414: 1414: 1414: struct view_base { }; 1414: 1414: 1414: template 1414: inline constexpr bool enable_view = derived_from<_Tp, view_base> 1414: || __detail::__is_derived_from_view_interface<_Tp>; 1414: 1414: 1414: template 1414: concept view 1414: = range<_Tp> && movable<_Tp> && enable_view<_Tp>; 1414: 1414: 1414: 1414: 1414: template 1414: concept output_range 1414: = range<_Range> && output_iterator, _Tp>; 1414: 1414: 1414: template 1414: concept input_range = range<_Tp> && input_iterator>; 1414: 1414: 1414: template 1414: concept forward_range 1414: = input_range<_Tp> && forward_iterator>; 1414: 1414: 1414: template 1414: concept bidirectional_range 1414: = forward_range<_Tp> && bidirectional_iterator>; 1414: 1414: 1414: template 1414: concept random_access_range 1414: = bidirectional_range<_Tp> && random_access_iterator>; 1414: 1414: 1414: template 1414: concept contiguous_range 1414: = random_access_range<_Tp> && contiguous_iterator> 1414: && requires(_Tp& __t) 1414: { 1414: { ranges::data(__t) } -> same_as>>; 1414: }; 1414: 1414: 1414: template 1414: concept common_range 1414: = range<_Tp> && same_as, sentinel_t<_Tp>>; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: namespace __access 1414: { 1414: # 655 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 3 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr decltype(auto) 1414: __as_const(_Tp& __t) noexcept 1414: { 1414: static_assert(std::is_same_v<_To&, _Tp&>); 1414: 1414: if constexpr (is_lvalue_reference_v<_To>) 1414: return const_cast(__t); 1414: else 1414: return static_cast(__t); 1414: } 1414: 1414: 1414: struct _CBegin 1414: { 1414: # 685 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 3 1414: template 1414: [[nodiscard]] 1414: constexpr auto 1414: operator()(_Tp&& __e) const 1414: noexcept(noexcept(_Begin{}(__access::__as_const<_Tp>(__e)))) 1414: requires requires { _Begin{}(__access::__as_const<_Tp>(__e)); } 1414: { 1414: return _Begin{}(__access::__as_const<_Tp>(__e)); 1414: } 1414: 1414: }; 1414: 1414: struct _CEnd final 1414: { 1414: # 713 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 3 1414: template 1414: [[nodiscard]] 1414: constexpr auto 1414: operator()(_Tp&& __e) const 1414: noexcept(noexcept(_End{}(__access::__as_const<_Tp>(__e)))) 1414: requires requires { _End{}(__access::__as_const<_Tp>(__e)); } 1414: { 1414: return _End{}(__access::__as_const<_Tp>(__e)); 1414: } 1414: 1414: }; 1414: 1414: struct _CRBegin 1414: { 1414: # 741 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 3 1414: template 1414: [[nodiscard]] 1414: constexpr auto 1414: operator()(_Tp&& __e) const 1414: noexcept(noexcept(_RBegin{}(__access::__as_const<_Tp>(__e)))) 1414: requires requires { _RBegin{}(__access::__as_const<_Tp>(__e)); } 1414: { 1414: return _RBegin{}(__access::__as_const<_Tp>(__e)); 1414: } 1414: 1414: }; 1414: 1414: struct _CREnd 1414: { 1414: # 769 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 3 1414: template 1414: [[nodiscard]] 1414: constexpr auto 1414: operator()(_Tp&& __e) const 1414: noexcept(noexcept(_REnd{}(__access::__as_const<_Tp>(__e)))) 1414: requires requires { _REnd{}(__access::__as_const<_Tp>(__e)); } 1414: { 1414: return _REnd{}(__access::__as_const<_Tp>(__e)); 1414: } 1414: 1414: }; 1414: 1414: struct _CData 1414: { 1414: # 792 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 3 1414: template 1414: [[nodiscard]] 1414: constexpr auto 1414: operator()(_Tp&& __e) const 1414: noexcept(noexcept(_Data{}(__access::__as_const<_Tp>(__e)))) 1414: requires requires { _Data{}(__access::__as_const<_Tp>(__e)); } 1414: { 1414: return _Data{}(__access::__as_const<_Tp>(__e)); 1414: } 1414: 1414: }; 1414: } 1414: 1414: inline namespace _Cpo 1414: { 1414: inline constexpr ranges::__access::_CBegin cbegin{}; 1414: inline constexpr ranges::__access::_CEnd cend{}; 1414: inline constexpr ranges::__access::_CRBegin crbegin{}; 1414: inline constexpr ranges::__access::_CREnd crend{}; 1414: inline constexpr ranges::__access::_CData cdata{}; 1414: } 1414: # 824 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 3 1414: namespace __detail 1414: { 1414: template 1414: inline constexpr bool __is_initializer_list = false; 1414: 1414: template 1414: inline constexpr bool __is_initializer_list> = true; 1414: } 1414: 1414: 1414: template 1414: concept viewable_range = range<_Tp> 1414: && ((view> && constructible_from, _Tp>) 1414: || (!view> 1414: && (is_lvalue_reference_v<_Tp> 1414: || (movable> 1414: && !__detail::__is_initializer_list>)))); 1414: 1414: 1414: 1414: struct __advance_fn final 1414: { 1414: template 1414: constexpr void 1414: operator()(_It& __it, iter_difference_t<_It> __n) const 1414: { 1414: if constexpr (random_access_iterator<_It>) 1414: __it += __n; 1414: else if constexpr (bidirectional_iterator<_It>) 1414: { 1414: if (__n > 0) 1414: { 1414: do 1414: { 1414: ++__it; 1414: } 1414: while (--__n); 1414: } 1414: else if (__n < 0) 1414: { 1414: do 1414: { 1414: --__it; 1414: } 1414: while (++__n); 1414: } 1414: } 1414: else 1414: { 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) std::__glibcxx_assert_fail(); } while (false); 1414: while (__n-- > 0) 1414: ++__it; 1414: } 1414: } 1414: 1414: template _Sent> 1414: constexpr void 1414: operator()(_It& __it, _Sent __bound) const 1414: { 1414: if constexpr (assignable_from<_It&, _Sent>) 1414: __it = std::move(__bound); 1414: else if constexpr (sized_sentinel_for<_Sent, _It>) 1414: (*this)(__it, __bound - __it); 1414: else 1414: { 1414: while (__it != __bound) 1414: ++__it; 1414: } 1414: } 1414: 1414: template _Sent> 1414: constexpr iter_difference_t<_It> 1414: operator()(_It& __it, iter_difference_t<_It> __n, _Sent __bound) const 1414: { 1414: if constexpr (sized_sentinel_for<_Sent, _It>) 1414: { 1414: const iter_difference_t<_It> __diff = __bound - __it; 1414: 1414: if (__diff == 0) 1414: { 1414: 1414: if constexpr (assignable_from<_It&, _Sent>) 1414: __it = std::move(__bound); 1414: else if constexpr (random_access_iterator<_It>) 1414: __it += iter_difference_t<_It>(0); 1414: return __n; 1414: } 1414: else if (__diff > 0 ? __n >= __diff : __n <= __diff) 1414: { 1414: (*this)(__it, __bound); 1414: return __n - __diff; 1414: } 1414: else if (__n != 0) [[likely]] 1414: { 1414: 1414: do { if (std::__is_constant_evaluated() && !bool((__n < 0) == (__diff < 0))) std::__glibcxx_assert_fail(); } while (false); 1414: 1414: (*this)(__it, __n); 1414: return 0; 1414: } 1414: else 1414: { 1414: 1414: if constexpr (random_access_iterator<_It>) 1414: __it += iter_difference_t<_It>(0); 1414: return 0; 1414: } 1414: } 1414: else if (__n == 0 || __it == __bound) 1414: return __n; 1414: else if (__n > 0) 1414: { 1414: iter_difference_t<_It> __m = 0; 1414: do 1414: { 1414: ++__it; 1414: ++__m; 1414: } 1414: while (__m != __n && __it != __bound); 1414: return __n - __m; 1414: } 1414: else if constexpr (bidirectional_iterator<_It> && same_as<_It, _Sent>) 1414: { 1414: iter_difference_t<_It> __m = 0; 1414: do 1414: { 1414: --__it; 1414: --__m; 1414: } 1414: while (__m != __n && __it != __bound); 1414: return __n - __m; 1414: } 1414: else 1414: { 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) std::__glibcxx_assert_fail(); } while (false); 1414: return __n; 1414: } 1414: } 1414: 1414: void operator&() const = delete; 1414: }; 1414: 1414: inline constexpr __advance_fn advance{}; 1414: 1414: struct __distance_fn final 1414: { 1414: template _Sent> 1414: requires (!sized_sentinel_for<_Sent, _It>) 1414: constexpr iter_difference_t<_It> 1414: operator()[[nodiscard]](_It __first, _Sent __last) const 1414: { 1414: iter_difference_t<_It> __n = 0; 1414: while (__first != __last) 1414: { 1414: ++__first; 1414: ++__n; 1414: } 1414: return __n; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template> _Sent> 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr iter_difference_t> 1414: operator()(_It&& __first, _Sent __last) const 1414: { 1414: if constexpr (!is_array_v>) 1414: return __last - __first; 1414: else 1414: return __last - static_cast>(__first); 1414: } 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr range_difference_t<_Range> 1414: operator()(_Range&& __r) const 1414: { 1414: if constexpr (sized_range<_Range>) 1414: return static_cast>(ranges::size(__r)); 1414: else 1414: return (*this)(ranges::begin(__r), ranges::end(__r)); 1414: } 1414: 1414: void operator&() const = delete; 1414: }; 1414: 1414: inline constexpr __distance_fn distance{}; 1414: 1414: struct __next_fn final 1414: { 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr _It 1414: operator()(_It __x) const 1414: { 1414: ++__x; 1414: return __x; 1414: } 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr _It 1414: operator()(_It __x, iter_difference_t<_It> __n) const 1414: { 1414: ranges::advance(__x, __n); 1414: return __x; 1414: } 1414: 1414: template _Sent> 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr _It 1414: operator()(_It __x, _Sent __bound) const 1414: { 1414: ranges::advance(__x, __bound); 1414: return __x; 1414: } 1414: 1414: template _Sent> 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr _It 1414: operator()(_It __x, iter_difference_t<_It> __n, _Sent __bound) const 1414: { 1414: ranges::advance(__x, __n, __bound); 1414: return __x; 1414: } 1414: 1414: void operator&() const = delete; 1414: }; 1414: 1414: inline constexpr __next_fn next{}; 1414: 1414: struct __prev_fn final 1414: { 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr _It 1414: operator()(_It __x) const 1414: { 1414: --__x; 1414: return __x; 1414: } 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr _It 1414: operator()(_It __x, iter_difference_t<_It> __n) const 1414: { 1414: ranges::advance(__x, -__n); 1414: return __x; 1414: } 1414: 1414: template 1414: [[nodiscard, __gnu__::__always_inline__]] 1414: constexpr _It 1414: operator()(_It __x, iter_difference_t<_It> __n, _It __bound) const 1414: { 1414: ranges::advance(__x, -__n, __bound); 1414: return __x; 1414: } 1414: 1414: void operator&() const = delete; 1414: }; 1414: 1414: inline constexpr __prev_fn prev{}; 1414: 1414: 1414: struct dangling 1414: { 1414: constexpr dangling() noexcept = default; 1414: template 1414: constexpr dangling(_Args&&...) noexcept { } 1414: }; 1414: 1414: template 1414: using borrowed_iterator_t = __conditional_t, 1414: iterator_t<_Range>, 1414: dangling>; 1414: } 1414: # 1143 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_base.h" 3 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 50 "/usr/arm-linux-gnueabihf/include/c++/16/span" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: inline constexpr size_t dynamic_extent = static_cast(-1); 1414: 1414: template 1414: class span; 1414: 1414: namespace __detail 1414: { 1414: template 1414: inline constexpr bool __is_span = false; 1414: 1414: template 1414: inline constexpr bool __is_span> = true; 1414: 1414: template 1414: inline constexpr bool __is_std_array = false; 1414: 1414: template 1414: inline constexpr bool __is_std_array> = true; 1414: 1414: template 1414: class __extent_storage 1414: { 1414: public: 1414: 1414: constexpr 1414: __extent_storage([[maybe_unused]] size_t __n) noexcept 1414: { do { if (std::__is_constant_evaluated() && !bool(__n == _Extent)) std::__glibcxx_assert_fail(); } while (false); } 1414: 1414: 1414: consteval 1414: __extent_storage(integral_constant) noexcept 1414: { } 1414: 1414: 1414: template 1414: __extent_storage(integral_constant) = delete; 1414: 1414: [[__gnu__::__always_inline__]] 1414: static constexpr size_t 1414: _M_extent() noexcept 1414: { return _Extent; } 1414: }; 1414: 1414: template<> 1414: class __extent_storage 1414: { 1414: public: 1414: [[__gnu__::__always_inline__]] 1414: constexpr 1414: __extent_storage(size_t __extent) noexcept 1414: : _M_extent_value(__extent) 1414: { } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr size_t 1414: _M_extent() const noexcept 1414: { return this->_M_extent_value; } 1414: 1414: private: 1414: size_t _M_extent_value; 1414: }; 1414: 1414: template struct __span_ptr { _Type* const _M_ptr; }; 1414: 1414: } 1414: 1414: template 1414: class span 1414: { 1414: template 1414: static constexpr size_t 1414: _S_subspan_extent() 1414: { 1414: if constexpr (_Count != dynamic_extent) 1414: return _Count; 1414: else if constexpr (extent != dynamic_extent) 1414: return _Extent - _Offset; 1414: else 1414: return dynamic_extent; 1414: } 1414: 1414: 1414: 1414: template 1414: requires (_Extent == dynamic_extent || _ArrayExtent == _Extent) 1414: using __is_compatible_array = __is_array_convertible<_Type, _Tp>; 1414: 1414: template 1414: using __is_compatible_ref 1414: = __is_array_convertible<_Type, remove_reference_t<_Ref>>; 1414: 1414: 1414: struct __iter_tag; 1414: 1414: template 1414: static inline constexpr integral_constant __v{}; 1414: 1414: public: 1414: 1414: using element_type = _Type; 1414: using value_type = remove_cv_t<_Type>; 1414: using size_type = size_t; 1414: using difference_type = ptrdiff_t; 1414: using pointer = _Type*; 1414: using const_pointer = const _Type*; 1414: using reference = element_type&; 1414: using const_reference = const element_type&; 1414: using iterator = __gnu_cxx::__normal_iterator; 1414: using reverse_iterator = std::reverse_iterator; 1414: 1414: 1414: 1414: 1414: 1414: 1414: static constexpr size_t extent = _Extent; 1414: 1414: 1414: 1414: constexpr 1414: span() noexcept 1414: requires (_Extent == dynamic_extent || _Extent == 0) 1414: : _M_ptr(nullptr), _M_extent(__v<0>) 1414: { } 1414: 1414: template 1414: requires __is_compatible_ref>::value 1414: constexpr explicit(extent != dynamic_extent) 1414: span(_It __first, size_type __count) 1414: noexcept 1414: : _M_ptr(std::to_address(__first)), _M_extent(__count) 1414: { ; } 1414: 1414: template _End> 1414: requires __is_compatible_ref>::value 1414: && (!is_convertible_v<_End, size_type>) 1414: constexpr explicit(extent != dynamic_extent) 1414: span(_It __first, _End __last) 1414: noexcept(noexcept(__last - __first)) 1414: : _M_ptr(std::to_address(__first)), 1414: _M_extent(static_cast(__last - __first)) 1414: { ; } 1414: 1414: template 1414: requires (_Extent == dynamic_extent || _ArrayExtent == _Extent) 1414: constexpr 1414: span(type_identity_t (&__arr)[_ArrayExtent]) noexcept 1414: : _M_ptr(__arr), _M_extent(__v<_ArrayExtent>) 1414: { } 1414: 1414: template 1414: requires __is_compatible_array<_Tp, _ArrayExtent>::value 1414: constexpr 1414: span(array<_Tp, _ArrayExtent>& __arr) noexcept 1414: : _M_ptr(__arr.data()), _M_extent(__v<_ArrayExtent>) 1414: { } 1414: 1414: template 1414: requires __is_compatible_array::value 1414: constexpr 1414: span(const array<_Tp, _ArrayExtent>& __arr) noexcept 1414: : _M_ptr(__arr.data()), _M_extent(__v<_ArrayExtent>) 1414: { } 1414: 1414: template 1414: requires (!__detail::__is_span>) 1414: && (!__detail::__is_std_array>) 1414: && (!is_array_v>) 1414: && ranges::contiguous_range<_Range> && ranges::sized_range<_Range> 1414: && (ranges::borrowed_range<_Range> || is_const_v) 1414: && __is_compatible_ref>::value 1414: constexpr explicit(extent != dynamic_extent) 1414: span(_Range&& __range) 1414: noexcept(noexcept(ranges::data(__range)) 1414: && noexcept(ranges::size(__range))) 1414: : _M_ptr(ranges::data(__range)), _M_extent(ranges::size(__range)) 1414: { } 1414: 1414: constexpr 1414: span(const span&) noexcept = default; 1414: 1414: template 1414: requires (_Extent == dynamic_extent || _OExtent == dynamic_extent 1414: || _Extent == _OExtent) 1414: && (__is_array_convertible<_Type, _OType>::value) 1414: constexpr 1414: explicit(extent != dynamic_extent && _OExtent == dynamic_extent) 1414: span(const span<_OType, _OExtent>& __s) noexcept 1414: : _M_ptr(__s.data()), _M_extent(__s.size()) 1414: { } 1414: 1414: constexpr span& 1414: operator=(const span&) noexcept = default; 1414: 1414: 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: size() const noexcept 1414: { return this->_M_extent._M_extent(); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: size_bytes() const noexcept 1414: { return this->_M_extent._M_extent() * sizeof(element_type); } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: empty() const noexcept 1414: { return size() == 0; } 1414: 1414: 1414: 1414: [[nodiscard]] 1414: constexpr reference 1414: front() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *this->_M_ptr; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr reference 1414: back() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *(this->_M_ptr + (size() - 1)); 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr reference 1414: operator[](size_type __idx) const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__idx < size())) std::__glibcxx_assert_fail(); } while (false); 1414: return *(this->_M_ptr + __idx); 1414: } 1414: # 304 "/usr/arm-linux-gnueabihf/include/c++/16/span" 3 1414: [[nodiscard]] 1414: constexpr pointer 1414: data() const noexcept 1414: { return this->_M_ptr; } 1414: 1414: 1414: 1414: [[nodiscard]] 1414: constexpr iterator 1414: begin() const noexcept 1414: { return iterator(this->_M_ptr); } 1414: 1414: [[nodiscard]] 1414: constexpr iterator 1414: end() const noexcept 1414: { return iterator(this->_M_ptr + this->size()); } 1414: 1414: [[nodiscard]] 1414: constexpr reverse_iterator 1414: rbegin() const noexcept 1414: { return reverse_iterator(this->end()); } 1414: 1414: [[nodiscard]] 1414: constexpr reverse_iterator 1414: rend() const noexcept 1414: { return reverse_iterator(this->begin()); } 1414: # 355 "/usr/arm-linux-gnueabihf/include/c++/16/span" 3 1414: template 1414: [[nodiscard]] 1414: constexpr span 1414: first() const noexcept 1414: { 1414: if constexpr (_Extent == dynamic_extent) 1414: do { if (std::__is_constant_evaluated() && !bool(_Count <= size())) std::__glibcxx_assert_fail(); } while (false); 1414: else 1414: static_assert(_Count <= extent); 1414: using _Sp = span; 1414: return _Sp(_SizedPtr{this->data()}); 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr span 1414: first(size_type __count) const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__count <= size())) std::__glibcxx_assert_fail(); } while (false); 1414: return span(this->data(), __count); 1414: } 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr span 1414: last() const noexcept 1414: { 1414: if constexpr (_Extent == dynamic_extent) 1414: do { if (std::__is_constant_evaluated() && !bool(_Count <= size())) std::__glibcxx_assert_fail(); } while (false); 1414: else 1414: static_assert(_Count <= extent); 1414: using _Sp = span; 1414: return _Sp(_SizedPtr{this->data() + (this->size() - _Count)}); 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr span 1414: last(size_type __count) const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__count <= size())) std::__glibcxx_assert_fail(); } while (false); 1414: return span(this->data() + (this->size() - __count), 1414: __count); 1414: } 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr auto 1414: subspan() const noexcept 1414: -> span()> 1414: { 1414: if constexpr (_Extent == dynamic_extent) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_Offset <= size())) std::__glibcxx_assert_fail(); } while (false); 1414: } 1414: else 1414: static_assert(_Offset <= extent); 1414: 1414: using _Sp = span()>; 1414: 1414: if constexpr (_Count == dynamic_extent) 1414: return _Sp(this->data() + _Offset, this->size() - _Offset); 1414: else 1414: { 1414: if constexpr (_Extent == dynamic_extent) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_Count <= size())) std::__glibcxx_assert_fail(); } while (false); 1414: do { if (std::__is_constant_evaluated() && !bool(_Count <= (size() - _Offset))) std::__glibcxx_assert_fail(); } while (false); 1414: } 1414: else 1414: { 1414: static_assert(_Count <= extent); 1414: static_assert(_Count <= (extent - _Offset)); 1414: } 1414: return _Sp(_SizedPtr{this->data() + _Offset}); 1414: } 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr span 1414: subspan(size_type __offset, size_type __count = dynamic_extent) const 1414: noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__offset <= size())) std::__glibcxx_assert_fail(); } while (false); 1414: if (__count == dynamic_extent) 1414: __count = this->size() - __offset; 1414: else 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__count <= size())) std::__glibcxx_assert_fail(); } while (false); 1414: do { if (std::__is_constant_evaluated() && !bool(__offset + __count <= size())) std::__glibcxx_assert_fail(); } while (false); 1414: } 1414: return span(this->data() + __offset, __count); 1414: } 1414: 1414: private: 1414: template friend class span; 1414: 1414: 1414: using _SizedPtr = __detail::__span_ptr<_Type>; 1414: 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr explicit 1414: span(_SizedPtr __ptr) noexcept 1414: requires (extent != dynamic_extent) 1414: : _M_ptr(__ptr._M_ptr), _M_extent(__v) 1414: { } 1414: 1414: pointer _M_ptr; 1414: [[no_unique_address]] __detail::__extent_storage _M_extent; 1414: }; 1414: 1414: 1414: namespace __detail 1414: { 1414: 1414: 1414: template 1414: concept __integral_constant_like = 1414: is_integral_v> 1414: && !is_same_v> 1414: && convertible_to<_Tp, decltype(_Tp::value)> 1414: && equality_comparable_with<_Tp, decltype(_Tp::value)> 1414: && bool_constant<_Tp() == _Tp::value>::value 1414: && bool_constant(_Tp()) == _Tp::value> 1414: ::value; 1414: 1414: template 1414: constexpr size_t __maybe_static_ext = dynamic_extent; 1414: 1414: template<__integral_constant_like _Tp> 1414: constexpr size_t __maybe_static_ext<_Tp> = {_Tp::value}; 1414: } 1414: 1414: template 1414: span(_Type(&)[_ArrayExtent]) -> span<_Type, _ArrayExtent>; 1414: 1414: template 1414: span(array<_Type, _ArrayExtent>&) -> span<_Type, _ArrayExtent>; 1414: 1414: template 1414: span(const array<_Type, _ArrayExtent>&) 1414: -> span; 1414: 1414: template 1414: span(_Iter, _End) 1414: -> span>, 1414: __detail::__maybe_static_ext<_End>>; 1414: 1414: template 1414: span(_Range &&) 1414: -> span>>; 1414: 1414: 1414: 1414: template 1414: requires (!is_volatile_v<_Type>) 1414: [[nodiscard]] 1414: inline 1414: span 1414: as_bytes(span<_Type, _Extent> __sp) noexcept 1414: { 1414: auto data = reinterpret_cast(__sp.data()); 1414: auto size = __sp.size_bytes(); 1414: constexpr auto extent = _Extent == dynamic_extent 1414: ? dynamic_extent : _Extent * sizeof(_Type); 1414: return span{data, size}; 1414: } 1414: 1414: template 1414: requires (!is_const_v<_Type> && !is_volatile_v<_Type>) 1414: inline 1414: span 1414: as_writable_bytes [[nodiscard]] (span<_Type, _Extent> __sp) noexcept 1414: { 1414: auto data = reinterpret_cast(__sp.data()); 1414: auto size = __sp.size_bytes(); 1414: constexpr auto extent = _Extent == dynamic_extent 1414: ? dynamic_extent : _Extent * sizeof(_Type); 1414: return span{data, size}; 1414: } 1414: 1414: namespace ranges 1414: { 1414: 1414: template 1414: inline constexpr bool 1414: enable_borrowed_range> = true; 1414: 1414: 1414: template 1414: inline constexpr bool 1414: enable_view> = true; 1414: } 1414: 1414: } 1414: # 14 "build/include/public/botan/ipv6_address.h" 2 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/string" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/string" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/requires_hosted.h" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/string" 2 3 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stringfwd.h" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stringfwd.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memoryfwd.h" 1 3 1414: # 51 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memoryfwd.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 52 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memoryfwd.h" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 67 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memoryfwd.h" 3 1414: template 1414: class allocator; 1414: 1414: template<> 1414: class allocator; 1414: 1414: 1414: 1414: template 1414: struct uses_allocator; 1414: 1414: template 1414: struct allocator_traits; 1414: # 96 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memoryfwd.h" 3 1414: 1414: } 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stringfwd.h" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct char_traits; 1414: 1414: template<> struct char_traits; 1414: 1414: template<> struct char_traits; 1414: 1414: 1414: template<> struct char_traits; 1414: 1414: 1414: 1414: template<> struct char_traits; 1414: template<> struct char_traits; 1414: 1414: 1414: namespace __cxx11 { 1414: 1414: template, 1414: typename _Alloc = allocator<_CharT> > 1414: class basic_string; 1414: 1414: } 1414: 1414: 1414: typedef basic_string string; 1414: 1414: 1414: typedef basic_string wstring; 1414: 1414: 1414: 1414: typedef basic_string u8string; 1414: 1414: 1414: 1414: 1414: typedef basic_string u16string; 1414: 1414: 1414: typedef basic_string u32string; 1414: 1414: 1414: 1414: 1414: 1414: } 1414: # 45 "/usr/arm-linux-gnueabihf/include/c++/16/string" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/char_traits.h" 1 3 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/bits/char_traits.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/postypes.h" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/postypes.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/cwchar" 1 3 1414: # 49 "/usr/arm-linux-gnueabihf/include/c++/16/cwchar" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/wchar.h" 1 3 1414: # 27 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/libc-header-start.h" 1 3 1414: # 28 "/usr/arm-linux-gnueabihf/include/wchar.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/floatn.h" 1 3 1414: # 52 "/usr/arm-linux-gnueabihf/include/bits/floatn.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/floatn-common.h" 1 3 1414: # 24 "/usr/arm-linux-gnueabihf/include/bits/floatn-common.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/long-double.h" 1 3 1414: # 25 "/usr/arm-linux-gnueabihf/include/bits/floatn-common.h" 2 3 1414: # 53 "/usr/arm-linux-gnueabihf/include/bits/floatn.h" 2 3 1414: # 31 "/usr/arm-linux-gnueabihf/include/wchar.h" 2 3 1414: 1414: 1414: 1414: 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 1 3 1414: # 36 "/usr/arm-linux-gnueabihf/include/wchar.h" 2 3 1414: 1414: 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stdarg.h" 1 3 1414: # 40 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stdarg.h" 3 1414: typedef __builtin_va_list __gnuc_va_list; 1414: # 39 "/usr/arm-linux-gnueabihf/include/wchar.h" 2 3 1414: 1414: 1414: 1414: 1414: typedef __gnuc_va_list va_list; 1414: # 52 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/wint_t.h" 1 3 1414: # 20 "/usr/arm-linux-gnueabihf/include/bits/types/wint_t.h" 3 1414: typedef unsigned int wint_t; 1414: # 53 "/usr/arm-linux-gnueabihf/include/wchar.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/mbstate_t.h" 1 3 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/__mbstate_t.h" 1 3 1414: # 13 "/usr/arm-linux-gnueabihf/include/bits/types/__mbstate_t.h" 3 1414: typedef struct 1414: { 1414: int __count; 1414: union 1414: { 1414: unsigned int __wch; 1414: char __wchb[4]; 1414: } __value; 1414: } __mbstate_t; 1414: # 5 "/usr/arm-linux-gnueabihf/include/bits/types/mbstate_t.h" 2 3 1414: 1414: typedef __mbstate_t mbstate_t; 1414: # 54 "/usr/arm-linux-gnueabihf/include/wchar.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/__FILE.h" 1 3 1414: 1414: 1414: 1414: struct _IO_FILE; 1414: typedef struct _IO_FILE __FILE; 1414: # 55 "/usr/arm-linux-gnueabihf/include/wchar.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/FILE.h" 1 3 1414: 1414: 1414: 1414: struct _IO_FILE; 1414: 1414: 1414: typedef struct _IO_FILE FILE; 1414: # 58 "/usr/arm-linux-gnueabihf/include/wchar.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/locale_t.h" 1 3 1414: # 22 "/usr/arm-linux-gnueabihf/include/bits/types/locale_t.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/__locale_t.h" 1 3 1414: # 27 "/usr/arm-linux-gnueabihf/include/bits/types/__locale_t.h" 3 1414: struct __locale_struct 1414: { 1414: 1414: struct __locale_data *__locales[13]; 1414: 1414: 1414: const unsigned short int *__ctype_b; 1414: const int *__ctype_tolower; 1414: const int *__ctype_toupper; 1414: 1414: 1414: const char *__names[13]; 1414: }; 1414: 1414: typedef struct __locale_struct *__locale_t; 1414: # 23 "/usr/arm-linux-gnueabihf/include/bits/types/locale_t.h" 2 3 1414: 1414: typedef __locale_t locale_t; 1414: # 61 "/usr/arm-linux-gnueabihf/include/wchar.h" 2 3 1414: # 94 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern "C" { 1414: 1414: 1414: 1414: struct tm; 1414: 1414: 1414: 1414: extern wchar_t *wcscpy (wchar_t *__restrict __dest, 1414: const wchar_t *__restrict __src) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern wchar_t *wcsncpy (wchar_t *__restrict __dest, 1414: const wchar_t *__restrict __src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: extern size_t wcslcpy (wchar_t *__restrict __dest, 1414: const wchar_t *__restrict __src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 3))); 1414: 1414: 1414: 1414: extern size_t wcslcat (wchar_t *__restrict __dest, 1414: const wchar_t *__restrict __src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__read_write__, 1, 3))); 1414: 1414: 1414: 1414: extern wchar_t *wcscat (wchar_t *__restrict __dest, 1414: const wchar_t *__restrict __src) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: extern wchar_t *wcsncat (wchar_t *__restrict __dest, 1414: const wchar_t *__restrict __src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) noexcept (true); 1414: 1414: 1414: extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, 1414: size_t __n) noexcept (true); 1414: 1414: 1414: 1414: extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 1414: locale_t __loc) noexcept (true); 1414: 1414: extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 1414: size_t __n, locale_t __loc) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) noexcept (true); 1414: 1414: 1414: 1414: extern size_t wcsxfrm (wchar_t *__restrict __s1, 1414: const wchar_t *__restrict __s2, size_t __n) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, 1414: locale_t __loc) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, 1414: size_t __n, locale_t __loc) noexcept (true); 1414: 1414: 1414: extern wchar_t *wcsdup (const wchar_t *__s) noexcept (true) 1414: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1))); 1414: 1414: 1414: 1414: 1414: extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) 1414: noexcept (true) __asm ("wcschr") __attribute__ ((__pure__)); 1414: extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) 1414: noexcept (true) __asm ("wcschr") __attribute__ ((__pure__)); 1414: # 202 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) 1414: noexcept (true) __asm ("wcsrchr") __attribute__ ((__pure__)); 1414: extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) 1414: noexcept (true) __asm ("wcsrchr") __attribute__ ((__pure__)); 1414: # 218 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) 1414: noexcept (true) __attribute__ ((__pure__)); 1414: 1414: 1414: 1414: 1414: extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) 1414: noexcept (true) __attribute__ ((__pure__)); 1414: 1414: 1414: extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) 1414: noexcept (true) __attribute__ ((__pure__)); 1414: 1414: 1414: extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) 1414: noexcept (true) __asm ("wcspbrk") __attribute__ ((__pure__)); 1414: extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, 1414: const wchar_t *__accept) 1414: noexcept (true) __asm ("wcspbrk") __attribute__ ((__pure__)); 1414: # 247 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) 1414: noexcept (true) __asm ("wcsstr") __attribute__ ((__pure__)); 1414: extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, 1414: const wchar_t *__needle) 1414: noexcept (true) __asm ("wcsstr") __attribute__ ((__pure__)); 1414: # 263 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern wchar_t *wcstok (wchar_t *__restrict __s, 1414: const wchar_t *__restrict __delim, 1414: wchar_t **__restrict __ptr) noexcept (true); 1414: 1414: 1414: extern size_t wcslen (const wchar_t *__s) noexcept (true) __attribute__ ((__pure__)); 1414: 1414: 1414: 1414: 1414: extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) 1414: noexcept (true) __asm ("wcswcs") __attribute__ ((__pure__)); 1414: extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, 1414: const wchar_t *__needle) 1414: noexcept (true) __asm ("wcswcs") __attribute__ ((__pure__)); 1414: # 286 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) 1414: noexcept (true) __attribute__ ((__pure__)); 1414: 1414: 1414: 1414: 1414: 1414: extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) 1414: noexcept (true) __asm ("wmemchr") __attribute__ ((__pure__)); 1414: extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, 1414: size_t __n) 1414: noexcept (true) __asm ("wmemchr") __attribute__ ((__pure__)); 1414: # 308 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 1414: noexcept (true) __attribute__ ((__pure__)); 1414: 1414: 1414: extern wchar_t *wmemcpy (wchar_t *__restrict __s1, 1414: const wchar_t *__restrict __s2, size_t __n) noexcept (true); 1414: 1414: 1414: 1414: extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) 1414: noexcept (true); 1414: 1414: 1414: extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern wchar_t *wmempcpy (wchar_t *__restrict __s1, 1414: const wchar_t *__restrict __s2, size_t __n) 1414: noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: extern wint_t btowc (int __c) noexcept (true); 1414: 1414: 1414: 1414: extern int wctob (wint_t __c) noexcept (true); 1414: 1414: 1414: 1414: extern int mbsinit (const mbstate_t *__ps) noexcept (true) __attribute__ ((__pure__)); 1414: 1414: 1414: 1414: extern size_t mbrtowc (wchar_t *__restrict __pwc, 1414: const char *__restrict __s, size_t __n, 1414: mbstate_t *__restrict __p) noexcept (true); 1414: 1414: 1414: extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, 1414: mbstate_t *__restrict __ps) noexcept (true); 1414: 1414: 1414: extern size_t __mbrlen (const char *__restrict __s, size_t __n, 1414: mbstate_t *__restrict __ps) noexcept (true); 1414: extern size_t mbrlen (const char *__restrict __s, size_t __n, 1414: mbstate_t *__restrict __ps) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern wint_t __btowc_alias (int __c) __asm ("btowc"); 1414: extern __inline __attribute__ ((__gnu_inline__)) wint_t 1414: __attribute__ ((__leaf__)) btowc (int __c) noexcept (true) 1414: { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' 1414: ? (wint_t) __c : __btowc_alias (__c)); } 1414: 1414: extern int __wctob_alias (wint_t __c) __asm ("wctob"); 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: __attribute__ ((__leaf__)) wctob (wint_t __wc) noexcept (true) 1414: { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' 1414: ? (int) __wc : __wctob_alias (__wc)); } 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) size_t 1414: __attribute__ ((__leaf__)) mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) noexcept (true) 1414: 1414: { return (__ps != __null 1414: ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } 1414: 1414: 1414: 1414: 1414: extern size_t mbsrtowcs (wchar_t *__restrict __dst, 1414: const char **__restrict __src, size_t __len, 1414: mbstate_t *__restrict __ps) noexcept (true); 1414: 1414: 1414: 1414: extern size_t wcsrtombs (char *__restrict __dst, 1414: const wchar_t **__restrict __src, size_t __len, 1414: mbstate_t *__restrict __ps) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: extern size_t mbsnrtowcs (wchar_t *__restrict __dst, 1414: const char **__restrict __src, size_t __nmc, 1414: size_t __len, mbstate_t *__restrict __ps) noexcept (true); 1414: 1414: 1414: 1414: extern size_t wcsnrtombs (char *__restrict __dst, 1414: const wchar_t **__restrict __src, 1414: size_t __nwc, size_t __len, 1414: mbstate_t *__restrict __ps) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int wcwidth (wchar_t __c) noexcept (true); 1414: 1414: 1414: 1414: extern int wcswidth (const wchar_t *__s, size_t __n) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: extern double wcstod (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr) noexcept (true); 1414: 1414: 1414: 1414: extern float wcstof (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr) noexcept (true); 1414: extern long double wcstold (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr) noexcept (true); 1414: # 447 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern _Float32 wcstof32 (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr) noexcept (true); 1414: 1414: 1414: 1414: extern _Float64 wcstof64 (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr) noexcept (true); 1414: # 462 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern _Float32x wcstof32x (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr) noexcept (true); 1414: # 480 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern long int wcstol (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, int __base) noexcept (true); 1414: 1414: 1414: 1414: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, int __base) 1414: noexcept (true); 1414: 1414: 1414: 1414: 1414: __extension__ 1414: extern long long int wcstoll (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, int __base) 1414: noexcept (true); 1414: 1414: 1414: 1414: __extension__ 1414: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, 1414: int __base) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: __extension__ 1414: extern long long int wcstoq (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, int __base) 1414: noexcept (true); 1414: 1414: 1414: 1414: __extension__ 1414: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, 1414: int __base) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern long int wcstol (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_wcstol") 1414: 1414: ; 1414: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_wcstoul") 1414: 1414: 1414: ; 1414: __extension__ 1414: extern long long int wcstoll (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_wcstoll") 1414: 1414: 1414: ; 1414: __extension__ 1414: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_wcstoull") 1414: 1414: 1414: ; 1414: 1414: __extension__ 1414: extern long long int wcstoq (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_wcstoll") 1414: 1414: ; 1414: __extension__ 1414: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_wcstoull") 1414: 1414: 1414: ; 1414: # 586 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern long int wcstol_l (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, int __base, 1414: locale_t __loc) noexcept (true); 1414: 1414: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, 1414: int __base, locale_t __loc) noexcept (true); 1414: 1414: __extension__ 1414: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, 1414: int __base, locale_t __loc) noexcept (true); 1414: 1414: __extension__ 1414: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, 1414: int __base, locale_t __loc) 1414: noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: extern long int wcstol_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_wcstol_l") 1414: 1414: 1414: ; 1414: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_wcstoul_l") 1414: 1414: 1414: 1414: ; 1414: __extension__ 1414: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_wcstoll_l") 1414: 1414: 1414: 1414: ; 1414: __extension__ 1414: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_wcstoull_l") 1414: 1414: 1414: 1414: ; 1414: # 655 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern double wcstod_l (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, locale_t __loc) 1414: noexcept (true); 1414: 1414: extern float wcstof_l (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, locale_t __loc) 1414: noexcept (true); 1414: 1414: extern long double wcstold_l (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, 1414: locale_t __loc) noexcept (true); 1414: # 674 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, 1414: locale_t __loc) noexcept (true); 1414: 1414: 1414: 1414: extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, 1414: locale_t __loc) noexcept (true); 1414: # 692 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr, 1414: wchar_t **__restrict __endptr, 1414: locale_t __loc) noexcept (true); 1414: # 714 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern wchar_t *wcpcpy (wchar_t *__restrict __dest, 1414: const wchar_t *__restrict __src) noexcept (true); 1414: 1414: 1414: 1414: extern wchar_t *wcpncpy (wchar_t *__restrict __dest, 1414: const wchar_t *__restrict __src, size_t __n) 1414: noexcept (true); 1414: # 743 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) noexcept (true) 1414: __attribute__ ((__malloc__)) ; 1414: 1414: 1414: 1414: 1414: 1414: extern int fwide (__FILE *__fp, int __mode) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int fwprintf (__FILE *__restrict __stream, 1414: const wchar_t *__restrict __format, ...) 1414: ; 1414: 1414: 1414: 1414: 1414: extern int wprintf (const wchar_t *__restrict __format, ...) 1414: ; 1414: 1414: extern int swprintf (wchar_t *__restrict __s, size_t __n, 1414: const wchar_t *__restrict __format, ...) 1414: noexcept (true) ; 1414: 1414: 1414: 1414: 1414: 1414: extern int vfwprintf (__FILE *__restrict __s, 1414: const wchar_t *__restrict __format, 1414: __gnuc_va_list __arg) 1414: ; 1414: 1414: 1414: 1414: 1414: extern int vwprintf (const wchar_t *__restrict __format, 1414: __gnuc_va_list __arg) 1414: ; 1414: 1414: 1414: extern int vswprintf (wchar_t *__restrict __s, size_t __n, 1414: const wchar_t *__restrict __format, 1414: __gnuc_va_list __arg) 1414: noexcept (true) ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int fwscanf (__FILE *__restrict __stream, 1414: const wchar_t *__restrict __format, ...) 1414: ; 1414: 1414: 1414: 1414: 1414: extern int wscanf (const wchar_t *__restrict __format, ...) 1414: ; 1414: 1414: extern int swscanf (const wchar_t *__restrict __s, 1414: const wchar_t *__restrict __format, ...) 1414: noexcept (true) ; 1414: # 820 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern int fwscanf (__FILE *__restrict __stream, const wchar_t *__restrict __format, ...) __asm__ ("" "__isoc23_fwscanf") 1414: 1414: 1414: ; 1414: extern int wscanf (const wchar_t *__restrict __format, ...) __asm__ ("" "__isoc23_wscanf") 1414: 1414: ; 1414: extern int swscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, ...) noexcept (true) __asm__ ("" "__isoc23_swscanf") 1414: 1414: 1414: ; 1414: # 876 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern int vfwscanf (__FILE *__restrict __s, 1414: const wchar_t *__restrict __format, 1414: __gnuc_va_list __arg) 1414: ; 1414: 1414: 1414: 1414: 1414: extern int vwscanf (const wchar_t *__restrict __format, 1414: __gnuc_va_list __arg) 1414: ; 1414: 1414: extern int vswscanf (const wchar_t *__restrict __s, 1414: const wchar_t *__restrict __format, 1414: __gnuc_va_list __arg) 1414: noexcept (true) ; 1414: # 900 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern int vfwscanf (__FILE *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc23_vfwscanf") 1414: 1414: 1414: ; 1414: extern int vwscanf (const wchar_t *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc23_vwscanf") 1414: 1414: ; 1414: extern int vswscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) noexcept (true) __asm__ ("" "__isoc23_vswscanf") 1414: 1414: 1414: ; 1414: # 960 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern wint_t fgetwc (__FILE *__stream); 1414: extern wint_t getwc (__FILE *__stream); 1414: 1414: 1414: 1414: 1414: 1414: extern wint_t getwchar (void); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern wint_t fputwc (wchar_t __wc, __FILE *__stream); 1414: extern wint_t putwc (wchar_t __wc, __FILE *__stream); 1414: 1414: 1414: 1414: 1414: 1414: extern wint_t putwchar (wchar_t __wc); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, 1414: __FILE *__restrict __stream); 1414: 1414: 1414: 1414: 1414: 1414: extern int fputws (const wchar_t *__restrict __ws, 1414: __FILE *__restrict __stream); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern wint_t ungetwc (wint_t __wc, __FILE *__stream); 1414: # 1015 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern wint_t getwc_unlocked (__FILE *__stream); 1414: extern wint_t getwchar_unlocked (void); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern wint_t fgetwc_unlocked (__FILE *__stream); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); 1414: # 1041 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); 1414: extern wint_t putwchar_unlocked (wchar_t __wc); 1414: # 1051 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, 1414: __FILE *__restrict __stream); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int fputws_unlocked (const wchar_t *__restrict __ws, 1414: __FILE *__restrict __stream); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, 1414: const wchar_t *__restrict __format, 1414: const struct tm *__restrict __tp) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, 1414: const wchar_t *__restrict __format, 1414: const struct tm *__restrict __tp, 1414: locale_t __loc) noexcept (true); 1414: # 1098 "/usr/arm-linux-gnueabihf/include/wchar.h" 3 1414: } 1414: # 50 "/usr/arm-linux-gnueabihf/include/c++/16/cwchar" 2 3 1414: # 64 "/usr/arm-linux-gnueabihf/include/c++/16/cwchar" 3 1414: namespace std 1414: { 1414: using ::mbstate_t; 1414: } 1414: # 137 "/usr/arm-linux-gnueabihf/include/c++/16/cwchar" 3 1414: extern "C++" 1414: { 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: using ::wint_t; 1414: 1414: using ::btowc; 1414: using ::fgetwc; 1414: using ::fgetws; 1414: using ::fputwc; 1414: using ::fputws; 1414: using ::fwide; 1414: using ::fwprintf; 1414: using ::fwscanf; 1414: using ::getwc; 1414: using ::getwchar; 1414: using ::mbrlen; 1414: using ::mbrtowc; 1414: using ::mbsinit; 1414: using ::mbsrtowcs; 1414: using ::putwc; 1414: using ::putwchar; 1414: 1414: using ::swprintf; 1414: 1414: using ::swscanf; 1414: using ::ungetwc; 1414: using ::vfwprintf; 1414: 1414: using ::vfwscanf; 1414: 1414: 1414: using ::vswprintf; 1414: 1414: 1414: using ::vswscanf; 1414: 1414: using ::vwprintf; 1414: 1414: using ::vwscanf; 1414: 1414: using ::wcrtomb; 1414: using ::wcscat; 1414: using ::wcscmp; 1414: using ::wcscoll; 1414: using ::wcscpy; 1414: using ::wcscspn; 1414: using ::wcsftime; 1414: using ::wcslen; 1414: using ::wcsncat; 1414: using ::wcsncmp; 1414: using ::wcsncpy; 1414: using ::wcsrtombs; 1414: using ::wcsspn; 1414: using ::wcstod; 1414: 1414: using ::wcstof; 1414: 1414: using ::wcstok; 1414: using ::wcstol; 1414: using ::wcstoul; 1414: using ::wcsxfrm; 1414: using ::wctob; 1414: using ::wmemcmp; 1414: using ::wmemcpy; 1414: using ::wmemmove; 1414: using ::wmemset; 1414: using ::wprintf; 1414: using ::wscanf; 1414: using ::wcschr; 1414: using ::wcspbrk; 1414: using ::wcsrchr; 1414: using ::wcsstr; 1414: using ::wmemchr; 1414: # 236 "/usr/arm-linux-gnueabihf/include/c++/16/cwchar" 3 1414: 1414: } 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: namespace __gnu_cxx 1414: { 1414: 1414: 1414: 1414: 1414: 1414: using ::wcstold; 1414: # 262 "/usr/arm-linux-gnueabihf/include/c++/16/cwchar" 3 1414: using ::wcstoll; 1414: using ::wcstoull; 1414: 1414: } 1414: 1414: namespace std 1414: { 1414: using ::__gnu_cxx::wcstold; 1414: using ::__gnu_cxx::wcstoll; 1414: using ::__gnu_cxx::wcstoull; 1414: } 1414: # 282 "/usr/arm-linux-gnueabihf/include/c++/16/cwchar" 3 1414: namespace std 1414: { 1414: 1414: using std::wcstof; 1414: 1414: 1414: using std::vfwscanf; 1414: 1414: 1414: using std::vswscanf; 1414: 1414: 1414: using std::vwscanf; 1414: 1414: 1414: 1414: using std::wcstold; 1414: using std::wcstoll; 1414: using std::wcstoull; 1414: 1414: } 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/bits/postypes.h" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 55 "/usr/arm-linux-gnueabihf/include/c++/16/bits/postypes.h" 3 1414: 1414: # 55 "/usr/arm-linux-gnueabihf/include/c++/16/bits/postypes.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: # 66 "/usr/arm-linux-gnueabihf/include/c++/16/bits/postypes.h" 3 1414: typedef long long int streamoff; 1414: 1414: 1414: 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: typedef ptrdiff_t streamsize; 1414: # 86 "/usr/arm-linux-gnueabihf/include/c++/16/bits/postypes.h" 3 1414: template 1414: class fpos 1414: { 1414: private: 1414: streamoff _M_off; 1414: _StateT _M_state; 1414: 1414: public: 1414: 1414: 1414: 1414: 1414: fpos() 1414: : _M_off(0), _M_state() { } 1414: # 108 "/usr/arm-linux-gnueabihf/include/c++/16/bits/postypes.h" 3 1414: fpos(streamoff __off) 1414: : _M_off(__off), _M_state() { } 1414: 1414: 1414: fpos(const fpos&) = default; 1414: fpos& operator=(const fpos&) = default; 1414: ~fpos() = default; 1414: 1414: 1414: 1414: operator streamoff() const { return _M_off; } 1414: 1414: 1414: void 1414: state(_StateT __st) 1414: { _M_state = __st; } 1414: 1414: 1414: _StateT 1414: state() const 1414: { return _M_state; } 1414: 1414: 1414: 1414: 1414: 1414: fpos& 1414: operator+=(streamoff __off) 1414: { 1414: _M_off += __off; 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: fpos& 1414: operator-=(streamoff __off) 1414: { 1414: _M_off -= __off; 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: fpos 1414: operator+(streamoff __off) const 1414: { 1414: fpos __pos(*this); 1414: __pos += __off; 1414: return __pos; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: fpos 1414: operator-(streamoff __off) const 1414: { 1414: fpos __pos(*this); 1414: __pos -= __off; 1414: return __pos; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: streamoff 1414: operator-(const fpos& __other) const 1414: { return _M_off - __other._M_off; } 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline bool 1414: operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 1414: { return streamoff(__lhs) == streamoff(__rhs); } 1414: 1414: template 1414: inline bool 1414: operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 1414: { return streamoff(__lhs) != streamoff(__rhs); } 1414: 1414: 1414: 1414: 1414: 1414: typedef fpos streampos; 1414: 1414: typedef fpos wstreampos; 1414: 1414: 1414: 1414: typedef fpos u8streampos; 1414: 1414: 1414: 1414: 1414: typedef fpos u16streampos; 1414: 1414: typedef fpos u32streampos; 1414: 1414: 1414: 1414: } 1414: # 45 "/usr/arm-linux-gnueabihf/include/c++/16/bits/char_traits.h" 2 3 1414: # 66 "/usr/arm-linux-gnueabihf/include/c++/16/bits/char_traits.h" 3 1414: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: # 70 "/usr/arm-linux-gnueabihf/include/c++/16/bits/char_traits.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wstringop-overflow" 1414: #pragma GCC diagnostic ignored "-Wstringop-overread" 1414: #pragma GCC diagnostic ignored "-Warray-bounds" 1414: # 85 "/usr/arm-linux-gnueabihf/include/c++/16/bits/char_traits.h" 3 1414: template 1414: struct _Char_types 1414: { 1414: typedef unsigned long int_type; 1414: 1414: typedef std::streampos pos_type; 1414: typedef std::streamoff off_type; 1414: typedef std::mbstate_t state_type; 1414: 1414: }; 1414: # 112 "/usr/arm-linux-gnueabihf/include/c++/16/bits/char_traits.h" 3 1414: template 1414: struct char_traits 1414: { 1414: typedef _CharT char_type; 1414: typedef typename _Char_types<_CharT>::int_type int_type; 1414: 1414: typedef typename _Char_types<_CharT>::pos_type pos_type; 1414: typedef typename _Char_types<_CharT>::off_type off_type; 1414: typedef typename _Char_types<_CharT>::state_type state_type; 1414: 1414: 1414: using comparison_category = std::strong_ordering; 1414: 1414: 1414: static constexpr void 1414: assign(char_type& __c1, const char_type& __c2) 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: std::construct_at(__builtin_addressof(__c1), __c2); 1414: else 1414: 1414: __c1 = __c2; 1414: } 1414: 1414: static constexpr bool 1414: eq(const char_type& __c1, const char_type& __c2) 1414: { return __c1 == __c2; } 1414: 1414: static constexpr bool 1414: lt(const char_type& __c1, const char_type& __c2) 1414: { return __c1 < __c2; } 1414: 1414: static constexpr int 1414: compare(const char_type* __s1, const char_type* __s2, std::size_t __n); 1414: 1414: static constexpr std::size_t 1414: length(const char_type* __s); 1414: 1414: static constexpr const char_type* 1414: find(const char_type* __s, std::size_t __n, const char_type& __a); 1414: 1414: static constexpr char_type* 1414: move(char_type* __s1, const char_type* __s2, std::size_t __n); 1414: 1414: static constexpr char_type* 1414: copy(char_type* __s1, const char_type* __s2, std::size_t __n); 1414: 1414: static constexpr char_type* 1414: assign(char_type* __s, std::size_t __n, char_type __a); 1414: 1414: static constexpr char_type 1414: to_char_type(const int_type& __c) 1414: { return static_cast(__c); } 1414: 1414: static constexpr int_type 1414: to_int_type(const char_type& __c) 1414: { return static_cast(__c); } 1414: 1414: static constexpr bool 1414: eq_int_type(const int_type& __c1, const int_type& __c2) 1414: { return __c1 == __c2; } 1414: 1414: 1414: static constexpr int_type 1414: eof() 1414: { return static_cast(-1); } 1414: 1414: static constexpr int_type 1414: not_eof(const int_type& __c) 1414: { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } 1414: 1414: }; 1414: 1414: template 1414: constexpr int 1414: char_traits<_CharT>:: 1414: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) 1414: { 1414: for (std::size_t __i = 0; __i < __n; ++__i) 1414: if (lt(__s1[__i], __s2[__i])) 1414: return -1; 1414: else if (lt(__s2[__i], __s1[__i])) 1414: return 1; 1414: return 0; 1414: } 1414: 1414: template 1414: constexpr std::size_t 1414: char_traits<_CharT>:: 1414: length(const char_type* __p) 1414: { 1414: std::size_t __i = 0; 1414: while (!eq(__p[__i], char_type())) 1414: ++__i; 1414: return __i; 1414: } 1414: 1414: template 1414: constexpr const typename char_traits<_CharT>::char_type* 1414: char_traits<_CharT>:: 1414: find(const char_type* __s, std::size_t __n, const char_type& __a) 1414: { 1414: for (std::size_t __i = 0; __i < __n; ++__i) 1414: if (eq(__s[__i], __a)) 1414: return __s + __i; 1414: return 0; 1414: } 1414: 1414: template 1414: constexpr 1414: typename char_traits<_CharT>::char_type* 1414: char_traits<_CharT>:: 1414: move(char_type* __s1, const char_type* __s2, std::size_t __n) 1414: { 1414: if (__n == 0) 1414: return __s1; 1414: 1414: if (std::__is_constant_evaluated()) 1414: { 1414: 1414: if (__builtin_constant_p(__s2 < __s1) 1414: && __s1 > __s2 && __s1 < (__s2 + __n)) 1414: { 1414: do 1414: { 1414: --__n; 1414: assign(__s1[__n], __s2[__n]); 1414: } 1414: while (__n > 0); 1414: } 1414: else 1414: copy(__s1, __s2, __n); 1414: return __s1; 1414: } 1414: 1414: __builtin_memmove(__s1, __s2, __n * sizeof(char_type)); 1414: return __s1; 1414: } 1414: 1414: template 1414: constexpr 1414: typename char_traits<_CharT>::char_type* 1414: char_traits<_CharT>:: 1414: copy(char_type* __s1, const char_type* __s2, std::size_t __n) 1414: { 1414: if (__n == 0) 1414: return __s1; 1414: 1414: if (std::__is_constant_evaluated()) 1414: { 1414: for (std::size_t __i = 0; __i < __n; ++__i) 1414: std::construct_at(__s1 + __i, __s2[__i]); 1414: return __s1; 1414: } 1414: 1414: __builtin_memcpy(__s1, __s2, __n * sizeof(char_type)); 1414: return __s1; 1414: } 1414: 1414: template 1414: constexpr 1414: typename char_traits<_CharT>::char_type* 1414: char_traits<_CharT>:: 1414: assign(char_type* __s, std::size_t __n, char_type __a) 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: { 1414: for (std::size_t __i = 0; __i < __n; ++__i) 1414: std::construct_at(__s + __i, __a); 1414: return __s; 1414: } 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: if constexpr (sizeof(_CharT) == 1 && __is_trivial(_CharT)) 1414: { 1414: if (__n) 1414: { 1414: unsigned char __c; 1414: __builtin_memcpy(&__c, __builtin_addressof(__a), 1); 1414: __builtin_memset(__s, __c, __n); 1414: } 1414: } 1414: else 1414: { 1414: for (std::size_t __i = 0; __i < __n; ++__i) 1414: __s[__i] = __a; 1414: } 1414: #pragma GCC diagnostic pop 1414: return __s; 1414: } 1414: 1414: 1414: } 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 327 "/usr/arm-linux-gnueabihf/include/c++/16/bits/char_traits.h" 3 1414: template 1414: struct char_traits : public __gnu_cxx::char_traits<_CharT> 1414: { }; 1414: 1414: 1414: 1414: template<> 1414: struct char_traits 1414: { 1414: typedef char char_type; 1414: typedef int int_type; 1414: 1414: typedef streampos pos_type; 1414: typedef streamoff off_type; 1414: typedef mbstate_t state_type; 1414: 1414: 1414: using comparison_category = strong_ordering; 1414: 1414: 1414: static constexpr void 1414: assign(char_type& __c1, const char_type& __c2) noexcept 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: std::construct_at(__builtin_addressof(__c1), __c2); 1414: else 1414: 1414: __c1 = __c2; 1414: } 1414: 1414: static constexpr bool 1414: eq(const char_type& __c1, const char_type& __c2) noexcept 1414: { return __c1 == __c2; } 1414: 1414: static constexpr bool 1414: lt(const char_type& __c1, const char_type& __c2) noexcept 1414: { 1414: 1414: return (static_cast(__c1) 1414: < static_cast(__c2)); 1414: } 1414: 1414: static constexpr int 1414: compare(const char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return 0; 1414: 1414: if (std::__is_constant_evaluated()) 1414: { 1414: for (size_t __i = 0; __i < __n; ++__i) 1414: if (lt(__s1[__i], __s2[__i])) 1414: return -1; 1414: else if (lt(__s2[__i], __s1[__i])) 1414: return 1; 1414: return 0; 1414: } 1414: 1414: return __builtin_memcmp(__s1, __s2, __n); 1414: } 1414: 1414: static constexpr size_t 1414: length(const char_type* __s) 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::length(__s); 1414: 1414: return __builtin_strlen(__s); 1414: } 1414: 1414: static constexpr const char_type* 1414: find(const char_type* __s, size_t __n, const char_type& __a) 1414: { 1414: if (__n == 0) 1414: return 0; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::find(__s, __n, __a); 1414: 1414: return static_cast(__builtin_memchr(__s, __a, __n)); 1414: } 1414: 1414: static constexpr char_type* 1414: move(char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return __s1; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::move(__s1, __s2, __n); 1414: 1414: return static_cast(__builtin_memmove(__s1, __s2, __n)); 1414: } 1414: 1414: static constexpr char_type* 1414: copy(char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return __s1; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::copy(__s1, __s2, __n); 1414: 1414: return static_cast(__builtin_memcpy(__s1, __s2, __n)); 1414: } 1414: 1414: static constexpr char_type* 1414: assign(char_type* __s, size_t __n, char_type __a) 1414: { 1414: if (__n == 0) 1414: return __s; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::assign(__s, __n, __a); 1414: 1414: return static_cast(__builtin_memset(__s, __a, __n)); 1414: } 1414: 1414: static constexpr char_type 1414: to_char_type(const int_type& __c) noexcept 1414: { return static_cast(__c); } 1414: 1414: 1414: 1414: static constexpr int_type 1414: to_int_type(const char_type& __c) noexcept 1414: { return static_cast(static_cast(__c)); } 1414: 1414: static constexpr bool 1414: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 1414: { return __c1 == __c2; } 1414: 1414: 1414: static constexpr int_type 1414: eof() noexcept 1414: { return static_cast(-1); } 1414: 1414: static constexpr int_type 1414: not_eof(const int_type& __c) noexcept 1414: { return (__c == eof()) ? 0 : __c; } 1414: 1414: }; 1414: 1414: 1414: 1414: 1414: template<> 1414: struct char_traits 1414: { 1414: typedef wchar_t char_type; 1414: typedef wint_t int_type; 1414: 1414: typedef streamoff off_type; 1414: typedef wstreampos pos_type; 1414: typedef mbstate_t state_type; 1414: 1414: 1414: using comparison_category = strong_ordering; 1414: 1414: 1414: static constexpr void 1414: assign(char_type& __c1, const char_type& __c2) noexcept 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: std::construct_at(__builtin_addressof(__c1), __c2); 1414: else 1414: 1414: __c1 = __c2; 1414: } 1414: 1414: static constexpr bool 1414: eq(const char_type& __c1, const char_type& __c2) noexcept 1414: { return __c1 == __c2; } 1414: 1414: static constexpr bool 1414: lt(const char_type& __c1, const char_type& __c2) noexcept 1414: { return __c1 < __c2; } 1414: 1414: static constexpr int 1414: compare(const char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return 0; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::compare(__s1, __s2, __n); 1414: 1414: return wmemcmp(__s1, __s2, __n); 1414: } 1414: 1414: static constexpr size_t 1414: length(const char_type* __s) 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::length(__s); 1414: 1414: return wcslen(__s); 1414: } 1414: 1414: static constexpr const char_type* 1414: find(const char_type* __s, size_t __n, const char_type& __a) 1414: { 1414: if (__n == 0) 1414: return 0; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::find(__s, __n, __a); 1414: 1414: return wmemchr(__s, __a, __n); 1414: } 1414: 1414: static constexpr char_type* 1414: move(char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return __s1; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::move(__s1, __s2, __n); 1414: 1414: return wmemmove(__s1, __s2, __n); 1414: } 1414: 1414: static constexpr char_type* 1414: copy(char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return __s1; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::copy(__s1, __s2, __n); 1414: 1414: return wmemcpy(__s1, __s2, __n); 1414: } 1414: 1414: static constexpr char_type* 1414: assign(char_type* __s, size_t __n, char_type __a) 1414: { 1414: if (__n == 0) 1414: return __s; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::assign(__s, __n, __a); 1414: 1414: return wmemset(__s, __a, __n); 1414: } 1414: 1414: static constexpr char_type 1414: to_char_type(const int_type& __c) noexcept 1414: { return char_type(__c); } 1414: 1414: static constexpr int_type 1414: to_int_type(const char_type& __c) noexcept 1414: { return int_type(__c); } 1414: 1414: static constexpr bool 1414: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 1414: { return __c1 == __c2; } 1414: 1414: 1414: static constexpr int_type 1414: eof() noexcept 1414: { return static_cast((0xffffffffu)); } 1414: 1414: static constexpr int_type 1414: not_eof(const int_type& __c) noexcept 1414: { return eq_int_type(__c, eof()) ? 0 : __c; } 1414: 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template<> 1414: struct char_traits 1414: { 1414: typedef char8_t char_type; 1414: typedef unsigned int int_type; 1414: 1414: typedef u8streampos pos_type; 1414: typedef streamoff off_type; 1414: typedef mbstate_t state_type; 1414: 1414: 1414: using comparison_category = strong_ordering; 1414: 1414: 1414: static constexpr void 1414: assign(char_type& __c1, const char_type& __c2) noexcept 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: std::construct_at(__builtin_addressof(__c1), __c2); 1414: else 1414: 1414: __c1 = __c2; 1414: } 1414: 1414: static constexpr bool 1414: eq(const char_type& __c1, const char_type& __c2) noexcept 1414: { return __c1 == __c2; } 1414: 1414: static constexpr bool 1414: lt(const char_type& __c1, const char_type& __c2) noexcept 1414: { return __c1 < __c2; } 1414: 1414: static constexpr int 1414: compare(const char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return 0; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::compare(__s1, __s2, __n); 1414: 1414: return __builtin_memcmp(__s1, __s2, __n); 1414: } 1414: 1414: static constexpr size_t 1414: length(const char_type* __s) 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::length(__s); 1414: 1414: return __builtin_strlen((const char*)__s); 1414: } 1414: 1414: static constexpr const char_type* 1414: find(const char_type* __s, size_t __n, const char_type& __a) 1414: { 1414: if (__n == 0) 1414: return 0; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::find(__s, __n, __a); 1414: 1414: return static_cast(__builtin_memchr(__s, __a, __n)); 1414: } 1414: 1414: static constexpr char_type* 1414: move(char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return __s1; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::move(__s1, __s2, __n); 1414: 1414: return static_cast(__builtin_memmove(__s1, __s2, __n)); 1414: } 1414: 1414: static constexpr char_type* 1414: copy(char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return __s1; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::copy(__s1, __s2, __n); 1414: 1414: return static_cast(__builtin_memcpy(__s1, __s2, __n)); 1414: } 1414: 1414: static constexpr char_type* 1414: assign(char_type* __s, size_t __n, char_type __a) 1414: { 1414: if (__n == 0) 1414: return __s; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::assign(__s, __n, __a); 1414: 1414: return static_cast(__builtin_memset(__s, __a, __n)); 1414: } 1414: 1414: static constexpr char_type 1414: to_char_type(const int_type& __c) noexcept 1414: { return char_type(__c); } 1414: 1414: static constexpr int_type 1414: to_int_type(const char_type& __c) noexcept 1414: { return int_type(__c); } 1414: 1414: static constexpr bool 1414: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 1414: { return __c1 == __c2; } 1414: 1414: 1414: static constexpr int_type 1414: eof() noexcept 1414: { return static_cast(-1); } 1414: 1414: static constexpr int_type 1414: not_eof(const int_type& __c) noexcept 1414: { return eq_int_type(__c, eof()) ? 0 : __c; } 1414: 1414: }; 1414: 1414: 1414: 1414: } 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template<> 1414: struct char_traits 1414: { 1414: typedef char16_t char_type; 1414: 1414: typedef short unsigned int int_type; 1414: 1414: 1414: 1414: 1414: typedef streamoff off_type; 1414: typedef u16streampos pos_type; 1414: typedef mbstate_t state_type; 1414: 1414: 1414: using comparison_category = strong_ordering; 1414: 1414: 1414: static constexpr void 1414: assign(char_type& __c1, const char_type& __c2) noexcept 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: std::construct_at(__builtin_addressof(__c1), __c2); 1414: else 1414: 1414: __c1 = __c2; 1414: } 1414: 1414: static constexpr bool 1414: eq(const char_type& __c1, const char_type& __c2) noexcept 1414: { return __c1 == __c2; } 1414: 1414: static constexpr bool 1414: lt(const char_type& __c1, const char_type& __c2) noexcept 1414: { return __c1 < __c2; } 1414: 1414: static constexpr int 1414: compare(const char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: for (size_t __i = 0; __i < __n; ++__i) 1414: if (lt(__s1[__i], __s2[__i])) 1414: return -1; 1414: else if (lt(__s2[__i], __s1[__i])) 1414: return 1; 1414: return 0; 1414: } 1414: 1414: static constexpr size_t 1414: length(const char_type* __s) 1414: { 1414: size_t __i = 0; 1414: while (!eq(__s[__i], char_type())) 1414: ++__i; 1414: return __i; 1414: } 1414: 1414: static constexpr const char_type* 1414: find(const char_type* __s, size_t __n, const char_type& __a) 1414: { 1414: for (size_t __i = 0; __i < __n; ++__i) 1414: if (eq(__s[__i], __a)) 1414: return __s + __i; 1414: return 0; 1414: } 1414: 1414: static constexpr char_type* 1414: move(char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return __s1; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::move(__s1, __s2, __n); 1414: 1414: return (static_cast 1414: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 1414: } 1414: 1414: static constexpr char_type* 1414: copy(char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return __s1; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::copy(__s1, __s2, __n); 1414: 1414: return (static_cast 1414: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 1414: } 1414: 1414: static constexpr char_type* 1414: assign(char_type* __s, size_t __n, char_type __a) 1414: { 1414: for (size_t __i = 0; __i < __n; ++__i) 1414: assign(__s[__i], __a); 1414: return __s; 1414: } 1414: 1414: static constexpr char_type 1414: to_char_type(const int_type& __c) noexcept 1414: { return char_type(__c); } 1414: 1414: static constexpr bool 1414: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 1414: { return __c1 == __c2; } 1414: 1414: 1414: static constexpr int_type 1414: to_int_type(const char_type& __c) noexcept 1414: { return __c == eof() ? int_type(0xfffd) : int_type(__c); } 1414: 1414: static constexpr int_type 1414: eof() noexcept 1414: { return static_cast(-1); } 1414: 1414: static constexpr int_type 1414: not_eof(const int_type& __c) noexcept 1414: { return eq_int_type(__c, eof()) ? 0 : __c; } 1414: 1414: 1414: 1414: 1414: 1414: }; 1414: 1414: template<> 1414: struct char_traits 1414: { 1414: typedef char32_t char_type; 1414: 1414: typedef unsigned int int_type; 1414: 1414: 1414: 1414: 1414: typedef streamoff off_type; 1414: typedef u32streampos pos_type; 1414: typedef mbstate_t state_type; 1414: 1414: 1414: using comparison_category = strong_ordering; 1414: 1414: 1414: static constexpr void 1414: assign(char_type& __c1, const char_type& __c2) noexcept 1414: { 1414: 1414: if (std::__is_constant_evaluated()) 1414: std::construct_at(__builtin_addressof(__c1), __c2); 1414: else 1414: 1414: __c1 = __c2; 1414: } 1414: 1414: static constexpr bool 1414: eq(const char_type& __c1, const char_type& __c2) noexcept 1414: { return __c1 == __c2; } 1414: 1414: static constexpr bool 1414: lt(const char_type& __c1, const char_type& __c2) noexcept 1414: { return __c1 < __c2; } 1414: 1414: static constexpr int 1414: compare(const char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: for (size_t __i = 0; __i < __n; ++__i) 1414: if (lt(__s1[__i], __s2[__i])) 1414: return -1; 1414: else if (lt(__s2[__i], __s1[__i])) 1414: return 1; 1414: return 0; 1414: } 1414: 1414: static constexpr size_t 1414: length(const char_type* __s) 1414: { 1414: size_t __i = 0; 1414: while (!eq(__s[__i], char_type())) 1414: ++__i; 1414: return __i; 1414: } 1414: 1414: static constexpr const char_type* 1414: find(const char_type* __s, size_t __n, const char_type& __a) 1414: { 1414: for (size_t __i = 0; __i < __n; ++__i) 1414: if (eq(__s[__i], __a)) 1414: return __s + __i; 1414: return 0; 1414: } 1414: 1414: static constexpr char_type* 1414: move(char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return __s1; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::move(__s1, __s2, __n); 1414: 1414: return (static_cast 1414: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 1414: } 1414: 1414: static constexpr char_type* 1414: copy(char_type* __s1, const char_type* __s2, size_t __n) 1414: { 1414: if (__n == 0) 1414: return __s1; 1414: 1414: if (std::__is_constant_evaluated()) 1414: return __gnu_cxx::char_traits::copy(__s1, __s2, __n); 1414: 1414: return (static_cast 1414: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 1414: } 1414: 1414: static constexpr char_type* 1414: assign(char_type* __s, size_t __n, char_type __a) 1414: { 1414: for (size_t __i = 0; __i < __n; ++__i) 1414: assign(__s[__i], __a); 1414: return __s; 1414: } 1414: 1414: static constexpr char_type 1414: to_char_type(const int_type& __c) noexcept 1414: { return char_type(__c); } 1414: 1414: static constexpr int_type 1414: to_int_type(const char_type& __c) noexcept 1414: { return int_type(__c); } 1414: 1414: static constexpr bool 1414: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 1414: { return __c1 == __c2; } 1414: 1414: 1414: static constexpr int_type 1414: eof() noexcept 1414: { return static_cast(-1); } 1414: 1414: static constexpr int_type 1414: not_eof(const int_type& __c) noexcept 1414: { return eq_int_type(__c, eof()) ? 0 : __c; } 1414: 1414: }; 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: constexpr auto 1414: __char_traits_cmp_cat(int __cmp) noexcept 1414: { 1414: if constexpr (requires { typename _ChTraits::comparison_category; }) 1414: { 1414: using _Cat = typename _ChTraits::comparison_category; 1414: static_assert( !is_void_v> ); 1414: return static_cast<_Cat>(__cmp <=> 0); 1414: } 1414: else 1414: return static_cast(__cmp <=> 0); 1414: } 1414: } 1414: 1414: 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: } 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/string" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/allocator.h" 1 3 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/bits/allocator.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++allocator.h" 1 3 1414: # 33 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++allocator.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_allocator.h" 1 3 1414: # 35 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_allocator.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_throw.h" 1 3 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_throw.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 65 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_throw.h" 3 1414: void 1414: __throw_bad_alloc(void) __attribute__((__noreturn__)); 1414: 1414: void 1414: __throw_bad_array_new_length(void) __attribute__((__noreturn__)); 1414: 1414: 1414: 1414: 1414: } 1414: # 36 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_allocator.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 62 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_allocator.h" 3 1414: template 1414: class __new_allocator 1414: { 1414: public: 1414: typedef _Tp value_type; 1414: typedef std::size_t size_type; 1414: typedef std::ptrdiff_t difference_type; 1414: # 83 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_allocator.h" 3 1414: typedef std::true_type propagate_on_container_move_assignment; 1414: 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: __new_allocator() noexcept { } 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: __new_allocator(const __new_allocator&) noexcept { } 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: __new_allocator(const __new_allocator<_Tp1>&) noexcept { } 1414: 1414: 1414: __new_allocator& operator=(const __new_allocator&) = default; 1414: # 123 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_allocator.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr _Tp* 1414: allocate(size_type __n, const void* = static_cast(0)) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: static_assert(requires { sizeof(_Tp); }, 1414: "cannot allocate incomplete types"); 1414: 1414: if constexpr (!requires { sizeof(_Tp); }) 1414: return nullptr; 1414: else 1414: 1414: 1414: if (__builtin_expect(__n > this->_M_max_size(), false)) 1414: { 1414: 1414: 1414: if (__n > (std::size_t(-1) / sizeof(_Tp))) 1414: std::__throw_bad_array_new_length(); 1414: std::__throw_bad_alloc(); 1414: } 1414: 1414: else if constexpr (alignof(_Tp) > 8) 1414: { 1414: std::align_val_t __al = std::align_val_t(alignof(_Tp)); 1414: return static_cast<_Tp*>(__builtin_operator_new(__n * sizeof(_Tp), 1414: __al)); 1414: } 1414: 1414: else 1414: return static_cast<_Tp*>(__builtin_operator_new(__n * sizeof(_Tp))); 1414: } 1414: 1414: 1414: constexpr void 1414: deallocate(_Tp* __p, size_type __n __attribute__ ((__unused__))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: if constexpr (alignof(_Tp) > 8) 1414: { 1414: __builtin_operator_delete((__p), (__n) * sizeof(_Tp), 1414: std::align_val_t(alignof(_Tp))); 1414: return; 1414: } 1414: 1414: __builtin_operator_delete((__p), (__n) * sizeof(_Tp)); 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 225 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_allocator.h" 3 1414: template 1414: friend __attribute__((__always_inline__)) constexpr bool 1414: operator==(const __new_allocator&, const __new_allocator<_Up>&) 1414: noexcept 1414: { return true; } 1414: # 239 "/usr/arm-linux-gnueabihf/include/c++/16/bits/new_allocator.h" 3 1414: private: 1414: __attribute__((__always_inline__)) 1414: constexpr size_type 1414: _M_max_size() const noexcept 1414: { 1414: 1414: return std::size_t(0x7fffffff) / sizeof(_Tp); 1414: 1414: 1414: 1414: } 1414: }; 1414: 1414: 1414: } 1414: # 34 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++allocator.h" 2 3 1414: 1414: 1414: namespace std 1414: { 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++allocator.h" 3 1414: template 1414: using __allocator_base = __new_allocator<_Tp>; 1414: } 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/bits/allocator.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 75 "/usr/arm-linux-gnueabihf/include/c++/16/bits/allocator.h" 3 1414: template<> 1414: class allocator 1414: { 1414: public: 1414: typedef void value_type; 1414: typedef size_t size_type; 1414: typedef ptrdiff_t difference_type; 1414: # 96 "/usr/arm-linux-gnueabihf/include/c++/16/bits/allocator.h" 3 1414: using propagate_on_container_move_assignment = true_type; 1414: 1414: 1414: using is_always_equal 1414: __attribute__ ((__deprecated__ ("use '" "std::allocator_traits::is_always_equal" "' instead"))) 1414: = true_type; 1414: 1414: 1414: 1414: 1414: 1414: allocator() = default; 1414: ~allocator() = default; 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: allocator(const allocator<_Up>&) noexcept { } 1414: 1414: 1414: 1414: 1414: 1414: 1414: }; 1414: # 132 "/usr/arm-linux-gnueabihf/include/c++/16/bits/allocator.h" 3 1414: template 1414: class allocator : public __allocator_base<_Tp> 1414: { 1414: public: 1414: typedef _Tp value_type; 1414: typedef size_t size_type; 1414: typedef ptrdiff_t difference_type; 1414: # 155 "/usr/arm-linux-gnueabihf/include/c++/16/bits/allocator.h" 3 1414: using propagate_on_container_move_assignment = true_type; 1414: 1414: 1414: using is_always_equal 1414: __attribute__ ((__deprecated__ ("use '" "std::allocator_traits::is_always_equal" "' instead"))) 1414: = true_type; 1414: 1414: 1414: 1414: 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: allocator() noexcept { } 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: allocator(const allocator& __a) noexcept 1414: : __allocator_base<_Tp>(__a) { } 1414: 1414: 1414: 1414: allocator& operator=(const allocator&) = default; 1414: 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: allocator(const allocator<_Tp1>&) noexcept { } 1414: 1414: __attribute__((__always_inline__)) 1414: 1414: constexpr 1414: 1414: ~allocator() noexcept { } 1414: 1414: 1414: [[nodiscard,__gnu__::__always_inline__]] 1414: constexpr _Tp* 1414: allocate(size_t __n) 1414: { 1414: 1414: if constexpr (requires { sizeof(_Tp); }) 1414: 1414: if (std::__is_constant_evaluated()) 1414: { 1414: if (__builtin_mul_overflow(__n, sizeof(_Tp), &__n)) 1414: std::__throw_bad_array_new_length(); 1414: return static_cast<_Tp*>(::operator new(__n)); 1414: } 1414: 1414: return __allocator_base<_Tp>::allocate(__n, 0); 1414: } 1414: 1414: [[__gnu__::__always_inline__]] 1414: constexpr void 1414: deallocate(_Tp* __p, size_t __n) 1414: { 1414: if (std::__is_constant_evaluated()) 1414: { 1414: ::operator delete(__p); 1414: return; 1414: } 1414: __allocator_base<_Tp>::deallocate(__p, __n); 1414: } 1414: # 228 "/usr/arm-linux-gnueabihf/include/c++/16/bits/allocator.h" 3 1414: friend __attribute__((__always_inline__)) constexpr 1414: bool 1414: operator==(const allocator&, const allocator&) noexcept 1414: { return true; } 1414: # 241 "/usr/arm-linux-gnueabihf/include/c++/16/bits/allocator.h" 3 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: __attribute__((__always_inline__)) 1414: inline constexpr bool 1414: operator==(const allocator<_T1>&, const allocator<_T2>&) 1414: noexcept 1414: { return true; } 1414: # 268 "/usr/arm-linux-gnueabihf/include/c++/16/bits/allocator.h" 3 1414: template 1414: class allocator 1414: { 1414: public: 1414: typedef _Tp value_type; 1414: allocator() { } 1414: template allocator(const allocator<_Up>&) { } 1414: }; 1414: 1414: template 1414: class allocator 1414: { 1414: public: 1414: typedef _Tp value_type; 1414: allocator() { } 1414: template allocator(const allocator<_Up>&) { } 1414: }; 1414: 1414: template 1414: class allocator 1414: { 1414: public: 1414: typedef _Tp value_type; 1414: allocator() { } 1414: template allocator(const allocator<_Up>&) { } 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern template class allocator; 1414: extern template class allocator; 1414: 1414: 1414: 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/string" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/localefwd.h" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/localefwd.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++locale.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++locale.h" 3 1414: 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++locale.h" 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/clocale" 1 3 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/clocale" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/locale.h" 1 3 1414: # 28 "/usr/arm-linux-gnueabihf/include/locale.h" 3 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 1 3 1414: # 29 "/usr/arm-linux-gnueabihf/include/locale.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/locale.h" 1 3 1414: # 30 "/usr/arm-linux-gnueabihf/include/locale.h" 2 3 1414: 1414: extern "C" { 1414: # 51 "/usr/arm-linux-gnueabihf/include/locale.h" 3 1414: struct lconv 1414: { 1414: 1414: 1414: char *decimal_point; 1414: char *thousands_sep; 1414: 1414: 1414: 1414: 1414: 1414: char *grouping; 1414: 1414: 1414: 1414: 1414: 1414: char *int_curr_symbol; 1414: char *currency_symbol; 1414: char *mon_decimal_point; 1414: char *mon_thousands_sep; 1414: char *mon_grouping; 1414: char *positive_sign; 1414: char *negative_sign; 1414: char int_frac_digits; 1414: char frac_digits; 1414: 1414: char p_cs_precedes; 1414: 1414: char p_sep_by_space; 1414: 1414: char n_cs_precedes; 1414: 1414: char n_sep_by_space; 1414: 1414: 1414: 1414: 1414: 1414: 1414: char p_sign_posn; 1414: char n_sign_posn; 1414: 1414: 1414: char int_p_cs_precedes; 1414: 1414: char int_p_sep_by_space; 1414: 1414: char int_n_cs_precedes; 1414: 1414: char int_n_sep_by_space; 1414: 1414: 1414: 1414: 1414: 1414: 1414: char int_p_sign_posn; 1414: char int_n_sign_posn; 1414: # 118 "/usr/arm-linux-gnueabihf/include/locale.h" 3 1414: }; 1414: 1414: 1414: 1414: extern char *setlocale (int __category, const char *__locale) noexcept (true); 1414: 1414: 1414: extern struct lconv *localeconv (void) noexcept (true); 1414: # 141 "/usr/arm-linux-gnueabihf/include/locale.h" 3 1414: extern locale_t newlocale (int __category_mask, const char *__locale, 1414: locale_t __base) noexcept (true); 1414: # 176 "/usr/arm-linux-gnueabihf/include/locale.h" 3 1414: extern locale_t duplocale (locale_t __dataset) noexcept (true); 1414: 1414: 1414: 1414: extern void freelocale (locale_t __dataset) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern locale_t uselocale (locale_t __dataset) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: } 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/clocale" 2 3 1414: 1414: 1414: 1414: 1414: 1414: namespace std 1414: { 1414: using ::lconv; 1414: using ::setlocale; 1414: using ::localeconv; 1414: } 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++locale.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: extern "C" __typeof(uselocale) __uselocale; 1414: 1414: 1414: } 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: typedef __locale_t __c_locale; 1414: # 73 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++locale.h" 3 1414: inline int 1414: __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), 1414: char* __out, 1414: const int __size __attribute__ ((__unused__)), 1414: const char* __fmt, ...) 1414: { 1414: 1414: __c_locale __old = __gnu_cxx::__uselocale(__cloc); 1414: # 93 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/c++locale.h" 3 1414: __builtin_va_list __args; 1414: __builtin_va_start(__args, __fmt); 1414: 1414: 1414: const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); 1414: 1414: 1414: 1414: 1414: __builtin_va_end(__args); 1414: 1414: 1414: __gnu_cxx::__uselocale(__old); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: return __ret; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: } 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/bits/localefwd.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/iosfwd" 1 3 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/iosfwd" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 78 "/usr/arm-linux-gnueabihf/include/c++/16/iosfwd" 3 1414: class ios_base; 1414: 1414: template > 1414: class basic_ios; 1414: 1414: template > 1414: class basic_streambuf; 1414: 1414: template > 1414: class basic_istream; 1414: 1414: template > 1414: class basic_ostream; 1414: 1414: template > 1414: class basic_iostream; 1414: 1414: 1414: namespace __cxx11 { 1414: 1414: template, 1414: typename _Alloc = allocator<_CharT> > 1414: class basic_stringbuf; 1414: 1414: template, 1414: typename _Alloc = allocator<_CharT> > 1414: class basic_istringstream; 1414: 1414: template, 1414: typename _Alloc = allocator<_CharT> > 1414: class basic_ostringstream; 1414: 1414: template, 1414: typename _Alloc = allocator<_CharT> > 1414: class basic_stringstream; 1414: 1414: } 1414: 1414: template > 1414: class basic_filebuf; 1414: 1414: template > 1414: class basic_ifstream; 1414: 1414: template > 1414: class basic_ofstream; 1414: 1414: template > 1414: class basic_fstream; 1414: 1414: template > 1414: class istreambuf_iterator; 1414: 1414: template > 1414: class ostreambuf_iterator; 1414: 1414: 1414: 1414: typedef basic_ios ios; 1414: 1414: 1414: typedef basic_streambuf streambuf; 1414: 1414: 1414: typedef basic_istream istream; 1414: 1414: 1414: typedef basic_ostream ostream; 1414: 1414: 1414: typedef basic_iostream iostream; 1414: 1414: 1414: typedef basic_stringbuf stringbuf; 1414: 1414: 1414: typedef basic_istringstream istringstream; 1414: 1414: 1414: typedef basic_ostringstream ostringstream; 1414: 1414: 1414: typedef basic_stringstream stringstream; 1414: 1414: 1414: typedef basic_filebuf filebuf; 1414: 1414: 1414: typedef basic_ifstream ifstream; 1414: 1414: 1414: typedef basic_ofstream ofstream; 1414: 1414: 1414: typedef basic_fstream fstream; 1414: 1414: 1414: 1414: typedef basic_ios wios; 1414: 1414: 1414: typedef basic_streambuf wstreambuf; 1414: 1414: 1414: typedef basic_istream wistream; 1414: 1414: 1414: typedef basic_ostream wostream; 1414: 1414: 1414: typedef basic_iostream wiostream; 1414: 1414: 1414: typedef basic_stringbuf wstringbuf; 1414: 1414: 1414: typedef basic_istringstream wistringstream; 1414: 1414: 1414: typedef basic_ostringstream wostringstream; 1414: 1414: 1414: typedef basic_stringstream wstringstream; 1414: 1414: 1414: typedef basic_filebuf wfilebuf; 1414: 1414: 1414: typedef basic_ifstream wifstream; 1414: 1414: 1414: typedef basic_ofstream wofstream; 1414: 1414: 1414: typedef basic_fstream wfstream; 1414: 1414: 1414: 1414: template, 1414: typename _Allocator = allocator<_CharT>> 1414: class basic_syncbuf; 1414: template, 1414: typename _Allocator = allocator<_CharT>> 1414: class basic_osyncstream; 1414: 1414: using syncbuf = basic_syncbuf; 1414: using osyncstream = basic_osyncstream; 1414: 1414: 1414: using wsyncbuf = basic_syncbuf; 1414: using wosyncstream = basic_osyncstream; 1414: # 257 "/usr/arm-linux-gnueabihf/include/c++/16/iosfwd" 3 1414: 1414: } 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/bits/localefwd.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/cctype" 1 3 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/cctype" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/ctype.h" 1 3 1414: # 28 "/usr/arm-linux-gnueabihf/include/ctype.h" 3 1414: extern "C" { 1414: # 39 "/usr/arm-linux-gnueabihf/include/ctype.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/endian.h" 1 3 1414: # 35 "/usr/arm-linux-gnueabihf/include/bits/endian.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/endianness.h" 1 3 1414: # 36 "/usr/arm-linux-gnueabihf/include/bits/endian.h" 2 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/ctype.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: enum 1414: { 1414: _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 1414: _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 1414: _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 1414: _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 1414: _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 1414: _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 1414: _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 1414: _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 1414: _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 1414: _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 1414: _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 1414: _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 1414: }; 1414: # 79 "/usr/arm-linux-gnueabihf/include/ctype.h" 3 1414: extern const unsigned short int **__ctype_b_loc (void) 1414: noexcept (true) __attribute__ ((__const__)); 1414: extern const __int32_t **__ctype_tolower_loc (void) 1414: noexcept (true) __attribute__ ((__const__)); 1414: extern const __int32_t **__ctype_toupper_loc (void) 1414: noexcept (true) __attribute__ ((__const__)); 1414: # 108 "/usr/arm-linux-gnueabihf/include/ctype.h" 3 1414: extern int isalnum (int) noexcept (true); 1414: extern int isalpha (int) noexcept (true); 1414: extern int iscntrl (int) noexcept (true); 1414: extern int isdigit (int) noexcept (true); 1414: extern int islower (int) noexcept (true); 1414: extern int isgraph (int) noexcept (true); 1414: extern int isprint (int) noexcept (true); 1414: extern int ispunct (int) noexcept (true); 1414: extern int isspace (int) noexcept (true); 1414: extern int isupper (int) noexcept (true); 1414: extern int isxdigit (int) noexcept (true); 1414: 1414: 1414: 1414: extern int tolower (int __c) noexcept (true); 1414: 1414: 1414: extern int toupper (int __c) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int isblank (int) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int isctype (int __c, int __mask) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int isascii (int __c) noexcept (true); 1414: 1414: 1414: 1414: extern int toascii (int __c) noexcept (true); 1414: 1414: 1414: 1414: extern int _toupper (int) noexcept (true); 1414: extern int _tolower (int) noexcept (true); 1414: # 251 "/usr/arm-linux-gnueabihf/include/ctype.h" 3 1414: extern int isalnum_l (int, locale_t) noexcept (true); 1414: extern int isalpha_l (int, locale_t) noexcept (true); 1414: extern int iscntrl_l (int, locale_t) noexcept (true); 1414: extern int isdigit_l (int, locale_t) noexcept (true); 1414: extern int islower_l (int, locale_t) noexcept (true); 1414: extern int isgraph_l (int, locale_t) noexcept (true); 1414: extern int isprint_l (int, locale_t) noexcept (true); 1414: extern int ispunct_l (int, locale_t) noexcept (true); 1414: extern int isspace_l (int, locale_t) noexcept (true); 1414: extern int isupper_l (int, locale_t) noexcept (true); 1414: extern int isxdigit_l (int, locale_t) noexcept (true); 1414: 1414: extern int isblank_l (int, locale_t) noexcept (true); 1414: 1414: 1414: 1414: extern int __tolower_l (int __c, locale_t __l) noexcept (true); 1414: extern int tolower_l (int __c, locale_t __l) noexcept (true); 1414: 1414: 1414: extern int __toupper_l (int __c, locale_t __l) noexcept (true); 1414: extern int toupper_l (int __c, locale_t __l) noexcept (true); 1414: # 327 "/usr/arm-linux-gnueabihf/include/ctype.h" 3 1414: } 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/cctype" 2 3 1414: # 64 "/usr/arm-linux-gnueabihf/include/c++/16/cctype" 3 1414: namespace std 1414: { 1414: using ::isalnum; 1414: using ::isalpha; 1414: using ::iscntrl; 1414: using ::isdigit; 1414: using ::isgraph; 1414: using ::islower; 1414: using ::isprint; 1414: using ::ispunct; 1414: using ::isspace; 1414: using ::isupper; 1414: using ::isxdigit; 1414: using ::tolower; 1414: using ::toupper; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: namespace std 1414: { 1414: using ::isblank; 1414: } 1414: # 45 "/usr/arm-linux-gnueabihf/include/c++/16/bits/localefwd.h" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 57 "/usr/arm-linux-gnueabihf/include/c++/16/bits/localefwd.h" 3 1414: class locale; 1414: 1414: template 1414: bool 1414: has_facet(const locale&) throw(); 1414: 1414: template 1414: const _Facet& 1414: use_facet(const locale&); 1414: 1414: 1414: template 1414: bool 1414: isspace(_CharT, const locale&); 1414: 1414: template 1414: bool 1414: isprint(_CharT, const locale&); 1414: 1414: template 1414: bool 1414: iscntrl(_CharT, const locale&); 1414: 1414: template 1414: bool 1414: isupper(_CharT, const locale&); 1414: 1414: template 1414: bool 1414: islower(_CharT, const locale&); 1414: 1414: template 1414: bool 1414: isalpha(_CharT, const locale&); 1414: 1414: template 1414: bool 1414: isdigit(_CharT, const locale&); 1414: 1414: template 1414: bool 1414: ispunct(_CharT, const locale&); 1414: 1414: template 1414: bool 1414: isxdigit(_CharT, const locale&); 1414: 1414: template 1414: bool 1414: isalnum(_CharT, const locale&); 1414: 1414: template 1414: bool 1414: isgraph(_CharT, const locale&); 1414: 1414: 1414: template 1414: bool 1414: isblank(_CharT, const locale&); 1414: 1414: 1414: template 1414: _CharT 1414: toupper(_CharT, const locale&); 1414: 1414: template 1414: _CharT 1414: tolower(_CharT, const locale&); 1414: 1414: 1414: struct ctype_base; 1414: template 1414: class ctype; 1414: template<> class ctype; 1414: 1414: template<> class ctype; 1414: 1414: template 1414: class ctype_byname; 1414: 1414: 1414: class codecvt_base; 1414: template 1414: class codecvt; 1414: template<> class codecvt; 1414: 1414: template<> class codecvt; 1414: 1414: 1414: template<> class codecvt; 1414: template<> class codecvt; 1414: 1414: template<> class codecvt; 1414: template<> class codecvt; 1414: 1414: 1414: template 1414: class codecvt_byname; 1414: 1414: 1414: 1414: template > 1414: class num_get; 1414: template > 1414: class num_put; 1414: 1414: namespace __cxx11 { 1414: template class numpunct; 1414: template class numpunct_byname; 1414: } 1414: 1414: namespace __cxx11 { 1414: 1414: template 1414: class collate; 1414: template 1414: class collate_byname; 1414: } 1414: 1414: 1414: class time_base; 1414: namespace __cxx11 { 1414: template > 1414: class time_get; 1414: template > 1414: class time_get_byname; 1414: } 1414: template > 1414: class time_put; 1414: template > 1414: class time_put_byname; 1414: 1414: 1414: class money_base; 1414: namespace __cxx11 { 1414: template > 1414: class money_get; 1414: template > 1414: class money_put; 1414: } 1414: namespace __cxx11 { 1414: template 1414: class moneypunct; 1414: template 1414: class moneypunct_byname; 1414: } 1414: 1414: 1414: struct messages_base; 1414: namespace __cxx11 { 1414: template 1414: class messages; 1414: template 1414: class messages_byname; 1414: } 1414: 1414: 1414: } 1414: # 49 "/usr/arm-linux-gnueabihf/include/c++/16/string" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream_insert.h" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream_insert.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cxxabi_forced.h" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/c++/16/bits/cxxabi_forced.h" 3 1414: #pragma GCC visibility push(default) 1414: 1414: 1414: namespace __cxxabiv1 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: class __forced_unwind 1414: { 1414: virtual ~__forced_unwind() throw(); 1414: 1414: 1414: virtual void __pure_dummy() = 0; 1414: }; 1414: } 1414: 1414: 1414: #pragma GCC visibility pop 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream_insert.h" 2 3 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: template 1414: inline void 1414: __ostream_write(basic_ostream<_CharT, _Traits>& __out, 1414: const _CharT* __s, streamsize __n) 1414: { 1414: typedef basic_ostream<_CharT, _Traits> __ostream_type; 1414: typedef typename __ostream_type::ios_base __ios_base; 1414: 1414: const streamsize __put = __out.rdbuf()->sputn(__s, __n); 1414: if (__put != __n) 1414: __out.setstate(__ios_base::badbit); 1414: } 1414: 1414: template 1414: inline void 1414: __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) 1414: { 1414: typedef basic_ostream<_CharT, _Traits> __ostream_type; 1414: typedef typename __ostream_type::ios_base __ios_base; 1414: 1414: const _CharT __c = __out.fill(); 1414: for (; __n > 0; --__n) 1414: { 1414: const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); 1414: if (_Traits::eq_int_type(__put, _Traits::eof())) 1414: { 1414: __out.setstate(__ios_base::badbit); 1414: break; 1414: } 1414: } 1414: } 1414: 1414: template 1414: basic_ostream<_CharT, _Traits>& 1414: __ostream_insert(basic_ostream<_CharT, _Traits>& __out, 1414: const _CharT* __s, streamsize __n) 1414: { 1414: typedef basic_ostream<_CharT, _Traits> __ostream_type; 1414: typedef typename __ostream_type::ios_base __ios_base; 1414: 1414: typename __ostream_type::sentry __cerb(__out); 1414: if (__cerb) 1414: { 1414: try 1414: { 1414: const streamsize __w = __out.width(); 1414: if (__w > __n) 1414: { 1414: const bool __left = ((__out.flags() 1414: & __ios_base::adjustfield) 1414: == __ios_base::left); 1414: if (!__left) 1414: __ostream_fill(__out, __w - __n); 1414: if (__out.good()) 1414: __ostream_write(__out, __s, __n); 1414: if (__left && __out.good()) 1414: __ostream_fill(__out, __w - __n); 1414: } 1414: else 1414: __ostream_write(__out, __s, __n); 1414: __out.width(0); 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: __out._M_setstate(__ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { __out._M_setstate(__ios_base::badbit); } 1414: } 1414: return __out; 1414: } 1414: 1414: 1414: 1414: 1414: extern template ostream& __ostream_insert(ostream&, const char*, streamsize); 1414: 1414: 1414: extern template wostream& __ostream_insert(wostream&, const wchar_t*, 1414: streamsize); 1414: 1414: 1414: 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 50 "/usr/arm-linux-gnueabihf/include/c++/16/string" 2 3 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throw.h" 1 3 1414: # 55 "/usr/arm-linux-gnueabihf/include/c++/16/string" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/erase_if.h" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/erase_if.h" 3 1414: namespace std 1414: { 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: constexpr 1414: typename _Container::size_type 1414: __erase_if(_Container& __cont, _UnsafeContainer& __ucont, 1414: _Predicate __pred) 1414: { 1414: const auto __osz = __ucont.size(); 1414: const auto __end = __ucont.end(); 1414: auto __removed = std::__remove_if(__ucont.begin(), __end, 1414: std::move(__pred)); 1414: if (__removed != __end) 1414: { 1414: __cont.erase(__niter_wrap(__cont.begin(), __removed), 1414: __cont.end()); 1414: return __osz - __ucont.size(); 1414: } 1414: 1414: return 0; 1414: } 1414: 1414: template 1414: typename _Container::size_type 1414: __erase_nodes_if(_Container& __cont, _UnsafeContainer& __ucont, 1414: _Predicate __pred) 1414: { 1414: typename _Container::size_type __num = 0; 1414: for (auto __iter = __ucont.begin(), __last = __ucont.end(); 1414: __iter != __last;) 1414: { 1414: if (__pred(*__iter)) 1414: { 1414: __iter = __cont.erase(__iter); 1414: ++__num; 1414: } 1414: else 1414: ++__iter; 1414: } 1414: return __num; 1414: } 1414: } 1414: 1414: 1414: } 1414: # 58 "/usr/arm-linux-gnueabihf/include/c++/16/string" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/ext/alloc_traits.h" 1 3 1414: # 36 "/usr/arm-linux-gnueabihf/include/c++/16/ext/alloc_traits.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 1 3 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: # 52 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++14-extensions" 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: 1414: 1414: struct __allocator_traits_base 1414: { 1414: 1414: template 1414: 1414: 1414: 1414: struct __rebind : __replace_first_arg<_Tp, _Up> 1414: { 1414: static_assert(is_same< 1414: typename __replace_first_arg<_Tp, typename _Tp::value_type>::type, 1414: _Tp>::value, 1414: "allocator_traits::rebind_alloc must be A"); 1414: }; 1414: 1414: template 1414: 1414: requires requires { typename _Tp::template rebind<_Up>::other; } 1414: struct __rebind<_Tp, _Up> 1414: 1414: 1414: 1414: 1414: { 1414: using type = typename _Tp::template rebind<_Up>::other; 1414: 1414: static_assert(is_same< 1414: typename _Tp::template rebind::other, 1414: _Tp>::value, 1414: "allocator_traits::rebind_alloc must be A"); 1414: }; 1414: 1414: protected: 1414: template 1414: using __pointer = typename _Tp::pointer; 1414: template 1414: using __c_pointer = typename _Tp::const_pointer; 1414: template 1414: using __v_pointer = typename _Tp::void_pointer; 1414: template 1414: using __cv_pointer = typename _Tp::const_void_pointer; 1414: template 1414: using __pocca = typename _Tp::propagate_on_container_copy_assignment; 1414: template 1414: using __pocma = typename _Tp::propagate_on_container_move_assignment; 1414: template 1414: using __pocs = typename _Tp::propagate_on_container_swap; 1414: template 1414: using __equal = __type_identity; 1414: 1414: 1414: 1414: template 1414: static constexpr bool __has_allocate_hint 1414: = requires (_Alloc& __a, _Sz __n, _Vp __hint) { 1414: __a.allocate(__n, __hint); 1414: }; 1414: # 133 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: static constexpr bool __has_construct 1414: = requires (_Alloc& __a, _Tp* __p, _Args&&... __args) { 1414: __a.construct(__p, std::forward<_Args>(__args)...); 1414: }; 1414: template 1414: static constexpr bool __can_construct_at 1414: = requires (_Tp* __p, _Args&&... __args) { 1414: 1414: std::construct_at(__p, std::forward<_Args>(__args)...); 1414: 1414: 1414: 1414: }; 1414: template 1414: static constexpr bool __can_construct 1414: = __has_construct<_Alloc, _Tp, _Args...> 1414: || __can_construct_at<_Tp, _Args...>; 1414: # 184 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: static constexpr bool __has_destroy = requires (_Alloc& __a, _Tp* __p) { 1414: __a.destroy(__p); 1414: }; 1414: # 202 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: static constexpr bool __has_max_size = requires (const _Alloc& __a) { 1414: __a.max_size(); 1414: }; 1414: # 220 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: static constexpr bool __has_soccc = requires (const _Alloc& __a) { 1414: __a.select_on_container_copy_construction(); 1414: }; 1414: # 235 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: }; 1414: 1414: template 1414: using __alloc_rebind 1414: = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; 1414: # 248 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: struct allocator_traits : __allocator_traits_base 1414: { 1414: 1414: typedef _Alloc allocator_type; 1414: 1414: typedef typename _Alloc::value_type value_type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: using pointer = __detected_or_t; 1414: 1414: private: 1414: 1414: template class _Func, typename _Tp, typename = void> 1414: struct _Ptr 1414: { 1414: using type = typename pointer_traits::template rebind<_Tp>; 1414: }; 1414: 1414: template class _Func, typename _Tp> 1414: struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> 1414: { 1414: using type = _Func<_Alloc>; 1414: }; 1414: 1414: 1414: template 1414: struct _Diff 1414: { using type = typename pointer_traits<_PtrT>::difference_type; }; 1414: 1414: template 1414: struct _Diff<_A2, _PtrT, __void_t> 1414: { using type = typename _A2::difference_type; }; 1414: 1414: 1414: template 1414: struct _Size : make_unsigned<_DiffT> { }; 1414: 1414: template 1414: struct _Size<_A2, _DiffT, __void_t> 1414: { using type = typename _A2::size_type; }; 1414: 1414: public: 1414: 1414: 1414: 1414: 1414: 1414: 1414: using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: using void_pointer = typename _Ptr<__v_pointer, void>::type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: using difference_type = typename _Diff<_Alloc, pointer>::type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: using size_type = typename _Size<_Alloc, difference_type>::type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: using propagate_on_container_copy_assignment 1414: = __detected_or_t; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: using propagate_on_container_move_assignment 1414: = __detected_or_t; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: using propagate_on_container_swap 1414: = __detected_or_t; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: using is_always_equal 1414: = typename __detected_or_t, __equal, _Alloc>::type; 1414: 1414: template 1414: using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; 1414: template 1414: using rebind_traits = allocator_traits>; 1414: # 383 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: [[__nodiscard__]] static constexpr pointer 1414: allocate(_Alloc& __a, size_type __n) 1414: { return __a.allocate(__n); } 1414: # 398 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: [[__nodiscard__]] static constexpr pointer 1414: allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) 1414: { 1414: if constexpr (__has_allocate_hint<_Alloc, size_type, const_void_pointer>) 1414: return __a.allocate(__n, __hint); 1414: else 1414: return __a.allocate(__n); 1414: } 1414: # 439 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: static constexpr void 1414: deallocate(_Alloc& __a, pointer __p, size_type __n) 1414: { __a.deallocate(__p, __n); } 1414: # 454 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: 1414: requires __can_construct<_Alloc, _Tp, _Args...> 1414: static constexpr void 1414: 1414: 1414: 1414: construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 1414: noexcept(_S_nothrow_construct<_Tp, _Args...>()) 1414: { 1414: if constexpr (__has_construct<_Alloc, _Tp, _Args...>) 1414: __a.construct(__p, std::forward<_Args>(__args)...); 1414: else 1414: std::_Construct(__p, std::forward<_Args>(__args)...); 1414: } 1414: # 478 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: static constexpr void 1414: destroy(_Alloc& __a, _Tp* __p) 1414: noexcept(_S_nothrow_destroy<_Tp>()) 1414: { 1414: if constexpr (__has_destroy<_Alloc, _Tp>) 1414: __a.destroy(__p); 1414: else 1414: std::_Destroy(__p); 1414: } 1414: # 497 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: static constexpr size_type 1414: max_size(const _Alloc& __a) noexcept 1414: { 1414: if constexpr (__has_max_size<_Alloc>) 1414: return __a.max_size(); 1414: else 1414: 1414: 1414: return __gnu_cxx::__numeric_traits::__max 1414: / sizeof(value_type); 1414: } 1414: # 517 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: static constexpr _Alloc 1414: select_on_container_copy_construction(const _Alloc& __rhs) 1414: { 1414: if constexpr (__has_soccc<_Alloc>) 1414: return __rhs.select_on_container_copy_construction(); 1414: else 1414: return __rhs; 1414: } 1414: 1414: private: 1414: 1414: template 1414: static constexpr bool 1414: _S_nothrow_construct(_Alloc* __a = nullptr, _Tp* __p = nullptr) 1414: { 1414: if constexpr (__has_construct<_Alloc, _Tp, _Args...>) 1414: return noexcept(__a->construct(__p, std::declval<_Args>()...)); 1414: else 1414: return __is_nothrow_new_constructible<_Tp, _Args...>; 1414: } 1414: 1414: template 1414: static constexpr bool 1414: _S_nothrow_destroy(_Alloc* __a = nullptr, _Tp* __p = nullptr) 1414: { 1414: if constexpr (__has_destroy<_Alloc, _Tp>) 1414: return noexcept(__a->destroy(__p)); 1414: else 1414: return is_nothrow_destructible<_Tp>::value; 1414: } 1414: # 572 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: }; 1414: #pragma GCC diagnostic pop 1414: # 583 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: struct allocator_traits> 1414: { 1414: 1414: using allocator_type = allocator<_Tp>; 1414: 1414: 1414: using value_type = _Tp; 1414: 1414: 1414: using pointer = _Tp*; 1414: 1414: 1414: using const_pointer = const _Tp*; 1414: 1414: 1414: using void_pointer = void*; 1414: 1414: 1414: using const_void_pointer = const void*; 1414: 1414: 1414: using difference_type = std::ptrdiff_t; 1414: 1414: 1414: using size_type = std::size_t; 1414: 1414: 1414: using propagate_on_container_copy_assignment = false_type; 1414: 1414: 1414: using propagate_on_container_move_assignment = true_type; 1414: 1414: 1414: using propagate_on_container_swap = false_type; 1414: 1414: 1414: using is_always_equal = true_type; 1414: 1414: template 1414: using rebind_alloc = allocator<_Up>; 1414: 1414: template 1414: using rebind_traits = allocator_traits>; 1414: # 635 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: [[__nodiscard__,__gnu__::__always_inline__]] 1414: static constexpr pointer 1414: allocate(allocator_type& __a, size_type __n) 1414: { return __a.allocate(__n); } 1414: # 650 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: [[__nodiscard__,__gnu__::__always_inline__]] 1414: static constexpr pointer 1414: allocate(allocator_type& __a, size_type __n, 1414: [[maybe_unused]] const_void_pointer __hint) 1414: { 1414: 1414: 1414: 1414: return __a.allocate(__n); 1414: 1414: } 1414: # 686 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: [[__gnu__::__always_inline__]] 1414: static constexpr void 1414: deallocate(allocator_type& __a, pointer __p, size_type __n) 1414: { __a.deallocate(__p, __n); } 1414: # 702 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: [[__gnu__::__always_inline__]] 1414: static constexpr void 1414: construct(allocator_type& __a __attribute__((__unused__)), 1414: _Up* __p, _Args&&... __args) 1414: 1414: 1414: 1414: noexcept(__is_nothrow_new_constructible<_Up, _Args...>) 1414: 1414: { 1414: 1414: 1414: 1414: std::construct_at(__p, std::forward<_Args>(__args)...); 1414: 1414: 1414: 1414: } 1414: # 729 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: [[__gnu__::__always_inline__]] 1414: static constexpr void 1414: destroy(allocator_type& __a __attribute__((__unused__)), _Up* __p) 1414: noexcept(is_nothrow_destructible<_Up>::value) 1414: { 1414: 1414: 1414: 1414: std::destroy_at(__p); 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__gnu__::__always_inline__]] 1414: static constexpr size_type 1414: max_size(const allocator_type& __a __attribute__((__unused__))) noexcept 1414: { 1414: 1414: 1414: 1414: return size_t(-1) / sizeof(value_type); 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__gnu__::__always_inline__]] 1414: static constexpr allocator_type 1414: select_on_container_copy_construction(const allocator_type& __rhs) 1414: { return __rhs; } 1414: }; 1414: # 776 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template<> 1414: struct allocator_traits> 1414: { 1414: 1414: using allocator_type = allocator; 1414: 1414: 1414: using value_type = void; 1414: 1414: 1414: using pointer = void*; 1414: 1414: 1414: using const_pointer = const void*; 1414: 1414: 1414: using void_pointer = void*; 1414: 1414: 1414: using const_void_pointer = const void*; 1414: 1414: 1414: using difference_type = std::ptrdiff_t; 1414: 1414: 1414: using size_type = std::size_t; 1414: 1414: 1414: using propagate_on_container_copy_assignment = false_type; 1414: 1414: 1414: using propagate_on_container_move_assignment = true_type; 1414: 1414: 1414: using propagate_on_container_swap = false_type; 1414: 1414: 1414: using is_always_equal = true_type; 1414: 1414: template 1414: using rebind_alloc = allocator<_Up>; 1414: 1414: template 1414: using rebind_traits = allocator_traits>; 1414: 1414: 1414: static void* 1414: allocate(allocator_type&, size_type, const void* = nullptr) = delete; 1414: 1414: 1414: static void 1414: deallocate(allocator_type&, void*, size_type) = delete; 1414: # 840 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: [[__gnu__::__always_inline__]] 1414: static constexpr void 1414: construct(allocator_type&, _Up* __p, _Args&&... __args) 1414: noexcept(__is_nothrow_new_constructible<_Up, _Args...>) 1414: { std::_Construct(__p, std::forward<_Args>(__args)...); } 1414: # 854 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: [[__gnu__::__always_inline__]] 1414: static constexpr void 1414: destroy(allocator_type&, _Up* __p) 1414: noexcept(is_nothrow_destructible<_Up>::value) 1414: { std::_Destroy(__p); } 1414: 1414: 1414: static size_type 1414: max_size(const allocator_type&) = delete; 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__gnu__::__always_inline__]] 1414: static constexpr allocator_type 1414: select_on_container_copy_construction(const allocator_type& __rhs) 1414: { return __rhs; } 1414: }; 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr inline void 1414: __alloc_on_copy(_Alloc& __one, const _Alloc& __two) 1414: { 1414: using __traits = allocator_traits<_Alloc>; 1414: using __pocca = 1414: typename __traits::propagate_on_container_copy_assignment::type; 1414: if constexpr (__pocca::value) 1414: __one = __two; 1414: } 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr _Alloc 1414: __alloc_on_copy(const _Alloc& __a) 1414: { 1414: typedef allocator_traits<_Alloc> __traits; 1414: return __traits::select_on_container_copy_construction(__a); 1414: } 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr inline void 1414: __alloc_on_move(_Alloc& __one, _Alloc& __two) 1414: { 1414: using __traits = allocator_traits<_Alloc>; 1414: using __pocma 1414: = typename __traits::propagate_on_container_move_assignment::type; 1414: if constexpr (__pocma::value) 1414: __one = std::move(__two); 1414: } 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: constexpr inline void 1414: __alloc_on_swap(_Alloc& __one, _Alloc& __two) 1414: { 1414: using __traits = allocator_traits<_Alloc>; 1414: using __pocs = typename __traits::propagate_on_container_swap::type; 1414: if constexpr (__pocs::value) 1414: { 1414: using std::swap; 1414: swap(__one, __two); 1414: } 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: template, 1414: typename = void> 1414: struct __is_alloc_insertable_impl 1414: : false_type 1414: { }; 1414: 1414: template 1414: struct __is_alloc_insertable_impl<_Alloc, _Tp, _ValueT, 1414: __void_t::construct( 1414: std::declval<_Alloc&>(), std::declval<_ValueT*>(), 1414: std::declval<_Tp>()))>> 1414: : true_type 1414: { }; 1414: 1414: 1414: 1414: 1414: template 1414: struct __is_copy_insertable 1414: : __is_alloc_insertable_impl<_Alloc, 1414: typename _Alloc::value_type const&>::type 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct __is_copy_insertable> 1414: : is_copy_constructible<_Tp> 1414: { }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct __is_move_insertable 1414: : __is_alloc_insertable_impl<_Alloc, typename _Alloc::value_type>::type 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct __is_move_insertable> 1414: : is_move_constructible<_Tp> 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct __is_allocator : false_type { }; 1414: 1414: template 1414: struct __is_allocator<_Alloc, 1414: __void_t().allocate(size_t{}))>> 1414: : true_type { }; 1414: 1414: template 1414: using _RequireAllocator 1414: = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; 1414: 1414: template 1414: using _RequireNotAllocator 1414: = typename enable_if::value, _Alloc>::type; 1414: 1414: 1414: template 1414: concept __allocator_like = requires (_Alloc& __a) { 1414: typename _Alloc::value_type; 1414: __a.deallocate(__a.allocate(1u), 1u); 1414: }; 1414: 1414: template 1414: concept __not_allocator_like = !__allocator_like<_Alloc>; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct __alloc_swap 1414: { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; 1414: 1414: template 1414: struct __alloc_swap<_Alloc, false> 1414: { 1414: static void 1414: _S_do_it(_Alloc& __one, _Alloc& __two) noexcept 1414: { 1414: 1414: if (__one != __two) 1414: swap(__one, __two); 1414: } 1414: }; 1414: 1414: 1414: template, 1414: is_nothrow_move_constructible>::value> 1414: struct __shrink_to_fit_aux 1414: { static bool _S_do_it(_Tp&) noexcept { return false; } }; 1414: 1414: template 1414: struct __shrink_to_fit_aux<_Tp, true> 1414: { 1414: constexpr 1414: static bool 1414: _S_do_it(_Tp& __c) noexcept 1414: { 1414: 1414: try 1414: { 1414: _Tp(__make_move_if_noexcept_iterator(__c.begin()), 1414: __make_move_if_noexcept_iterator(__c.end()), 1414: __c.get_allocator()).swap(__c); 1414: return true; 1414: } 1414: catch(...) 1414: { return false; } 1414: 1414: 1414: 1414: } 1414: }; 1414: # 1063 "/usr/arm-linux-gnueabihf/include/c++/16/bits/alloc_traits.h" 3 1414: template 1414: constexpr 1414: void 1414: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 1414: _Allocator& __alloc) 1414: { 1414: for (; __first != __last; ++__first) 1414: 1414: 1414: 1414: allocator_traits<_Allocator>::destroy(__alloc, 1414: std::__addressof(*__first)); 1414: 1414: } 1414: 1414: 1414: template 1414: __attribute__((__always_inline__)) constexpr 1414: inline void 1414: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 1414: allocator<_Tp>&) 1414: { 1414: std::_Destroy(__first, __last); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: } 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/ext/alloc_traits.h" 2 3 1414: 1414: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct __alloc_traits 1414: 1414: : std::allocator_traits<_Alloc> 1414: 1414: { 1414: typedef _Alloc allocator_type; 1414: 1414: typedef std::allocator_traits<_Alloc> _Base_type; 1414: typedef typename _Base_type::value_type value_type; 1414: typedef typename _Base_type::pointer pointer; 1414: typedef typename _Base_type::const_pointer const_pointer; 1414: typedef typename _Base_type::size_type size_type; 1414: typedef typename _Base_type::difference_type difference_type; 1414: 1414: typedef value_type& reference; 1414: typedef const value_type& const_reference; 1414: using _Base_type::allocate; 1414: using _Base_type::deallocate; 1414: using _Base_type::construct; 1414: using _Base_type::destroy; 1414: using _Base_type::max_size; 1414: 1414: private: 1414: template 1414: using __is_custom_pointer 1414: = std::__and_, 1414: std::__not_>>; 1414: 1414: public: 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: static constexpr 1414: std::__enable_if_t<__is_custom_pointer<_Ptr>::value> 1414: construct(_Alloc& __a, _Ptr __p, _Args&&... __args) 1414: noexcept(noexcept(_Base_type::construct(__a, std::__to_address(__p), 1414: std::forward<_Args>(__args)...))) 1414: { 1414: _Base_type::construct(__a, std::__to_address(__p), 1414: std::forward<_Args>(__args)...); 1414: } 1414: 1414: 1414: template 1414: [[__gnu__::__always_inline__]] 1414: static constexpr 1414: std::__enable_if_t<__is_custom_pointer<_Ptr>::value> 1414: destroy(_Alloc& __a, _Ptr __p) 1414: noexcept(noexcept(_Base_type::destroy(__a, std::__to_address(__p)))) 1414: { _Base_type::destroy(__a, std::__to_address(__p)); } 1414: 1414: [[__gnu__::__always_inline__]] 1414: static constexpr _Alloc _S_select_on_copy(const _Alloc& __a) 1414: { return _Base_type::select_on_container_copy_construction(__a); } 1414: 1414: [[__gnu__::__always_inline__]] 1414: static constexpr void _S_on_swap(_Alloc& __a, _Alloc& __b) 1414: { std::__alloc_on_swap(__a, __b); } 1414: 1414: [[__gnu__::__always_inline__]] 1414: static constexpr bool _S_propagate_on_copy_assign() 1414: { return _Base_type::propagate_on_container_copy_assignment::value; } 1414: 1414: [[__gnu__::__always_inline__]] 1414: static constexpr bool _S_propagate_on_move_assign() 1414: { return _Base_type::propagate_on_container_move_assignment::value; } 1414: 1414: [[__gnu__::__always_inline__]] 1414: static constexpr bool _S_propagate_on_swap() 1414: { return _Base_type::propagate_on_container_swap::value; } 1414: 1414: [[__gnu__::__always_inline__]] 1414: static constexpr bool _S_always_equal() 1414: { return _Base_type::is_always_equal::value; } 1414: 1414: __attribute__((__always_inline__)) 1414: static constexpr bool _S_nothrow_move() 1414: { return _S_propagate_on_move_assign() || _S_always_equal(); } 1414: 1414: template 1414: struct rebind 1414: { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; 1414: # 182 "/usr/arm-linux-gnueabihf/include/c++/16/ext/alloc_traits.h" 3 1414: }; 1414: 1414: 1414: } 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 49 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/string_view" 1 3 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/string_view" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/string_view" 2 3 1414: # 70 "/usr/arm-linux-gnueabihf/include/c++/16/string_view" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: constexpr size_t 1414: __sv_check(size_t __size, size_t __pos, const char* __s) 1414: { 1414: if (__pos > __size) 1414: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > __size " "(which is %zu)") 1414: , __s, __pos, __size); 1414: return __pos; 1414: } 1414: 1414: 1414: 1414: constexpr size_t 1414: __sv_limit(size_t __size, size_t __pos, size_t __off) noexcept 1414: { 1414: const bool __testoff = __off < __size - __pos; 1414: return __testoff ? __off : __size - __pos; 1414: } 1414: # 111 "/usr/arm-linux-gnueabihf/include/c++/16/string_view" 3 1414: template> 1414: class basic_string_view 1414: { 1414: static_assert(!is_array_v<_CharT>); 1414: static_assert(is_trivially_copyable_v<_CharT> 1414: && is_trivially_default_constructible_v<_CharT> 1414: && is_standard_layout_v<_CharT>); 1414: static_assert(is_same_v<_CharT, typename _Traits::char_type>); 1414: 1414: public: 1414: 1414: 1414: using traits_type = _Traits; 1414: using value_type = _CharT; 1414: using pointer = value_type*; 1414: using const_pointer = const value_type*; 1414: using reference = value_type&; 1414: using const_reference = const value_type&; 1414: using const_iterator = const value_type*; 1414: using iterator = const_iterator; 1414: using const_reverse_iterator = std::reverse_iterator; 1414: using reverse_iterator = const_reverse_iterator; 1414: using size_type = size_t; 1414: using difference_type = ptrdiff_t; 1414: static constexpr size_type npos = size_type(-1); 1414: 1414: 1414: 1414: constexpr 1414: basic_string_view() noexcept 1414: : _M_len{0}, _M_str{nullptr} 1414: { } 1414: 1414: constexpr basic_string_view(const basic_string_view&) noexcept = default; 1414: 1414: [[__gnu__::__nonnull__]] 1414: constexpr 1414: basic_string_view(const _CharT* __str) noexcept 1414: : _M_len{traits_type::length(__str)}, 1414: _M_str{__str} 1414: { } 1414: 1414: constexpr 1414: basic_string_view(const _CharT* __str, size_type __len) noexcept 1414: : _M_len{__len}, _M_str{__str} 1414: { } 1414: 1414: 1414: template _End> 1414: requires same_as, _CharT> 1414: && (!convertible_to<_End, size_type>) 1414: constexpr 1414: basic_string_view(_It __first, _End __last) 1414: noexcept(noexcept(__last - __first)) 1414: : _M_len(__last - __first), _M_str(std::to_address(__first)) 1414: { } 1414: # 188 "/usr/arm-linux-gnueabihf/include/c++/16/string_view" 3 1414: constexpr basic_string_view& 1414: operator=(const basic_string_view&) noexcept = default; 1414: 1414: 1414: 1414: [[nodiscard]] 1414: constexpr const_iterator 1414: begin() const noexcept 1414: { return this->_M_str; } 1414: 1414: [[nodiscard]] 1414: constexpr const_iterator 1414: end() const noexcept 1414: { return this->_M_str + this->_M_len; } 1414: 1414: [[nodiscard]] 1414: constexpr const_iterator 1414: cbegin() const noexcept 1414: { return this->_M_str; } 1414: 1414: [[nodiscard]] 1414: constexpr const_iterator 1414: cend() const noexcept 1414: { return this->_M_str + this->_M_len; } 1414: 1414: [[nodiscard]] 1414: constexpr const_reverse_iterator 1414: rbegin() const noexcept 1414: { return const_reverse_iterator(this->end()); } 1414: 1414: [[nodiscard]] 1414: constexpr const_reverse_iterator 1414: rend() const noexcept 1414: { return const_reverse_iterator(this->begin()); } 1414: 1414: [[nodiscard]] 1414: constexpr const_reverse_iterator 1414: crbegin() const noexcept 1414: { return const_reverse_iterator(this->end()); } 1414: 1414: [[nodiscard]] 1414: constexpr const_reverse_iterator 1414: crend() const noexcept 1414: { return const_reverse_iterator(this->begin()); } 1414: 1414: 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: size() const noexcept 1414: { return this->_M_len; } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: length() const noexcept 1414: { return _M_len; } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: max_size() const noexcept 1414: { 1414: return (npos - sizeof(size_type) - sizeof(void*)) 1414: / sizeof(value_type) / 4; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: empty() const noexcept 1414: { return this->_M_len == 0; } 1414: 1414: 1414: 1414: [[nodiscard]] 1414: constexpr const_reference 1414: operator[](size_type __pos) const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__pos < this->_M_len)) std::__glibcxx_assert_fail(); } while (false); 1414: return *(this->_M_str + __pos); 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr const_reference 1414: at(size_type __pos) const 1414: { 1414: if (__pos >= _M_len) 1414: __throw_out_of_range_fmt(("basic_string_view::at: __pos " "(which is %zu) >= this->size() " "(which is %zu)") 1414: 1414: , __pos, this->size()); 1414: return *(this->_M_str + __pos); 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr const_reference 1414: front() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(this->_M_len > 0)) std::__glibcxx_assert_fail(); } while (false); 1414: return *this->_M_str; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr const_reference 1414: back() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(this->_M_len > 0)) std::__glibcxx_assert_fail(); } while (false); 1414: return *(this->_M_str + this->_M_len - 1); 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr const_pointer 1414: data() const noexcept 1414: { return this->_M_str; } 1414: 1414: 1414: 1414: constexpr void 1414: remove_prefix(size_type __n) noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(this->_M_len >= __n)) std::__glibcxx_assert_fail(); } while (false); 1414: this->_M_str += __n; 1414: this->_M_len -= __n; 1414: } 1414: 1414: constexpr void 1414: remove_suffix(size_type __n) noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(this->_M_len >= __n)) std::__glibcxx_assert_fail(); } while (false); 1414: this->_M_len -= __n; 1414: } 1414: 1414: constexpr void 1414: swap(basic_string_view& __sv) noexcept 1414: { 1414: auto __tmp = *this; 1414: *this = __sv; 1414: __sv = __tmp; 1414: } 1414: 1414: 1414: 1414: constexpr 1414: size_type 1414: copy(_CharT* __str, size_type __n, size_type __pos = 0) const 1414: { 1414: ; 1414: __pos = std::__sv_check(size(), __pos, "basic_string_view::copy"); 1414: const size_type __rlen = std::min(__n, _M_len - __pos); 1414: 1414: 1414: traits_type::copy(__str, data() + __pos, __rlen); 1414: return __rlen; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr basic_string_view 1414: substr(size_type __pos = 0, size_type __n = npos) const noexcept(false) 1414: { 1414: __pos = std::__sv_check(size(), __pos, "basic_string_view::substr"); 1414: const size_type __rlen = std::min(__n, _M_len - __pos); 1414: return basic_string_view{_M_str + __pos, __rlen}; 1414: } 1414: # 356 "/usr/arm-linux-gnueabihf/include/c++/16/string_view" 3 1414: [[nodiscard]] 1414: constexpr int 1414: compare(basic_string_view __str) const noexcept 1414: { 1414: const size_type __rlen = std::min(this->_M_len, __str._M_len); 1414: int __ret = traits_type::compare(this->_M_str, __str._M_str, __rlen); 1414: if (__ret == 0) 1414: __ret = _S_compare(this->_M_len, __str._M_len); 1414: return __ret; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr int 1414: compare(size_type __pos1, size_type __n1, basic_string_view __str) const 1414: { return this->substr(__pos1, __n1).compare(__str); } 1414: 1414: [[nodiscard]] 1414: constexpr int 1414: compare(size_type __pos1, size_type __n1, 1414: basic_string_view __str, size_type __pos2, size_type __n2) const 1414: { 1414: return this->substr(__pos1, __n1).compare(__str.substr(__pos2, __n2)); 1414: } 1414: 1414: [[nodiscard, __gnu__::__nonnull__]] 1414: constexpr int 1414: compare(const _CharT* __str) const noexcept 1414: { return this->compare(basic_string_view{__str}); } 1414: 1414: [[nodiscard, __gnu__::__nonnull__]] 1414: constexpr int 1414: compare(size_type __pos1, size_type __n1, const _CharT* __str) const 1414: { return this->substr(__pos1, __n1).compare(basic_string_view{__str}); } 1414: 1414: [[nodiscard]] 1414: constexpr int 1414: compare(size_type __pos1, size_type __n1, 1414: const _CharT* __str, size_type __n2) const noexcept(false) 1414: { 1414: return this->substr(__pos1, __n1) 1414: .compare(basic_string_view(__str, __n2)); 1414: } 1414: 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: starts_with(basic_string_view __x) const noexcept 1414: { 1414: return _M_len >= __x._M_len 1414: && traits_type::compare(_M_str, __x._M_str, __x._M_len) == 0; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: starts_with(_CharT __x) const noexcept 1414: { return !this->empty() && traits_type::eq(this->front(), __x); } 1414: 1414: [[nodiscard, __gnu__::__nonnull__]] 1414: constexpr bool 1414: starts_with(const _CharT* __x) const noexcept 1414: { return this->starts_with(basic_string_view(__x)); } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: ends_with(basic_string_view __x) const noexcept 1414: { 1414: const auto __len = this->size(); 1414: const auto __xlen = __x.size(); 1414: return __len >= __xlen 1414: && traits_type::compare(end() - __xlen, __x.data(), __xlen) == 0; 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: ends_with(_CharT __x) const noexcept 1414: { return !this->empty() && traits_type::eq(this->back(), __x); } 1414: 1414: [[nodiscard, __gnu__::__nonnull__]] 1414: constexpr bool 1414: ends_with(const _CharT* __x) const noexcept 1414: { return this->ends_with(basic_string_view(__x)); } 1414: # 463 "/usr/arm-linux-gnueabihf/include/c++/16/string_view" 3 1414: [[nodiscard]] 1414: constexpr size_type 1414: find(basic_string_view __str, size_type __pos = 0) const noexcept 1414: { return this->find(__str._M_str, __pos, __str._M_len); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find(_CharT __c, size_type __pos = 0) const noexcept; 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find(const _CharT* __str, size_type __pos, size_type __n) const noexcept; 1414: 1414: [[nodiscard, __gnu__::__nonnull__]] 1414: constexpr size_type 1414: find(const _CharT* __str, size_type __pos = 0) const noexcept 1414: { return this->find(__str, __pos, traits_type::length(__str)); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: rfind(basic_string_view __str, size_type __pos = npos) const noexcept 1414: { return this->rfind(__str._M_str, __pos, __str._M_len); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: rfind(_CharT __c, size_type __pos = npos) const noexcept; 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: rfind(const _CharT* __str, size_type __pos, size_type __n) const noexcept; 1414: 1414: [[nodiscard, __gnu__::__nonnull__]] 1414: constexpr size_type 1414: rfind(const _CharT* __str, size_type __pos = npos) const noexcept 1414: { return this->rfind(__str, __pos, traits_type::length(__str)); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find_first_of(basic_string_view __str, size_type __pos = 0) const noexcept 1414: { return this->find_first_of(__str._M_str, __pos, __str._M_len); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 1414: { return this->find(__c, __pos); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find_first_of(const _CharT* __str, size_type __pos, 1414: size_type __n) const noexcept; 1414: 1414: [[nodiscard, __gnu__::__nonnull__]] 1414: constexpr size_type 1414: find_first_of(const _CharT* __str, size_type __pos = 0) const noexcept 1414: { return this->find_first_of(__str, __pos, traits_type::length(__str)); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find_last_of(basic_string_view __str, 1414: size_type __pos = npos) const noexcept 1414: { return this->find_last_of(__str._M_str, __pos, __str._M_len); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find_last_of(_CharT __c, size_type __pos=npos) const noexcept 1414: { return this->rfind(__c, __pos); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find_last_of(const _CharT* __str, size_type __pos, 1414: size_type __n) const noexcept; 1414: 1414: [[nodiscard, __gnu__::__nonnull__]] 1414: constexpr size_type 1414: find_last_of(const _CharT* __str, size_type __pos = npos) const noexcept 1414: { return this->find_last_of(__str, __pos, traits_type::length(__str)); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find_first_not_of(basic_string_view __str, 1414: size_type __pos = 0) const noexcept 1414: { return this->find_first_not_of(__str._M_str, __pos, __str._M_len); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find_first_not_of(_CharT __c, size_type __pos = 0) const noexcept; 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find_first_not_of(const _CharT* __str, 1414: size_type __pos, size_type __n) const noexcept; 1414: 1414: [[nodiscard, __gnu__::__nonnull__]] 1414: constexpr size_type 1414: find_first_not_of(const _CharT* __str, size_type __pos = 0) const noexcept 1414: { 1414: return this->find_first_not_of(__str, __pos, 1414: traits_type::length(__str)); 1414: } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find_last_not_of(basic_string_view __str, 1414: size_type __pos = npos) const noexcept 1414: { return this->find_last_not_of(__str._M_str, __pos, __str._M_len); } 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find_last_not_of(_CharT __c, size_type __pos = npos) const noexcept; 1414: 1414: [[nodiscard]] 1414: constexpr size_type 1414: find_last_not_of(const _CharT* __str, 1414: size_type __pos, size_type __n) const noexcept; 1414: 1414: [[nodiscard, __gnu__::__nonnull__]] 1414: constexpr size_type 1414: find_last_not_of(const _CharT* __str, 1414: size_type __pos = npos) const noexcept 1414: { 1414: return this->find_last_not_of(__str, __pos, 1414: traits_type::length(__str)); 1414: } 1414: 1414: private: 1414: 1414: static constexpr int 1414: _S_compare(size_type __n1, size_type __n2) noexcept 1414: { 1414: using __limits = __gnu_cxx::__int_traits; 1414: const difference_type __diff = __n1 - __n2; 1414: if (__diff > __limits::__max) 1414: return __limits::__max; 1414: if (__diff < __limits::__min) 1414: return __limits::__min; 1414: return static_cast(__diff); 1414: } 1414: 1414: size_t _M_len; 1414: const _CharT* _M_str; 1414: }; 1414: 1414: 1414: template _End> 1414: basic_string_view(_It, _End) -> basic_string_view>; 1414: # 624 "/usr/arm-linux-gnueabihf/include/c++/16/string_view" 3 1414: template 1414: [[nodiscard]] 1414: constexpr bool 1414: operator==(basic_string_view<_CharT, _Traits> __x, 1414: type_identity_t> __y) 1414: noexcept 1414: { return __x.size() == __y.size() && __x.compare(__y) == 0; } 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr auto 1414: operator<=>(basic_string_view<_CharT, _Traits> __x, 1414: __type_identity_t> __y) 1414: noexcept 1414: -> decltype(__detail::__char_traits_cmp_cat<_Traits>(0)) 1414: { return __detail::__char_traits_cmp_cat<_Traits>(__x.compare(__y)); } 1414: # 776 "/usr/arm-linux-gnueabihf/include/c++/16/string_view" 3 1414: template 1414: inline basic_ostream<_CharT, _Traits>& 1414: operator<<(basic_ostream<_CharT, _Traits>& __os, 1414: basic_string_view<_CharT,_Traits> __str) 1414: { return __ostream_insert(__os, __str.data(), __str.size()); } 1414: 1414: 1414: 1414: 1414: using string_view = basic_string_view; 1414: using wstring_view = basic_string_view; 1414: 1414: using u8string_view = basic_string_view; 1414: 1414: using u16string_view = basic_string_view; 1414: using u32string_view = basic_string_view; 1414: 1414: 1414: 1414: template 1414: struct hash; 1414: 1414: template<> 1414: struct hash 1414: : public __hash_base 1414: { 1414: [[nodiscard]] 1414: size_t 1414: operator()(const string_view& __str) const noexcept 1414: { return std::_Hash_impl::hash(__str.data(), __str.length()); } 1414: }; 1414: 1414: template<> 1414: struct __is_fast_hash> : std::false_type 1414: { }; 1414: 1414: template<> 1414: struct hash 1414: : public __hash_base 1414: { 1414: [[nodiscard]] 1414: size_t 1414: operator()(const wstring_view& __s) const noexcept 1414: { return std::_Hash_impl::hash(__s.data(), 1414: __s.length() * sizeof(wchar_t)); } 1414: }; 1414: 1414: template<> 1414: struct __is_fast_hash> : std::false_type 1414: { }; 1414: 1414: 1414: template<> 1414: struct hash 1414: : public __hash_base 1414: { 1414: [[nodiscard]] 1414: size_t 1414: operator()(const u8string_view& __str) const noexcept 1414: { return std::_Hash_impl::hash(__str.data(), __str.length()); } 1414: }; 1414: 1414: template<> 1414: struct __is_fast_hash> : std::false_type 1414: { }; 1414: 1414: 1414: template<> 1414: struct hash 1414: : public __hash_base 1414: { 1414: [[nodiscard]] 1414: size_t 1414: operator()(const u16string_view& __s) const noexcept 1414: { return std::_Hash_impl::hash(__s.data(), 1414: __s.length() * sizeof(char16_t)); } 1414: }; 1414: 1414: template<> 1414: struct __is_fast_hash> : std::false_type 1414: { }; 1414: 1414: template<> 1414: struct hash 1414: : public __hash_base 1414: { 1414: [[nodiscard]] 1414: size_t 1414: operator()(const u32string_view& __s) const noexcept 1414: { return std::_Hash_impl::hash(__s.data(), 1414: __s.length() * sizeof(char32_t)); } 1414: }; 1414: 1414: template<> 1414: struct __is_fast_hash> : std::false_type 1414: { }; 1414: 1414: inline namespace literals 1414: { 1414: inline namespace string_view_literals 1414: { 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wliteral-suffix" 1414: inline constexpr basic_string_view 1414: operator""sv(const char* __str, size_t __len) noexcept 1414: { return basic_string_view{__str, __len}; } 1414: 1414: inline constexpr basic_string_view 1414: operator""sv(const wchar_t* __str, size_t __len) noexcept 1414: { return basic_string_view{__str, __len}; } 1414: 1414: 1414: inline constexpr basic_string_view 1414: operator""sv(const char8_t* __str, size_t __len) noexcept 1414: { return basic_string_view{__str, __len}; } 1414: 1414: 1414: inline constexpr basic_string_view 1414: operator""sv(const char16_t* __str, size_t __len) noexcept 1414: { return basic_string_view{__str, __len}; } 1414: 1414: inline constexpr basic_string_view 1414: operator""sv(const char32_t* __str, size_t __len) noexcept 1414: { return basic_string_view{__str, __len}; } 1414: 1414: #pragma GCC diagnostic pop 1414: } 1414: } 1414: 1414: 1414: namespace ranges 1414: { 1414: 1414: template 1414: inline constexpr bool 1414: enable_borrowed_range> = true; 1414: 1414: 1414: template 1414: inline constexpr bool 1414: enable_view> = true; 1414: } 1414: 1414: 1414: } 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/string_view.tcc" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/bits/string_view.tcc" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: constexpr typename basic_string_view<_CharT, _Traits>::size_type 1414: basic_string_view<_CharT, _Traits>:: 1414: find(const _CharT* __str, size_type __pos, size_type __n) const noexcept 1414: { 1414: ; 1414: 1414: if (__n == 0) 1414: return __pos <= _M_len ? __pos : npos; 1414: if (__pos >= _M_len) 1414: return npos; 1414: 1414: const _CharT __elem0 = __str[0]; 1414: const _CharT* __first = _M_str + __pos; 1414: const _CharT* const __last = _M_str + _M_len; 1414: size_type __len = _M_len - __pos; 1414: 1414: while (__len >= __n) 1414: { 1414: 1414: __first = traits_type::find(__first, __len - __n + 1, __elem0); 1414: if (!__first) 1414: return npos; 1414: 1414: 1414: 1414: if (traits_type::compare(__first, __str, __n) == 0) 1414: return __first - _M_str; 1414: __len = __last - ++__first; 1414: } 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr typename basic_string_view<_CharT, _Traits>::size_type 1414: basic_string_view<_CharT, _Traits>:: 1414: find(_CharT __c, size_type __pos) const noexcept 1414: { 1414: size_type __ret = npos; 1414: if (__pos < this->_M_len) 1414: { 1414: const size_type __n = this->_M_len - __pos; 1414: const _CharT* __p = traits_type::find(this->_M_str + __pos, __n, __c); 1414: if (__p) 1414: __ret = __p - this->_M_str; 1414: } 1414: return __ret; 1414: } 1414: 1414: template 1414: constexpr typename basic_string_view<_CharT, _Traits>::size_type 1414: basic_string_view<_CharT, _Traits>:: 1414: rfind(const _CharT* __str, size_type __pos, size_type __n) const noexcept 1414: { 1414: ; 1414: 1414: if (__n <= this->_M_len) 1414: { 1414: __pos = std::min(size_type(this->_M_len - __n), __pos); 1414: do 1414: { 1414: if (traits_type::compare(this->_M_str + __pos, __str, __n) == 0) 1414: return __pos; 1414: } 1414: while (__pos-- > 0); 1414: } 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr typename basic_string_view<_CharT, _Traits>::size_type 1414: basic_string_view<_CharT, _Traits>:: 1414: rfind(_CharT __c, size_type __pos) const noexcept 1414: { 1414: size_type __size = this->_M_len; 1414: if (__size > 0) 1414: { 1414: if (--__size > __pos) 1414: __size = __pos; 1414: for (++__size; __size-- > 0; ) 1414: if (traits_type::eq(this->_M_str[__size], __c)) 1414: return __size; 1414: } 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr typename basic_string_view<_CharT, _Traits>::size_type 1414: basic_string_view<_CharT, _Traits>:: 1414: find_first_of(const _CharT* __str, size_type __pos, 1414: size_type __n) const noexcept 1414: { 1414: ; 1414: for (; __n && __pos < this->_M_len; ++__pos) 1414: { 1414: const _CharT* __p = traits_type::find(__str, __n, 1414: this->_M_str[__pos]); 1414: if (__p) 1414: return __pos; 1414: } 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr typename basic_string_view<_CharT, _Traits>::size_type 1414: basic_string_view<_CharT, _Traits>:: 1414: find_last_of(const _CharT* __str, size_type __pos, 1414: size_type __n) const noexcept 1414: { 1414: ; 1414: size_type __size = this->size(); 1414: if (__size && __n) 1414: { 1414: if (--__size > __pos) 1414: __size = __pos; 1414: do 1414: { 1414: if (traits_type::find(__str, __n, this->_M_str[__size])) 1414: return __size; 1414: } 1414: while (__size-- != 0); 1414: } 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr typename basic_string_view<_CharT, _Traits>::size_type 1414: basic_string_view<_CharT, _Traits>:: 1414: find_first_not_of(const _CharT* __str, size_type __pos, 1414: size_type __n) const noexcept 1414: { 1414: ; 1414: for (; __pos < this->_M_len; ++__pos) 1414: if (!traits_type::find(__str, __n, this->_M_str[__pos])) 1414: return __pos; 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr typename basic_string_view<_CharT, _Traits>::size_type 1414: basic_string_view<_CharT, _Traits>:: 1414: find_first_not_of(_CharT __c, size_type __pos) const noexcept 1414: { 1414: for (; __pos < this->_M_len; ++__pos) 1414: if (!traits_type::eq(this->_M_str[__pos], __c)) 1414: return __pos; 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr typename basic_string_view<_CharT, _Traits>::size_type 1414: basic_string_view<_CharT, _Traits>:: 1414: find_last_not_of(const _CharT* __str, size_type __pos, 1414: size_type __n) const noexcept 1414: { 1414: ; 1414: size_type __size = this->_M_len; 1414: if (__size) 1414: { 1414: if (--__size > __pos) 1414: __size = __pos; 1414: do 1414: { 1414: if (!traits_type::find(__str, __n, this->_M_str[__size])) 1414: return __size; 1414: } 1414: while (__size--); 1414: } 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr typename basic_string_view<_CharT, _Traits>::size_type 1414: basic_string_view<_CharT, _Traits>:: 1414: find_last_not_of(_CharT __c, size_type __pos) const noexcept 1414: { 1414: size_type __size = this->_M_len; 1414: if (__size) 1414: { 1414: if (--__size > __pos) 1414: __size = __pos; 1414: do 1414: { 1414: if (!traits_type::eq(this->_M_str[__size], __c)) 1414: return __size; 1414: } 1414: while (__size--); 1414: } 1414: return npos; 1414: } 1414: 1414: 1414: } 1414: # 923 "/usr/arm-linux-gnueabihf/include/c++/16/string_view" 2 3 1414: # 52 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 2 3 1414: # 67 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: namespace __cxx11 { 1414: # 92 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: class basic_string 1414: { 1414: 1414: static_assert(is_trivially_copyable_v<_CharT> 1414: && is_trivially_default_constructible_v<_CharT> 1414: && is_standard_layout_v<_CharT>); 1414: static_assert(is_same_v<_CharT, typename _Traits::char_type>); 1414: static_assert(is_same_v<_CharT, typename _Alloc::value_type>); 1414: using _Char_alloc_type = _Alloc; 1414: 1414: 1414: 1414: 1414: 1414: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 1414: 1414: 1414: public: 1414: typedef _Traits traits_type; 1414: typedef typename _Traits::char_type value_type; 1414: typedef _Char_alloc_type allocator_type; 1414: typedef typename _Alloc_traits::size_type size_type; 1414: typedef typename _Alloc_traits::difference_type difference_type; 1414: typedef typename _Alloc_traits::reference reference; 1414: typedef typename _Alloc_traits::const_reference const_reference; 1414: typedef typename _Alloc_traits::pointer pointer; 1414: typedef typename _Alloc_traits::const_pointer const_pointer; 1414: typedef __gnu_cxx::__normal_iterator iterator; 1414: typedef __gnu_cxx::__normal_iterator 1414: const_iterator; 1414: typedef std::reverse_iterator const_reverse_iterator; 1414: typedef std::reverse_iterator reverse_iterator; 1414: 1414: 1414: static const size_type npos = static_cast(-1); 1414: 1414: protected: 1414: 1414: 1414: 1414: 1414: typedef const_iterator __const_iterator; 1414: 1414: 1414: private: 1414: static constexpr pointer 1414: _S_allocate(_Char_alloc_type& __a, size_type __n) 1414: { 1414: pointer __p = _Alloc_traits::allocate(__a, __n); 1414: 1414: 1414: 1414: if constexpr (!is_same_v<_Traits, char_traits<_CharT>>) 1414: if (std::__is_constant_evaluated()) 1414: 1414: for (size_type __i = 0; __i < __n; ++__i) 1414: std::construct_at(__builtin_addressof(__p[__i])); 1414: 1414: return __p; 1414: } 1414: 1414: 1414: 1414: typedef basic_string_view<_CharT, _Traits> __sv_type; 1414: 1414: template 1414: using _If_sv = enable_if_t< 1414: __and_, 1414: __not_>, 1414: __not_>>::value, 1414: _Res>; 1414: 1414: 1414: constexpr 1414: static __sv_type 1414: _S_to_string_view(__sv_type __svt) noexcept 1414: { return __svt; } 1414: 1414: 1414: 1414: 1414: 1414: struct __sv_wrapper 1414: { 1414: constexpr explicit 1414: __sv_wrapper(__sv_type __sv) noexcept : _M_sv(__sv) { } 1414: 1414: __sv_type _M_sv; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: explicit 1414: basic_string(__sv_wrapper __svw, const _Alloc& __a) 1414: : basic_string(__svw._M_sv.data(), __svw._M_sv.size(), __a) { } 1414: 1414: 1414: 1414: struct _Alloc_hider : allocator_type 1414: { 1414: 1414: 1414: 1414: 1414: constexpr 1414: _Alloc_hider(pointer __dat, const _Alloc& __a) 1414: : allocator_type(__a), _M_p(__dat) { } 1414: 1414: constexpr 1414: _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) 1414: : allocator_type(std::move(__a)), _M_p(__dat) { } 1414: 1414: 1414: pointer _M_p; 1414: }; 1414: 1414: _Alloc_hider _M_dataplus; 1414: size_type _M_string_length; 1414: 1414: enum { _S_local_capacity = 15 / sizeof(_CharT) }; 1414: 1414: union 1414: { 1414: _CharT _M_local_buf[_S_local_capacity + 1]; 1414: size_type _M_allocated_capacity; 1414: }; 1414: 1414: constexpr 1414: void 1414: _M_data(pointer __p) 1414: { _M_dataplus._M_p = __p; } 1414: 1414: constexpr 1414: void 1414: _M_length(size_type __length) 1414: { _M_string_length = __length; } 1414: 1414: constexpr 1414: pointer 1414: _M_data() const 1414: { return _M_dataplus._M_p; } 1414: 1414: constexpr 1414: pointer 1414: _M_local_data() 1414: { 1414: 1414: return std::pointer_traits::pointer_to(*_M_local_buf); 1414: 1414: 1414: 1414: } 1414: 1414: constexpr 1414: const_pointer 1414: _M_local_data() const 1414: { 1414: 1414: return std::pointer_traits::pointer_to(*_M_local_buf); 1414: 1414: 1414: 1414: } 1414: 1414: constexpr 1414: void 1414: _M_capacity(size_type __capacity) 1414: { _M_allocated_capacity = __capacity; } 1414: 1414: constexpr 1414: void 1414: _M_set_length(size_type __n) 1414: { 1414: traits_type::assign(_M_data()[__n], _CharT()); 1414: _M_length(__n); 1414: } 1414: 1414: constexpr 1414: bool 1414: _M_is_local() const 1414: { 1414: if (_M_data() == _M_local_data()) 1414: { 1414: if (_M_string_length > _S_local_capacity) 1414: __builtin_unreachable(); 1414: return true; 1414: } 1414: return false; 1414: } 1414: 1414: 1414: constexpr 1414: pointer 1414: _M_create(size_type&, size_type); 1414: 1414: constexpr 1414: void 1414: _M_dispose() 1414: { 1414: if (!_M_is_local()) 1414: _M_destroy(_M_allocated_capacity); 1414: } 1414: 1414: constexpr 1414: void 1414: _M_destroy(size_type __size) throw() 1414: { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } 1414: # 331 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: constexpr 1414: void 1414: _M_construct(_InIterator __beg, _InIterator __end, 1414: std::input_iterator_tag); 1414: 1414: 1414: 1414: template 1414: constexpr 1414: void 1414: _M_construct(_FwdIterator __beg, _FwdIterator __end, 1414: std::forward_iterator_tag); 1414: 1414: constexpr 1414: void 1414: _M_construct(size_type __req, _CharT __c); 1414: 1414: 1414: 1414: template 1414: constexpr 1414: void 1414: _M_construct(const _CharT *__c, size_type __n); 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: allocator_type& 1414: _M_get_allocator() 1414: { return _M_dataplus; } 1414: 1414: constexpr 1414: const allocator_type& 1414: _M_get_allocator() const 1414: { return _M_dataplus; } 1414: 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: void 1414: _M_init_local_buf() noexcept 1414: { 1414: 1414: if (std::is_constant_evaluated()) 1414: for (size_type __i = 0; __i <= _S_local_capacity; ++__i) 1414: _M_local_buf[__i] = _CharT(); 1414: 1414: } 1414: 1414: __attribute__((__always_inline__)) 1414: constexpr 1414: pointer 1414: _M_use_local_data() noexcept 1414: { 1414: 1414: _M_init_local_buf(); 1414: 1414: return _M_local_data(); 1414: } 1414: 1414: private: 1414: # 411 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: size_type 1414: _M_check(size_type __pos, const char* __s) const 1414: { 1414: if (__pos > this->size()) 1414: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") 1414: , 1414: __s, (size_t)__pos, (size_t)this->size()); 1414: return __pos; 1414: } 1414: 1414: constexpr 1414: void 1414: _M_check_length(size_type __n1, size_type __n2, const char* __s) const 1414: { 1414: if (this->max_size() - (this->size() - __n1) < __n2) 1414: __throw_length_error((__s)); 1414: } 1414: 1414: 1414: 1414: constexpr 1414: size_type 1414: _M_limit(size_type __pos, size_type __off) const noexcept 1414: { 1414: const bool __testoff = __off < this->size() - __pos; 1414: return __testoff ? __off : this->size() - __pos; 1414: } 1414: 1414: 1414: bool 1414: _M_disjunct(const _CharT* __s) const noexcept 1414: { 1414: return (less()(__s, _M_data()) 1414: || less()(_M_data() + this->size(), __s)); 1414: } 1414: 1414: 1414: 1414: constexpr 1414: static void 1414: _S_copy(_CharT* __d, const _CharT* __s, size_type __n) 1414: { 1414: if (__n == 1) 1414: traits_type::assign(*__d, *__s); 1414: else 1414: traits_type::copy(__d, __s, __n); 1414: } 1414: 1414: constexpr 1414: static void 1414: _S_move(_CharT* __d, const _CharT* __s, size_type __n) 1414: { 1414: if (__n == 1) 1414: traits_type::assign(*__d, *__s); 1414: else 1414: traits_type::move(__d, __s, __n); 1414: } 1414: 1414: constexpr 1414: static void 1414: _S_assign(_CharT* __d, size_type __n, _CharT __c) 1414: { 1414: if (__n == 1) 1414: traits_type::assign(*__d, __c); 1414: else 1414: traits_type::assign(__d, __n, __c); 1414: } 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: 1414: 1414: template 1414: constexpr 1414: static void 1414: _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) 1414: { 1414: 1414: using _IterBase = decltype(std::__niter_base(__k1)); 1414: if constexpr (__or_, 1414: is_same<_IterBase, const _CharT*>>::value) 1414: _S_copy(__p, std::__niter_base(__k1), __k2 - __k1); 1414: 1414: else if constexpr (requires { 1414: requires contiguous_iterator<_Iterator>; 1414: { std::to_address(__k1) } 1414: -> convertible_to; 1414: }) 1414: { 1414: const auto __d = __k2 - __k1; 1414: (void) (__k1 + __d); 1414: _S_copy(__p, std::to_address(__k1), static_cast(__d)); 1414: } 1414: 1414: else 1414: 1414: for (; __k1 != __k2; ++__k1, (void)++__p) 1414: traits_type::assign(*__p, static_cast<_CharT>(*__k1)); 1414: } 1414: #pragma GCC diagnostic pop 1414: # 553 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: static int 1414: _S_compare(size_type __n1, size_type __n2) noexcept 1414: { 1414: const difference_type __d = difference_type(__n1 - __n2); 1414: 1414: if (__d > __gnu_cxx::__numeric_traits::__max) 1414: return __gnu_cxx::__numeric_traits::__max; 1414: else if (__d < __gnu_cxx::__numeric_traits::__min) 1414: return __gnu_cxx::__numeric_traits::__min; 1414: else 1414: return int(__d); 1414: } 1414: 1414: constexpr 1414: void 1414: _M_assign(const basic_string&); 1414: 1414: constexpr 1414: void 1414: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 1414: size_type __len2); 1414: 1414: constexpr 1414: void 1414: _M_erase(size_type __pos, size_type __n); 1414: 1414: public: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string() 1414: noexcept(is_nothrow_default_constructible<_Alloc>::value) 1414: 1414: requires is_default_constructible_v<_Alloc> 1414: 1414: : _M_dataplus(_M_local_data()) 1414: { 1414: _M_init_local_buf(); 1414: _M_set_length(0); 1414: } 1414: 1414: 1414: 1414: 1414: constexpr 1414: explicit 1414: basic_string(const _Alloc& __a) noexcept 1414: : _M_dataplus(_M_local_data(), __a) 1414: { 1414: _M_init_local_buf(); 1414: _M_set_length(0); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string(const basic_string& __str) 1414: : _M_dataplus(_M_local_data(), 1414: _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) 1414: { 1414: _M_construct(__str._M_data(), __str.length()); 1414: } 1414: # 632 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string(const basic_string& __str, size_type __pos, 1414: const _Alloc& __a = _Alloc()) 1414: : _M_dataplus(_M_local_data(), __a) 1414: { 1414: const _CharT* __start = __str._M_data() 1414: + __str._M_check(__pos, "basic_string::basic_string"); 1414: _M_construct(__start, __start + __str._M_limit(__pos, npos), 1414: std::forward_iterator_tag()); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string(const basic_string& __str, size_type __pos, 1414: size_type __n) 1414: : _M_dataplus(_M_local_data()) 1414: { 1414: const _CharT* __start = __str._M_data() 1414: + __str._M_check(__pos, "basic_string::basic_string"); 1414: _M_construct(__start, __start + __str._M_limit(__pos, __n), 1414: std::forward_iterator_tag()); 1414: } 1414: # 667 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string(const basic_string& __str, size_type __pos, 1414: size_type __n, const _Alloc& __a) 1414: : _M_dataplus(_M_local_data(), __a) 1414: { 1414: const _CharT* __start 1414: = __str._M_data() + __str._M_check(__pos, "string::string"); 1414: _M_construct(__start, __start + __str._M_limit(__pos, __n), 1414: std::forward_iterator_tag()); 1414: } 1414: # 707 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string(const _CharT* __s, size_type __n, 1414: const _Alloc& __a = _Alloc()) 1414: : _M_dataplus(_M_local_data(), __a) 1414: { 1414: 1414: if (__s == 0 && __n > 0) 1414: std::__throw_logic_error(("basic_string: " "construction from null is not valid") 1414: ); 1414: _M_construct(__s, __s + __n, std::forward_iterator_tag()); 1414: } 1414: # 727 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template> 1414: 1414: constexpr 1414: basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) 1414: : _M_dataplus(_M_local_data(), __a) 1414: { 1414: 1414: if (__s == 0) 1414: std::__throw_logic_error(("basic_string: " "construction from null is not valid") 1414: ); 1414: const _CharT* __end = __s + traits_type::length(__s); 1414: _M_construct(__s, __end, forward_iterator_tag()); 1414: } 1414: # 750 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template> 1414: 1414: constexpr 1414: basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) 1414: : _M_dataplus(_M_local_data(), __a) 1414: { _M_construct(__n, __c); } 1414: # 765 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string(basic_string&& __str) noexcept 1414: : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) 1414: { 1414: if (__str._M_is_local()) 1414: { 1414: _M_init_local_buf(); 1414: traits_type::copy(_M_local_buf, __str._M_local_buf, 1414: __str.length() + 1); 1414: } 1414: else 1414: { 1414: _M_data(__str._M_data()); 1414: _M_capacity(__str._M_allocated_capacity); 1414: } 1414: 1414: 1414: 1414: 1414: _M_length(__str.length()); 1414: __str._M_data(__str._M_use_local_data()); 1414: __str._M_set_length(0); 1414: } 1414: # 821 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) 1414: : _M_dataplus(_M_local_data(), __a) 1414: { _M_construct(__l.begin(), __l.end(), std::forward_iterator_tag()); } 1414: 1414: constexpr 1414: basic_string(const basic_string& __str, const _Alloc& __a) 1414: : _M_dataplus(_M_local_data(), __a) 1414: { _M_construct(__str.begin(), __str.end(), std::forward_iterator_tag()); } 1414: 1414: constexpr 1414: basic_string(basic_string&& __str, const _Alloc& __a) 1414: noexcept(_Alloc_traits::_S_always_equal()) 1414: : _M_dataplus(_M_local_data(), __a) 1414: { 1414: if (__str._M_is_local()) 1414: { 1414: _M_init_local_buf(); 1414: traits_type::copy(_M_local_buf, __str._M_local_buf, 1414: __str.length() + 1); 1414: _M_length(__str.length()); 1414: __str._M_set_length(0); 1414: } 1414: else if (_Alloc_traits::_S_always_equal() 1414: || __str.get_allocator() == __a) 1414: { 1414: _M_data(__str._M_data()); 1414: _M_length(__str.length()); 1414: _M_capacity(__str._M_allocated_capacity); 1414: __str._M_data(__str._M_use_local_data()); 1414: __str._M_set_length(0); 1414: } 1414: else 1414: _M_construct(__str.begin(), __str.end(), std::forward_iterator_tag()); 1414: } 1414: # 870 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template> 1414: 1414: 1414: 1414: constexpr 1414: basic_string(_InputIterator __beg, _InputIterator __end, 1414: const _Alloc& __a = _Alloc()) 1414: : _M_dataplus(_M_local_data(), __a), _M_string_length(0) 1414: { 1414: 1414: _M_construct(__beg, __end, std::__iterator_category(__beg)); 1414: 1414: 1414: 1414: 1414: } 1414: # 896 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template>> 1414: constexpr 1414: basic_string(const _Tp& __t, size_type __pos, size_type __n, 1414: const _Alloc& __a = _Alloc()) 1414: : basic_string(_S_to_string_view(__t).substr(__pos, __n), __a) { } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template> 1414: constexpr 1414: explicit 1414: basic_string(const _Tp& __t, const _Alloc& __a = _Alloc()) 1414: : basic_string(__sv_wrapper(_S_to_string_view(__t)), __a) { } 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: ~basic_string() 1414: { _M_dispose(); } 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string& 1414: operator=(const basic_string& __str) 1414: { 1414: return this->assign(__str); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string& 1414: operator=(const _CharT* __s) 1414: { return this->assign(__s); } 1414: # 949 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: operator=(_CharT __c) 1414: { 1414: this->assign(1, __c); 1414: return *this; 1414: } 1414: # 967 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: operator=(basic_string&& __str) 1414: noexcept(_Alloc_traits::_S_nothrow_move()) 1414: { 1414: const bool __equal_allocs = _Alloc_traits::_S_always_equal() 1414: || _M_get_allocator() == __str._M_get_allocator(); 1414: if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() 1414: && !__equal_allocs) 1414: { 1414: 1414: _M_destroy(_M_allocated_capacity); 1414: _M_data(_M_local_data()); 1414: _M_set_length(0); 1414: } 1414: 1414: std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); 1414: 1414: if (__str._M_is_local()) 1414: { 1414: 1414: 1414: 1414: if (__builtin_expect(std::__addressof(__str) != this, true)) 1414: { 1414: if (__str.size()) 1414: this->_S_copy(_M_data(), __str._M_data(), __str.size()); 1414: _M_set_length(__str.size()); 1414: } 1414: } 1414: else if (_Alloc_traits::_S_propagate_on_move_assign() || __equal_allocs) 1414: { 1414: 1414: pointer __data = nullptr; 1414: size_type __capacity; 1414: if (!_M_is_local()) 1414: { 1414: if (__equal_allocs) 1414: { 1414: 1414: __data = _M_data(); 1414: __capacity = _M_allocated_capacity; 1414: } 1414: else 1414: _M_destroy(_M_allocated_capacity); 1414: } 1414: 1414: _M_data(__str._M_data()); 1414: _M_length(__str.length()); 1414: _M_capacity(__str._M_allocated_capacity); 1414: if (__data) 1414: { 1414: __str._M_data(__data); 1414: __str._M_capacity(__capacity); 1414: } 1414: else 1414: __str._M_data(__str._M_use_local_data()); 1414: } 1414: else 1414: _M_assign(__str); 1414: __str.clear(); 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string& 1414: operator=(initializer_list<_CharT> __l) 1414: { 1414: this->assign(__l.begin(), __l.size()); 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr 1414: _If_sv<_Tp, basic_string&> 1414: operator=(const _Tp& __svt) 1414: { return this->assign(__svt); } 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: operator __sv_type() const noexcept 1414: { return __sv_type(data(), size()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: iterator 1414: begin() noexcept 1414: { return iterator(_M_data()); } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_iterator 1414: begin() const noexcept 1414: { return const_iterator(_M_data()); } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: iterator 1414: end() noexcept 1414: { return iterator(_M_data() + this->size()); } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_iterator 1414: end() const noexcept 1414: { return const_iterator(_M_data() + this->size()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: reverse_iterator 1414: rbegin() noexcept 1414: { return reverse_iterator(this->end()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reverse_iterator 1414: rbegin() const noexcept 1414: { return const_reverse_iterator(this->end()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: reverse_iterator 1414: rend() noexcept 1414: { return reverse_iterator(this->begin()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reverse_iterator 1414: rend() const noexcept 1414: { return const_reverse_iterator(this->begin()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_iterator 1414: cbegin() const noexcept 1414: { return const_iterator(this->_M_data()); } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_iterator 1414: cend() const noexcept 1414: { return const_iterator(this->_M_data() + this->size()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reverse_iterator 1414: crbegin() const noexcept 1414: { return const_reverse_iterator(this->end()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reverse_iterator 1414: crend() const noexcept 1414: { return const_reverse_iterator(this->begin()); } 1414: 1414: 1414: public: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: size() const noexcept 1414: { 1414: size_type __sz = _M_string_length; 1414: if (__sz > max_size ()) 1414: __builtin_unreachable(); 1414: return __sz; 1414: } 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: length() const noexcept 1414: { return size(); } 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: max_size() const noexcept 1414: { 1414: const size_t __diffmax 1414: = __gnu_cxx::__numeric_traits::__max / sizeof(_CharT); 1414: const size_t __allocmax = _Alloc_traits::max_size(_M_get_allocator()); 1414: return (std::min)(__diffmax, __allocmax) - 1; 1414: } 1414: # 1223 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: void 1414: resize(size_type __n, _CharT __c); 1414: # 1237 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: void 1414: resize(size_type __n) 1414: { this->resize(__n, _CharT()); } 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: 1414: constexpr 1414: void 1414: shrink_to_fit() noexcept 1414: { reserve(); } 1414: #pragma GCC diagnostic pop 1414: # 1290 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: constexpr void 1414: __resize_and_overwrite(size_type __n, _Operation __op); 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: capacity() const noexcept 1414: { 1414: size_t __sz = _M_is_local() ? size_type(_S_local_capacity) 1414: : _M_allocated_capacity; 1414: if (__sz < _S_local_capacity || __sz > max_size ()) 1414: __builtin_unreachable(); 1414: return __sz; 1414: } 1414: # 1327 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: void 1414: reserve(size_type __res_arg); 1414: 1414: 1414: 1414: 1414: 1414: [[deprecated("use shrink_to_fit() instead")]] 1414: 1414: constexpr 1414: void 1414: reserve(); 1414: 1414: 1414: 1414: 1414: constexpr 1414: void 1414: clear() noexcept 1414: { _M_set_length(0); } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: bool 1414: empty() const noexcept 1414: { return _M_string_length == 0; } 1414: # 1369 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: operator[] (size_type __pos) const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__pos <= size())) std::__glibcxx_assert_fail(); } while (false); 1414: return _M_data()[__pos]; 1414: } 1414: # 1387 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: reference 1414: operator[](size_type __pos) 1414: { 1414: 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(__pos <= size())) std::__glibcxx_assert_fail(); } while (false); 1414: 1414: ; 1414: return _M_data()[__pos]; 1414: } 1414: # 1409 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: at(size_type __n) const 1414: { 1414: if (__n >= this->size()) 1414: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 1414: 1414: , 1414: __n, this->size()); 1414: return _M_data()[__n]; 1414: } 1414: # 1431 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: reference 1414: at(size_type __n) 1414: { 1414: if (__n >= size()) 1414: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 1414: 1414: , 1414: __n, this->size()); 1414: return _M_data()[__n]; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: reference 1414: front() noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return operator[](0); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: front() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return operator[](0); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: reference 1414: back() noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return operator[](this->size() - 1); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: back() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return operator[](this->size() - 1); 1414: } 1414: # 1499 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: operator+=(const basic_string& __str) 1414: { return this->append(__str); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string& 1414: operator+=(const _CharT* __s) 1414: { return this->append(__s); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string& 1414: operator+=(_CharT __c) 1414: { 1414: this->push_back(__c); 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string& 1414: operator+=(initializer_list<_CharT> __l) 1414: { return this->append(__l.begin(), __l.size()); } 1414: # 1545 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: constexpr 1414: _If_sv<_Tp, basic_string&> 1414: operator+=(const _Tp& __svt) 1414: { return this->append(__svt); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string& 1414: append(const basic_string& __str) 1414: { return this->append(__str._M_data(), __str.size()); } 1414: # 1575 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: append(const basic_string& __str, size_type __pos, size_type __n = npos) 1414: { return this->append(__str._M_data() 1414: + __str._M_check(__pos, "basic_string::append"), 1414: __str._M_limit(__pos, __n)); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string& 1414: append(const _CharT* __s, size_type __n) 1414: { 1414: ; 1414: _M_check_length(size_type(0), __n, "basic_string::append"); 1414: return _M_append(__s, __n); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string& 1414: append(const _CharT* __s) 1414: { 1414: ; 1414: const size_type __n = traits_type::length(__s); 1414: _M_check_length(size_type(0), __n, "basic_string::append"); 1414: return _M_append(__s, __n); 1414: } 1414: # 1620 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: append(size_type __n, _CharT __c) 1414: { return _M_replace_aux(this->size(), size_type(0), __n, __c); } 1414: # 1683 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: append(initializer_list<_CharT> __l) 1414: { return this->append(__l.begin(), __l.size()); } 1414: # 1698 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template> 1414: constexpr 1414: 1414: 1414: 1414: basic_string& 1414: append(_InputIterator __first, _InputIterator __last) 1414: { return this->replace(end(), end(), __first, __last); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr 1414: _If_sv<_Tp, basic_string&> 1414: append(const _Tp& __svt) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->append(__sv.data(), __sv.size()); 1414: } 1414: # 1730 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: constexpr 1414: _If_sv<_Tp, basic_string&> 1414: append(const _Tp& __svt, size_type __pos, size_type __n = npos) 1414: { 1414: __sv_type __sv = __svt; 1414: return _M_append(__sv.data() 1414: + std::__sv_check(__sv.size(), __pos, "basic_string::append"), 1414: std::__sv_limit(__sv.size(), __pos, __n)); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: void 1414: push_back(_CharT __c) 1414: { 1414: const size_type __size = this->size(); 1414: if (__size + 1 > this->capacity()) 1414: this->_M_mutate(__size, size_type(0), 0, size_type(1)); 1414: traits_type::assign(this->_M_data()[__size], __c); 1414: this->_M_set_length(__size + 1); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: basic_string& 1414: assign(const basic_string& __str) 1414: { 1414: 1414: if (_Alloc_traits::_S_propagate_on_copy_assign()) 1414: { 1414: if (!_Alloc_traits::_S_always_equal() && !_M_is_local() 1414: && _M_get_allocator() != __str._M_get_allocator()) 1414: { 1414: 1414: 1414: if (__str.size() <= _S_local_capacity) 1414: { 1414: _M_destroy(_M_allocated_capacity); 1414: _M_data(_M_use_local_data()); 1414: _M_set_length(0); 1414: } 1414: else 1414: { 1414: const auto __len = __str.size(); 1414: auto __alloc = __str._M_get_allocator(); 1414: 1414: auto __ptr = _S_allocate(__alloc, __len + 1); 1414: _M_destroy(_M_allocated_capacity); 1414: _M_data(__ptr); 1414: _M_capacity(__len); 1414: _M_set_length(__len); 1414: } 1414: } 1414: std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); 1414: } 1414: 1414: this->_M_assign(__str); 1414: return *this; 1414: } 1414: # 1808 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: assign(basic_string&& __str) 1414: noexcept(_Alloc_traits::_S_nothrow_move()) 1414: { 1414: 1414: 1414: return *this = std::move(__str); 1414: } 1414: # 1832 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: assign(const basic_string& __str, size_type __pos, size_type __n = npos) 1414: { return _M_replace(size_type(0), this->size(), __str._M_data() 1414: + __str._M_check(__pos, "basic_string::assign"), 1414: __str._M_limit(__pos, __n)); } 1414: # 1849 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: assign(const _CharT* __s, size_type __n) 1414: { 1414: ; 1414: return _M_replace(size_type(0), this->size(), __s, __n); 1414: } 1414: # 1866 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: assign(const _CharT* __s) 1414: { 1414: ; 1414: return _M_replace(size_type(0), this->size(), __s, 1414: traits_type::length(__s)); 1414: } 1414: # 1884 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: assign(size_type __n, _CharT __c) 1414: { return _M_replace_aux(size_type(0), this->size(), __n, __c); } 1414: # 1898 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: template> 1414: constexpr 1414: basic_string& 1414: assign(_InputIterator __first, _InputIterator __last) 1414: { 1414: using _IterTraits = iterator_traits<_InputIterator>; 1414: if constexpr (is_pointer::value 1414: && is_same::value) 1414: { 1414: ; 1414: return _M_replace(size_type(0), size(), 1414: std::__niter_base(__first), __last - __first); 1414: } 1414: 1414: else if constexpr (contiguous_iterator<_InputIterator> 1414: && is_same_v, 1414: _CharT>) 1414: { 1414: ; 1414: return _M_replace(size_type(0), size(), 1414: std::to_address(__first), __last - __first); 1414: } 1414: 1414: else 1414: return *this = basic_string(__first, __last, get_allocator()); 1414: } 1414: #pragma GCC diagnostic pop 1414: # 1961 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: assign(initializer_list<_CharT> __l) 1414: { 1414: 1414: 1414: const size_type __n = __l.size(); 1414: if (__n > capacity()) 1414: *this = basic_string(__l.begin(), __l.end(), get_allocator()); 1414: else 1414: { 1414: if (__n) 1414: _S_copy(_M_data(), __l.begin(), __n); 1414: _M_set_length(__n); 1414: } 1414: return *this; 1414: } 1414: # 1986 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: constexpr 1414: _If_sv<_Tp, basic_string&> 1414: assign(const _Tp& __svt) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->assign(__sv.data(), __sv.size()); 1414: } 1414: # 2002 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: constexpr 1414: _If_sv<_Tp, basic_string&> 1414: assign(const _Tp& __svt, size_type __pos, size_type __n = npos) 1414: { 1414: __sv_type __sv = __svt; 1414: return _M_replace(size_type(0), this->size(), 1414: __sv.data() 1414: + std::__sv_check(__sv.size(), __pos, "basic_string::assign"), 1414: std::__sv_limit(__sv.size(), __pos, __n)); 1414: } 1414: # 2031 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: iterator 1414: insert(const_iterator __p, size_type __n, _CharT __c) 1414: { 1414: ; 1414: const size_type __pos = __p - begin(); 1414: this->replace(__p, __p, __n, __c); 1414: return iterator(this->_M_data() + __pos); 1414: } 1414: # 2074 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template> 1414: constexpr 1414: iterator 1414: insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) 1414: { 1414: ; 1414: const size_type __pos = __p - begin(); 1414: this->replace(__p, __p, __beg, __end); 1414: return iterator(this->_M_data() + __pos); 1414: } 1414: # 2142 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: iterator 1414: insert(const_iterator __p, initializer_list<_CharT> __l) 1414: { return this->insert(__p, __l.begin(), __l.end()); } 1414: # 2170 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: insert(size_type __pos1, const basic_string& __str) 1414: { return this->replace(__pos1, size_type(0), 1414: __str._M_data(), __str.size()); } 1414: # 2194 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: insert(size_type __pos1, const basic_string& __str, 1414: size_type __pos2, size_type __n = npos) 1414: { return this->replace(__pos1, size_type(0), __str._M_data() 1414: + __str._M_check(__pos2, "basic_string::insert"), 1414: __str._M_limit(__pos2, __n)); } 1414: # 2218 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: insert(size_type __pos, const _CharT* __s, size_type __n) 1414: { return this->replace(__pos, size_type(0), __s, __n); } 1414: # 2238 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: insert(size_type __pos, const _CharT* __s) 1414: { 1414: ; 1414: return this->replace(__pos, size_type(0), __s, 1414: traits_type::length(__s)); 1414: } 1414: # 2263 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: insert(size_type __pos, size_type __n, _CharT __c) 1414: { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), 1414: size_type(0), __n, __c); } 1414: # 2282 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: iterator 1414: insert(__const_iterator __p, _CharT __c) 1414: { 1414: ; 1414: const size_type __pos = __p - begin(); 1414: _M_replace_aux(__pos, size_type(0), size_type(1), __c); 1414: return iterator(_M_data() + __pos); 1414: } 1414: # 2299 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: constexpr 1414: _If_sv<_Tp, basic_string&> 1414: insert(size_type __pos, const _Tp& __svt) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->insert(__pos, __sv.data(), __sv.size()); 1414: } 1414: # 2316 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: constexpr 1414: _If_sv<_Tp, basic_string&> 1414: insert(size_type __pos1, const _Tp& __svt, 1414: size_type __pos2, size_type __n = npos) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->replace(__pos1, size_type(0), 1414: __sv.data() 1414: + std::__sv_check(__sv.size(), __pos2, "basic_string::insert"), 1414: std::__sv_limit(__sv.size(), __pos2, __n)); 1414: } 1414: # 2345 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: erase(size_type __pos = 0, size_type __n = npos) 1414: { 1414: _M_check(__pos, "basic_string::erase"); 1414: if (__n == npos) 1414: this->_M_set_length(__pos); 1414: else if (__n != 0) 1414: this->_M_erase(__pos, _M_limit(__pos, __n)); 1414: return *this; 1414: } 1414: # 2365 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: iterator 1414: erase(__const_iterator __position) 1414: { 1414: 1414: ; 1414: const size_type __pos = __position - begin(); 1414: this->_M_erase(__pos, size_type(1)); 1414: return iterator(_M_data() + __pos); 1414: } 1414: # 2385 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: iterator 1414: erase(__const_iterator __first, __const_iterator __last) 1414: { 1414: 1414: ; 1414: const size_type __pos = __first - begin(); 1414: if (__last == end()) 1414: this->_M_set_length(__pos); 1414: else 1414: this->_M_erase(__pos, __last - __first); 1414: return iterator(this->_M_data() + __pos); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: void 1414: pop_back() noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 1414: _M_erase(size() - 1, 1); 1414: } 1414: # 2431 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: replace(size_type __pos, size_type __n, const basic_string& __str) 1414: { return this->replace(__pos, __n, __str._M_data(), __str.size()); } 1414: # 2454 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: replace(size_type __pos1, size_type __n1, const basic_string& __str, 1414: size_type __pos2, size_type __n2 = npos) 1414: { return this->replace(__pos1, __n1, __str._M_data() 1414: + __str._M_check(__pos2, "basic_string::replace"), 1414: __str._M_limit(__pos2, __n2)); } 1414: # 2480 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: replace(size_type __pos, size_type __n1, const _CharT* __s, 1414: size_type __n2) 1414: { 1414: ; 1414: return _M_replace(_M_check(__pos, "basic_string::replace"), 1414: _M_limit(__pos, __n1), __s, __n2); 1414: } 1414: # 2506 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: replace(size_type __pos, size_type __n1, const _CharT* __s) 1414: { 1414: ; 1414: return this->replace(__pos, __n1, __s, traits_type::length(__s)); 1414: } 1414: # 2531 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) 1414: { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), 1414: _M_limit(__pos, __n1), __n2, __c); } 1414: # 2550 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: replace(__const_iterator __i1, __const_iterator __i2, 1414: const basic_string& __str) 1414: { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } 1414: # 2571 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: replace(__const_iterator __i1, __const_iterator __i2, 1414: const _CharT* __s, size_type __n) 1414: { 1414: 1414: ; 1414: return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); 1414: } 1414: # 2594 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) 1414: { 1414: ; 1414: return this->replace(__i1, __i2, __s, traits_type::length(__s)); 1414: } 1414: # 2616 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: replace(__const_iterator __i1, __const_iterator __i2, size_type __n, 1414: _CharT __c) 1414: { 1414: 1414: ; 1414: return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); 1414: } 1414: # 2642 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template> 1414: constexpr 1414: basic_string& 1414: replace(const_iterator __i1, const_iterator __i2, 1414: _InputIterator __k1, _InputIterator __k2) 1414: { 1414: 1414: ; 1414: ; 1414: return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, 1414: std::__false_type()); 1414: } 1414: # 2675 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& 1414: replace(__const_iterator __i1, __const_iterator __i2, 1414: _CharT* __k1, _CharT* __k2) 1414: { 1414: 1414: ; 1414: ; 1414: return this->replace(__i1 - begin(), __i2 - __i1, 1414: __k1, __k2 - __k1); 1414: } 1414: 1414: constexpr 1414: basic_string& 1414: replace(__const_iterator __i1, __const_iterator __i2, 1414: const _CharT* __k1, const _CharT* __k2) 1414: { 1414: 1414: ; 1414: ; 1414: return this->replace(__i1 - begin(), __i2 - __i1, 1414: __k1, __k2 - __k1); 1414: } 1414: 1414: constexpr 1414: basic_string& 1414: replace(__const_iterator __i1, __const_iterator __i2, 1414: iterator __k1, iterator __k2) 1414: { 1414: 1414: ; 1414: ; 1414: return this->replace(__i1 - begin(), __i2 - __i1, 1414: __k1.base(), __k2 - __k1); 1414: } 1414: 1414: constexpr 1414: basic_string& 1414: replace(__const_iterator __i1, __const_iterator __i2, 1414: const_iterator __k1, const_iterator __k2) 1414: { 1414: 1414: ; 1414: ; 1414: return this->replace(__i1 - begin(), __i2 - __i1, 1414: __k1.base(), __k2 - __k1); 1414: } 1414: # 2762 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: basic_string& replace(const_iterator __i1, const_iterator __i2, 1414: initializer_list<_CharT> __l) 1414: { return this->replace(__i1, __i2, __l.begin(), __l.size()); } 1414: # 2776 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: constexpr 1414: _If_sv<_Tp, basic_string&> 1414: replace(size_type __pos, size_type __n, const _Tp& __svt) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->replace(__pos, __n, __sv.data(), __sv.size()); 1414: } 1414: # 2794 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: constexpr 1414: _If_sv<_Tp, basic_string&> 1414: replace(size_type __pos1, size_type __n1, const _Tp& __svt, 1414: size_type __pos2, size_type __n2 = npos) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->replace(__pos1, __n1, 1414: __sv.data() 1414: + std::__sv_check(__sv.size(), __pos2, "basic_string::replace"), 1414: std::__sv_limit(__sv.size(), __pos2, __n2)); 1414: } 1414: # 2816 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: constexpr 1414: _If_sv<_Tp, basic_string&> 1414: replace(const_iterator __i1, const_iterator __i2, const _Tp& __svt) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->replace(__i1 - begin(), __i2 - __i1, __sv); 1414: } 1414: 1414: 1414: private: 1414: template 1414: constexpr 1414: basic_string& 1414: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 1414: _Integer __n, _Integer __val, __true_type) 1414: { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } 1414: 1414: template 1414: constexpr 1414: basic_string& 1414: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 1414: _InputIterator __k1, _InputIterator __k2, 1414: __false_type); 1414: 1414: constexpr 1414: basic_string& 1414: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 1414: _CharT __c); 1414: 1414: __attribute__((__noinline__, __noclone__, __cold__)) void 1414: _M_replace_cold(pointer __p, size_type __len1, const _CharT* __s, 1414: const size_type __len2, const size_type __how_much); 1414: 1414: constexpr 1414: basic_string& 1414: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 1414: const size_type __len2); 1414: 1414: constexpr 1414: basic_string& 1414: _M_append(const _CharT* __s, size_type __n); 1414: 1414: public: 1414: # 2873 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: size_type 1414: copy(_CharT* __s, size_type __n, size_type __pos = 0) const; 1414: # 2884 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: constexpr 1414: void 1414: swap(basic_string& __s) noexcept; 1414: # 2895 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: const _CharT* 1414: c_str() const noexcept 1414: { return _M_data(); } 1414: # 2908 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: const _CharT* 1414: data() const noexcept 1414: { return _M_data(); } 1414: # 2920 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: _CharT* 1414: data() noexcept 1414: { return _M_data(); } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: allocator_type 1414: get_allocator() const noexcept 1414: { return _M_get_allocator(); } 1414: # 2946 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find(const _CharT* __s, size_type __pos, size_type __n) const 1414: noexcept; 1414: # 2961 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find(const basic_string& __str, size_type __pos = 0) const 1414: noexcept 1414: { return this->find(__str.data(), __pos, __str.size()); } 1414: # 2974 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: _If_sv<_Tp, size_type> 1414: find(const _Tp& __svt, size_type __pos = 0) const 1414: noexcept(is_same<_Tp, __sv_type>::value) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->find(__sv.data(), __pos, __sv.size()); 1414: } 1414: # 2995 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find(const _CharT* __s, size_type __pos = 0) const noexcept 1414: { 1414: ; 1414: return this->find(__s, __pos, traits_type::length(__s)); 1414: } 1414: # 3013 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find(_CharT __c, size_type __pos = 0) const noexcept; 1414: # 3027 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: rfind(const basic_string& __str, size_type __pos = npos) const 1414: noexcept 1414: { return this->rfind(__str.data(), __pos, __str.size()); } 1414: # 3040 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: _If_sv<_Tp, size_type> 1414: rfind(const _Tp& __svt, size_type __pos = npos) const 1414: noexcept(is_same<_Tp, __sv_type>::value) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->rfind(__sv.data(), __pos, __sv.size()); 1414: } 1414: # 3063 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: rfind(const _CharT* __s, size_type __pos, size_type __n) const 1414: noexcept; 1414: # 3078 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: rfind(const _CharT* __s, size_type __pos = npos) const 1414: { 1414: ; 1414: return this->rfind(__s, __pos, traits_type::length(__s)); 1414: } 1414: # 3096 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: rfind(_CharT __c, size_type __pos = npos) const noexcept; 1414: # 3111 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_first_of(const basic_string& __str, size_type __pos = 0) const 1414: noexcept 1414: { return this->find_first_of(__str.data(), __pos, __str.size()); } 1414: # 3125 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: _If_sv<_Tp, size_type> 1414: find_first_of(const _Tp& __svt, size_type __pos = 0) const 1414: noexcept(is_same<_Tp, __sv_type>::value) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->find_first_of(__sv.data(), __pos, __sv.size()); 1414: } 1414: # 3148 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 1414: noexcept; 1414: # 3163 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_first_of(const _CharT* __s, size_type __pos = 0) const 1414: noexcept 1414: { 1414: ; 1414: return this->find_first_of(__s, __pos, traits_type::length(__s)); 1414: } 1414: # 3184 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 1414: { return this->find(__c, __pos); } 1414: # 3200 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_last_of(const basic_string& __str, size_type __pos = npos) const 1414: noexcept 1414: { return this->find_last_of(__str.data(), __pos, __str.size()); } 1414: # 3214 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: _If_sv<_Tp, size_type> 1414: find_last_of(const _Tp& __svt, size_type __pos = npos) const 1414: noexcept(is_same<_Tp, __sv_type>::value) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->find_last_of(__sv.data(), __pos, __sv.size()); 1414: } 1414: # 3237 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 1414: noexcept; 1414: # 3252 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_last_of(const _CharT* __s, size_type __pos = npos) const 1414: noexcept 1414: { 1414: ; 1414: return this->find_last_of(__s, __pos, traits_type::length(__s)); 1414: } 1414: # 3273 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_last_of(_CharT __c, size_type __pos = npos) const noexcept 1414: { return this->rfind(__c, __pos); } 1414: # 3288 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_first_not_of(const basic_string& __str, size_type __pos = 0) const 1414: noexcept 1414: { return this->find_first_not_of(__str.data(), __pos, __str.size()); } 1414: # 3302 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: _If_sv<_Tp, size_type> 1414: find_first_not_of(const _Tp& __svt, size_type __pos = 0) const 1414: noexcept(is_same<_Tp, __sv_type>::value) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->find_first_not_of(__sv.data(), __pos, __sv.size()); 1414: } 1414: # 3325 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_first_not_of(const _CharT* __s, size_type __pos, 1414: size_type __n) const noexcept; 1414: # 3340 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_first_not_of(const _CharT* __s, size_type __pos = 0) const 1414: noexcept 1414: { 1414: ; 1414: return this->find_first_not_of(__s, __pos, traits_type::length(__s)); 1414: } 1414: # 3359 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_first_not_of(_CharT __c, size_type __pos = 0) const 1414: noexcept; 1414: # 3375 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_last_not_of(const basic_string& __str, size_type __pos = npos) const 1414: noexcept 1414: { return this->find_last_not_of(__str.data(), __pos, __str.size()); } 1414: # 3389 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: _If_sv<_Tp, size_type> 1414: find_last_not_of(const _Tp& __svt, size_type __pos = npos) const 1414: noexcept(is_same<_Tp, __sv_type>::value) 1414: { 1414: __sv_type __sv = __svt; 1414: return this->find_last_not_of(__sv.data(), __pos, __sv.size()); 1414: } 1414: # 3412 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_last_not_of(const _CharT* __s, size_type __pos, 1414: size_type __n) const noexcept; 1414: # 3427 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_last_not_of(const _CharT* __s, size_type __pos = npos) const 1414: noexcept 1414: { 1414: ; 1414: return this->find_last_not_of(__s, __pos, traits_type::length(__s)); 1414: } 1414: # 3446 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: find_last_not_of(_CharT __c, size_type __pos = npos) const 1414: noexcept; 1414: # 3463 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: basic_string 1414: substr(size_type __pos = 0, size_type __n = npos) const 1414: { return basic_string(*this, 1414: _M_check(__pos, "basic_string::substr"), __n); } 1414: # 3514 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: int 1414: compare(const basic_string& __str) const 1414: { 1414: const size_type __size = this->size(); 1414: const size_type __osize = __str.size(); 1414: const size_type __len = std::min(__size, __osize); 1414: 1414: int __r = traits_type::compare(_M_data(), __str.data(), __len); 1414: if (!__r) 1414: __r = _S_compare(__size, __osize); 1414: return __r; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] constexpr 1414: _If_sv<_Tp, int> 1414: compare(const _Tp& __svt) const 1414: noexcept(is_same<_Tp, __sv_type>::value) 1414: { 1414: __sv_type __sv = __svt; 1414: const size_type __size = this->size(); 1414: const size_type __osize = __sv.size(); 1414: const size_type __len = std::min(__size, __osize); 1414: 1414: int __r = traits_type::compare(_M_data(), __sv.data(), __len); 1414: if (!__r) 1414: __r = _S_compare(__size, __osize); 1414: return __r; 1414: } 1414: # 3559 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: _If_sv<_Tp, int> 1414: compare(size_type __pos, size_type __n, const _Tp& __svt) const 1414: { 1414: __sv_type __sv = __svt; 1414: return __sv_type(*this).substr(__pos, __n).compare(__sv); 1414: } 1414: # 3578 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: _If_sv<_Tp, int> 1414: compare(size_type __pos1, size_type __n1, const _Tp& __svt, 1414: size_type __pos2, size_type __n2 = npos) const 1414: { 1414: __sv_type __sv = __svt; 1414: return __sv_type(*this) 1414: .substr(__pos1, __n1).compare(__sv.substr(__pos2, __n2)); 1414: } 1414: # 3609 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: int 1414: compare(size_type __pos, size_type __n, const basic_string& __str) const 1414: { 1414: _M_check(__pos, "basic_string::compare"); 1414: __n = _M_limit(__pos, __n); 1414: const size_type __osize = __str.size(); 1414: const size_type __len = std::min(__n, __osize); 1414: int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); 1414: if (!__r) 1414: __r = _S_compare(__n, __osize); 1414: return __r; 1414: } 1414: # 3646 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: int 1414: compare(size_type __pos1, size_type __n1, const basic_string& __str, 1414: size_type __pos2, size_type __n2 = npos) const 1414: { 1414: _M_check(__pos1, "basic_string::compare"); 1414: __str._M_check(__pos2, "basic_string::compare"); 1414: __n1 = _M_limit(__pos1, __n1); 1414: __n2 = __str._M_limit(__pos2, __n2); 1414: const size_type __len = std::min(__n1, __n2); 1414: int __r = traits_type::compare(_M_data() + __pos1, 1414: __str.data() + __pos2, __len); 1414: if (!__r) 1414: __r = _S_compare(__n1, __n2); 1414: return __r; 1414: } 1414: # 3677 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: int 1414: compare(const _CharT* __s) const noexcept 1414: { 1414: ; 1414: const size_type __size = this->size(); 1414: const size_type __osize = traits_type::length(__s); 1414: const size_type __len = std::min(__size, __osize); 1414: int __r = traits_type::compare(_M_data(), __s, __len); 1414: if (!__r) 1414: __r = _S_compare(__size, __osize); 1414: return __r; 1414: } 1414: # 3712 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: int 1414: compare(size_type __pos, size_type __n1, const _CharT* __s) const 1414: { 1414: ; 1414: _M_check(__pos, "basic_string::compare"); 1414: __n1 = _M_limit(__pos, __n1); 1414: const size_type __osize = traits_type::length(__s); 1414: const size_type __len = std::min(__n1, __osize); 1414: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 1414: if (!__r) 1414: __r = _S_compare(__n1, __osize); 1414: return __r; 1414: } 1414: # 3751 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] constexpr 1414: int 1414: compare(size_type __pos, size_type __n1, const _CharT* __s, 1414: size_type __n2) const 1414: { 1414: ; 1414: _M_check(__pos, "basic_string::compare"); 1414: __n1 = _M_limit(__pos, __n1); 1414: const size_type __len = std::min(__n1, __n2); 1414: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 1414: if (!__r) 1414: __r = _S_compare(__n1, __n2); 1414: return __r; 1414: } 1414: 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: starts_with(basic_string_view<_CharT, _Traits> __x) const noexcept 1414: { return __sv_type(this->data(), this->size()).starts_with(__x); } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: starts_with(_CharT __x) const noexcept 1414: { return __sv_type(this->data(), this->size()).starts_with(__x); } 1414: 1414: [[nodiscard, __gnu__::__nonnull__]] 1414: constexpr bool 1414: starts_with(const _CharT* __x) const noexcept 1414: { return __sv_type(this->data(), this->size()).starts_with(__x); } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: ends_with(basic_string_view<_CharT, _Traits> __x) const noexcept 1414: { return __sv_type(this->data(), this->size()).ends_with(__x); } 1414: 1414: [[nodiscard]] 1414: constexpr bool 1414: ends_with(_CharT __x) const noexcept 1414: { return __sv_type(this->data(), this->size()).ends_with(__x); } 1414: 1414: [[nodiscard, __gnu__::__nonnull__]] 1414: constexpr bool 1414: ends_with(const _CharT* __x) const noexcept 1414: { return __sv_type(this->data(), this->size()).ends_with(__x); } 1414: # 3816 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template friend class basic_stringbuf; 1414: }; 1414: } 1414: 1414: } 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: namespace __cxx11 { 1414: template::value_type, 1414: typename _Allocator = allocator<_CharT>, 1414: typename = _RequireInputIter<_InputIterator>, 1414: typename = _RequireAllocator<_Allocator>> 1414: basic_string(_InputIterator, _InputIterator, _Allocator = _Allocator()) 1414: -> basic_string<_CharT, char_traits<_CharT>, _Allocator>; 1414: 1414: 1414: 1414: template, 1414: typename = _RequireAllocator<_Allocator>> 1414: basic_string(basic_string_view<_CharT, _Traits>, const _Allocator& = _Allocator()) 1414: -> basic_string<_CharT, _Traits, _Allocator>; 1414: 1414: template, 1414: typename = _RequireAllocator<_Allocator>> 1414: basic_string(basic_string_view<_CharT, _Traits>, 1414: typename basic_string<_CharT, _Traits, _Allocator>::size_type, 1414: typename basic_string<_CharT, _Traits, _Allocator>::size_type, 1414: const _Allocator& = _Allocator()) 1414: -> basic_string<_CharT, _Traits, _Allocator>; 1414: # 3862 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: inline _Str 1414: __str_concat(typename _Str::value_type const* __lhs, 1414: typename _Str::size_type __lhs_len, 1414: typename _Str::value_type const* __rhs, 1414: typename _Str::size_type __rhs_len, 1414: typename _Str::allocator_type const& __a) 1414: { 1414: typedef typename _Str::allocator_type allocator_type; 1414: typedef __gnu_cxx::__alloc_traits _Alloc_traits; 1414: _Str __str(_Alloc_traits::_S_select_on_copy(__a)); 1414: __str.reserve(__lhs_len + __rhs_len); 1414: __str.append(__lhs, __lhs_len); 1414: __str.append(__rhs, __rhs_len); 1414: return __str; 1414: } 1414: # 3890 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline basic_string<_CharT, _Traits, _Alloc> 1414: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1414: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1414: { 1414: typedef basic_string<_CharT, _Traits, _Alloc> _Str; 1414: return std::__str_concat<_Str>(__lhs.c_str(), __lhs.size(), 1414: __rhs.c_str(), __rhs.size(), 1414: __lhs.get_allocator()); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline basic_string<_CharT,_Traits,_Alloc> 1414: operator+(const _CharT* __lhs, 1414: const basic_string<_CharT,_Traits,_Alloc>& __rhs) 1414: { 1414: ; 1414: typedef basic_string<_CharT, _Traits, _Alloc> _Str; 1414: return std::__str_concat<_Str>(__lhs, _Traits::length(__lhs), 1414: __rhs.c_str(), __rhs.size(), 1414: __rhs.get_allocator()); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline basic_string<_CharT,_Traits,_Alloc> 1414: operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs) 1414: { 1414: typedef basic_string<_CharT, _Traits, _Alloc> _Str; 1414: return std::__str_concat<_Str>(__builtin_addressof(__lhs), 1, 1414: __rhs.c_str(), __rhs.size(), 1414: __rhs.get_allocator()); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline basic_string<_CharT, _Traits, _Alloc> 1414: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1414: const _CharT* __rhs) 1414: { 1414: ; 1414: typedef basic_string<_CharT, _Traits, _Alloc> _Str; 1414: return std::__str_concat<_Str>(__lhs.c_str(), __lhs.size(), 1414: __rhs, _Traits::length(__rhs), 1414: __lhs.get_allocator()); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline basic_string<_CharT, _Traits, _Alloc> 1414: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) 1414: { 1414: typedef basic_string<_CharT, _Traits, _Alloc> _Str; 1414: return std::__str_concat<_Str>(__lhs.c_str(), __lhs.size(), 1414: __builtin_addressof(__rhs), 1, 1414: __lhs.get_allocator()); 1414: } 1414: 1414: 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline basic_string<_CharT, _Traits, _Alloc> 1414: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 1414: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1414: { return std::move(__lhs.append(__rhs)); } 1414: 1414: template 1414: constexpr 1414: inline basic_string<_CharT, _Traits, _Alloc> 1414: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1414: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 1414: { return std::move(__rhs.insert(0, __lhs)); } 1414: 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline basic_string<_CharT, _Traits, _Alloc> 1414: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 1414: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 1414: { 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: 1414: 1414: bool __use_rhs = false; 1414: if constexpr (allocator_traits<_Alloc>::is_always_equal::value) 1414: __use_rhs = true; 1414: else if (__lhs.get_allocator() == __rhs.get_allocator()) 1414: __use_rhs = true; 1414: if (__use_rhs) 1414: { 1414: const auto __size = __lhs.size() + __rhs.size(); 1414: if (__size > __lhs.capacity() && __size <= __rhs.capacity()) 1414: return std::move(__rhs.insert(0, __lhs)); 1414: } 1414: return std::move(__lhs.append(__rhs)); 1414: #pragma GCC diagnostic pop 1414: } 1414: 1414: template 1414: [[__nodiscard__]] [[__nodiscard__]] constexpr 1414: inline basic_string<_CharT, _Traits, _Alloc> 1414: operator+(const _CharT* __lhs, 1414: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 1414: { return std::move(__rhs.insert(0, __lhs)); } 1414: 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline basic_string<_CharT, _Traits, _Alloc> 1414: operator+(_CharT __lhs, 1414: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 1414: { return std::move(__rhs.insert(0, 1, __lhs)); } 1414: 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline basic_string<_CharT, _Traits, _Alloc> 1414: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 1414: const _CharT* __rhs) 1414: { return std::move(__lhs.append(__rhs)); } 1414: 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline basic_string<_CharT, _Traits, _Alloc> 1414: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 1414: _CharT __rhs) 1414: { return std::move(__lhs.append(1, __rhs)); } 1414: # 4097 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline bool 1414: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1414: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1414: noexcept 1414: { 1414: return __lhs.size() == __rhs.size() 1414: && !_Traits::compare(__lhs.data(), __rhs.data(), __lhs.size()); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline bool 1414: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1414: const _CharT* __rhs) 1414: { 1414: return __lhs.size() == _Traits::length(__rhs) 1414: && !_Traits::compare(__lhs.data(), __rhs, __lhs.size()); 1414: } 1414: # 4132 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: [[nodiscard]] 1414: constexpr auto 1414: operator<=>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1414: const basic_string<_CharT, _Traits, _Alloc>& __rhs) noexcept 1414: -> decltype(__detail::__char_traits_cmp_cat<_Traits>(0)) 1414: { return __detail::__char_traits_cmp_cat<_Traits>(__lhs.compare(__rhs)); } 1414: # 4147 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: [[nodiscard]] 1414: constexpr auto 1414: operator<=>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1414: const _CharT* __rhs) noexcept 1414: -> decltype(__detail::__char_traits_cmp_cat<_Traits>(0)) 1414: { return __detail::__char_traits_cmp_cat<_Traits>(__lhs.compare(__rhs)); } 1414: # 4381 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: constexpr 1414: inline void 1414: swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, 1414: basic_string<_CharT, _Traits, _Alloc>& __rhs) 1414: noexcept(noexcept(__lhs.swap(__rhs))) 1414: { __lhs.swap(__rhs); } 1414: # 4402 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: operator>>(basic_istream<_CharT, _Traits>& __is, 1414: basic_string<_CharT, _Traits, _Alloc>& __str); 1414: 1414: template<> 1414: basic_istream& 1414: operator>>(basic_istream& __is, basic_string& __str); 1414: # 4420 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: inline basic_ostream<_CharT, _Traits>& 1414: operator<<(basic_ostream<_CharT, _Traits>& __os, 1414: const basic_string<_CharT, _Traits, _Alloc>& __str) 1414: { 1414: 1414: 1414: return __ostream_insert(__os, __str.data(), __str.size()); 1414: } 1414: # 4443 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: getline(basic_istream<_CharT, _Traits>& __is, 1414: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); 1414: # 4460 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: template 1414: inline basic_istream<_CharT, _Traits>& 1414: getline(basic_istream<_CharT, _Traits>& __is, 1414: basic_string<_CharT, _Traits, _Alloc>& __str) 1414: { return std::getline(__is, __str, __is.widen('\n')); } 1414: 1414: 1414: 1414: template 1414: inline basic_istream<_CharT, _Traits>& 1414: getline(basic_istream<_CharT, _Traits>&& __is, 1414: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 1414: { return std::getline(__is, __str, __delim); } 1414: 1414: 1414: template 1414: inline basic_istream<_CharT, _Traits>& 1414: getline(basic_istream<_CharT, _Traits>&& __is, 1414: basic_string<_CharT, _Traits, _Alloc>& __str) 1414: { return std::getline(__is, __str); } 1414: 1414: 1414: template<> 1414: basic_istream& 1414: getline(basic_istream& __in, basic_string& __str, 1414: char __delim); 1414: 1414: 1414: template<> 1414: basic_istream& 1414: getline(basic_istream& __in, basic_string& __str, 1414: wchar_t __delim); 1414: 1414: 1414: 1414: } 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/ext/string_conversions.h" 1 3 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/ext/string_conversions.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throw.h" 1 3 1414: # 45 "/usr/arm-linux-gnueabihf/include/c++/16/ext/string_conversions.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/cstdlib" 1 3 1414: # 80 "/usr/arm-linux-gnueabihf/include/c++/16/cstdlib" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wpedantic" 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/stdlib.h" 1 3 1414: # 26 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/libc-header-start.h" 1 3 1414: # 27 "/usr/arm-linux-gnueabihf/include/stdlib.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 1 3 1414: # 33 "/usr/arm-linux-gnueabihf/include/stdlib.h" 2 3 1414: 1414: extern "C" { 1414: # 44 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/waitflags.h" 1 3 1414: # 45 "/usr/arm-linux-gnueabihf/include/stdlib.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/waitstatus.h" 1 3 1414: # 46 "/usr/arm-linux-gnueabihf/include/stdlib.h" 2 3 1414: # 60 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/floatn.h" 1 3 1414: # 61 "/usr/arm-linux-gnueabihf/include/stdlib.h" 2 3 1414: 1414: 1414: typedef struct 1414: { 1414: int quot; 1414: int rem; 1414: } div_t; 1414: 1414: 1414: 1414: typedef struct 1414: { 1414: long int quot; 1414: long int rem; 1414: } ldiv_t; 1414: 1414: 1414: 1414: 1414: 1414: __extension__ typedef struct 1414: { 1414: long long int quot; 1414: long long int rem; 1414: } lldiv_t; 1414: # 102 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern size_t __ctype_get_mb_cur_max (void) noexcept (true) ; 1414: 1414: 1414: 1414: extern double atof (const char *__nptr) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; 1414: 1414: extern int atoi (const char *__nptr) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; 1414: 1414: extern long int atol (const char *__nptr) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; 1414: 1414: 1414: 1414: __extension__ extern long long int atoll (const char *__nptr) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; 1414: 1414: 1414: 1414: extern double strtod (const char *__restrict __nptr, 1414: char **__restrict __endptr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern float strtof (const char *__restrict __nptr, 1414: char **__restrict __endptr) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: extern long double strtold (const char *__restrict __nptr, 1414: char **__restrict __endptr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: # 145 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern _Float32 strtof32 (const char *__restrict __nptr, 1414: char **__restrict __endptr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern _Float64 strtof64 (const char *__restrict __nptr, 1414: char **__restrict __endptr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: # 163 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern _Float32x strtof32x (const char *__restrict __nptr, 1414: char **__restrict __endptr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: # 181 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern long int strtol (const char *__restrict __nptr, 1414: char **__restrict __endptr, int __base) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: extern unsigned long int strtoul (const char *__restrict __nptr, 1414: char **__restrict __endptr, int __base) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: __extension__ 1414: extern long long int strtoq (const char *__restrict __nptr, 1414: char **__restrict __endptr, int __base) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: __extension__ 1414: extern unsigned long long int strtouq (const char *__restrict __nptr, 1414: char **__restrict __endptr, int __base) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: __extension__ 1414: extern long long int strtoll (const char *__restrict __nptr, 1414: char **__restrict __endptr, int __base) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: __extension__ 1414: extern unsigned long long int strtoull (const char *__restrict __nptr, 1414: char **__restrict __endptr, int __base) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern long int strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtol") 1414: 1414: 1414: __attribute__ ((__nonnull__ (1))); 1414: extern unsigned long int strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoul") 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1))); 1414: 1414: __extension__ 1414: extern long long int strtoq (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoll") 1414: 1414: 1414: __attribute__ ((__nonnull__ (1))); 1414: __extension__ 1414: extern unsigned long long int strtouq (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoull") 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1))); 1414: 1414: __extension__ 1414: extern long long int strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoll") 1414: 1414: 1414: __attribute__ ((__nonnull__ (1))); 1414: __extension__ 1414: extern unsigned long long int strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoull") 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1))); 1414: # 282 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern int strfromd (char *__dest, size_t __size, const char *__format, 1414: double __f) 1414: noexcept (true) __attribute__ ((__nonnull__ (3))); 1414: 1414: extern int strfromf (char *__dest, size_t __size, const char *__format, 1414: float __f) 1414: noexcept (true) __attribute__ ((__nonnull__ (3))); 1414: 1414: extern int strfroml (char *__dest, size_t __size, const char *__format, 1414: long double __f) 1414: noexcept (true) __attribute__ ((__nonnull__ (3))); 1414: # 302 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern int strfromf32 (char *__dest, size_t __size, const char * __format, 1414: _Float32 __f) 1414: noexcept (true) __attribute__ ((__nonnull__ (3))); 1414: 1414: 1414: 1414: extern int strfromf64 (char *__dest, size_t __size, const char * __format, 1414: _Float64 __f) 1414: noexcept (true) __attribute__ ((__nonnull__ (3))); 1414: # 320 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern int strfromf32x (char *__dest, size_t __size, const char * __format, 1414: _Float32x __f) 1414: noexcept (true) __attribute__ ((__nonnull__ (3))); 1414: # 344 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern long int strtol_l (const char *__restrict __nptr, 1414: char **__restrict __endptr, int __base, 1414: locale_t __loc) noexcept (true) __attribute__ ((__nonnull__ (1, 4))); 1414: 1414: extern unsigned long int strtoul_l (const char *__restrict __nptr, 1414: char **__restrict __endptr, 1414: int __base, locale_t __loc) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 4))); 1414: 1414: __extension__ 1414: extern long long int strtoll_l (const char *__restrict __nptr, 1414: char **__restrict __endptr, int __base, 1414: locale_t __loc) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 4))); 1414: 1414: __extension__ 1414: extern unsigned long long int strtoull_l (const char *__restrict __nptr, 1414: char **__restrict __endptr, 1414: int __base, locale_t __loc) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 4))); 1414: 1414: 1414: 1414: 1414: 1414: extern long int strtol_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtol_l") 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1, 4))); 1414: extern unsigned long int strtoul_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoul_l") 1414: 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1, 4))); 1414: __extension__ 1414: extern long long int strtoll_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoll_l") 1414: 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1, 4))); 1414: __extension__ 1414: extern unsigned long long int strtoull_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoull_l") 1414: 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1, 4))); 1414: # 419 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern double strtod_l (const char *__restrict __nptr, 1414: char **__restrict __endptr, locale_t __loc) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 1414: 1414: extern float strtof_l (const char *__restrict __nptr, 1414: char **__restrict __endptr, locale_t __loc) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 1414: 1414: extern long double strtold_l (const char *__restrict __nptr, 1414: char **__restrict __endptr, 1414: locale_t __loc) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 1414: # 440 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern _Float32 strtof32_l (const char *__restrict __nptr, 1414: char **__restrict __endptr, 1414: locale_t __loc) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 1414: 1414: 1414: 1414: extern _Float64 strtof64_l (const char *__restrict __nptr, 1414: char **__restrict __endptr, 1414: locale_t __loc) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 1414: # 461 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern _Float32x strtof32x_l (const char *__restrict __nptr, 1414: char **__restrict __endptr, 1414: locale_t __loc) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 1414: # 484 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: __attribute__ ((__leaf__)) atoi (const char *__nptr) noexcept (true) 1414: { 1414: return (int) strtol (__nptr, (char **) __null, 10); 1414: } 1414: extern __inline __attribute__ ((__gnu_inline__)) long int 1414: __attribute__ ((__leaf__)) atol (const char *__nptr) noexcept (true) 1414: { 1414: return strtol (__nptr, (char **) __null, 10); 1414: } 1414: 1414: 1414: __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int 1414: __attribute__ ((__leaf__)) atoll (const char *__nptr) noexcept (true) 1414: { 1414: return strtoll (__nptr, (char **) __null, 10); 1414: } 1414: # 509 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern char *l64a (long int __n) noexcept (true) ; 1414: 1414: 1414: extern long int a64l (const char *__s) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/sys/types.h" 1 3 1414: # 27 "/usr/arm-linux-gnueabihf/include/sys/types.h" 3 1414: extern "C" { 1414: 1414: 1414: 1414: 1414: 1414: typedef __u_char u_char; 1414: typedef __u_short u_short; 1414: typedef __u_int u_int; 1414: typedef __u_long u_long; 1414: typedef __quad_t quad_t; 1414: typedef __u_quad_t u_quad_t; 1414: typedef __fsid_t fsid_t; 1414: 1414: 1414: typedef __loff_t loff_t; 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef __ino64_t ino_t; 1414: 1414: 1414: 1414: 1414: typedef __ino64_t ino64_t; 1414: 1414: 1414: 1414: 1414: typedef __dev_t dev_t; 1414: 1414: 1414: 1414: 1414: typedef __gid_t gid_t; 1414: 1414: 1414: 1414: 1414: typedef __mode_t mode_t; 1414: 1414: 1414: 1414: 1414: typedef __nlink_t nlink_t; 1414: 1414: 1414: 1414: 1414: typedef __uid_t uid_t; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef __off64_t off_t; 1414: 1414: 1414: 1414: 1414: typedef __off64_t off64_t; 1414: 1414: 1414: 1414: 1414: typedef __pid_t pid_t; 1414: 1414: 1414: 1414: 1414: 1414: typedef __id_t id_t; 1414: 1414: 1414: 1414: 1414: typedef __ssize_t ssize_t; 1414: 1414: 1414: 1414: 1414: 1414: typedef __daddr_t daddr_t; 1414: typedef __caddr_t caddr_t; 1414: 1414: 1414: 1414: 1414: 1414: typedef __key_t key_t; 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/clock_t.h" 1 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef __clock_t clock_t; 1414: # 127 "/usr/arm-linux-gnueabihf/include/sys/types.h" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/clockid_t.h" 1 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef __clockid_t clockid_t; 1414: # 129 "/usr/arm-linux-gnueabihf/include/sys/types.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/time_t.h" 1 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef __time64_t time_t; 1414: # 130 "/usr/arm-linux-gnueabihf/include/sys/types.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/timer_t.h" 1 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef __timer_t timer_t; 1414: # 131 "/usr/arm-linux-gnueabihf/include/sys/types.h" 2 3 1414: 1414: 1414: 1414: typedef __useconds_t useconds_t; 1414: 1414: 1414: 1414: typedef __suseconds_t suseconds_t; 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 1 3 1414: # 145 "/usr/arm-linux-gnueabihf/include/sys/types.h" 2 3 1414: 1414: 1414: 1414: typedef unsigned long int ulong; 1414: typedef unsigned short int ushort; 1414: typedef unsigned int uint; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef __uint8_t u_int8_t; 1414: typedef __uint16_t u_int16_t; 1414: typedef __uint32_t u_int32_t; 1414: typedef __uint64_t u_int64_t; 1414: 1414: 1414: typedef int register_t __attribute__ ((__mode__ (__word__))); 1414: # 176 "/usr/arm-linux-gnueabihf/include/sys/types.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/endian.h" 1 3 1414: # 35 "/usr/arm-linux-gnueabihf/include/endian.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/byteswap.h" 1 3 1414: # 33 "/usr/arm-linux-gnueabihf/include/bits/byteswap.h" 3 1414: static __inline __uint16_t 1414: __bswap_16 (__uint16_t __bsx) 1414: { 1414: 1414: return __builtin_bswap16 (__bsx); 1414: 1414: 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: static __inline __uint32_t 1414: __bswap_32 (__uint32_t __bsx) 1414: { 1414: 1414: return __builtin_bswap32 (__bsx); 1414: 1414: 1414: 1414: } 1414: # 69 "/usr/arm-linux-gnueabihf/include/bits/byteswap.h" 3 1414: __extension__ static __inline __uint64_t 1414: __bswap_64 (__uint64_t __bsx) 1414: { 1414: 1414: return __builtin_bswap64 (__bsx); 1414: 1414: 1414: 1414: } 1414: # 36 "/usr/arm-linux-gnueabihf/include/endian.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/uintn-identity.h" 1 3 1414: # 32 "/usr/arm-linux-gnueabihf/include/bits/uintn-identity.h" 3 1414: static __inline __uint16_t 1414: __uint16_identity (__uint16_t __x) 1414: { 1414: return __x; 1414: } 1414: 1414: static __inline __uint32_t 1414: __uint32_identity (__uint32_t __x) 1414: { 1414: return __x; 1414: } 1414: 1414: static __inline __uint64_t 1414: __uint64_identity (__uint64_t __x) 1414: { 1414: return __x; 1414: } 1414: # 37 "/usr/arm-linux-gnueabihf/include/endian.h" 2 3 1414: # 177 "/usr/arm-linux-gnueabihf/include/sys/types.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/sys/select.h" 1 3 1414: # 30 "/usr/arm-linux-gnueabihf/include/sys/select.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/select.h" 1 3 1414: # 31 "/usr/arm-linux-gnueabihf/include/sys/select.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/sigset_t.h" 1 3 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/__sigset_t.h" 1 3 1414: 1414: 1414: 1414: 1414: typedef struct 1414: { 1414: unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; 1414: } __sigset_t; 1414: # 5 "/usr/arm-linux-gnueabihf/include/bits/types/sigset_t.h" 2 3 1414: 1414: 1414: typedef __sigset_t sigset_t; 1414: # 34 "/usr/arm-linux-gnueabihf/include/sys/select.h" 2 3 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/struct_timeval.h" 1 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: struct timeval 1414: { 1414: 1414: __time64_t tv_sec; 1414: __suseconds64_t tv_usec; 1414: 1414: 1414: 1414: 1414: }; 1414: # 38 "/usr/arm-linux-gnueabihf/include/sys/select.h" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/struct_timespec.h" 1 3 1414: # 11 "/usr/arm-linux-gnueabihf/include/bits/types/struct_timespec.h" 3 1414: struct timespec 1414: { 1414: 1414: __time64_t tv_sec; 1414: # 27 "/usr/arm-linux-gnueabihf/include/bits/types/struct_timespec.h" 3 1414: long int tv_nsec; 1414: int: 32; 1414: 1414: 1414: }; 1414: # 40 "/usr/arm-linux-gnueabihf/include/sys/select.h" 2 3 1414: # 49 "/usr/arm-linux-gnueabihf/include/sys/select.h" 3 1414: typedef long int __fd_mask; 1414: # 59 "/usr/arm-linux-gnueabihf/include/sys/select.h" 3 1414: typedef struct 1414: { 1414: 1414: 1414: 1414: __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; 1414: 1414: 1414: 1414: 1414: 1414: } fd_set; 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef __fd_mask fd_mask; 1414: # 91 "/usr/arm-linux-gnueabihf/include/sys/select.h" 3 1414: extern "C" { 1414: # 108 "/usr/arm-linux-gnueabihf/include/sys/select.h" 3 1414: extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout) __asm__ ("" "__select64") 1414: 1414: 1414: 1414: 1414: ; 1414: # 134 "/usr/arm-linux-gnueabihf/include/sys/select.h" 3 1414: extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask) __asm__ ("" "__pselect64") 1414: 1414: 1414: 1414: 1414: 1414: ; 1414: # 153 "/usr/arm-linux-gnueabihf/include/sys/select.h" 3 1414: } 1414: # 180 "/usr/arm-linux-gnueabihf/include/sys/types.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: typedef __blksize_t blksize_t; 1414: # 205 "/usr/arm-linux-gnueabihf/include/sys/types.h" 3 1414: typedef __blkcnt64_t blkcnt_t; 1414: 1414: 1414: 1414: typedef __fsblkcnt64_t fsblkcnt_t; 1414: 1414: 1414: 1414: typedef __fsfilcnt64_t fsfilcnt_t; 1414: 1414: 1414: 1414: 1414: 1414: typedef __blkcnt64_t blkcnt64_t; 1414: typedef __fsblkcnt64_t fsblkcnt64_t; 1414: typedef __fsfilcnt64_t fsfilcnt64_t; 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/pthreadtypes.h" 1 3 1414: # 23 "/usr/arm-linux-gnueabihf/include/bits/pthreadtypes.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/thread-shared-types.h" 1 3 1414: # 44 "/usr/arm-linux-gnueabihf/include/bits/thread-shared-types.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/pthreadtypes-arch.h" 1 3 1414: # 23 "/usr/arm-linux-gnueabihf/include/bits/pthreadtypes-arch.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/wordsize.h" 1 3 1414: # 24 "/usr/arm-linux-gnueabihf/include/bits/pthreadtypes-arch.h" 2 3 1414: # 45 "/usr/arm-linux-gnueabihf/include/bits/thread-shared-types.h" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/atomic_wide_counter.h" 1 3 1414: # 25 "/usr/arm-linux-gnueabihf/include/bits/atomic_wide_counter.h" 3 1414: typedef union 1414: { 1414: __extension__ unsigned long long int __value64; 1414: struct 1414: { 1414: unsigned int __low; 1414: unsigned int __high; 1414: } __value32; 1414: } __atomic_wide_counter; 1414: # 47 "/usr/arm-linux-gnueabihf/include/bits/thread-shared-types.h" 2 3 1414: 1414: 1414: 1414: 1414: typedef struct __pthread_internal_list 1414: { 1414: struct __pthread_internal_list *__prev; 1414: struct __pthread_internal_list *__next; 1414: } __pthread_list_t; 1414: 1414: typedef struct __pthread_internal_slist 1414: { 1414: struct __pthread_internal_slist *__next; 1414: } __pthread_slist_t; 1414: # 76 "/usr/arm-linux-gnueabihf/include/bits/thread-shared-types.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/struct_mutex.h" 1 3 1414: # 27 "/usr/arm-linux-gnueabihf/include/bits/struct_mutex.h" 3 1414: struct __pthread_mutex_s 1414: { 1414: int __lock ; 1414: unsigned int __count; 1414: int __owner; 1414: # 44 "/usr/arm-linux-gnueabihf/include/bits/struct_mutex.h" 3 1414: int __kind; 1414: 1414: unsigned int __nusers; 1414: 1414: 1414: 1414: 1414: 1414: 1414: __extension__ union 1414: { 1414: int __spins; 1414: __pthread_slist_t __list; 1414: }; 1414: 1414: 1414: }; 1414: # 77 "/usr/arm-linux-gnueabihf/include/bits/thread-shared-types.h" 2 3 1414: # 89 "/usr/arm-linux-gnueabihf/include/bits/thread-shared-types.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/struct_rwlock.h" 1 3 1414: # 29 "/usr/arm-linux-gnueabihf/include/bits/struct_rwlock.h" 3 1414: struct __pthread_rwlock_arch_t 1414: { 1414: unsigned int __readers; 1414: unsigned int __writers; 1414: unsigned int __wrphase_futex; 1414: unsigned int __writers_futex; 1414: unsigned int __pad3; 1414: unsigned int __pad4; 1414: # 45 "/usr/arm-linux-gnueabihf/include/bits/struct_rwlock.h" 3 1414: unsigned char __flags; 1414: unsigned char __shared; 1414: unsigned char __pad1; 1414: unsigned char __pad2; 1414: 1414: int __cur_writer; 1414: }; 1414: # 90 "/usr/arm-linux-gnueabihf/include/bits/thread-shared-types.h" 2 3 1414: 1414: 1414: 1414: 1414: struct __pthread_cond_s 1414: { 1414: __atomic_wide_counter __wseq; 1414: __atomic_wide_counter __g1_start; 1414: unsigned int __g_size[2] ; 1414: unsigned int __g1_orig_size; 1414: unsigned int __wrefs; 1414: unsigned int __g_signals[2]; 1414: unsigned int __unused_initialized_1; 1414: unsigned int __unused_initialized_2; 1414: }; 1414: 1414: typedef unsigned int __tss_t; 1414: typedef unsigned long int __thrd_t; 1414: 1414: typedef struct 1414: { 1414: int __data ; 1414: } __once_flag; 1414: # 24 "/usr/arm-linux-gnueabihf/include/bits/pthreadtypes.h" 2 3 1414: 1414: 1414: 1414: typedef unsigned long int pthread_t; 1414: 1414: 1414: 1414: 1414: typedef union 1414: { 1414: char __size[4]; 1414: int __align; 1414: } pthread_mutexattr_t; 1414: 1414: 1414: 1414: 1414: typedef union 1414: { 1414: char __size[4]; 1414: int __align; 1414: } pthread_condattr_t; 1414: 1414: 1414: 1414: typedef unsigned int pthread_key_t; 1414: 1414: 1414: 1414: typedef int pthread_once_t; 1414: 1414: 1414: union pthread_attr_t 1414: { 1414: char __size[36]; 1414: long int __align; 1414: }; 1414: 1414: typedef union pthread_attr_t pthread_attr_t; 1414: 1414: 1414: 1414: 1414: typedef union 1414: { 1414: struct __pthread_mutex_s __data; 1414: char __size[24]; 1414: long int __align; 1414: } pthread_mutex_t; 1414: 1414: 1414: typedef union 1414: { 1414: struct __pthread_cond_s __data; 1414: char __size[48]; 1414: __extension__ long long int __align; 1414: } pthread_cond_t; 1414: 1414: 1414: 1414: 1414: 1414: typedef union 1414: { 1414: struct __pthread_rwlock_arch_t __data; 1414: char __size[32]; 1414: long int __align; 1414: } pthread_rwlock_t; 1414: 1414: typedef union 1414: { 1414: char __size[8]; 1414: long int __align; 1414: } pthread_rwlockattr_t; 1414: 1414: 1414: 1414: 1414: 1414: typedef volatile int pthread_spinlock_t; 1414: 1414: 1414: 1414: 1414: typedef union 1414: { 1414: char __size[20]; 1414: long int __align; 1414: } pthread_barrier_t; 1414: 1414: typedef union 1414: { 1414: char __size[4]; 1414: int __align; 1414: } pthread_barrierattr_t; 1414: # 228 "/usr/arm-linux-gnueabihf/include/sys/types.h" 2 3 1414: 1414: 1414: } 1414: # 519 "/usr/arm-linux-gnueabihf/include/stdlib.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern long int random (void) noexcept (true); 1414: 1414: 1414: extern void srandom (unsigned int __seed) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: extern char *initstate (unsigned int __seed, char *__statebuf, 1414: size_t __statelen) noexcept (true) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: extern char *setstate (char *__statebuf) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: struct random_data 1414: { 1414: int32_t *fptr; 1414: int32_t *rptr; 1414: int32_t *state; 1414: int rand_type; 1414: int rand_deg; 1414: int rand_sep; 1414: int32_t *end_ptr; 1414: }; 1414: 1414: extern int random_r (struct random_data *__restrict __buf, 1414: int32_t *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: extern int srandom_r (unsigned int __seed, struct random_data *__buf) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))); 1414: 1414: extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, 1414: size_t __statelen, 1414: struct random_data *__restrict __buf) 1414: noexcept (true) __attribute__ ((__nonnull__ (2, 4))); 1414: 1414: extern int setstate_r (char *__restrict __statebuf, 1414: struct random_data *__restrict __buf) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: 1414: 1414: extern int rand (void) noexcept (true); 1414: 1414: extern void srand (unsigned int __seed) noexcept (true); 1414: 1414: 1414: 1414: extern int rand_r (unsigned int *__seed) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern double drand48 (void) noexcept (true); 1414: extern double erand48 (unsigned short int __xsubi[3]) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern long int lrand48 (void) noexcept (true); 1414: extern long int nrand48 (unsigned short int __xsubi[3]) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern long int mrand48 (void) noexcept (true); 1414: extern long int jrand48 (unsigned short int __xsubi[3]) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern void srand48 (long int __seedval) noexcept (true); 1414: extern unsigned short int *seed48 (unsigned short int __seed16v[3]) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: extern void lcong48 (unsigned short int __param[7]) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: struct drand48_data 1414: { 1414: unsigned short int __x[3]; 1414: unsigned short int __old_x[3]; 1414: unsigned short int __c; 1414: unsigned short int __init; 1414: __extension__ unsigned long long int __a; 1414: 1414: }; 1414: 1414: 1414: extern int drand48_r (struct drand48_data *__restrict __buffer, 1414: double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: extern int erand48_r (unsigned short int __xsubi[3], 1414: struct drand48_data *__restrict __buffer, 1414: double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int lrand48_r (struct drand48_data *__restrict __buffer, 1414: long int *__restrict __result) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: extern int nrand48_r (unsigned short int __xsubi[3], 1414: struct drand48_data *__restrict __buffer, 1414: long int *__restrict __result) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int mrand48_r (struct drand48_data *__restrict __buffer, 1414: long int *__restrict __result) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: extern int jrand48_r (unsigned short int __xsubi[3], 1414: struct drand48_data *__restrict __buffer, 1414: long int *__restrict __result) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int srand48_r (long int __seedval, struct drand48_data *__buffer) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))); 1414: 1414: extern int seed48_r (unsigned short int __seed16v[3], 1414: struct drand48_data *__buffer) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: extern int lcong48_r (unsigned short int __param[7], 1414: struct drand48_data *__buffer) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern __uint32_t arc4random (void) 1414: noexcept (true) ; 1414: 1414: 1414: extern void arc4random_buf (void *__buf, size_t __size) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern __uint32_t arc4random_uniform (__uint32_t __upper_bound) 1414: noexcept (true) ; 1414: 1414: 1414: 1414: 1414: extern void *malloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) 1414: __attribute__ ((__alloc_size__ (1))) ; 1414: 1414: extern void *calloc (size_t __nmemb, size_t __size) 1414: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern void *realloc (void *__ptr, size_t __size) 1414: noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2))); 1414: 1414: 1414: extern void free (void *__ptr) noexcept (true); 1414: # 702 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern void free_sized (void *__ptr, size_t __size) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern void free_aligned_sized (void *__ptr, size_t __alignment, size_t __size) 1414: noexcept (true); 1414: # 717 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 1414: noexcept (true) __attribute__ ((__warn_unused_result__)) 1414: __attribute__ ((__alloc_size__ (2, 3))) 1414: __attribute__ ((__malloc__ (__builtin_free, 1))); 1414: 1414: 1414: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 1414: noexcept (true) __attribute__ ((__malloc__ (reallocarray, 1))); 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/alloca.h" 1 3 1414: # 24 "/usr/arm-linux-gnueabihf/include/alloca.h" 3 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 1 3 1414: # 25 "/usr/arm-linux-gnueabihf/include/alloca.h" 2 3 1414: 1414: extern "C" { 1414: 1414: 1414: 1414: 1414: 1414: extern void *alloca (size_t __size) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: } 1414: # 729 "/usr/arm-linux-gnueabihf/include/stdlib.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: extern void *valloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) 1414: __attribute__ ((__alloc_size__ (1))) ; 1414: 1414: 1414: 1414: 1414: extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))) ; 1414: 1414: 1414: 1414: 1414: extern void *aligned_alloc (size_t __alignment, size_t __size) 1414: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1))) 1414: __attribute__ ((__alloc_size__ (2))) ; 1414: 1414: 1414: 1414: extern void abort (void) noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); 1414: 1414: 1414: 1414: extern int atexit (void (*__func) (void)) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: extern "C++" int at_quick_exit (void (*__func) (void)) 1414: noexcept (true) __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); 1414: # 771 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: extern void exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); 1414: 1414: 1414: 1414: 1414: 1414: extern void quick_exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); 1414: 1414: 1414: 1414: 1414: 1414: extern void _Exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); 1414: 1414: 1414: 1414: 1414: extern char *getenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))) ; 1414: 1414: 1414: 1414: 1414: extern char *secure_getenv (const char *__name) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))) ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int putenv (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: extern int setenv (const char *__name, const char *__value, int __replace) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: extern int unsetenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int clearenv (void) noexcept (true); 1414: # 836 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern char *mktemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: # 852 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern int mkstemp (char *__template) __asm__ ("" "mkstemp64") 1414: __attribute__ ((__nonnull__ (1))) ; 1414: 1414: 1414: 1414: 1414: 1414: extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; 1414: # 874 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern int mkstemps (char *__template, int __suffixlen) __asm__ ("" "mkstemps64") 1414: __attribute__ ((__nonnull__ (1))) ; 1414: 1414: 1414: 1414: 1414: 1414: extern int mkstemps64 (char *__template, int __suffixlen) 1414: __attribute__ ((__nonnull__ (1))) ; 1414: # 892 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern char *mkdtemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))) ; 1414: # 906 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern int mkostemp (char *__template, int __flags) __asm__ ("" "mkostemp64") 1414: __attribute__ ((__nonnull__ (1))) ; 1414: 1414: 1414: 1414: 1414: 1414: extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; 1414: # 927 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern int mkostemps (char *__template, int __suffixlen, int __flags) __asm__ ("" "mkostemps64") 1414: 1414: __attribute__ ((__nonnull__ (1))) ; 1414: 1414: 1414: 1414: 1414: 1414: extern int mkostemps64 (char *__template, int __suffixlen, int __flags) 1414: __attribute__ ((__nonnull__ (1))) ; 1414: # 945 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern int system (const char *__command) ; 1414: 1414: 1414: 1414: 1414: 1414: extern char *canonicalize_file_name (const char *__name) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__malloc__)) 1414: __attribute__ ((__malloc__ (__builtin_free, 1))) ; 1414: # 962 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern char *realpath (const char *__restrict __name, 1414: char *__restrict __resolved) noexcept (true) ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef int (*__compar_fn_t) (const void *, const void *); 1414: 1414: 1414: typedef __compar_fn_t comparison_fn_t; 1414: 1414: 1414: 1414: typedef int (*__compar_d_fn_t) (const void *, const void *, void *); 1414: 1414: 1414: 1414: 1414: extern void *bsearch (const void *__key, const void *__base, 1414: size_t __nmemb, size_t __size, __compar_fn_t __compar) 1414: __attribute__ ((__nonnull__ (1, 2, 5))) ; 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/stdlib-bsearch.h" 1 3 1414: # 19 "/usr/arm-linux-gnueabihf/include/bits/stdlib-bsearch.h" 3 1414: extern __inline __attribute__ ((__gnu_inline__)) void * 1414: bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, 1414: __compar_fn_t __compar) 1414: { 1414: const void *__p; 1414: int __comparison; 1414: 1414: while (__nmemb) 1414: { 1414: __p = (const void *) (((const char *) __base) + ((__nmemb >> 1) * __size)); 1414: __comparison = (*__compar) (__key, __p); 1414: if (__comparison == 0) 1414: { 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wcast-qual" 1414: 1414: return (void *) __p; 1414: 1414: #pragma GCC diagnostic pop 1414: 1414: } 1414: if (__comparison > 0) 1414: { 1414: __base = ((const char *) __p) + __size; 1414: --__nmemb; 1414: } 1414: __nmemb >>= 1; 1414: } 1414: 1414: return __null; 1414: } 1414: # 988 "/usr/arm-linux-gnueabihf/include/stdlib.h" 2 3 1414: # 998 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern void qsort (void *__base, size_t __nmemb, size_t __size, 1414: __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); 1414: 1414: extern void qsort_r (void *__base, size_t __nmemb, size_t __size, 1414: __compar_d_fn_t __compar, void *__arg) 1414: __attribute__ ((__nonnull__ (1, 4))); 1414: 1414: 1414: 1414: 1414: extern int abs (int __x) noexcept (true) __attribute__ ((__const__)) ; 1414: extern long int labs (long int __x) noexcept (true) __attribute__ ((__const__)) ; 1414: 1414: 1414: __extension__ extern long long int llabs (long long int __x) 1414: noexcept (true) __attribute__ ((__const__)) ; 1414: 1414: 1414: 1414: extern unsigned int uabs (int __x) noexcept (true) __attribute__ ((__const__)) ; 1414: extern unsigned long int ulabs (long int __x) noexcept (true) __attribute__ ((__const__)) ; 1414: __extension__ extern unsigned long long int ullabs (long long int __x) 1414: noexcept (true) __attribute__ ((__const__)) ; 1414: 1414: 1414: 1414: 1414: 1414: extern div_t div (int __numer, int __denom) 1414: noexcept (true) __attribute__ ((__const__)) ; 1414: extern ldiv_t ldiv (long int __numer, long int __denom) 1414: noexcept (true) __attribute__ ((__const__)) ; 1414: 1414: 1414: __extension__ extern lldiv_t lldiv (long long int __numer, 1414: long long int __denom) 1414: noexcept (true) __attribute__ ((__const__)) ; 1414: # 1046 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, 1414: int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; 1414: 1414: 1414: 1414: 1414: extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, 1414: int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; 1414: 1414: 1414: 1414: 1414: extern char *gcvt (double __value, int __ndigit, char *__buf) 1414: noexcept (true) __attribute__ ((__nonnull__ (3))) ; 1414: 1414: 1414: 1414: 1414: extern char *qecvt (long double __value, int __ndigit, 1414: int *__restrict __decpt, int *__restrict __sign) 1414: noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; 1414: extern char *qfcvt (long double __value, int __ndigit, 1414: int *__restrict __decpt, int *__restrict __sign) 1414: noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; 1414: extern char *qgcvt (long double __value, int __ndigit, char *__buf) 1414: noexcept (true) __attribute__ ((__nonnull__ (3))) ; 1414: 1414: 1414: 1414: 1414: extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, 1414: int *__restrict __sign, char *__restrict __buf, 1414: size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); 1414: extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, 1414: int *__restrict __sign, char *__restrict __buf, 1414: size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); 1414: 1414: extern int qecvt_r (long double __value, int __ndigit, 1414: int *__restrict __decpt, int *__restrict __sign, 1414: char *__restrict __buf, size_t __len) 1414: noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); 1414: extern int qfcvt_r (long double __value, int __ndigit, 1414: int *__restrict __decpt, int *__restrict __sign, 1414: char *__restrict __buf, size_t __len) 1414: noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); 1414: 1414: 1414: 1414: 1414: 1414: extern int mblen (const char *__s, size_t __n) noexcept (true); 1414: 1414: 1414: extern int mbtowc (wchar_t *__restrict __pwc, 1414: const char *__restrict __s, size_t __n) noexcept (true); 1414: 1414: 1414: extern int wctomb (char *__s, wchar_t __wchar) noexcept (true); 1414: 1414: 1414: 1414: extern size_t mbstowcs (wchar_t *__restrict __pwcs, 1414: const char *__restrict __s, size_t __n) noexcept (true) 1414: __attribute__ ((__access__ (__read_only__, 2))); 1414: 1414: extern size_t wcstombs (char *__restrict __s, 1414: const wchar_t *__restrict __pwcs, size_t __n) 1414: noexcept (true) 1414: __attribute__ ((__access__ (__write_only__, 1, 3))) 1414: __attribute__ ((__access__ (__read_only__, 2))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int rpmatch (const char *__response) noexcept (true) __attribute__ ((__nonnull__ (1))) ; 1414: # 1133 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern int getsubopt (char **__restrict __optionp, 1414: char *const *__restrict __tokens, 1414: char **__restrict __valuep) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2, 3))) ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int posix_openpt (int __oflag) ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int grantpt (int __fd) noexcept (true); 1414: 1414: 1414: 1414: extern int unlockpt (int __fd) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern char *ptsname (int __fd) noexcept (true) ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int ptsname_r (int __fd, char *__buf, size_t __buflen) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); 1414: 1414: 1414: extern int getpt (void); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int getloadavg (double __loadavg[], int __nelem) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: # 1199 "/usr/arm-linux-gnueabihf/include/stdlib.h" 3 1414: extern size_t memalignment (const void *__p); 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/stdlib-float.h" 1 3 1414: # 24 "/usr/arm-linux-gnueabihf/include/bits/stdlib-float.h" 3 1414: extern __inline __attribute__ ((__gnu_inline__)) double 1414: __attribute__ ((__leaf__)) atof (const char *__nptr) noexcept (true) 1414: { 1414: return strtod (__nptr, (char **) __null); 1414: } 1414: # 1203 "/usr/arm-linux-gnueabihf/include/stdlib.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/floatn.h" 1 3 1414: # 1210 "/usr/arm-linux-gnueabihf/include/stdlib.h" 2 3 1414: 1414: 1414: 1414: 1414: } 1414: # 84 "/usr/arm-linux-gnueabihf/include/c++/16/cstdlib" 2 3 1414: 1414: 1414: # 85 "/usr/arm-linux-gnueabihf/include/c++/16/cstdlib" 3 1414: #pragma GCC diagnostic pop 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/std_abs.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/bits/std_abs.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wpedantic" 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: # 52 "/usr/arm-linux-gnueabihf/include/c++/16/bits/std_abs.h" 3 1414: extern "C++" 1414: { 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: using ::abs; 1414: 1414: 1414: inline long 1414: abs(long __i) { return __builtin_labs(__i); } 1414: 1414: 1414: 1414: inline long long 1414: abs(long long __x) { return __builtin_llabs (__x); } 1414: # 76 "/usr/arm-linux-gnueabihf/include/c++/16/bits/std_abs.h" 3 1414: inline constexpr double 1414: abs(double __x) 1414: { return __builtin_fabs(__x); } 1414: 1414: inline constexpr float 1414: abs(float __x) 1414: { return __builtin_fabsf(__x); } 1414: 1414: inline constexpr long double 1414: abs(long double __x) 1414: { return __builtin_fabsl(__x); } 1414: # 163 "/usr/arm-linux-gnueabihf/include/c++/16/bits/std_abs.h" 3 1414: 1414: } 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 88 "/usr/arm-linux-gnueabihf/include/c++/16/cstdlib" 2 3 1414: # 131 "/usr/arm-linux-gnueabihf/include/c++/16/cstdlib" 3 1414: extern "C++" 1414: { 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: using ::div_t; 1414: using ::ldiv_t; 1414: 1414: using ::abort; 1414: 1414: using ::aligned_alloc; 1414: 1414: using ::atexit; 1414: 1414: 1414: using ::at_quick_exit; 1414: 1414: 1414: using ::atof; 1414: using ::atoi; 1414: using ::atol; 1414: using ::bsearch; 1414: using ::calloc; 1414: using ::div; 1414: using ::exit; 1414: using ::free; 1414: using ::getenv; 1414: using ::labs; 1414: using ::ldiv; 1414: using ::malloc; 1414: 1414: using ::mblen; 1414: using ::mbstowcs; 1414: using ::mbtowc; 1414: 1414: using ::qsort; 1414: 1414: 1414: using ::quick_exit; 1414: 1414: 1414: using ::rand; 1414: using ::realloc; 1414: using ::srand; 1414: using ::strtod; 1414: using ::strtol; 1414: using ::strtoul; 1414: using ::system; 1414: 1414: using ::wcstombs; 1414: using ::wctomb; 1414: 1414: 1414: 1414: inline ldiv_t 1414: div(long __i, long __j) noexcept { return ldiv(__i, __j); } 1414: 1414: 1414: 1414: 1414: } 1414: # 205 "/usr/arm-linux-gnueabihf/include/c++/16/cstdlib" 3 1414: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: using ::lldiv_t; 1414: 1414: 1414: 1414: 1414: 1414: using ::_Exit; 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: using ::llabs; 1414: 1414: inline lldiv_t 1414: div(long long __n, long long __d) 1414: { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } 1414: 1414: using ::lldiv; 1414: #pragma GCC diagnostic pop 1414: # 240 "/usr/arm-linux-gnueabihf/include/c++/16/cstdlib" 3 1414: using ::atoll; 1414: using ::strtoll; 1414: using ::strtoull; 1414: 1414: using ::strtof; 1414: using ::strtold; 1414: 1414: 1414: } 1414: 1414: namespace std 1414: { 1414: 1414: using ::__gnu_cxx::lldiv_t; 1414: 1414: using ::__gnu_cxx::_Exit; 1414: 1414: using ::__gnu_cxx::llabs; 1414: using ::__gnu_cxx::div; 1414: using ::__gnu_cxx::lldiv; 1414: 1414: using ::__gnu_cxx::atoll; 1414: using ::__gnu_cxx::strtof; 1414: using ::__gnu_cxx::strtoll; 1414: using ::__gnu_cxx::strtoull; 1414: using ::__gnu_cxx::strtold; 1414: } 1414: # 284 "/usr/arm-linux-gnueabihf/include/c++/16/cstdlib" 3 1414: } 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/ext/string_conversions.h" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/cstdio" 1 3 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/cstdio" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/stdio.h" 1 3 1414: # 28 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/libc-header-start.h" 1 3 1414: # 29 "/usr/arm-linux-gnueabihf/include/stdio.h" 2 3 1414: 1414: extern "C" { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/stdio.h" 2 3 1414: 1414: 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stdarg.h" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/stdio.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/__fpos_t.h" 1 3 1414: # 10 "/usr/arm-linux-gnueabihf/include/bits/types/__fpos_t.h" 3 1414: typedef struct _G_fpos_t 1414: { 1414: __off_t __pos; 1414: __mbstate_t __state; 1414: } __fpos_t; 1414: # 45 "/usr/arm-linux-gnueabihf/include/stdio.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/__fpos64_t.h" 1 3 1414: # 10 "/usr/arm-linux-gnueabihf/include/bits/types/__fpos64_t.h" 3 1414: typedef struct _G_fpos64_t 1414: { 1414: __off64_t __pos; 1414: __mbstate_t __state; 1414: } __fpos64_t; 1414: # 46 "/usr/arm-linux-gnueabihf/include/stdio.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/struct_FILE.h" 1 3 1414: # 35 "/usr/arm-linux-gnueabihf/include/bits/types/struct_FILE.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/wordsize.h" 1 3 1414: # 36 "/usr/arm-linux-gnueabihf/include/bits/types/struct_FILE.h" 2 3 1414: 1414: struct _IO_FILE; 1414: struct _IO_marker; 1414: struct _IO_codecvt; 1414: struct _IO_wide_data; 1414: 1414: 1414: 1414: 1414: typedef void _IO_lock_t; 1414: 1414: 1414: 1414: 1414: 1414: struct _IO_FILE 1414: { 1414: int _flags; 1414: 1414: 1414: char *_IO_read_ptr; 1414: char *_IO_read_end; 1414: char *_IO_read_base; 1414: char *_IO_write_base; 1414: char *_IO_write_ptr; 1414: char *_IO_write_end; 1414: char *_IO_buf_base; 1414: char *_IO_buf_end; 1414: 1414: 1414: char *_IO_save_base; 1414: char *_IO_backup_base; 1414: char *_IO_save_end; 1414: 1414: struct _IO_marker *_markers; 1414: 1414: struct _IO_FILE *_chain; 1414: 1414: int _fileno; 1414: int _flags2:24; 1414: 1414: char _short_backupbuf[1]; 1414: __off_t _old_offset; 1414: 1414: 1414: unsigned short _cur_column; 1414: signed char _vtable_offset; 1414: char _shortbuf[1]; 1414: 1414: _IO_lock_t *_lock; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: __off64_t _offset; 1414: 1414: struct _IO_codecvt *_codecvt; 1414: struct _IO_wide_data *_wide_data; 1414: struct _IO_FILE *_freeres_list; 1414: void *_freeres_buf; 1414: struct _IO_FILE **_prevchain; 1414: int _mode; 1414: 1414: 1414: 1414: __uint64_t _total_written; 1414: 1414: int _unused3; 1414: 1414: 1414: char _unused2[12 * sizeof (int) - 5 * sizeof (void *)]; 1414: }; 1414: # 49 "/usr/arm-linux-gnueabihf/include/stdio.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/cookie_io_functions_t.h" 1 3 1414: # 27 "/usr/arm-linux-gnueabihf/include/bits/types/cookie_io_functions_t.h" 3 1414: typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, 1414: size_t __nbytes); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, 1414: size_t __nbytes); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); 1414: 1414: 1414: typedef int cookie_close_function_t (void *__cookie); 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef struct _IO_cookie_io_functions_t 1414: { 1414: cookie_read_function_t *read; 1414: cookie_write_function_t *write; 1414: cookie_seek_function_t *seek; 1414: cookie_close_function_t *close; 1414: } cookie_io_functions_t; 1414: # 52 "/usr/arm-linux-gnueabihf/include/stdio.h" 2 3 1414: # 91 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: typedef __fpos64_t fpos_t; 1414: 1414: 1414: typedef __fpos64_t fpos64_t; 1414: # 133 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/stdio_lim.h" 1 3 1414: # 134 "/usr/arm-linux-gnueabihf/include/stdio.h" 2 3 1414: # 153 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern FILE *stdin; 1414: extern FILE *stdout; 1414: extern FILE *stderr; 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int remove (const char *__filename) noexcept (true); 1414: 1414: extern int rename (const char *__old, const char *__new) noexcept (true); 1414: 1414: 1414: 1414: extern int renameat (int __oldfd, const char *__old, int __newfd, 1414: const char *__new) noexcept (true); 1414: # 183 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern int renameat2 (int __oldfd, const char *__old, int __newfd, 1414: const char *__new, unsigned int __flags) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int fclose (FILE *__stream) __attribute__ ((__nonnull__ (1))); 1414: # 205 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern FILE *tmpfile (void) __asm__ ("" "tmpfile64") 1414: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern FILE *tmpfile64 (void) 1414: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; 1414: 1414: 1414: 1414: extern char *tmpnam (char[20]) noexcept (true) ; 1414: 1414: 1414: 1414: 1414: extern char *tmpnam_r (char __s[20]) noexcept (true) ; 1414: # 235 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern char *tempnam (const char *__dir, const char *__pfx) 1414: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int fflush (FILE *__stream); 1414: # 252 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern int fflush_unlocked (FILE *__stream); 1414: # 262 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern int fcloseall (void); 1414: # 283 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern FILE *fopen (const char *__restrict __filename, const char *__restrict __modes) __asm__ ("" "fopen64") 1414: 1414: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; 1414: extern FILE *freopen (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64") 1414: 1414: 1414: __attribute__ ((__nonnull__ (3))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern FILE *fopen64 (const char *__restrict __filename, 1414: const char *__restrict __modes) 1414: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; 1414: extern FILE *freopen64 (const char *__restrict __filename, 1414: const char *__restrict __modes, 1414: FILE *__restrict __stream) __attribute__ ((__nonnull__ (3))); 1414: 1414: 1414: 1414: 1414: extern FILE *fdopen (int __fd, const char *__modes) noexcept (true) 1414: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; 1414: 1414: 1414: 1414: 1414: 1414: extern FILE *fopencookie (void *__restrict __magic_cookie, 1414: const char *__restrict __modes, 1414: cookie_io_functions_t __io_funcs) noexcept (true) 1414: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; 1414: 1414: 1414: 1414: 1414: extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) 1414: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; 1414: 1414: 1414: 1414: 1414: extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) noexcept (true) 1414: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; 1414: 1414: 1414: 1414: 1414: 1414: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) noexcept (true) 1414: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))); 1414: 1414: 1414: 1414: 1414: 1414: extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) noexcept (true) 1414: __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, 1414: int __modes, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, 1414: size_t __size) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern void setlinebuf (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int fprintf (FILE *__restrict __stream, 1414: const char *__restrict __format, ...) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: extern int printf (const char *__restrict __format, ...); 1414: 1414: extern int sprintf (char *__restrict __s, 1414: const char *__restrict __format, ...) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, 1414: __gnuc_va_list __arg) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); 1414: 1414: extern int vsprintf (char *__restrict __s, const char *__restrict __format, 1414: __gnuc_va_list __arg) noexcept (true); 1414: 1414: 1414: 1414: extern int snprintf (char *__restrict __s, size_t __maxlen, 1414: const char *__restrict __format, ...) 1414: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 4))); 1414: 1414: extern int vsnprintf (char *__restrict __s, size_t __maxlen, 1414: const char *__restrict __format, __gnuc_va_list __arg) 1414: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 0))); 1414: 1414: 1414: 1414: 1414: 1414: extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, 1414: __gnuc_va_list __arg) 1414: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 0))) ; 1414: extern int __asprintf (char **__restrict __ptr, 1414: const char *__restrict __fmt, ...) 1414: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))) ; 1414: extern int asprintf (char **__restrict __ptr, 1414: const char *__restrict __fmt, ...) 1414: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))) ; 1414: 1414: 1414: 1414: 1414: extern int vdprintf (int __fd, const char *__restrict __fmt, 1414: __gnuc_va_list __arg) 1414: __attribute__ ((__format__ (__printf__, 2, 0))); 1414: extern int dprintf (int __fd, const char *__restrict __fmt, ...) 1414: __attribute__ ((__format__ (__printf__, 2, 3))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int fscanf (FILE *__restrict __stream, 1414: const char *__restrict __format, ...) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: extern int scanf (const char *__restrict __format, ...) ; 1414: 1414: extern int sscanf (const char *__restrict __s, 1414: const char *__restrict __format, ...) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/floatn.h" 1 3 1414: # 445 "/usr/arm-linux-gnueabihf/include/stdio.h" 2 3 1414: 1414: 1414: 1414: 1414: extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc23_fscanf") 1414: 1414: __attribute__ ((__nonnull__ (1))); 1414: extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc23_scanf") 1414: ; 1414: extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) noexcept (true) __asm__ ("" "__isoc23_sscanf") 1414: 1414: ; 1414: # 497 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, 1414: __gnuc_va_list __arg) 1414: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) 1414: __attribute__ ((__format__ (__scanf__, 1, 0))) ; 1414: 1414: 1414: extern int vsscanf (const char *__restrict __s, 1414: const char *__restrict __format, __gnuc_va_list __arg) 1414: noexcept (true) __attribute__ ((__format__ (__scanf__, 2, 0))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc23_vfscanf") 1414: 1414: 1414: 1414: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__nonnull__ (1))); 1414: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc23_vscanf") 1414: 1414: __attribute__ ((__format__ (__scanf__, 1, 0))) ; 1414: extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) noexcept (true) __asm__ ("" "__isoc23_vsscanf") 1414: 1414: 1414: 1414: __attribute__ ((__format__ (__scanf__, 2, 0))); 1414: # 582 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern int fgetc (FILE *__stream) __attribute__ ((__nonnull__ (1))); 1414: extern int getc (FILE *__stream) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: extern int getchar (void); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int getc_unlocked (FILE *__stream) __attribute__ ((__nonnull__ (1))); 1414: extern int getchar_unlocked (void); 1414: # 607 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern int fgetc_unlocked (FILE *__stream) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int fputc (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); 1414: extern int putc (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: 1414: 1414: extern int putchar (int __c); 1414: # 631 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern int fputc_unlocked (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int putc_unlocked (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); 1414: extern int putchar_unlocked (int __c); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int getw (FILE *__stream) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int putw (int __w, FILE *__stream) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 1414: __attribute__ ((__access__ (__write_only__, 1, 2))) __attribute__ ((__nonnull__ (3))); 1414: # 681 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern char *fgets_unlocked (char *__restrict __s, int __n, 1414: FILE *__restrict __stream) 1414: __attribute__ ((__access__ (__write_only__, 1, 2))) __attribute__ ((__nonnull__ (3))); 1414: # 693 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern __ssize_t __getdelim (char **__restrict __lineptr, 1414: size_t *__restrict __n, int __delimiter, 1414: FILE *__restrict __stream) __attribute__ ((__nonnull__ (4))); 1414: extern __ssize_t getdelim (char **__restrict __lineptr, 1414: size_t *__restrict __n, int __delimiter, 1414: FILE *__restrict __stream) __attribute__ ((__nonnull__ (4))); 1414: 1414: 1414: extern __ssize_t getline (char **__restrict __lineptr, 1414: size_t *__restrict __n, 1414: FILE *__restrict __stream) __attribute__ ((__nonnull__ (3))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int fputs (const char *__restrict __s, FILE *__restrict __stream) 1414: __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: 1414: 1414: extern int puts (const char *__s); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int ungetc (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern size_t fread (void *__restrict __ptr, size_t __size, 1414: size_t __n, FILE *__restrict __stream) 1414: __attribute__ ((__nonnull__ (4))); 1414: 1414: 1414: 1414: 1414: extern size_t fwrite (const void *__restrict __ptr, size_t __size, 1414: size_t __n, FILE *__restrict __s) __attribute__ ((__nonnull__ (4))); 1414: # 749 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern int fputs_unlocked (const char *__restrict __s, 1414: FILE *__restrict __stream) __attribute__ ((__nonnull__ (2))); 1414: # 760 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, 1414: size_t __n, FILE *__restrict __stream) 1414: __attribute__ ((__nonnull__ (4))); 1414: extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, 1414: size_t __n, FILE *__restrict __stream) 1414: __attribute__ ((__nonnull__ (4))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int fseek (FILE *__stream, long int __off, int __whence) 1414: __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: extern long int ftell (FILE *__stream) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: extern void rewind (FILE *__stream) __attribute__ ((__nonnull__ (1))); 1414: # 806 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64") 1414: 1414: __attribute__ ((__nonnull__ (1))); 1414: extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64") 1414: __attribute__ ((__nonnull__ (1))); 1414: # 832 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64") 1414: 1414: __attribute__ ((__nonnull__ (1))); 1414: extern int fsetpos (FILE *__stream, const fpos_t *__pos) __asm__ ("" "fsetpos64") 1414: 1414: __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence) 1414: __attribute__ ((__nonnull__ (1))); 1414: extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__nonnull__ (1))); 1414: extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos) 1414: __attribute__ ((__nonnull__ (1))); 1414: extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern void clearerr (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: extern int feof (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: extern int ferror (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern void clearerr_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: extern int feof_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: extern int ferror_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern void perror (const char *__s) __attribute__ ((__cold__)); 1414: 1414: 1414: 1414: 1414: extern int fileno (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: extern int fileno_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: # 891 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern int pclose (FILE *__stream) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: extern FILE *popen (const char *__command, const char *__modes) 1414: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern char *ctermid (char *__s) noexcept (true) 1414: __attribute__ ((__access__ (__write_only__, 1))); 1414: 1414: 1414: 1414: 1414: 1414: extern char *cuserid (char *__s) 1414: __attribute__ ((__access__ (__write_only__, 1))); 1414: 1414: 1414: 1414: 1414: struct obstack; 1414: 1414: 1414: extern int obstack_printf (struct obstack *__restrict __obstack, 1414: const char *__restrict __format, ...) 1414: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))); 1414: extern int obstack_vprintf (struct obstack *__restrict __obstack, 1414: const char *__restrict __format, 1414: __gnuc_va_list __args) 1414: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 0))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern void flockfile (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern int ftrylockfile (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern void funlockfile (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: # 953 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: extern int __uflow (FILE *); 1414: extern int __overflow (FILE *, int); 1414: # 970 "/usr/arm-linux-gnueabihf/include/stdio.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/stdio.h" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/bits/stdio.h" 3 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: vprintf (const char *__restrict __fmt, __gnuc_va_list __arg) 1414: { 1414: return vfprintf (stdout, __fmt, __arg); 1414: } 1414: 1414: 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: getchar (void) 1414: { 1414: return getc (stdin); 1414: } 1414: 1414: 1414: 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: fgetc_unlocked (FILE *__fp) 1414: { 1414: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: getc_unlocked (FILE *__fp) 1414: { 1414: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 1414: } 1414: 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: getchar_unlocked (void) 1414: { 1414: return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 1414: } 1414: 1414: 1414: 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: putchar (int __c) 1414: { 1414: return putc (__c, stdout); 1414: } 1414: 1414: 1414: 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: fputc_unlocked (int __c, FILE *__stream) 1414: { 1414: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: putc_unlocked (int __c, FILE *__stream) 1414: { 1414: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 1414: } 1414: 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: putchar_unlocked (int __c) 1414: { 1414: return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) __ssize_t 1414: getline (char **__lineptr, size_t *__n, FILE *__stream) 1414: { 1414: return __getdelim (__lineptr, __n, '\n', __stream); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: __attribute__ ((__leaf__)) feof_unlocked (FILE *__stream) noexcept (true) 1414: { 1414: return (((__stream)->_flags & 0x0010) != 0); 1414: } 1414: 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: __attribute__ ((__leaf__)) ferror_unlocked (FILE *__stream) noexcept (true) 1414: { 1414: return (((__stream)->_flags & 0x0020) != 0); 1414: } 1414: # 971 "/usr/arm-linux-gnueabihf/include/stdio.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: } 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/cstdio" 2 3 1414: # 98 "/usr/arm-linux-gnueabihf/include/c++/16/cstdio" 3 1414: namespace std 1414: { 1414: using ::FILE; 1414: using ::fpos_t; 1414: 1414: using ::clearerr; 1414: using ::fclose; 1414: using ::feof; 1414: using ::ferror; 1414: using ::fflush; 1414: using ::fgetc; 1414: using ::fgetpos; 1414: using ::fgets; 1414: using ::fopen; 1414: using ::fprintf; 1414: using ::fputc; 1414: using ::fputs; 1414: using ::fread; 1414: using ::freopen; 1414: using ::fscanf; 1414: using ::fseek; 1414: using ::fsetpos; 1414: using ::ftell; 1414: using ::fwrite; 1414: using ::getc; 1414: using ::getchar; 1414: 1414: 1414: 1414: 1414: using ::perror; 1414: using ::printf; 1414: using ::putc; 1414: using ::putchar; 1414: using ::puts; 1414: using ::remove; 1414: using ::rename; 1414: using ::rewind; 1414: using ::scanf; 1414: using ::setbuf; 1414: using ::setvbuf; 1414: using ::sprintf; 1414: using ::sscanf; 1414: using ::tmpfile; 1414: 1414: using ::tmpnam; 1414: 1414: using ::ungetc; 1414: using ::vfprintf; 1414: using ::vprintf; 1414: using ::vsprintf; 1414: } 1414: # 159 "/usr/arm-linux-gnueabihf/include/c++/16/cstdio" 3 1414: namespace __gnu_cxx 1414: { 1414: # 177 "/usr/arm-linux-gnueabihf/include/c++/16/cstdio" 3 1414: using ::snprintf; 1414: using ::vfscanf; 1414: using ::vscanf; 1414: using ::vsnprintf; 1414: using ::vsscanf; 1414: 1414: } 1414: 1414: namespace std 1414: { 1414: using ::__gnu_cxx::snprintf; 1414: using ::__gnu_cxx::vfscanf; 1414: using ::__gnu_cxx::vscanf; 1414: using ::__gnu_cxx::vsnprintf; 1414: using ::__gnu_cxx::vsscanf; 1414: } 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/ext/string_conversions.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/cerrno" 1 3 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/cerrno" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/errno.h" 1 3 1414: # 28 "/usr/arm-linux-gnueabihf/include/errno.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/errno.h" 1 3 1414: # 26 "/usr/arm-linux-gnueabihf/include/bits/errno.h" 3 1414: # 1 "/usr/include/linux/errno.h" 1 3 1414: # 1 "/usr/lib/linux/uapi/arm/asm/errno.h" 1 3 1414: # 1 "/usr/include/asm-generic/errno.h" 1 3 1414: 1414: 1414: 1414: 1414: # 1 "/usr/include/asm-generic/errno-base.h" 1 3 1414: # 6 "/usr/include/asm-generic/errno.h" 2 3 1414: # 2 "/usr/lib/linux/uapi/arm/asm/errno.h" 2 3 1414: # 2 "/usr/include/linux/errno.h" 2 3 1414: # 27 "/usr/arm-linux-gnueabihf/include/bits/errno.h" 2 3 1414: # 29 "/usr/arm-linux-gnueabihf/include/errno.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: extern "C" { 1414: 1414: 1414: extern int *__errno_location (void) noexcept (true) __attribute__ ((__const__)); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern char *program_invocation_name; 1414: extern char *program_invocation_short_name; 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/error_t.h" 1 3 1414: # 22 "/usr/arm-linux-gnueabihf/include/bits/types/error_t.h" 3 1414: typedef int error_t; 1414: # 49 "/usr/arm-linux-gnueabihf/include/errno.h" 2 3 1414: 1414: 1414: 1414: } 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/cerrno" 2 3 1414: # 49 "/usr/arm-linux-gnueabihf/include/c++/16/ext/string_conversions.h" 2 3 1414: 1414: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: template 1414: _Ret 1414: __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), 1414: const char* __name, const _CharT* __str, std::size_t* __idx, 1414: _Base... __base) 1414: { 1414: _Ret __ret; 1414: 1414: _CharT* __endptr; 1414: 1414: struct _Save_errno { 1414: _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; } 1414: ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; } 1414: int _M_errno; 1414: } const __save_errno; 1414: 1414: struct _Range_chk { 1414: static bool 1414: _S_chk(_TRet, std::false_type) { return false; } 1414: 1414: static bool 1414: _S_chk(_TRet __val, std::true_type) 1414: { 1414: return __val < _TRet(__numeric_traits::__min) 1414: || __val > _TRet(__numeric_traits::__max); 1414: } 1414: }; 1414: 1414: const _TRet __tmp = __convf(__str, &__endptr, __base...); 1414: 1414: if (__endptr == __str) 1414: std::__throw_invalid_argument(__name); 1414: else if ((*__errno_location ()) == 34 1414: || _Range_chk::_S_chk(__tmp, std::is_same<_Ret, int>{})) 1414: std::__throw_out_of_range(__name); 1414: else 1414: __ret = __tmp; 1414: 1414: if (__idx) 1414: *__idx = __endptr - __str; 1414: 1414: return __ret; 1414: } 1414: 1414: 1414: template 1414: _String 1414: __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, 1414: __builtin_va_list), std::size_t __n, 1414: const _CharT* __fmt, ...) 1414: { 1414: 1414: 1414: _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1414: * __n)); 1414: 1414: __builtin_va_list __args; 1414: __builtin_va_start(__args, __fmt); 1414: 1414: const int __len = __convf(__s, __n, __fmt, __args); 1414: 1414: __builtin_va_end(__args); 1414: 1414: return _String(__s, __s + __len); 1414: } 1414: 1414: 1414: } 1414: # 4500 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/charconv.h" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/charconv.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: namespace __detail 1414: { 1414: 1414: 1414: template 1414: constexpr bool __integer_to_chars_is_unsigned 1414: = ! __gnu_cxx::__int_traits<_Tp>::__is_signed; 1414: 1414: 1414: 1414: template 1414: constexpr unsigned 1414: __to_chars_len(_Tp __value, int __base = 10) noexcept 1414: { 1414: 1414: static_assert(__integer_to_chars_is_unsigned<_Tp>, "implementation bug"); 1414: 1414: 1414: unsigned __n = 1; 1414: const unsigned __b2 = __base * __base; 1414: const unsigned __b3 = __b2 * __base; 1414: const unsigned long __b4 = __b3 * __base; 1414: for (;;) 1414: { 1414: if (__value < (unsigned)__base) return __n; 1414: if (__value < __b2) return __n + 1; 1414: if (__value < __b3) return __n + 2; 1414: if (__value < __b4) return __n + 3; 1414: __value /= __b4; 1414: __n += 4; 1414: } 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: void 1414: __to_chars_10_impl(char* __first, unsigned __len, _Tp __val) noexcept 1414: { 1414: 1414: static_assert(__integer_to_chars_is_unsigned<_Tp>, "implementation bug"); 1414: 1414: 1414: constexpr char __digits[201] = 1414: "0001020304050607080910111213141516171819" 1414: "2021222324252627282930313233343536373839" 1414: "4041424344454647484950515253545556575859" 1414: "6061626364656667686970717273747576777879" 1414: "8081828384858687888990919293949596979899"; 1414: unsigned __pos = __len - 1; 1414: while (__val >= 100) 1414: { 1414: auto const __num = (__val % 100) * 2; 1414: __val /= 100; 1414: __first[__pos] = __digits[__num + 1]; 1414: __first[__pos - 1] = __digits[__num]; 1414: __pos -= 2; 1414: } 1414: if (__val >= 10) 1414: { 1414: auto const __num = __val * 2; 1414: __first[1] = __digits[__num + 1]; 1414: __first[0] = __digits[__num]; 1414: } 1414: else 1414: __first[0] = '0' + __val; 1414: } 1414: 1414: } 1414: 1414: } 1414: # 4501 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: namespace __cxx11 { 1414: 1414: 1414: inline int 1414: stoi(const string& __str, size_t* __idx = 0, int __base = 10) 1414: { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), 1414: __idx, __base); } 1414: 1414: inline long 1414: stol(const string& __str, size_t* __idx = 0, int __base = 10) 1414: { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), 1414: __idx, __base); } 1414: 1414: inline unsigned long 1414: stoul(const string& __str, size_t* __idx = 0, int __base = 10) 1414: { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), 1414: __idx, __base); } 1414: 1414: 1414: inline long long 1414: stoll(const string& __str, size_t* __idx = 0, int __base = 10) 1414: { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), 1414: __idx, __base); } 1414: 1414: inline unsigned long long 1414: stoull(const string& __str, size_t* __idx = 0, int __base = 10) 1414: { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), 1414: __idx, __base); } 1414: # 4543 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: inline double 1414: stod(const string& __str, size_t* __idx = 0) 1414: { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } 1414: 1414: 1414: 1414: inline float 1414: stof(const string& __str, size_t* __idx = 0) 1414: { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } 1414: # 4571 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: inline long double 1414: stold(const string& __str, size_t* __idx = 0) 1414: { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } 1414: # 4583 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: [[__nodiscard__]] 1414: inline string 1414: to_string(int __val) 1414: 1414: noexcept 1414: 1414: { 1414: const bool __neg = __val < 0; 1414: const unsigned __uval = __neg ? (unsigned)~__val + 1u : __val; 1414: const auto __len = __detail::__to_chars_len(__uval); 1414: string __str; 1414: __str.__resize_and_overwrite(__neg + __len, [=](char* __p, size_t __n) { 1414: __p[0] = '-'; 1414: __detail::__to_chars_10_impl(__p + (int)__neg, __len, __uval); 1414: return __n; 1414: }); 1414: return __str; 1414: } 1414: 1414: [[__nodiscard__]] 1414: inline string 1414: to_string(unsigned __val) 1414: 1414: noexcept 1414: 1414: { 1414: const auto __len = __detail::__to_chars_len(__val); 1414: string __str; 1414: __str.__resize_and_overwrite(__len, [__val](char* __p, size_t __n) { 1414: __detail::__to_chars_10_impl(__p, __n, __val); 1414: return __n; 1414: }); 1414: return __str; 1414: } 1414: 1414: [[__nodiscard__]] 1414: inline string 1414: to_string(long __val) 1414: 1414: noexcept 1414: 1414: { 1414: const bool __neg = __val < 0; 1414: const unsigned long __uval = __neg ? (unsigned long)~__val + 1ul : __val; 1414: const auto __len = __detail::__to_chars_len(__uval); 1414: string __str; 1414: __str.__resize_and_overwrite(__neg + __len, [=](char* __p, size_t __n) { 1414: __p[0] = '-'; 1414: __detail::__to_chars_10_impl(__p + (int)__neg, __len, __uval); 1414: return __n; 1414: }); 1414: return __str; 1414: } 1414: 1414: [[__nodiscard__]] 1414: inline string 1414: to_string(unsigned long __val) 1414: 1414: noexcept 1414: 1414: { 1414: const auto __len = __detail::__to_chars_len(__val); 1414: string __str; 1414: __str.__resize_and_overwrite(__len, [__val](char* __p, size_t __n) { 1414: __detail::__to_chars_10_impl(__p, __n, __val); 1414: return __n; 1414: }); 1414: return __str; 1414: } 1414: 1414: [[__nodiscard__]] 1414: inline string 1414: to_string(long long __val) 1414: { 1414: const bool __neg = __val < 0; 1414: const unsigned long long __uval 1414: = __neg ? (unsigned long long)~__val + 1ull : __val; 1414: const auto __len = __detail::__to_chars_len(__uval); 1414: string __str; 1414: __str.__resize_and_overwrite(__neg + __len, [=](char* __p, size_t __n) { 1414: __p[0] = '-'; 1414: __detail::__to_chars_10_impl(__p + (int)__neg, __len, __uval); 1414: return __n; 1414: }); 1414: return __str; 1414: } 1414: 1414: [[__nodiscard__]] 1414: inline string 1414: to_string(unsigned long long __val) 1414: { 1414: const auto __len = __detail::__to_chars_len(__val); 1414: string __str; 1414: __str.__resize_and_overwrite(__len, [__val](char* __p, size_t __n) { 1414: __detail::__to_chars_10_impl(__p, __n, __val); 1414: return __n; 1414: }); 1414: return __str; 1414: } 1414: # 4742 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wsuggest-attribute=format" 1414: 1414: 1414: [[__nodiscard__]] 1414: inline string 1414: to_string(float __val) 1414: { 1414: const int __n = 1414: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 1414: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 1414: "%f", __val); 1414: } 1414: 1414: [[__nodiscard__]] 1414: inline string 1414: to_string(double __val) 1414: { 1414: const int __n = 1414: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 1414: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 1414: "%f", __val); 1414: } 1414: 1414: [[__nodiscard__]] 1414: inline string 1414: to_string(long double __val) 1414: { 1414: const int __n = 1414: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 1414: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 1414: "%Lf", __val); 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: inline int 1414: stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) 1414: { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), 1414: __idx, __base); } 1414: 1414: inline long 1414: stol(const wstring& __str, size_t* __idx = 0, int __base = 10) 1414: { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), 1414: __idx, __base); } 1414: 1414: inline unsigned long 1414: stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) 1414: { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), 1414: __idx, __base); } 1414: 1414: inline long long 1414: stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) 1414: { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), 1414: __idx, __base); } 1414: 1414: inline unsigned long long 1414: stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) 1414: { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), 1414: __idx, __base); } 1414: 1414: 1414: inline float 1414: stof(const wstring& __str, size_t* __idx = 0) 1414: { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } 1414: 1414: inline double 1414: stod(const wstring& __str, size_t* __idx = 0) 1414: { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } 1414: 1414: inline long double 1414: stold(const wstring& __str, size_t* __idx = 0) 1414: { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: constexpr 1414: inline void 1414: __to_wstring_numeric(const char* __s, int __len, wchar_t* __wout) 1414: { 1414: 1414: 1414: if constexpr (wchar_t('0') == L'0' && wchar_t('-') == L'-' 1414: && wchar_t('.') == L'.' && wchar_t('e') == L'e') 1414: { 1414: for (int __i = 0; __i < __len; ++__i) 1414: __wout[__i] = (wchar_t) __s[__i]; 1414: } 1414: else 1414: { 1414: wchar_t __wc[256]; 1414: for (int __i = '0'; __i <= '9'; ++__i) 1414: __wc[__i] = L'0' + __i; 1414: __wc['.'] = L'.'; 1414: __wc['+'] = L'+'; 1414: __wc['-'] = L'-'; 1414: __wc['a'] = L'a'; 1414: __wc['b'] = L'b'; 1414: __wc['c'] = L'c'; 1414: __wc['d'] = L'd'; 1414: __wc['e'] = L'e'; 1414: __wc['f'] = L'f'; 1414: __wc['i'] = L'i'; 1414: __wc['n'] = L'n'; 1414: __wc['p'] = L'p'; 1414: __wc['x'] = L'x'; 1414: __wc['A'] = L'A'; 1414: __wc['B'] = L'B'; 1414: __wc['C'] = L'C'; 1414: __wc['D'] = L'D'; 1414: __wc['E'] = L'E'; 1414: __wc['F'] = L'F'; 1414: __wc['I'] = L'I'; 1414: __wc['N'] = L'N'; 1414: __wc['P'] = L'P'; 1414: __wc['X'] = L'X'; 1414: 1414: for (int __i = 0; __i < __len; ++__i) 1414: __wout[__i] = __wc[(int)__s[__i]]; 1414: } 1414: } 1414: 1414: 1414: constexpr 1414: 1414: inline wstring 1414: 1414: __to_wstring_numeric(string_view __s) 1414: 1414: 1414: 1414: { 1414: if constexpr (wchar_t('0') == L'0' && wchar_t('-') == L'-' 1414: && wchar_t('.') == L'.' && wchar_t('e') == L'e') 1414: return wstring(__s.data(), __s.data() + __s.size()); 1414: else 1414: { 1414: wstring __ws; 1414: auto __f = __s.data(); 1414: __ws.__resize_and_overwrite(__s.size(), 1414: [__f] (wchar_t* __to, int __n) { 1414: std::__to_wstring_numeric(__f, __n, __to); 1414: return __n; 1414: }); 1414: return __ws; 1414: } 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: [[__nodiscard__]] 1414: inline wstring 1414: to_wstring(int __val) 1414: { return std::__to_wstring_numeric(std::to_string(__val)); } 1414: 1414: [[__nodiscard__]] 1414: inline wstring 1414: to_wstring(unsigned __val) 1414: { return std::__to_wstring_numeric(std::to_string(__val)); } 1414: 1414: [[__nodiscard__]] 1414: inline wstring 1414: to_wstring(long __val) 1414: { return std::__to_wstring_numeric(std::to_string(__val)); } 1414: 1414: [[__nodiscard__]] 1414: inline wstring 1414: to_wstring(unsigned long __val) 1414: { return std::__to_wstring_numeric(std::to_string(__val)); } 1414: 1414: [[__nodiscard__]] 1414: inline wstring 1414: to_wstring(long long __val) 1414: { return std::__to_wstring_numeric(std::to_string(__val)); } 1414: 1414: [[__nodiscard__]] 1414: inline wstring 1414: to_wstring(unsigned long long __val) 1414: { return std::__to_wstring_numeric(std::to_string(__val)); } 1414: 1414: 1414: [[__nodiscard__]] 1414: inline wstring 1414: to_wstring(float __val) 1414: { return std::__to_wstring_numeric(std::to_string(__val)); } 1414: 1414: [[__nodiscard__]] 1414: inline wstring 1414: to_wstring(double __val) 1414: { return std::__to_wstring_numeric(std::to_string(__val)); } 1414: 1414: [[__nodiscard__]] 1414: inline wstring 1414: to_wstring(long double __val) 1414: { return std::__to_wstring_numeric(std::to_string(__val)); } 1414: 1414: 1414: 1414: } 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: template, _Alloc>> 1414: struct __str_hash_base 1414: : public __hash_base 1414: { 1414: [[__nodiscard__]] 1414: size_t 1414: operator()(const _StrT& __s) const noexcept 1414: { return _Hash_impl::hash(__s.data(), __s.length() * sizeof(_CharT)); } 1414: }; 1414: 1414: 1414: 1414: template 1414: struct hash, _Alloc>> 1414: : public __str_hash_base 1414: { }; 1414: 1414: 1414: template 1414: struct hash, _Alloc>> 1414: : public __str_hash_base 1414: { }; 1414: 1414: template 1414: struct __is_fast_hash, 1414: _Alloc>>> 1414: : std::false_type 1414: { }; 1414: 1414: 1414: 1414: 1414: template 1414: struct hash, _Alloc>> 1414: : public __str_hash_base 1414: { }; 1414: 1414: 1414: 1414: template 1414: struct hash, _Alloc>> 1414: : public __str_hash_base 1414: { }; 1414: 1414: 1414: template 1414: struct hash, _Alloc>> 1414: : public __str_hash_base 1414: { }; 1414: 1414: 1414: 1414: template<> struct __is_fast_hash> : std::false_type { }; 1414: template<> struct __is_fast_hash> : std::false_type { }; 1414: template<> struct __is_fast_hash> : std::false_type { }; 1414: template<> struct __is_fast_hash> : std::false_type { }; 1414: 1414: template<> struct __is_fast_hash> : std::false_type { }; 1414: # 5028 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.h" 3 1414: inline namespace literals 1414: { 1414: inline namespace string_literals 1414: { 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wliteral-suffix" 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) constexpr 1414: inline basic_string 1414: operator""s(const char* __str, size_t __len) 1414: { return basic_string{__str, __len}; } 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) constexpr 1414: inline basic_string 1414: operator""s(const wchar_t* __str, size_t __len) 1414: { return basic_string{__str, __len}; } 1414: 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) constexpr 1414: inline basic_string 1414: operator""s(const char8_t* __str, size_t __len) 1414: { return basic_string{__str, __len}; } 1414: 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) constexpr 1414: inline basic_string 1414: operator""s(const char16_t* __str, size_t __len) 1414: { return basic_string{__str, __len}; } 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) constexpr 1414: inline basic_string 1414: operator""s(const char32_t* __str, size_t __len) 1414: { return basic_string{__str, __len}; } 1414: 1414: 1414: #pragma GCC diagnostic pop 1414: } 1414: } 1414: 1414: 1414: 1414: namespace __detail::__variant 1414: { 1414: template struct _Never_valueless_alt; 1414: 1414: 1414: 1414: template 1414: struct _Never_valueless_alt> 1414: : __and_< 1414: is_nothrow_move_constructible>, 1414: is_nothrow_move_assignable> 1414: >::type 1414: { }; 1414: } 1414: 1414: 1414: 1414: } 1414: # 59 "/usr/arm-linux-gnueabihf/include/c++/16/string" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.tcc" 1 3 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.tcc" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: template 1414: const typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: basic_string<_CharT, _Traits, _Alloc>::npos; 1414: 1414: template 1414: constexpr 1414: void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: swap(basic_string& __s) noexcept 1414: { 1414: if (this == std::__addressof(__s)) 1414: return; 1414: 1414: _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); 1414: 1414: if (_M_is_local()) 1414: if (__s._M_is_local()) 1414: { 1414: if (length() && __s.length()) 1414: { 1414: _CharT __tmp_data[_S_local_capacity + 1]; 1414: traits_type::copy(__tmp_data, __s._M_local_buf, 1414: __s.length() + 1); 1414: traits_type::copy(__s._M_local_buf, _M_local_buf, 1414: length() + 1); 1414: traits_type::copy(_M_local_buf, __tmp_data, 1414: __s.length() + 1); 1414: } 1414: else if (__s.length()) 1414: { 1414: _M_init_local_buf(); 1414: traits_type::copy(_M_local_buf, __s._M_local_buf, 1414: __s.length() + 1); 1414: _M_length(__s.length()); 1414: __s._M_set_length(0); 1414: return; 1414: } 1414: else if (length()) 1414: { 1414: __s._M_init_local_buf(); 1414: traits_type::copy(__s._M_local_buf, _M_local_buf, 1414: length() + 1); 1414: __s._M_length(length()); 1414: _M_set_length(0); 1414: return; 1414: } 1414: } 1414: else 1414: { 1414: const size_type __tmp_capacity = __s._M_allocated_capacity; 1414: __s._M_init_local_buf(); 1414: traits_type::copy(__s._M_local_buf, _M_local_buf, 1414: length() + 1); 1414: _M_data(__s._M_data()); 1414: __s._M_data(__s._M_local_buf); 1414: _M_capacity(__tmp_capacity); 1414: } 1414: else 1414: { 1414: const size_type __tmp_capacity = _M_allocated_capacity; 1414: if (__s._M_is_local()) 1414: { 1414: _M_init_local_buf(); 1414: traits_type::copy(_M_local_buf, __s._M_local_buf, 1414: __s.length() + 1); 1414: __s._M_data(_M_data()); 1414: _M_data(_M_local_buf); 1414: } 1414: else 1414: { 1414: pointer __tmp_ptr = _M_data(); 1414: _M_data(__s._M_data()); 1414: __s._M_data(__tmp_ptr); 1414: _M_capacity(__s._M_allocated_capacity); 1414: } 1414: __s._M_capacity(__tmp_capacity); 1414: } 1414: 1414: const size_type __tmp_length = length(); 1414: _M_length(__s.length()); 1414: __s._M_length(__tmp_length); 1414: } 1414: 1414: template 1414: constexpr 1414: typename basic_string<_CharT, _Traits, _Alloc>::pointer 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_create(size_type& __capacity, size_type __old_capacity) 1414: { 1414: 1414: 1414: if (__capacity > max_size()) 1414: std::__throw_length_error(("basic_string::_M_create")); 1414: 1414: 1414: 1414: 1414: if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) 1414: { 1414: __capacity = 2 * __old_capacity; 1414: 1414: if (__capacity > max_size()) 1414: __capacity = max_size(); 1414: } 1414: 1414: 1414: 1414: return _S_allocate(_M_get_allocator(), __capacity + 1); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: template 1414: constexpr 1414: void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_construct(_InIterator __beg, _InIterator __end, 1414: std::input_iterator_tag) 1414: { 1414: size_type __len = 0; 1414: size_type __capacity = size_type(_S_local_capacity); 1414: 1414: _M_init_local_buf(); 1414: 1414: while (__beg != __end && __len < __capacity) 1414: { 1414: _M_local_buf[__len++] = *__beg; 1414: ++__beg; 1414: } 1414: 1414: struct _Guard 1414: { 1414: constexpr 1414: explicit _Guard(basic_string* __s) : _M_guarded(__s) { } 1414: 1414: constexpr 1414: ~_Guard() { if (_M_guarded) _M_guarded->_M_dispose(); } 1414: 1414: basic_string* _M_guarded; 1414: } __guard(this); 1414: 1414: while (__beg != __end) 1414: { 1414: if (__len == __capacity) 1414: { 1414: 1414: __capacity = __len + 1; 1414: pointer __another = _M_create(__capacity, __len); 1414: this->_S_copy(__another, _M_data(), __len); 1414: _M_dispose(); 1414: _M_data(__another); 1414: _M_capacity(__capacity); 1414: } 1414: traits_type::assign(_M_data()[__len++], 1414: static_cast<_CharT>(*__beg)); 1414: ++__beg; 1414: } 1414: 1414: __guard._M_guarded = 0; 1414: 1414: _M_set_length(__len); 1414: } 1414: 1414: template 1414: template 1414: constexpr 1414: void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_construct(_InIterator __beg, _InIterator __end, 1414: std::forward_iterator_tag) 1414: { 1414: size_type __dnew = static_cast(std::distance(__beg, __end)); 1414: 1414: if (__dnew > size_type(_S_local_capacity)) 1414: { 1414: _M_data(_M_create(__dnew, size_type(0))); 1414: _M_capacity(__dnew); 1414: } 1414: else 1414: _M_init_local_buf(); 1414: 1414: 1414: struct _Guard 1414: { 1414: constexpr 1414: explicit _Guard(basic_string* __s) : _M_guarded(__s) { } 1414: 1414: constexpr 1414: ~_Guard() { if (_M_guarded) _M_guarded->_M_dispose(); } 1414: 1414: basic_string* _M_guarded; 1414: } __guard(this); 1414: 1414: this->_S_copy_chars(_M_data(), __beg, __end); 1414: 1414: __guard._M_guarded = 0; 1414: 1414: _M_set_length(__dnew); 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_construct(size_type __n, _CharT __c) 1414: { 1414: if (__n > size_type(_S_local_capacity)) 1414: { 1414: _M_data(_M_create(__n, size_type(0))); 1414: _M_capacity(__n); 1414: } 1414: else 1414: _M_init_local_buf(); 1414: 1414: if (__n) 1414: this->_S_assign(_M_data(), __n, __c); 1414: 1414: _M_set_length(__n); 1414: } 1414: 1414: 1414: 1414: template 1414: template 1414: constexpr 1414: void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_construct(const _CharT* __str, size_type __n) 1414: { 1414: if (__n > size_type(_S_local_capacity)) 1414: { 1414: _M_data(_M_create(__n, size_type(0))); 1414: _M_capacity(__n); 1414: } 1414: else 1414: _M_init_local_buf(); 1414: 1414: if (__n || _Terminated) 1414: this->_S_copy(_M_data(), __str, __n + _Terminated); 1414: 1414: _M_length(__n); 1414: if (!_Terminated) 1414: traits_type::assign(_M_data()[__n], _CharT()); 1414: } 1414: # 337 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.tcc" 3 1414: template 1414: constexpr 1414: void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_assign(const basic_string& __str) 1414: { 1414: if (this != std::__addressof(__str)) 1414: { 1414: const size_type __rsize = __str.length(); 1414: const size_type __capacity = capacity(); 1414: 1414: if (__rsize > __capacity) 1414: { 1414: size_type __new_capacity = __rsize; 1414: pointer __tmp = _M_create(__new_capacity, __capacity); 1414: _M_dispose(); 1414: _M_data(__tmp); 1414: _M_capacity(__new_capacity); 1414: } 1414: 1414: if (__rsize) 1414: this->_S_copy(_M_data(), __str._M_data(), __rsize); 1414: 1414: _M_set_length(__rsize); 1414: } 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: reserve(size_type __res) 1414: { 1414: const size_type __capacity = capacity(); 1414: 1414: 1414: 1414: 1414: if (__res <= __capacity) 1414: return; 1414: 1414: pointer __tmp = _M_create(__res, __capacity); 1414: this->_S_copy(__tmp, _M_data(), length() + 1); 1414: _M_dispose(); 1414: _M_data(__tmp); 1414: _M_capacity(__res); 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 1414: size_type __len2) 1414: { 1414: const size_type __how_much = length() - __pos - __len1; 1414: 1414: size_type __new_capacity = length() + __len2 - __len1; 1414: pointer __r = _M_create(__new_capacity, capacity()); 1414: 1414: if (__pos) 1414: this->_S_copy(__r, _M_data(), __pos); 1414: if (__s && __len2) 1414: this->_S_copy(__r + __pos, __s, __len2); 1414: if (__how_much) 1414: this->_S_copy(__r + __pos + __len2, 1414: _M_data() + __pos + __len1, __how_much); 1414: 1414: _M_dispose(); 1414: _M_data(__r); 1414: _M_capacity(__new_capacity); 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_erase(size_type __pos, size_type __n) 1414: { 1414: const size_type __how_much = length() - __pos - __n; 1414: 1414: if (__how_much && __n) 1414: this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); 1414: 1414: _M_set_length(length() - __n); 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: reserve() 1414: { 1414: if (_M_is_local()) 1414: return; 1414: 1414: const size_type __length = length(); 1414: const size_type __capacity = _M_allocated_capacity; 1414: 1414: if (__length <= size_type(_S_local_capacity)) 1414: { 1414: _M_init_local_buf(); 1414: this->_S_copy(_M_local_buf, _M_data(), __length + 1); 1414: _M_destroy(__capacity); 1414: _M_data(_M_local_data()); 1414: } 1414: 1414: else if (__length < __capacity) 1414: try 1414: { 1414: pointer __tmp = _S_allocate(_M_get_allocator(), __length + 1); 1414: this->_S_copy(__tmp, _M_data(), __length + 1); 1414: _M_dispose(); 1414: _M_data(__tmp); 1414: _M_capacity(__length); 1414: } 1414: catch (const __cxxabiv1::__forced_unwind&) 1414: { throw; } 1414: catch (...) 1414: { } 1414: 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: resize(size_type __n, _CharT __c) 1414: { 1414: const size_type __size = this->size(); 1414: if (__size < __n) 1414: this->append(__n - __size, __c); 1414: else if (__n < __size) 1414: this->_M_set_length(__n); 1414: } 1414: 1414: template 1414: constexpr 1414: basic_string<_CharT, _Traits, _Alloc>& 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_append(const _CharT* __s, size_type __n) 1414: { 1414: const size_type __len = __n + this->size(); 1414: 1414: if (__len <= this->capacity()) 1414: { 1414: if (__n) 1414: this->_S_copy(this->_M_data() + this->size(), __s, __n); 1414: } 1414: else 1414: this->_M_mutate(this->size(), size_type(0), __s, __n); 1414: 1414: this->_M_set_length(__len); 1414: return *this; 1414: } 1414: 1414: template 1414: template 1414: constexpr 1414: basic_string<_CharT, _Traits, _Alloc>& 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 1414: _InputIterator __k1, _InputIterator __k2, 1414: std::__false_type) 1414: { 1414: 1414: 1414: const basic_string __s(__k1, __k2, this->get_allocator()); 1414: const size_type __n1 = __i2 - __i1; 1414: return _M_replace(__i1 - begin(), __n1, __s._M_data(), 1414: __s.size()); 1414: } 1414: 1414: template 1414: constexpr 1414: basic_string<_CharT, _Traits, _Alloc>& 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 1414: _CharT __c) 1414: { 1414: _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); 1414: 1414: const size_type __old_size = this->size(); 1414: const size_type __new_size = __old_size + __n2 - __n1; 1414: 1414: if (__new_size <= this->capacity()) 1414: { 1414: pointer __p = this->_M_data() + __pos1; 1414: 1414: const size_type __how_much = __old_size - __pos1 - __n1; 1414: if (__how_much && __n1 != __n2) 1414: this->_S_move(__p + __n2, __p + __n1, __how_much); 1414: } 1414: else 1414: this->_M_mutate(__pos1, __n1, 0, __n2); 1414: 1414: if (__n2) 1414: this->_S_assign(this->_M_data() + __pos1, __n2, __c); 1414: 1414: this->_M_set_length(__new_size); 1414: return *this; 1414: } 1414: 1414: template 1414: __attribute__((__noinline__, __noclone__, __cold__)) void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_replace_cold(pointer __p, size_type __len1, const _CharT* __s, 1414: const size_type __len2, const size_type __how_much) 1414: { 1414: 1414: if (__len2 && __len2 <= __len1) 1414: this->_S_move(__p, __s, __len2); 1414: if (__how_much && __len1 != __len2) 1414: this->_S_move(__p + __len2, __p + __len1, __how_much); 1414: if (__len2 > __len1) 1414: { 1414: if (__s + __len2 <= __p + __len1) 1414: this->_S_move(__p, __s, __len2); 1414: else if (__s >= __p + __len1) 1414: { 1414: 1414: 1414: const size_type __poff = (__s - __p) + (__len2 - __len1); 1414: this->_S_copy(__p, __p + __poff, __len2); 1414: } 1414: else 1414: { 1414: const size_type __nleft = (__p + __len1) - __s; 1414: this->_S_move(__p, __s, __nleft); 1414: this->_S_copy(__p + __nleft, __p + __len2, __len2 - __nleft); 1414: } 1414: } 1414: } 1414: 1414: template 1414: constexpr 1414: basic_string<_CharT, _Traits, _Alloc>& 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 1414: const size_type __len2) 1414: { 1414: _M_check_length(__len1, __len2, "basic_string::_M_replace"); 1414: 1414: const size_type __old_size = this->size(); 1414: const size_type __new_size = __old_size + __len2 - __len1; 1414: 1414: if (__new_size <= this->capacity()) 1414: { 1414: pointer __p = this->_M_data() + __pos; 1414: 1414: const size_type __how_much = __old_size - __pos - __len1; 1414: 1414: if (std::is_constant_evaluated()) 1414: { 1414: auto __newp = _S_allocate(_M_get_allocator(), __new_size); 1414: _S_copy(__newp, this->_M_data(), __pos); 1414: _S_copy(__newp + __pos, __s, __len2); 1414: _S_copy(__newp + __pos + __len2, __p + __len1, __how_much); 1414: _S_copy(this->_M_data(), __newp, __new_size); 1414: this->_M_get_allocator().deallocate(__newp, __new_size); 1414: } 1414: else 1414: 1414: if (__builtin_expect(_M_disjunct(__s), true)) 1414: { 1414: if (__how_much && __len1 != __len2) 1414: this->_S_move(__p + __len2, __p + __len1, __how_much); 1414: if (__len2) 1414: this->_S_copy(__p, __s, __len2); 1414: } 1414: else 1414: _M_replace_cold(__p, __len1, __s, __len2, __how_much); 1414: } 1414: else 1414: this->_M_mutate(__pos, __len1, __s, __len2); 1414: 1414: this->_M_set_length(__new_size); 1414: return *this; 1414: } 1414: 1414: template 1414: constexpr 1414: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: copy(_CharT* __s, size_type __n, size_type __pos) const 1414: { 1414: _M_check(__pos, "basic_string::copy"); 1414: __n = _M_limit(__pos, __n); 1414: ; 1414: if (__n) 1414: _S_copy(__s, _M_data() + __pos, __n); 1414: 1414: return __n; 1414: } 1414: # 643 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.tcc" 3 1414: template 1414: template 1414: constexpr void 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: 1414: 1414: 1414: __resize_and_overwrite(const size_type __n, _Operation __op) 1414: 1414: { 1414: reserve(__n); 1414: _CharT* const __p = _M_data(); 1414: 1414: if (std::__is_constant_evaluated() && __n > size()) 1414: traits_type::assign(__p + size(), __n - size(), _CharT()); 1414: 1414: struct _Terminator { 1414: constexpr ~_Terminator() { _M_this->_M_set_length(_M_r); } 1414: basic_string* _M_this; 1414: size_type _M_r; 1414: }; 1414: _Terminator __term{this, 0}; 1414: auto __r = std::move(__op)(__p + 0, __n + 0); 1414: 1414: static_assert(ranges::__detail::__is_integer_like); 1414: 1414: 1414: 1414: 1414: ; 1414: __term._M_r = size_type(__r); 1414: if (__term._M_r > __n) 1414: __builtin_unreachable(); 1414: } 1414: # 686 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.tcc" 3 1414: template 1414: constexpr 1414: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: find(const _CharT* __s, size_type __pos, size_type __n) const 1414: noexcept 1414: { 1414: ; 1414: const size_type __size = this->size(); 1414: 1414: if (__n == 0) 1414: return __pos <= __size ? __pos : npos; 1414: if (__pos >= __size) 1414: return npos; 1414: 1414: const _CharT __elem0 = __s[0]; 1414: const _CharT* const __data = data(); 1414: const _CharT* __first = __data + __pos; 1414: const _CharT* const __last = __data + __size; 1414: size_type __len = __size - __pos; 1414: 1414: while (__len >= __n) 1414: { 1414: 1414: __first = traits_type::find(__first, __len - __n + 1, __elem0); 1414: if (!__first) 1414: return npos; 1414: 1414: 1414: 1414: if (traits_type::compare(__first, __s, __n) == 0) 1414: return __first - __data; 1414: __len = __last - ++__first; 1414: } 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr 1414: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: find(_CharT __c, size_type __pos) const noexcept 1414: { 1414: size_type __ret = npos; 1414: const size_type __size = this->size(); 1414: if (__pos < __size) 1414: { 1414: const _CharT* __data = _M_data(); 1414: const size_type __n = __size - __pos; 1414: const _CharT* __p = traits_type::find(__data + __pos, __n, __c); 1414: if (__p) 1414: __ret = __p - __data; 1414: } 1414: return __ret; 1414: } 1414: 1414: template 1414: constexpr 1414: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: rfind(const _CharT* __s, size_type __pos, size_type __n) const 1414: noexcept 1414: { 1414: ; 1414: const size_type __size = this->size(); 1414: if (__n <= __size) 1414: { 1414: __pos = std::min(size_type(__size - __n), __pos); 1414: const _CharT* __data = _M_data(); 1414: do 1414: { 1414: if (traits_type::compare(__data + __pos, __s, __n) == 0) 1414: return __pos; 1414: } 1414: while (__pos-- > 0); 1414: } 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr 1414: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: rfind(_CharT __c, size_type __pos) const noexcept 1414: { 1414: size_type __size = this->size(); 1414: if (__size) 1414: { 1414: if (--__size > __pos) 1414: __size = __pos; 1414: for (++__size; __size-- > 0; ) 1414: if (traits_type::eq(_M_data()[__size], __c)) 1414: return __size; 1414: } 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr 1414: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 1414: noexcept 1414: { 1414: ; 1414: for (; __n && __pos < this->size(); ++__pos) 1414: { 1414: const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); 1414: if (__p) 1414: return __pos; 1414: } 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr 1414: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 1414: noexcept 1414: { 1414: ; 1414: size_type __size = this->size(); 1414: if (__size && __n) 1414: { 1414: if (--__size > __pos) 1414: __size = __pos; 1414: do 1414: { 1414: if (traits_type::find(__s, __n, _M_data()[__size])) 1414: return __size; 1414: } 1414: while (__size-- != 0); 1414: } 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr 1414: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const 1414: noexcept 1414: { 1414: ; 1414: for (; __pos < this->size(); ++__pos) 1414: if (!traits_type::find(__s, __n, _M_data()[__pos])) 1414: return __pos; 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr 1414: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: find_first_not_of(_CharT __c, size_type __pos) const noexcept 1414: { 1414: for (; __pos < this->size(); ++__pos) 1414: if (!traits_type::eq(_M_data()[__pos], __c)) 1414: return __pos; 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr 1414: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const 1414: noexcept 1414: { 1414: ; 1414: size_type __size = this->size(); 1414: if (__size) 1414: { 1414: if (--__size > __pos) 1414: __size = __pos; 1414: do 1414: { 1414: if (!traits_type::find(__s, __n, _M_data()[__size])) 1414: return __size; 1414: } 1414: while (__size--); 1414: } 1414: return npos; 1414: } 1414: 1414: template 1414: constexpr 1414: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: basic_string<_CharT, _Traits, _Alloc>:: 1414: find_last_not_of(_CharT __c, size_type __pos) const noexcept 1414: { 1414: size_type __size = this->size(); 1414: if (__size) 1414: { 1414: if (--__size > __pos) 1414: __size = __pos; 1414: do 1414: { 1414: if (!traits_type::eq(_M_data()[__size], __c)) 1414: return __size; 1414: } 1414: while (__size--); 1414: } 1414: return npos; 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: operator>>(basic_istream<_CharT, _Traits>& __in, 1414: basic_string<_CharT, _Traits, _Alloc>& __str) 1414: { 1414: typedef basic_istream<_CharT, _Traits> __istream_type; 1414: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1414: typedef typename __istream_type::ios_base __ios_base; 1414: typedef typename __istream_type::int_type __int_type; 1414: typedef typename __string_type::size_type __size_type; 1414: typedef ctype<_CharT> __ctype_type; 1414: typedef typename __ctype_type::ctype_base __ctype_base; 1414: 1414: __size_type __extracted = 0; 1414: typename __ios_base::iostate __err = __ios_base::goodbit; 1414: typename __istream_type::sentry __cerb(__in, false); 1414: if (__cerb) 1414: { 1414: try 1414: { 1414: 1414: __str.erase(); 1414: _CharT __buf[128]; 1414: __size_type __len = 0; 1414: const streamsize __w = __in.width(); 1414: const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) 1414: : __str.max_size(); 1414: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 1414: const __int_type __eof = _Traits::eof(); 1414: __int_type __c = __in.rdbuf()->sgetc(); 1414: 1414: while (__extracted < __n 1414: && !_Traits::eq_int_type(__c, __eof) 1414: && !__ct.is(__ctype_base::space, 1414: _Traits::to_char_type(__c))) 1414: { 1414: if (__len == sizeof(__buf) / sizeof(_CharT)) 1414: { 1414: __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); 1414: __len = 0; 1414: } 1414: __buf[__len++] = _Traits::to_char_type(__c); 1414: ++__extracted; 1414: __c = __in.rdbuf()->snextc(); 1414: } 1414: __str.append(__buf, __len); 1414: 1414: if (__extracted < __n && _Traits::eq_int_type(__c, __eof)) 1414: __err |= __ios_base::eofbit; 1414: __in.width(0); 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: __in._M_setstate(__ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { 1414: 1414: 1414: 1414: __in._M_setstate(__ios_base::badbit); 1414: } 1414: } 1414: 1414: if (!__extracted) 1414: __err |= __ios_base::failbit; 1414: if (__err) 1414: __in.setstate(__err); 1414: return __in; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: getline(basic_istream<_CharT, _Traits>& __in, 1414: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 1414: { 1414: typedef basic_istream<_CharT, _Traits> __istream_type; 1414: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1414: typedef typename __istream_type::ios_base __ios_base; 1414: typedef typename __istream_type::int_type __int_type; 1414: typedef typename __string_type::size_type __size_type; 1414: 1414: __size_type __extracted = 0; 1414: const __size_type __n = __str.max_size(); 1414: typename __ios_base::iostate __err = __ios_base::goodbit; 1414: typename __istream_type::sentry __cerb(__in, true); 1414: if (__cerb) 1414: { 1414: try 1414: { 1414: __str.erase(); 1414: const __int_type __idelim = _Traits::to_int_type(__delim); 1414: const __int_type __eof = _Traits::eof(); 1414: __int_type __c = __in.rdbuf()->sgetc(); 1414: 1414: while (__extracted < __n 1414: && !_Traits::eq_int_type(__c, __eof) 1414: && !_Traits::eq_int_type(__c, __idelim)) 1414: { 1414: __str += _Traits::to_char_type(__c); 1414: ++__extracted; 1414: __c = __in.rdbuf()->snextc(); 1414: } 1414: 1414: if (_Traits::eq_int_type(__c, __eof)) 1414: __err |= __ios_base::eofbit; 1414: else if (_Traits::eq_int_type(__c, __idelim)) 1414: { 1414: ++__extracted; 1414: __in.rdbuf()->sbumpc(); 1414: } 1414: else 1414: __err |= __ios_base::failbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: __in._M_setstate(__ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { 1414: 1414: 1414: 1414: __in._M_setstate(__ios_base::badbit); 1414: } 1414: } 1414: if (!__extracted) 1414: __err |= __ios_base::failbit; 1414: if (__err) 1414: __in.setstate(__err); 1414: return __in; 1414: } 1414: # 1041 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.tcc" 3 1414: extern template class basic_string; 1414: # 1054 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.tcc" 3 1414: extern template 1414: basic_istream& 1414: operator>>(basic_istream&, string&); 1414: extern template 1414: basic_ostream& 1414: operator<<(basic_ostream&, const string&); 1414: extern template 1414: basic_istream& 1414: getline(basic_istream&, string&, char); 1414: extern template 1414: basic_istream& 1414: getline(basic_istream&, string&); 1414: 1414: 1414: 1414: extern template class basic_string; 1414: # 1080 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_string.tcc" 3 1414: extern template 1414: basic_istream& 1414: operator>>(basic_istream&, wstring&); 1414: extern template 1414: basic_ostream& 1414: operator<<(basic_ostream&, const wstring&); 1414: extern template 1414: basic_istream& 1414: getline(basic_istream&, wstring&, wchar_t); 1414: extern template 1414: basic_istream& 1414: getline(basic_istream&, wstring&); 1414: 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 60 "/usr/arm-linux-gnueabihf/include/c++/16/string" 2 3 1414: # 80 "/usr/arm-linux-gnueabihf/include/c++/16/string" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 81 "/usr/arm-linux-gnueabihf/include/c++/16/string" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/uses_allocator.h" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/bits/uses_allocator.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: struct __erased_type { }; 1414: 1414: 1414: 1414: 1414: template 1414: using __is_erased_or_convertible 1414: = __or_, is_same<_Tp, __erased_type>>; 1414: 1414: 1414: struct allocator_arg_t { explicit allocator_arg_t() = default; }; 1414: 1414: inline constexpr allocator_arg_t allocator_arg = 1414: allocator_arg_t(); 1414: 1414: template> 1414: struct __uses_allocator_helper 1414: : false_type { }; 1414: 1414: template 1414: struct __uses_allocator_helper<_Tp, _Alloc, 1414: __void_t> 1414: : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type 1414: { }; 1414: 1414: 1414: template 1414: struct uses_allocator 1414: : __uses_allocator_helper<_Tp, _Alloc>::type 1414: { }; 1414: 1414: struct __uses_alloc_base { }; 1414: 1414: struct __uses_alloc0 : __uses_alloc_base 1414: { 1414: struct _Sink { void constexpr operator=(const void*) { } } _M_a; 1414: }; 1414: 1414: template 1414: struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; 1414: 1414: template 1414: struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; 1414: 1414: template 1414: struct __uses_alloc; 1414: 1414: template 1414: struct __uses_alloc 1414: : __conditional_t< 1414: is_constructible<_Tp, allocator_arg_t, const _Alloc&, _Args...>::value, 1414: __uses_alloc1<_Alloc>, 1414: __uses_alloc2<_Alloc>> 1414: { 1414: 1414: 1414: static_assert(__or_< 1414: is_constructible<_Tp, allocator_arg_t, const _Alloc&, _Args...>, 1414: is_constructible<_Tp, _Args..., const _Alloc&>>::value, 1414: "construction with an allocator must be possible" 1414: " if uses_allocator is true"); 1414: }; 1414: 1414: template 1414: struct __uses_alloc 1414: : __uses_alloc0 { }; 1414: 1414: template 1414: using __uses_alloc_t = 1414: __uses_alloc::value, _Tp, _Alloc, _Args...>; 1414: 1414: template 1414: constexpr 1414: inline __uses_alloc_t<_Tp, _Alloc, _Args...> 1414: __use_alloc(const _Alloc& __a) 1414: { 1414: __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; 1414: __ret._M_a = std::__addressof(__a); 1414: return __ret; 1414: } 1414: 1414: template 1414: void 1414: __use_alloc(const _Alloc&&) = delete; 1414: 1414: 1414: template 1414: inline constexpr bool uses_allocator_v = 1414: uses_allocator<_Tp, _Alloc>::value; 1414: 1414: 1414: 1414: template 1414: concept __allocator_for = (uses_allocator_v<_Ts, _Alloc> && ...); 1414: 1414: 1414: template class _Predicate, 1414: typename _Tp, typename _Alloc, typename... _Args> 1414: struct __is_uses_allocator_predicate 1414: : __conditional_t::value, 1414: __or_<_Predicate<_Tp, allocator_arg_t, _Alloc, _Args...>, 1414: _Predicate<_Tp, _Args..., _Alloc>>, 1414: _Predicate<_Tp, _Args...>> { }; 1414: 1414: template 1414: struct __is_uses_allocator_constructible 1414: : __is_uses_allocator_predicate 1414: { }; 1414: 1414: 1414: template 1414: inline constexpr bool __is_uses_allocator_constructible_v = 1414: __is_uses_allocator_constructible<_Tp, _Alloc, _Args...>::value; 1414: 1414: 1414: template 1414: struct __is_nothrow_uses_allocator_constructible 1414: : __is_uses_allocator_predicate 1414: { }; 1414: 1414: 1414: 1414: template 1414: inline constexpr bool 1414: __is_nothrow_uses_allocator_constructible_v = 1414: __is_nothrow_uses_allocator_constructible<_Tp, _Alloc, _Args...>::value; 1414: 1414: 1414: template 1414: void __uses_allocator_construct_impl(__uses_alloc0, _Tp* __ptr, 1414: _Args&&... __args) 1414: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } 1414: 1414: template 1414: void __uses_allocator_construct_impl(__uses_alloc1<_Alloc> __a, _Tp* __ptr, 1414: _Args&&... __args) 1414: { 1414: ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, 1414: std::forward<_Args>(__args)...); 1414: } 1414: 1414: template 1414: void __uses_allocator_construct_impl(__uses_alloc2<_Alloc> __a, _Tp* __ptr, 1414: _Args&&... __args) 1414: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } 1414: 1414: template 1414: void __uses_allocator_construct(const _Alloc& __a, _Tp* __ptr, 1414: _Args&&... __args) 1414: { 1414: std::__uses_allocator_construct_impl( 1414: std::__use_alloc<_Tp, _Alloc, _Args...>(__a), __ptr, 1414: std::forward<_Args>(__args)...); 1414: } 1414: 1414: 1414: 1414: } 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/uses_allocator_args.h" 1 3 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/bits/uses_allocator_args.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/c++/16/bits/uses_allocator_args.h" 2 3 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 1 3 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_util.h" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_util.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: namespace ranges 1414: { 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: concept __simple_view = view<_Range> && range 1414: && same_as, iterator_t> 1414: && same_as, sentinel_t>; 1414: 1414: 1414: 1414: template 1414: concept __has_arrow = input_iterator<_It> 1414: && (is_pointer_v<_It> 1414: || requires(const _It __it) { __it.operator->(); }); 1414: 1414: using std::__detail::__different_from; 1414: } 1414: 1414: 1414: template 1414: requires is_class_v<_Derived> && same_as<_Derived, remove_cv_t<_Derived>> 1414: class view_interface 1414: { 1414: private: 1414: constexpr _Derived& _M_derived() noexcept 1414: { 1414: static_assert(derived_from<_Derived, view_interface<_Derived>>); 1414: static_assert(view<_Derived>); 1414: return static_cast<_Derived&>(*this); 1414: } 1414: 1414: constexpr const _Derived& _M_derived() const noexcept 1414: { 1414: static_assert(derived_from<_Derived, view_interface<_Derived>>); 1414: static_assert(view<_Derived>); 1414: return static_cast(*this); 1414: } 1414: 1414: static constexpr bool 1414: _S_bool(bool) noexcept; 1414: 1414: template 1414: static constexpr bool 1414: _S_empty(_Tp& __t) 1414: noexcept(noexcept(_S_bool(ranges::begin(__t) == ranges::end(__t)))) 1414: { return ranges::begin(__t) == ranges::end(__t); } 1414: 1414: template 1414: static constexpr auto 1414: _S_size(_Tp& __t) 1414: noexcept(noexcept(ranges::end(__t) - ranges::begin(__t))) 1414: { return ranges::end(__t) - ranges::begin(__t); } 1414: 1414: public: 1414: constexpr bool 1414: empty() 1414: noexcept(noexcept(_S_empty(_M_derived()))) 1414: requires forward_range<_Derived> && (!sized_range<_Derived>) 1414: { return _S_empty(_M_derived()); } 1414: 1414: constexpr bool 1414: empty() 1414: noexcept(noexcept(ranges::size(_M_derived()) == 0)) 1414: requires sized_range<_Derived> 1414: { return ranges::size(_M_derived()) == 0; } 1414: 1414: constexpr bool 1414: empty() const 1414: noexcept(noexcept(_S_empty(_M_derived()))) 1414: requires forward_range && (!sized_range) 1414: { return _S_empty(_M_derived()); } 1414: 1414: constexpr bool 1414: empty() const 1414: noexcept(noexcept(ranges::size(_M_derived()) == 0)) 1414: requires sized_range 1414: { return ranges::size(_M_derived()) == 0; } 1414: 1414: constexpr explicit 1414: operator bool() noexcept(noexcept(ranges::empty(_M_derived()))) 1414: requires requires { ranges::empty(_M_derived()); } 1414: { return !ranges::empty(_M_derived()); } 1414: 1414: constexpr explicit 1414: operator bool() const noexcept(noexcept(ranges::empty(_M_derived()))) 1414: requires requires { ranges::empty(_M_derived()); } 1414: { return !ranges::empty(_M_derived()); } 1414: 1414: constexpr auto 1414: data() noexcept(noexcept(ranges::begin(_M_derived()))) 1414: requires contiguous_iterator> 1414: { return std::to_address(ranges::begin(_M_derived())); } 1414: 1414: constexpr auto 1414: data() const noexcept(noexcept(ranges::begin(_M_derived()))) 1414: requires range 1414: && contiguous_iterator> 1414: { return std::to_address(ranges::begin(_M_derived())); } 1414: 1414: constexpr auto 1414: size() noexcept(noexcept(_S_size(_M_derived()))) 1414: requires forward_range<_Derived> 1414: && sized_sentinel_for, iterator_t<_Derived>> 1414: { return _S_size(_M_derived()); } 1414: 1414: constexpr auto 1414: size() const noexcept(noexcept(_S_size(_M_derived()))) 1414: requires forward_range 1414: && sized_sentinel_for, 1414: iterator_t> 1414: { return _S_size(_M_derived()); } 1414: 1414: constexpr decltype(auto) 1414: front() requires forward_range<_Derived> 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *ranges::begin(_M_derived()); 1414: } 1414: 1414: constexpr decltype(auto) 1414: front() const requires forward_range 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *ranges::begin(_M_derived()); 1414: } 1414: 1414: constexpr decltype(auto) 1414: back() 1414: requires bidirectional_range<_Derived> && common_range<_Derived> 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *ranges::prev(ranges::end(_M_derived())); 1414: } 1414: 1414: constexpr decltype(auto) 1414: back() const 1414: requires bidirectional_range 1414: && common_range 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *ranges::prev(ranges::end(_M_derived())); 1414: } 1414: 1414: template 1414: constexpr decltype(auto) 1414: operator[](range_difference_t<_Range> __n) 1414: { return ranges::begin(_M_derived())[__n]; } 1414: 1414: template 1414: constexpr decltype(auto) 1414: operator[](range_difference_t<_Range> __n) const 1414: { return ranges::begin(_M_derived())[__n]; } 1414: # 219 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_util.h" 3 1414: }; 1414: 1414: namespace __detail 1414: { 1414: template 1414: concept __uses_nonqualification_pointer_conversion 1414: = is_pointer_v<_From> && is_pointer_v<_To> 1414: && !convertible_to(*)[], 1414: remove_pointer_t<_To>(*)[]>; 1414: 1414: template 1414: concept __convertible_to_non_slicing = convertible_to<_From, _To> 1414: && !__uses_nonqualification_pointer_conversion, 1414: decay_t<_To>>; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: concept __pair_like 1414: = !is_reference_v<_Tp> && requires(_Tp __t) 1414: { 1414: typename tuple_size<_Tp>::type; 1414: requires derived_from, integral_constant>; 1414: typename tuple_element_t<0, remove_const_t<_Tp>>; 1414: typename tuple_element_t<1, remove_const_t<_Tp>>; 1414: { get<0>(__t) } -> convertible_to&>; 1414: { get<1>(__t) } -> convertible_to&>; 1414: }; 1414: 1414: 1414: template 1414: concept __pair_like_convertible_from 1414: = !range<_Tp> && !is_reference_v<_Tp> && __pair_like<_Tp> 1414: && constructible_from<_Tp, _Up, _Vp> 1414: && __convertible_to_non_slicing<_Up, tuple_element_t<0, _Tp>> 1414: && convertible_to<_Vp, tuple_element_t<1, _Tp>>; 1414: 1414: } 1414: 1414: namespace views { struct _Drop; } 1414: 1414: enum class subrange_kind : bool { unsized, sized }; 1414: 1414: 1414: template _Sent = _It, 1414: subrange_kind _Kind = sized_sentinel_for<_Sent, _It> 1414: ? subrange_kind::sized : subrange_kind::unsized> 1414: requires (_Kind == subrange_kind::sized || !sized_sentinel_for<_Sent, _It>) 1414: class subrange : public view_interface> 1414: { 1414: private: 1414: static constexpr bool _S_store_size 1414: = _Kind == subrange_kind::sized && !sized_sentinel_for<_Sent, _It>; 1414: 1414: friend struct views::_Drop; 1414: 1414: _It _M_begin = _It(); 1414: [[no_unique_address]] _Sent _M_end = _Sent(); 1414: 1414: using __size_type 1414: = __detail::__make_unsigned_like_t>; 1414: 1414: template 1414: struct _Size 1414: { 1414: [[__gnu__::__always_inline__]] 1414: constexpr _Size(_Tp = {}) { } 1414: }; 1414: 1414: template 1414: struct _Size<_Tp, true> 1414: { 1414: [[__gnu__::__always_inline__]] 1414: constexpr _Size(_Tp __s = {}) : _M_size(__s) { } 1414: 1414: _Tp _M_size; 1414: }; 1414: 1414: [[no_unique_address]] _Size<__size_type> _M_size = {}; 1414: 1414: public: 1414: subrange() requires default_initializable<_It> = default; 1414: 1414: constexpr 1414: subrange(__detail::__convertible_to_non_slicing<_It> auto __i, _Sent __s) 1414: noexcept(is_nothrow_constructible_v<_It, decltype(__i)> 1414: && is_nothrow_constructible_v<_Sent, _Sent&>) 1414: requires (!_S_store_size) 1414: : _M_begin(std::move(__i)), _M_end(__s) 1414: { } 1414: 1414: constexpr 1414: subrange(__detail::__convertible_to_non_slicing<_It> auto __i, _Sent __s, 1414: __size_type __n) 1414: noexcept(is_nothrow_constructible_v<_It, decltype(__i)> 1414: && is_nothrow_constructible_v<_Sent, _Sent&>) 1414: requires (_Kind == subrange_kind::sized) 1414: : _M_begin(std::move(__i)), _M_end(__s), _M_size(__n) 1414: { } 1414: 1414: template<__detail::__different_from _Rng> 1414: requires borrowed_range<_Rng> 1414: && __detail::__convertible_to_non_slicing, _It> 1414: && convertible_to, _Sent> 1414: constexpr 1414: subrange(_Rng&& __r) 1414: noexcept(noexcept(subrange(__r, ranges::size(__r)))) 1414: requires _S_store_size && sized_range<_Rng> 1414: : subrange(__r, ranges::size(__r)) 1414: { } 1414: 1414: template<__detail::__different_from _Rng> 1414: requires borrowed_range<_Rng> 1414: && __detail::__convertible_to_non_slicing, _It> 1414: && convertible_to, _Sent> 1414: constexpr 1414: subrange(_Rng&& __r) 1414: noexcept(noexcept(subrange(ranges::begin(__r), ranges::end(__r)))) 1414: requires (!_S_store_size) 1414: : subrange(ranges::begin(__r), ranges::end(__r)) 1414: { } 1414: 1414: template 1414: requires __detail::__convertible_to_non_slicing, _It> 1414: && convertible_to, _Sent> 1414: constexpr 1414: subrange(_Rng&& __r, __size_type __n) 1414: noexcept(noexcept(subrange(ranges::begin(__r), ranges::end(__r), __n))) 1414: requires (_Kind == subrange_kind::sized) 1414: : subrange{ranges::begin(__r), ranges::end(__r), __n} 1414: { } 1414: 1414: template<__detail::__different_from _PairLike> 1414: requires __detail::__pair_like_convertible_from<_PairLike, const _It&, 1414: const _Sent&> 1414: constexpr 1414: operator _PairLike() const 1414: { return _PairLike(_M_begin, _M_end); } 1414: 1414: constexpr _It 1414: begin() const requires copyable<_It> 1414: { return _M_begin; } 1414: 1414: [[nodiscard]] constexpr _It 1414: begin() requires (!copyable<_It>) 1414: { return std::move(_M_begin); } 1414: 1414: constexpr _Sent end() const { return _M_end; } 1414: 1414: constexpr bool empty() const { return _M_begin == _M_end; } 1414: 1414: constexpr __size_type 1414: size() const requires (_Kind == subrange_kind::sized) 1414: { 1414: if constexpr (_S_store_size) 1414: return _M_size._M_size; 1414: else 1414: return __detail::__to_unsigned_like(_M_end - _M_begin); 1414: } 1414: 1414: [[nodiscard]] constexpr subrange 1414: next(iter_difference_t<_It> __n = 1) const & 1414: requires forward_iterator<_It> 1414: { 1414: auto __tmp = *this; 1414: __tmp.advance(__n); 1414: return __tmp; 1414: } 1414: 1414: [[nodiscard]] constexpr subrange 1414: next(iter_difference_t<_It> __n = 1) && 1414: { 1414: advance(__n); 1414: return std::move(*this); 1414: } 1414: 1414: [[nodiscard]] constexpr subrange 1414: prev(iter_difference_t<_It> __n = 1) const 1414: requires bidirectional_iterator<_It> 1414: { 1414: auto __tmp = *this; 1414: __tmp.advance(-__n); 1414: return __tmp; 1414: } 1414: 1414: constexpr subrange& 1414: advance(iter_difference_t<_It> __n) 1414: { 1414: 1414: 1414: if constexpr (bidirectional_iterator<_It>) 1414: if (__n < 0) 1414: { 1414: ranges::advance(_M_begin, __n); 1414: if constexpr (_S_store_size) 1414: _M_size._M_size += __detail::__to_unsigned_like(-__n); 1414: return *this; 1414: } 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) std::__glibcxx_assert_fail(); } while (false); 1414: auto __d = __n - ranges::advance(_M_begin, __n, _M_end); 1414: if constexpr (_S_store_size) 1414: _M_size._M_size -= __detail::__to_unsigned_like(__d); 1414: return *this; 1414: } 1414: }; 1414: 1414: template _Sent> 1414: subrange(_It, _Sent) -> subrange<_It, _Sent>; 1414: 1414: template _Sent> 1414: subrange(_It, _Sent, 1414: __detail::__make_unsigned_like_t>) 1414: -> subrange<_It, _Sent, subrange_kind::sized>; 1414: 1414: template 1414: subrange(_Rng&&) 1414: -> subrange, sentinel_t<_Rng>, 1414: (sized_range<_Rng> 1414: || sized_sentinel_for, iterator_t<_Rng>>) 1414: ? subrange_kind::sized : subrange_kind::unsized>; 1414: 1414: template 1414: subrange(_Rng&&, 1414: __detail::__make_unsigned_like_t>) 1414: -> subrange, sentinel_t<_Rng>, subrange_kind::sized>; 1414: 1414: 1414: 1414: 1414: template 1414: requires ((_Num == 0 && copyable<_It>) || _Num == 1) 1414: constexpr auto 1414: get(const subrange<_It, _Sent, _Kind>& __r) 1414: { 1414: if constexpr (_Num == 0) 1414: return __r.begin(); 1414: else 1414: return __r.end(); 1414: } 1414: 1414: template 1414: requires (_Num < 2) 1414: constexpr auto 1414: get(subrange<_It, _Sent, _Kind>&& __r) 1414: { 1414: if constexpr (_Num == 0) 1414: return __r.begin(); 1414: else 1414: return __r.end(); 1414: } 1414: 1414: template 1414: inline constexpr bool 1414: enable_borrowed_range> = true; 1414: 1414: template 1414: using borrowed_subrange_t = __conditional_t, 1414: subrange>, 1414: dangling>; 1414: 1414: 1414: template 1414: inline constexpr bool __detail::__is_subrange> = true; 1414: } 1414: # 495 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ranges_util.h" 3 1414: namespace ranges 1414: { 1414: struct __find_fn 1414: { 1414: template _Sent, 1414: typename _Proj = identity, 1414: typename _Tp > 1414: requires indirect_binary_predicate, const _Tp*> 1414: [[nodiscard]] constexpr _Iter 1414: operator()(_Iter __first, _Sent __last, 1414: const _Tp& __value, _Proj __proj = {}) const 1414: { 1414: if constexpr (is_same_v<_Proj, identity>) 1414: if constexpr(__can_use_memchr_for_find, _Tp>) 1414: if constexpr (sized_sentinel_for<_Sent, _Iter>) 1414: if constexpr (contiguous_iterator<_Iter>) 1414: if (!is_constant_evaluated()) 1414: { 1414: using _Vt = iter_value_t<_Iter>; 1414: auto __n = __last - __first; 1414: if (static_cast<_Vt>(__value) == __value) [[likely]] 1414: if (__n > 0) 1414: { 1414: const size_t __nu = static_cast(__n); 1414: const int __ival = static_cast(__value); 1414: const void* __p0 = std::to_address(__first); 1414: if (auto __p1 = __builtin_memchr(__p0, __ival, __nu)) 1414: __n = (const char*)__p1 - (const char*)__p0; 1414: } 1414: return __first + __n; 1414: } 1414: 1414: while (__first != __last 1414: && !(std::__invoke(__proj, *__first) == __value)) 1414: ++__first; 1414: return __first; 1414: } 1414: 1414: template 1414: requires indirect_binary_predicate, _Proj>, 1414: const _Tp*> 1414: [[nodiscard]] constexpr borrowed_iterator_t<_Range> 1414: operator()(_Range&& __r, const _Tp& __value, _Proj __proj = {}) const 1414: { 1414: return (*this)(ranges::begin(__r), ranges::end(__r), 1414: __value, std::move(__proj)); 1414: } 1414: }; 1414: 1414: inline constexpr __find_fn find{}; 1414: 1414: struct __find_if_fn 1414: { 1414: template _Sent, 1414: typename _Proj = identity, 1414: indirect_unary_predicate> _Pred> 1414: [[nodiscard]] constexpr _Iter 1414: operator()(_Iter __first, _Sent __last, 1414: _Pred __pred, _Proj __proj = {}) const 1414: { 1414: while (__first != __last 1414: && !(bool)std::__invoke(__pred, std::__invoke(__proj, *__first))) 1414: ++__first; 1414: return __first; 1414: } 1414: 1414: template, _Proj>> 1414: _Pred> 1414: [[nodiscard]] constexpr borrowed_iterator_t<_Range> 1414: operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const 1414: { 1414: return (*this)(ranges::begin(__r), ranges::end(__r), 1414: std::move(__pred), std::move(__proj)); 1414: } 1414: }; 1414: 1414: inline constexpr __find_if_fn find_if{}; 1414: 1414: struct __find_if_not_fn 1414: { 1414: template _Sent, 1414: typename _Proj = identity, 1414: indirect_unary_predicate> _Pred> 1414: [[nodiscard]] constexpr _Iter 1414: operator()(_Iter __first, _Sent __last, 1414: _Pred __pred, _Proj __proj = {}) const 1414: { 1414: while (__first != __last 1414: && (bool)std::__invoke(__pred, std::__invoke(__proj, *__first))) 1414: ++__first; 1414: return __first; 1414: } 1414: 1414: template, _Proj>> 1414: _Pred> 1414: [[nodiscard]] constexpr borrowed_iterator_t<_Range> 1414: operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const 1414: { 1414: return (*this)(ranges::begin(__r), ranges::end(__r), 1414: std::move(__pred), std::move(__proj)); 1414: } 1414: }; 1414: 1414: inline constexpr __find_if_not_fn find_if_not{}; 1414: 1414: template 1414: struct in_in_result 1414: { 1414: [[no_unique_address]] _Iter1 in1; 1414: [[no_unique_address]] _Iter2 in2; 1414: 1414: template 1414: requires convertible_to 1414: && convertible_to 1414: constexpr 1414: operator in_in_result<_IIter1, _IIter2>() const & 1414: { return {in1, in2}; } 1414: 1414: template 1414: requires convertible_to<_Iter1, _IIter1> 1414: && convertible_to<_Iter2, _IIter2> 1414: constexpr 1414: operator in_in_result<_IIter1, _IIter2>() && 1414: { return {std::move(in1), std::move(in2)}; } 1414: }; 1414: 1414: template 1414: using mismatch_result = in_in_result<_Iter1, _Iter2>; 1414: 1414: struct __mismatch_fn 1414: { 1414: template _Sent1, 1414: input_iterator _Iter2, sentinel_for<_Iter2> _Sent2, 1414: typename _Pred = ranges::equal_to, 1414: typename _Proj1 = identity, typename _Proj2 = identity> 1414: requires indirectly_comparable<_Iter1, _Iter2, _Pred, _Proj1, _Proj2> 1414: [[nodiscard]] constexpr mismatch_result<_Iter1, _Iter2> 1414: operator()(_Iter1 __first1, _Sent1 __last1, 1414: _Iter2 __first2, _Sent2 __last2, _Pred __pred = {}, 1414: _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const 1414: { 1414: while (__first1 != __last1 && __first2 != __last2 1414: && (bool)std::__invoke(__pred, 1414: std::__invoke(__proj1, *__first1), 1414: std::__invoke(__proj2, *__first2))) 1414: { 1414: ++__first1; 1414: ++__first2; 1414: } 1414: return { std::move(__first1), std::move(__first2) }; 1414: } 1414: 1414: template 1414: requires indirectly_comparable, iterator_t<_Range2>, 1414: _Pred, _Proj1, _Proj2> 1414: [[nodiscard]] 1414: constexpr mismatch_result, iterator_t<_Range2>> 1414: operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {}, 1414: _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const 1414: { 1414: return (*this)(ranges::begin(__r1), ranges::end(__r1), 1414: ranges::begin(__r2), ranges::end(__r2), 1414: std::move(__pred), 1414: std::move(__proj1), std::move(__proj2)); 1414: } 1414: }; 1414: 1414: inline constexpr __mismatch_fn mismatch{}; 1414: 1414: struct __search_fn 1414: { 1414: template _Sent1, 1414: forward_iterator _Iter2, sentinel_for<_Iter2> _Sent2, 1414: typename _Pred = ranges::equal_to, 1414: typename _Proj1 = identity, typename _Proj2 = identity> 1414: requires indirectly_comparable<_Iter1, _Iter2, _Pred, _Proj1, _Proj2> 1414: [[nodiscard]] constexpr subrange<_Iter1> 1414: operator()(_Iter1 __first1, _Sent1 __last1, 1414: _Iter2 __first2, _Sent2 __last2, _Pred __pred = {}, 1414: _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const 1414: { 1414: if (__first1 == __last1 || __first2 == __last2) 1414: return {__first1, __first1}; 1414: 1414: for (;;) 1414: { 1414: for (;;) 1414: { 1414: if (__first1 == __last1) 1414: return {__first1, __first1}; 1414: if (std::__invoke(__pred, 1414: std::__invoke(__proj1, *__first1), 1414: std::__invoke(__proj2, *__first2))) 1414: break; 1414: ++__first1; 1414: } 1414: auto __cur1 = __first1; 1414: auto __cur2 = __first2; 1414: for (;;) 1414: { 1414: if (++__cur2 == __last2) 1414: return {__first1, ++__cur1}; 1414: if (++__cur1 == __last1) 1414: return {__cur1, __cur1}; 1414: if (!(bool)std::__invoke(__pred, 1414: std::__invoke(__proj1, *__cur1), 1414: std::__invoke(__proj2, *__cur2))) 1414: { 1414: ++__first1; 1414: break; 1414: } 1414: } 1414: } 1414: } 1414: 1414: template 1414: requires indirectly_comparable, iterator_t<_Range2>, 1414: _Pred, _Proj1, _Proj2> 1414: [[nodiscard]] constexpr borrowed_subrange_t<_Range1> 1414: operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {}, 1414: _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const 1414: { 1414: return (*this)(ranges::begin(__r1), ranges::end(__r1), 1414: ranges::begin(__r2), ranges::end(__r2), 1414: std::move(__pred), 1414: std::move(__proj1), std::move(__proj2)); 1414: } 1414: }; 1414: 1414: inline constexpr __search_fn search{}; 1414: 1414: struct __min_fn 1414: { 1414: template> 1414: _Comp = ranges::less> 1414: [[nodiscard]] constexpr const _Tp& 1414: operator()(const _Tp& __a, const _Tp& __b, 1414: _Comp __comp = {}, _Proj __proj = {}) const 1414: { 1414: if (std::__invoke(__comp, 1414: std::__invoke(__proj, __b), 1414: std::__invoke(__proj, __a))) 1414: return __b; 1414: else 1414: return __a; 1414: } 1414: 1414: template, _Proj>> 1414: _Comp = ranges::less> 1414: requires indirectly_copyable_storable, 1414: range_value_t<_Range>*> 1414: [[nodiscard]] constexpr range_value_t<_Range> 1414: operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const 1414: { 1414: auto __first = ranges::begin(__r); 1414: auto __last = ranges::end(__r); 1414: do { if (std::__is_constant_evaluated() && !bool(__first != __last)) std::__glibcxx_assert_fail(); } while (false); 1414: range_value_t<_Range> __result(*__first); 1414: while (++__first != __last) 1414: { 1414: auto&& __tmp = *__first; 1414: if (std::__invoke(__comp, 1414: std::__invoke(__proj, __tmp), 1414: std::__invoke(__proj, __result))) 1414: __result = std::forward(__tmp); 1414: } 1414: return __result; 1414: } 1414: 1414: template> 1414: _Comp = ranges::less> 1414: [[nodiscard]] constexpr _Tp 1414: operator()(initializer_list<_Tp> __r, 1414: _Comp __comp = {}, _Proj __proj = {}) const 1414: { 1414: return (*this)(ranges::subrange(__r), 1414: std::move(__comp), std::move(__proj)); 1414: } 1414: }; 1414: 1414: inline constexpr __min_fn min{}; 1414: 1414: struct __adjacent_find_fn 1414: { 1414: template _Sent, 1414: typename _Proj = identity, 1414: indirect_binary_predicate, 1414: projected<_Iter, _Proj>> _Pred 1414: = ranges::equal_to> 1414: [[nodiscard]] constexpr _Iter 1414: operator()(_Iter __first, _Sent __last, 1414: _Pred __pred = {}, _Proj __proj = {}) const 1414: { 1414: if (__first == __last) 1414: return __first; 1414: auto __next = __first; 1414: for (; ++__next != __last; __first = __next) 1414: { 1414: if (std::__invoke(__pred, 1414: std::__invoke(__proj, *__first), 1414: std::__invoke(__proj, *__next))) 1414: return __first; 1414: } 1414: return __next; 1414: } 1414: 1414: template, _Proj>, 1414: projected, _Proj>> _Pred = ranges::equal_to> 1414: [[nodiscard]] constexpr borrowed_iterator_t<_Range> 1414: operator()(_Range&& __r, _Pred __pred = {}, _Proj __proj = {}) const 1414: { 1414: return (*this)(ranges::begin(__r), ranges::end(__r), 1414: std::move(__pred), std::move(__proj)); 1414: } 1414: }; 1414: 1414: inline constexpr __adjacent_find_fn adjacent_find{}; 1414: 1414: } 1414: 1414: using ranges::get; 1414: 1414: template 1414: struct tuple_size> 1414: : integral_constant 1414: { }; 1414: 1414: template 1414: struct tuple_element<0, ranges::subrange<_Iter, _Sent, _Kind>> 1414: { using type = _Iter; }; 1414: 1414: template 1414: struct tuple_element<1, ranges::subrange<_Iter, _Sent, _Kind>> 1414: { using type = _Sent; }; 1414: 1414: template 1414: struct tuple_element<0, const ranges::subrange<_Iter, _Sent, _Kind>> 1414: { using type = _Iter; }; 1414: 1414: template 1414: struct tuple_element<1, const ranges::subrange<_Iter, _Sent, _Kind>> 1414: { using type = _Sent; }; 1414: 1414: 1414: } 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 2 3 1414: # 57 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 58 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: class tuple; 1414: 1414: 1414: template 1414: struct __is_empty_non_tuple : is_empty<_Tp> { }; 1414: 1414: 1414: template 1414: struct __is_empty_non_tuple> : false_type { }; 1414: 1414: 1414: template 1414: using __empty_not_final 1414: = __conditional_t<__is_final(_Tp), false_type, 1414: __is_empty_non_tuple<_Tp>>; 1414: 1414: template::value> 1414: struct _Head_base; 1414: 1414: 1414: template 1414: struct _Head_base<_Idx, _Head, true> 1414: { 1414: constexpr _Head_base() 1414: : _M_head_impl() { } 1414: 1414: constexpr _Head_base(const _Head& __h) 1414: : _M_head_impl(__h) { } 1414: 1414: constexpr _Head_base(const _Head_base&) = default; 1414: constexpr _Head_base(_Head_base&&) = default; 1414: 1414: template 1414: constexpr _Head_base(_UHead&& __h) 1414: : _M_head_impl(std::forward<_UHead>(__h)) { } 1414: 1414: constexpr 1414: _Head_base(allocator_arg_t, __uses_alloc0) 1414: : _M_head_impl() { } 1414: 1414: template 1414: constexpr 1414: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 1414: : _M_head_impl(allocator_arg, *__a._M_a) { } 1414: 1414: template 1414: constexpr 1414: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 1414: : _M_head_impl(*__a._M_a) { } 1414: 1414: template 1414: constexpr 1414: _Head_base(__uses_alloc0, _UHead&& __uhead) 1414: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 1414: 1414: template 1414: constexpr 1414: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 1414: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 1414: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 1414: 1414: static constexpr _Head& 1414: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 1414: 1414: static constexpr const _Head& 1414: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 1414: 1414: [[__no_unique_address__]] _Head _M_head_impl; 1414: }; 1414: # 199 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: struct _Head_base<_Idx, _Head, false> 1414: { 1414: constexpr _Head_base() 1414: : _M_head_impl() { } 1414: 1414: constexpr _Head_base(const _Head& __h) 1414: : _M_head_impl(__h) { } 1414: 1414: constexpr _Head_base(const _Head_base&) = default; 1414: constexpr _Head_base(_Head_base&&) = default; 1414: 1414: template 1414: constexpr _Head_base(_UHead&& __h) 1414: : _M_head_impl(std::forward<_UHead>(__h)) { } 1414: 1414: constexpr 1414: _Head_base(allocator_arg_t, __uses_alloc0) 1414: : _M_head_impl() { } 1414: 1414: template 1414: constexpr 1414: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 1414: : _M_head_impl(allocator_arg, *__a._M_a) { } 1414: 1414: template 1414: constexpr 1414: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 1414: : _M_head_impl(*__a._M_a) { } 1414: 1414: template 1414: constexpr 1414: _Head_base(__uses_alloc0, _UHead&& __uhead) 1414: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 1414: 1414: template 1414: constexpr 1414: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 1414: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 1414: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 1414: 1414: static constexpr _Head& 1414: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 1414: 1414: static constexpr const _Head& 1414: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 1414: 1414: _Head _M_head_impl; 1414: }; 1414: # 272 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: struct _Tuple_impl; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct _Tuple_impl<_Idx, _Head, _Tail...> 1414: : public _Tuple_impl<_Idx + 1, _Tail...>, 1414: private _Head_base<_Idx, _Head> 1414: { 1414: template friend struct _Tuple_impl; 1414: 1414: typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; 1414: typedef _Head_base<_Idx, _Head> _Base; 1414: 1414: static constexpr _Head& 1414: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 1414: 1414: static constexpr const _Head& 1414: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 1414: 1414: static constexpr _Inherited& 1414: _M_tail(_Tuple_impl& __t) noexcept { return __t; } 1414: 1414: static constexpr const _Inherited& 1414: _M_tail(const _Tuple_impl& __t) noexcept { return __t; } 1414: 1414: constexpr _Tuple_impl() 1414: : _Inherited(), _Base() { } 1414: 1414: explicit constexpr 1414: _Tuple_impl(const _Head& __head, const _Tail&... __tail) 1414: : _Inherited(__tail...), _Base(__head) 1414: { } 1414: 1414: template> 1414: explicit constexpr 1414: _Tuple_impl(_UHead&& __head, _UTail&&... __tail) 1414: : _Inherited(std::forward<_UTail>(__tail)...), 1414: _Base(std::forward<_UHead>(__head)) 1414: { } 1414: 1414: constexpr _Tuple_impl(const _Tuple_impl&) = default; 1414: 1414: 1414: 1414: _Tuple_impl& operator=(const _Tuple_impl&) = delete; 1414: 1414: _Tuple_impl(_Tuple_impl&&) = default; 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) 1414: : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 1414: _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 1414: : _Inherited(std::move 1414: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 1414: _Base(std::forward<_UHead> 1414: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) 1414: { } 1414: # 368 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 1414: : _Inherited(__tag, __a), 1414: _Base(__tag, __use_alloc<_Head>(__a)) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1414: const _Head& __head, const _Tail&... __tail) 1414: : _Inherited(__tag, __a, __tail...), 1414: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) 1414: { } 1414: 1414: template> 1414: constexpr 1414: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1414: _UHead&& __head, _UTail&&... __tail) 1414: : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), 1414: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 1414: std::forward<_UHead>(__head)) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1414: const _Tuple_impl& __in) 1414: : _Inherited(__tag, __a, _M_tail(__in)), 1414: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1414: _Tuple_impl&& __in) 1414: : _Inherited(__tag, __a, std::move(_M_tail(__in))), 1414: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 1414: std::forward<_Head>(_M_head(__in))) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1414: const _Tuple_impl<_Idx, _UHead, _UTails...>& __in) 1414: : _Inherited(__tag, __a, 1414: _Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in)), 1414: _Base(__use_alloc<_Head, _Alloc, const _UHead&>(__a), 1414: _Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1414: _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 1414: : _Inherited(__tag, __a, std::move 1414: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 1414: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 1414: std::forward<_UHead> 1414: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) 1414: { } 1414: # 463 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: constexpr 1414: void 1414: _M_assign(const _Tuple_impl<_Idx, _UElements...>& __in) 1414: { 1414: _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); 1414: _M_tail(*this)._M_assign( 1414: _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)); 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: _M_assign(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 1414: { 1414: _M_head(*this) = std::forward<_UHead> 1414: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); 1414: _M_tail(*this)._M_assign( 1414: std::move(_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))); 1414: } 1414: # 523 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: protected: 1414: constexpr 1414: void 1414: _M_swap(_Tuple_impl& __in) 1414: { 1414: using std::swap; 1414: swap(_M_head(*this), _M_head(__in)); 1414: _Inherited::_M_swap(_M_tail(__in)); 1414: } 1414: # 542 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: }; 1414: 1414: 1414: template 1414: struct _Tuple_impl<_Idx, _Head> 1414: : private _Head_base<_Idx, _Head> 1414: { 1414: template friend struct _Tuple_impl; 1414: 1414: typedef _Head_base<_Idx, _Head> _Base; 1414: 1414: static constexpr _Head& 1414: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 1414: 1414: static constexpr const _Head& 1414: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 1414: 1414: constexpr 1414: _Tuple_impl() 1414: : _Base() { } 1414: 1414: explicit constexpr 1414: _Tuple_impl(const _Head& __head) 1414: : _Base(__head) 1414: { } 1414: 1414: template 1414: explicit constexpr 1414: _Tuple_impl(_UHead&& __head) 1414: : _Base(std::forward<_UHead>(__head)) 1414: { } 1414: 1414: constexpr _Tuple_impl(const _Tuple_impl&) = default; 1414: 1414: 1414: 1414: _Tuple_impl& operator=(const _Tuple_impl&) = delete; 1414: 1414: 1414: 1414: 1414: constexpr 1414: _Tuple_impl(_Tuple_impl&& __in) 1414: noexcept(is_nothrow_move_constructible<_Head>::value) 1414: : _Base(static_cast<_Base&&>(__in)) 1414: { } 1414: 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) 1414: : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) 1414: : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 1414: { } 1414: # 624 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 1414: : _Base(__tag, __use_alloc<_Head>(__a)) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t, const _Alloc& __a, 1414: const _Head& __head) 1414: : _Base(__use_alloc<_Head, _Alloc, const _Head&>(__a), __head) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t, const _Alloc& __a, 1414: _UHead&& __head) 1414: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 1414: std::forward<_UHead>(__head)) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t, const _Alloc& __a, 1414: const _Tuple_impl& __in) 1414: : _Base(__use_alloc<_Head, _Alloc, const _Head&>(__a), _M_head(__in)) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t, const _Alloc& __a, 1414: _Tuple_impl&& __in) 1414: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 1414: std::forward<_Head>(_M_head(__in))) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t, const _Alloc& __a, 1414: const _Tuple_impl<_Idx, _UHead>& __in) 1414: : _Base(__use_alloc<_Head, _Alloc, const _UHead&>(__a), 1414: _Tuple_impl<_Idx, _UHead>::_M_head(__in)) 1414: { } 1414: 1414: template 1414: constexpr 1414: _Tuple_impl(allocator_arg_t, const _Alloc& __a, 1414: _Tuple_impl<_Idx, _UHead>&& __in) 1414: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 1414: std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 1414: { } 1414: # 703 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: constexpr 1414: void 1414: _M_assign(const _Tuple_impl<_Idx, _UHead>& __in) 1414: { 1414: _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: _M_assign(_Tuple_impl<_Idx, _UHead>&& __in) 1414: { 1414: _M_head(*this) 1414: = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); 1414: } 1414: # 749 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: protected: 1414: constexpr 1414: void 1414: _M_swap(_Tuple_impl& __in) 1414: { 1414: using std::swap; 1414: swap(_M_head(*this), _M_head(__in)); 1414: } 1414: # 766 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: }; 1414: 1414: 1414: 1414: template 1414: struct _TupleConstraints 1414: { 1414: template 1414: using __constructible = __and_...>; 1414: 1414: template 1414: using __convertible = __and_...>; 1414: 1414: 1414: 1414: 1414: template 1414: static constexpr bool __is_implicitly_constructible() 1414: { 1414: return __and_<__constructible<_UTypes...>, 1414: __convertible<_UTypes...> 1414: >::value; 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: static constexpr bool __is_explicitly_constructible() 1414: { 1414: return __and_<__constructible<_UTypes...>, 1414: __not_<__convertible<_UTypes...>> 1414: >::value; 1414: } 1414: 1414: static constexpr bool __is_implicitly_default_constructible() 1414: { 1414: return __and_... 1414: >::value; 1414: } 1414: 1414: static constexpr bool __is_explicitly_default_constructible() 1414: { 1414: return __and_..., 1414: __not_<__and_< 1414: std::__is_implicitly_default_constructible<_Types>...> 1414: >>::value; 1414: } 1414: }; 1414: 1414: 1414: 1414: template 1414: struct _TupleConstraints 1414: { 1414: template 1414: static constexpr bool __is_implicitly_constructible() 1414: { return false; } 1414: 1414: template 1414: static constexpr bool __is_explicitly_constructible() 1414: { return false; } 1414: }; 1414: 1414: 1414: 1414: template 1414: class tuple : public _Tuple_impl<0, _Elements...> 1414: { 1414: using _Inherited = _Tuple_impl<0, _Elements...>; 1414: 1414: 1414: template 1414: static consteval bool 1414: __constructible() 1414: { 1414: if constexpr (sizeof...(_UTypes) == sizeof...(_Elements)) 1414: return __and_v...>; 1414: else 1414: return false; 1414: } 1414: 1414: template 1414: static consteval bool 1414: __nothrow_constructible() 1414: { 1414: if constexpr (sizeof...(_UTypes) == sizeof...(_Elements)) 1414: return __and_v...>; 1414: else 1414: return false; 1414: } 1414: 1414: template 1414: static consteval bool 1414: __convertible() 1414: { 1414: if constexpr (sizeof...(_UTypes) == sizeof...(_Elements)) 1414: return __and_v...>; 1414: else 1414: return false; 1414: } 1414: 1414: 1414: 1414: template 1414: static consteval bool 1414: __disambiguating_constraint() 1414: { 1414: if constexpr (sizeof...(_Elements) != sizeof...(_UTypes)) 1414: return false; 1414: else if constexpr (sizeof...(_Elements) == 1) 1414: { 1414: using _U0 = typename _Nth_type<0, _UTypes...>::type; 1414: return !is_same_v, tuple>; 1414: } 1414: else if constexpr (sizeof...(_Elements) < 4) 1414: { 1414: using _U0 = typename _Nth_type<0, _UTypes...>::type; 1414: if constexpr (!is_same_v, allocator_arg_t>) 1414: return true; 1414: else 1414: { 1414: using _T0 = typename _Nth_type<0, _Elements...>::type; 1414: return is_same_v, allocator_arg_t>; 1414: } 1414: } 1414: return true; 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: static consteval bool 1414: __use_other_ctor() 1414: { 1414: if constexpr (sizeof...(_Elements) != 1) 1414: return false; 1414: else if constexpr (is_same_v, tuple>) 1414: return true; 1414: else 1414: { 1414: using _Tp = typename _Nth_type<0, _Elements...>::type; 1414: if constexpr (is_convertible_v<_Tuple, _Tp>) 1414: return true; 1414: else if constexpr (is_constructible_v<_Tp, _Tuple>) 1414: return true; 1414: } 1414: return false; 1414: } 1414: 1414: template 1414: static consteval bool 1414: __dangles() 1414: { 1414: 1414: return (__reference_constructs_from_temporary(_Elements, _Up&&) 1414: || ...); 1414: 1414: 1414: 1414: } 1414: # 960 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: public: 1414: constexpr 1414: explicit(!(__is_implicitly_default_constructible_v<_Elements> && ...)) 1414: tuple() 1414: noexcept((is_nothrow_default_constructible_v<_Elements> && ...)) 1414: requires (is_default_constructible_v<_Elements> && ...) 1414: : _Inherited() 1414: { } 1414: 1414: 1414: template 1414: constexpr explicit(!__convertible()) 1414: tuple(const type_identity_t<_Elements>&... __elements) 1414: noexcept(__nothrow_constructible()) 1414: requires (__constructible()) 1414: : _Inherited(__elements...) 1414: { } 1414: 1414: template 1414: requires (__disambiguating_constraint<_UTypes...>()) 1414: && (__constructible<_UTypes...>()) 1414: && (!__dangles<_UTypes...>()) 1414: constexpr explicit(!__convertible<_UTypes...>()) 1414: tuple(_UTypes&&... __u) 1414: noexcept(__nothrow_constructible<_UTypes...>()) 1414: : _Inherited(std::forward<_UTypes>(__u)...) 1414: { } 1414: 1414: template 1414: requires (__disambiguating_constraint<_UTypes...>()) 1414: && (__constructible<_UTypes...>()) 1414: && (__dangles<_UTypes...>()) 1414: tuple(_UTypes&&...) = delete; 1414: 1414: constexpr tuple(const tuple&) = default; 1414: 1414: constexpr 1414: tuple(tuple&&) requires (is_move_constructible_v<_Elements> && ...) 1414: = default; 1414: 1414: template 1414: requires (__constructible()) 1414: && (!__use_other_ctor&>()) 1414: && (!__dangles()) 1414: constexpr explicit(!__convertible()) 1414: tuple(const tuple<_UTypes...>& __u) 1414: noexcept(__nothrow_constructible()) 1414: : _Inherited(static_cast&>(__u)) 1414: { } 1414: 1414: template 1414: requires (__constructible()) 1414: && (!__use_other_ctor&>()) 1414: && (__dangles()) 1414: tuple(const tuple<_UTypes...>&) = delete; 1414: 1414: template 1414: requires (__constructible<_UTypes...>()) 1414: && (!__use_other_ctor>()) 1414: && (!__dangles<_UTypes...>()) 1414: constexpr explicit(!__convertible<_UTypes...>()) 1414: tuple(tuple<_UTypes...>&& __u) 1414: noexcept(__nothrow_constructible<_UTypes...>()) 1414: : _Inherited(static_cast<_Tuple_impl<0, _UTypes...>&&>(__u)) 1414: { } 1414: 1414: template 1414: requires (__constructible<_UTypes...>()) 1414: && (!__use_other_ctor>()) 1414: && (__dangles<_UTypes...>()) 1414: tuple(tuple<_UTypes...>&&) = delete; 1414: # 1066 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: requires (sizeof...(_Elements) == 2) 1414: && (__constructible()) 1414: && (!__dangles()) 1414: constexpr explicit(!__convertible()) 1414: tuple(const pair<_U1, _U2>& __u) 1414: noexcept(__nothrow_constructible()) 1414: : _Inherited(__u.first, __u.second) 1414: { } 1414: 1414: template 1414: requires (sizeof...(_Elements) == 2) 1414: && (__constructible()) 1414: && (__dangles()) 1414: tuple(const pair<_U1, _U2>&) = delete; 1414: 1414: template 1414: requires (sizeof...(_Elements) == 2) 1414: && (__constructible<_U1, _U2>()) 1414: && (!__dangles<_U1, _U2>()) 1414: constexpr explicit(!__convertible<_U1, _U2>()) 1414: tuple(pair<_U1, _U2>&& __u) 1414: noexcept(__nothrow_constructible<_U1, _U2>()) 1414: : _Inherited(std::forward<_U1>(__u.first), 1414: std::forward<_U2>(__u.second)) 1414: { } 1414: 1414: template 1414: requires (sizeof...(_Elements) == 2) 1414: && (__constructible<_U1, _U2>()) 1414: && (__dangles<_U1, _U2>()) 1414: tuple(pair<_U1, _U2>&&) = delete; 1414: # 1155 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: constexpr 1414: explicit(!(__is_implicitly_default_constructible_v<_Elements> && ...)) 1414: tuple(allocator_arg_t __tag, const _Alloc& __a) 1414: requires (is_default_constructible_v<_Elements> && ...) 1414: : _Inherited(__tag, __a) 1414: { } 1414: 1414: template 1414: constexpr explicit(!__convertible()) 1414: tuple(allocator_arg_t __tag, const _Alloc& __a, 1414: const type_identity_t<_Elements>&... __elements) 1414: requires (__constructible()) 1414: : _Inherited(__tag, __a, __elements...) 1414: { } 1414: 1414: template 1414: requires (__disambiguating_constraint<_UTypes...>()) 1414: && (__constructible<_UTypes...>()) 1414: && (!__dangles<_UTypes...>()) 1414: constexpr explicit(!__convertible<_UTypes...>()) 1414: tuple(allocator_arg_t __tag, const _Alloc& __a, _UTypes&&... __u) 1414: : _Inherited(__tag, __a, std::forward<_UTypes>(__u)...) 1414: { } 1414: 1414: template 1414: requires (__disambiguating_constraint<_UTypes...>()) 1414: && (__constructible<_UTypes...>()) 1414: && (__dangles<_UTypes...>()) 1414: tuple(allocator_arg_t, const _Alloc&, _UTypes&&...) = delete; 1414: 1414: template 1414: constexpr 1414: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __u) 1414: : _Inherited(__tag, __a, static_cast(__u)) 1414: { } 1414: 1414: template 1414: requires (__constructible<_Elements...>()) 1414: constexpr 1414: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __u) 1414: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__u)) 1414: { } 1414: 1414: template 1414: requires (__constructible()) 1414: && (!__use_other_ctor&>()) 1414: && (!__dangles()) 1414: constexpr explicit(!__convertible()) 1414: tuple(allocator_arg_t __tag, const _Alloc& __a, 1414: const tuple<_UTypes...>& __u) 1414: : _Inherited(__tag, __a, 1414: static_cast&>(__u)) 1414: { } 1414: 1414: template 1414: requires (__constructible()) 1414: && (!__use_other_ctor&>()) 1414: && (__dangles()) 1414: tuple(allocator_arg_t, const _Alloc&, const tuple<_UTypes...>&) = delete; 1414: 1414: template 1414: requires (__constructible<_UTypes...>()) 1414: && (!__use_other_ctor>()) 1414: && (!__dangles<_UTypes...>()) 1414: constexpr explicit(!__use_other_ctor>()) 1414: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_UTypes...>&& __u) 1414: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _UTypes...>&&>(__u)) 1414: { } 1414: 1414: template 1414: requires (__constructible<_UTypes...>()) 1414: && (!__use_other_ctor>()) 1414: && (__dangles<_UTypes...>()) 1414: tuple(allocator_arg_t, const _Alloc&, tuple<_UTypes...>&&) = delete; 1414: # 1265 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: requires (sizeof...(_Elements) == 2) 1414: && (__constructible()) 1414: && (!__dangles()) 1414: constexpr explicit(!__convertible()) 1414: tuple(allocator_arg_t __tag, const _Alloc& __a, 1414: const pair<_U1, _U2>& __u) 1414: noexcept(__nothrow_constructible()) 1414: : _Inherited(__tag, __a, __u.first, __u.second) 1414: { } 1414: 1414: template 1414: requires (sizeof...(_Elements) == 2) 1414: && (__constructible()) 1414: && (__dangles()) 1414: tuple(allocator_arg_t, const _Alloc&, const pair<_U1, _U2>&) = delete; 1414: 1414: template 1414: requires (sizeof...(_Elements) == 2) 1414: && (__constructible<_U1, _U2>()) 1414: && (!__dangles<_U1, _U2>()) 1414: constexpr explicit(!__convertible<_U1, _U2>()) 1414: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __u) 1414: noexcept(__nothrow_constructible<_U1, _U2>()) 1414: : _Inherited(__tag, __a, std::move(__u.first), std::move(__u.second)) 1414: { } 1414: 1414: template 1414: requires (sizeof...(_Elements) == 2) 1414: && (__constructible<_U1, _U2>()) 1414: && (__dangles<_U1, _U2>()) 1414: tuple(allocator_arg_t, const _Alloc&, pair<_U1, _U2>&&) = delete; 1414: # 1657 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: private: 1414: template 1414: static consteval bool 1414: __assignable() 1414: { 1414: if constexpr (sizeof...(_UTypes) == sizeof...(_Elements)) 1414: return __and_v...>; 1414: else 1414: return false; 1414: } 1414: 1414: template 1414: static consteval bool 1414: __nothrow_assignable() 1414: { 1414: if constexpr (sizeof...(_UTypes) == sizeof...(_Elements)) 1414: return __and_v...>; 1414: else 1414: return false; 1414: } 1414: # 1710 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: public: 1414: 1414: tuple& operator=(const tuple& __u) = delete; 1414: 1414: constexpr tuple& 1414: operator=(const tuple& __u) 1414: noexcept(__nothrow_assignable()) 1414: requires (__assignable()) 1414: { 1414: this->_M_assign(__u); 1414: return *this; 1414: } 1414: 1414: constexpr tuple& 1414: operator=(tuple&& __u) 1414: noexcept(__nothrow_assignable<_Elements...>()) 1414: requires (__assignable<_Elements...>()) 1414: { 1414: this->_M_assign(std::move(__u)); 1414: return *this; 1414: } 1414: 1414: template 1414: requires (__assignable()) 1414: constexpr tuple& 1414: operator=(const tuple<_UTypes...>& __u) 1414: noexcept(__nothrow_assignable()) 1414: { 1414: this->_M_assign(__u); 1414: return *this; 1414: } 1414: 1414: template 1414: requires (__assignable<_UTypes...>()) 1414: constexpr tuple& 1414: operator=(tuple<_UTypes...>&& __u) 1414: noexcept(__nothrow_assignable<_UTypes...>()) 1414: { 1414: this->_M_assign(std::move(__u)); 1414: return *this; 1414: } 1414: # 1788 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: requires (__assignable()) 1414: constexpr tuple& 1414: operator=(const pair<_U1, _U2>& __u) 1414: noexcept(__nothrow_assignable()) 1414: { 1414: this->_M_head(*this) = __u.first; 1414: this->_M_tail(*this)._M_head(*this) = __u.second; 1414: return *this; 1414: } 1414: 1414: template 1414: requires (__assignable<_U1, _U2>()) 1414: constexpr tuple& 1414: operator=(pair<_U1, _U2>&& __u) 1414: noexcept(__nothrow_assignable<_U1, _U2>()) 1414: { 1414: this->_M_head(*this) = std::forward<_U1>(__u.first); 1414: this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__u.second); 1414: return *this; 1414: } 1414: # 1950 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: constexpr 1414: void 1414: swap(tuple& __in) 1414: noexcept(__and_<__is_nothrow_swappable<_Elements>...>::value) 1414: { _Inherited::_M_swap(__in); } 1414: # 1969 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: }; 1414: 1414: 1414: template 1414: tuple(_UTypes...) -> tuple<_UTypes...>; 1414: template 1414: tuple(pair<_T1, _T2>) -> tuple<_T1, _T2>; 1414: template 1414: tuple(allocator_arg_t, _Alloc, _UTypes...) -> tuple<_UTypes...>; 1414: template 1414: tuple(allocator_arg_t, _Alloc, pair<_T1, _T2>) -> tuple<_T1, _T2>; 1414: template 1414: tuple(allocator_arg_t, _Alloc, tuple<_UTypes...>) -> tuple<_UTypes...>; 1414: 1414: 1414: 1414: template<> 1414: class tuple<> 1414: { 1414: public: 1414: 1414: 1414: tuple() = default; 1414: 1414: 1414: tuple(const tuple&) = default; 1414: tuple& operator=(const tuple&) = default; 1414: 1414: constexpr 1414: void swap(tuple&) noexcept { } 1414: # 2011 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: constexpr 1414: tuple(allocator_arg_t, const _Alloc&) noexcept { } 1414: template 1414: constexpr 1414: tuple(allocator_arg_t, const _Alloc&, const tuple&) noexcept { } 1414: # 2059 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: }; 1414: # 2460 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: struct tuple_size> 1414: : public integral_constant { }; 1414: 1414: 1414: template 1414: inline constexpr size_t tuple_size_v> 1414: = sizeof...(_Types); 1414: 1414: template 1414: inline constexpr size_t tuple_size_v> 1414: = sizeof...(_Types); 1414: 1414: 1414: 1414: template 1414: struct tuple_element<__i, tuple<_Types...>> 1414: { 1414: static_assert(__i < sizeof...(_Types), "tuple index must be in range"); 1414: 1414: using type = typename _Nth_type<__i, _Types...>::type; 1414: }; 1414: 1414: template 1414: constexpr _Head& 1414: __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 1414: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 1414: 1414: template 1414: constexpr const _Head& 1414: __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 1414: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 1414: 1414: 1414: template 1414: __enable_if_t<(__i >= sizeof...(_Types))> 1414: __get_helper(const tuple<_Types...>&) = delete; 1414: 1414: 1414: template 1414: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 1414: get(tuple<_Elements...>& __t) noexcept 1414: { return std::__get_helper<__i>(__t); } 1414: 1414: 1414: template 1414: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 1414: get(const tuple<_Elements...>& __t) noexcept 1414: { return std::__get_helper<__i>(__t); } 1414: 1414: 1414: template 1414: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 1414: get(tuple<_Elements...>&& __t) noexcept 1414: { 1414: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 1414: return std::forward<__element_type>(std::__get_helper<__i>(__t)); 1414: } 1414: 1414: 1414: template 1414: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 1414: get(const tuple<_Elements...>&& __t) noexcept 1414: { 1414: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 1414: return std::forward(std::__get_helper<__i>(__t)); 1414: } 1414: 1414: 1414: 1414: template 1414: constexpr __enable_if_t<(__i >= sizeof...(_Elements))> 1414: get(const tuple<_Elements...>&) = delete; 1414: 1414: 1414: 1414: 1414: template 1414: constexpr _Tp& 1414: get(tuple<_Types...>& __t) noexcept 1414: { 1414: constexpr size_t __idx = __find_uniq_type_in_pack<_Tp, _Types...>(); 1414: static_assert(__idx < sizeof...(_Types), 1414: "the type T in std::get must occur exactly once in the tuple"); 1414: return std::__get_helper<__idx>(__t); 1414: } 1414: 1414: 1414: template 1414: constexpr _Tp&& 1414: get(tuple<_Types...>&& __t) noexcept 1414: { 1414: constexpr size_t __idx = __find_uniq_type_in_pack<_Tp, _Types...>(); 1414: static_assert(__idx < sizeof...(_Types), 1414: "the type T in std::get must occur exactly once in the tuple"); 1414: return std::forward<_Tp>(std::__get_helper<__idx>(__t)); 1414: } 1414: 1414: 1414: template 1414: constexpr const _Tp& 1414: get(const tuple<_Types...>& __t) noexcept 1414: { 1414: constexpr size_t __idx = __find_uniq_type_in_pack<_Tp, _Types...>(); 1414: static_assert(__idx < sizeof...(_Types), 1414: "the type T in std::get must occur exactly once in the tuple"); 1414: return std::__get_helper<__idx>(__t); 1414: } 1414: 1414: 1414: 1414: template 1414: constexpr const _Tp&& 1414: get(const tuple<_Types...>&& __t) noexcept 1414: { 1414: constexpr size_t __idx = __find_uniq_type_in_pack<_Tp, _Types...>(); 1414: static_assert(__idx < sizeof...(_Types), 1414: "the type T in std::get must occur exactly once in the tuple"); 1414: return std::forward(std::__get_helper<__idx>(__t)); 1414: } 1414: 1414: 1414: 1414: template 1414: requires (sizeof...(_Tps) == sizeof...(_Ups)) 1414: && (requires (const _Tps& __t, const _Ups& __u) { 1414: { __t == __u } -> __detail::__boolean_testable; 1414: } && ...) 1414: constexpr bool 1414: operator== [[nodiscard]] (const tuple<_Tps...>& __t, 1414: const tuple<_Ups...>& __u) 1414: { 1414: return [&](index_sequence<_Inds...>) { 1414: 1414: return (bool(std::get<_Inds>(__t) == std::get<_Inds>(__u)) && ...); 1414: }(index_sequence_for<_Tps...>{}); 1414: } 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr _Cat 1414: __tuple_cmp(const _Tp& __t, const _Up& __u, _IndexSeq __indices) 1414: { 1414: _Cat __c = _Cat::equivalent; 1414: 1414: 1414: 1414: auto __cmp = [&](integral_constant) { 1414: __c = __detail::__synth3way(std::get<_Ind>(__t), std::get<_Ind>(__u)); 1414: return __c == 0; 1414: }; 1414: 1414: [&](index_sequence<_Inds...>) { 1414: 1414: (void)(__cmp(integral_constant{}) && ...); 1414: }(__indices); 1414: 1414: return __c; 1414: } 1414: 1414: template 1414: requires (sizeof...(_Tps) == sizeof...(_Ups)) 1414: && (requires { typename __detail::__synth3way_t<_Tps, _Ups>; } && ...) 1414: constexpr 1414: common_comparison_category_t<__detail::__synth3way_t<_Tps, _Ups>...> 1414: operator<=> [[nodiscard]] (const tuple<_Tps...>& __t, 1414: const tuple<_Ups...>& __u) 1414: { 1414: using _Cat 1414: = common_comparison_category_t<__detail::__synth3way_t<_Tps, _Ups>...>; 1414: return std::__tuple_cmp<_Cat>(__t, __u, index_sequence_for<_Tps...>()); 1414: } 1414: # 2723 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: constexpr tuple::__type...> 1414: make_tuple(_Elements&&... __args) 1414: { 1414: typedef tuple::__type...> 1414: __result_type; 1414: return __result_type(std::forward<_Elements>(__args)...); 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: constexpr tuple<_Elements&&...> 1414: forward_as_tuple(_Elements&&... __args) noexcept 1414: { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } 1414: 1414: 1414: template 1414: struct __do_make_tuple; 1414: 1414: template 1414: struct __do_make_tuple<_Tuple, _Index_tuple<_Idx...>> 1414: { 1414: using __type = tuple<__tuple_element_t<_Idx, _Tuple>...>; 1414: }; 1414: 1414: 1414: template, 1414: typename _Indices = _Build_index_tuple::value>> 1414: struct __make_tuple 1414: : __do_make_tuple<_Tup, typename _Indices::__type> 1414: { }; 1414: 1414: 1414: template 1414: struct __combine_tuples; 1414: 1414: template<> 1414: struct __combine_tuples<> 1414: { 1414: using __type = tuple<>; 1414: }; 1414: 1414: template 1414: struct __combine_tuples> 1414: { 1414: using __type = tuple<_Ts...>; 1414: }; 1414: 1414: template 1414: struct __combine_tuples, tuple<_T2s...>> 1414: { 1414: using __type = tuple<_T1s..., _T2s...>; 1414: }; 1414: 1414: template 1414: struct __combine_tuples, tuple<_T2s...>, tuple<_T3s...>, 1414: _Rem...> 1414: { 1414: using _First = tuple<_T1s..., _T2s..., _T3s...>; 1414: using _Second = typename __combine_tuples<_Rem...>::__type; 1414: using __type = typename __combine_tuples<_First, _Second>::__type; 1414: }; 1414: 1414: 1414: template 1414: struct __tuple_cat_result 1414: { 1414: typedef typename __combine_tuples 1414: ::__type...>::__type __type; 1414: }; 1414: 1414: 1414: 1414: template 1414: struct __make_1st_indices; 1414: 1414: template<> 1414: struct __make_1st_indices<> 1414: { 1414: typedef _Index_tuple<> __type; 1414: }; 1414: 1414: template 1414: struct __make_1st_indices<_Tp, _Tpls...> 1414: { 1414: typedef typename _Build_index_tuple::type>::value>::__type __type; 1414: }; 1414: 1414: 1414: 1414: 1414: template 1414: struct __tuple_concater; 1414: 1414: template 1414: struct __tuple_concater<_Ret, _Index_tuple<_Is...>, _Tp, _Tpls...> 1414: { 1414: template 1414: static constexpr _Ret 1414: _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) 1414: { 1414: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 1414: typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; 1414: return __next::_S_do(std::forward<_Tpls>(__tps)..., 1414: std::forward<_Us>(__us)..., 1414: std::get<_Is>(std::forward<_Tp>(__tp))...); 1414: } 1414: }; 1414: 1414: template 1414: struct __tuple_concater<_Ret, _Index_tuple<>> 1414: { 1414: template 1414: static constexpr _Ret 1414: _S_do(_Us&&... __us) 1414: { 1414: return _Ret(std::forward<_Us>(__us)...); 1414: } 1414: }; 1414: 1414: template 1414: struct __is_tuple_like_impl> : true_type 1414: { }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template...>::value>::type> 1414: 1414: constexpr auto 1414: tuple_cat(_Tpls&&... __tpls) 1414: -> typename __tuple_cat_result<_Tpls...>::__type 1414: { 1414: typedef typename __tuple_cat_result<_Tpls...>::__type __ret; 1414: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 1414: typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; 1414: return __concater::_S_do(std::forward<_Tpls>(__tpls)...); 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: constexpr tuple<_Elements&...> 1414: tie(_Elements&... __args) noexcept 1414: { return tuple<_Elements&...>(__args...); } 1414: 1414: 1414: template 1414: constexpr 1414: inline 1414: 1414: 1414: typename enable_if<__and_<__is_swappable<_Elements>...>::value 1414: >::type 1414: 1414: 1414: 1414: swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) 1414: noexcept(noexcept(__x.swap(__y))) 1414: { __x.swap(__y); } 1414: # 2906 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: constexpr 1414: typename enable_if...>::value>::type 1414: swap(tuple<_Elements...>&, tuple<_Elements...>&) = delete; 1414: 1414: 1414: 1414: template 1414: struct uses_allocator, _Alloc> : true_type { }; 1414: # 2925 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: template 1414: template 1414: constexpr 1414: inline 1414: pair<_T1, _T2>:: 1414: pair(piecewise_construct_t, 1414: tuple<_Args1...> __first, tuple<_Args2...> __second) 1414: : pair(__first, __second, 1414: typename _Build_index_tuple::__type(), 1414: typename _Build_index_tuple::__type()) 1414: { } 1414: 1414: template 1414: template 1414: constexpr inline 1414: pair<_T1, _T2>:: 1414: pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, 1414: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) 1414: : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), 1414: second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) 1414: { } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template class _Trait, typename _Tp, typename _Tuple> 1414: inline constexpr bool __unpack_std_tuple = false; 1414: 1414: template class _Trait, typename _Tp, typename... _Up> 1414: inline constexpr bool __unpack_std_tuple<_Trait, _Tp, tuple<_Up...>> 1414: = _Trait<_Tp, _Up...>::value; 1414: 1414: template class _Trait, typename _Tp, typename... _Up> 1414: inline constexpr bool __unpack_std_tuple<_Trait, _Tp, tuple<_Up...>&> 1414: = _Trait<_Tp, _Up&...>::value; 1414: 1414: template class _Trait, typename _Tp, typename... _Up> 1414: inline constexpr bool __unpack_std_tuple<_Trait, _Tp, const tuple<_Up...>> 1414: = _Trait<_Tp, const _Up...>::value; 1414: 1414: template class _Trait, typename _Tp, typename... _Up> 1414: inline constexpr bool __unpack_std_tuple<_Trait, _Tp, const tuple<_Up...>&> 1414: = _Trait<_Tp, const _Up&...>::value; 1414: 1414: 1414: 1414: template 1414: constexpr decltype(auto) 1414: __apply_impl(_Fn&& __f, _Tuple&& __t, index_sequence<_Idx...>) 1414: { 1414: return std::__invoke(std::forward<_Fn>(__f), 1414: std::get<_Idx>(std::forward<_Tuple>(__t))...); 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: 1414: constexpr decltype(auto) 1414: apply(_Fn&& __f, _Tuple&& __t) 1414: noexcept(__unpack_std_tuple) 1414: { 1414: using _Indices 1414: = make_index_sequence>>; 1414: return std::__apply_impl(std::forward<_Fn>(__f), 1414: std::forward<_Tuple>(__t), 1414: _Indices{}); 1414: } 1414: 1414: 1414: 1414: template >>> 1414: constexpr bool __can_make_from_tuple = false; 1414: 1414: 1414: 1414: template 1414: constexpr bool __can_make_from_tuple<_Tp, _Tuple, index_sequence<_Idx...>> 1414: = is_constructible_v<_Tp, 1414: decltype(std::get<_Idx>(std::declval<_Tuple>()))...>; 1414: 1414: template 1414: constexpr _Tp 1414: __make_from_tuple_impl(_Tuple&& __t, index_sequence<_Idx...>) 1414: { 1414: static_assert(__can_make_from_tuple<_Tp, _Tuple, index_sequence<_Idx...>>); 1414: return _Tp(std::get<_Idx>(std::forward<_Tuple>(__t))...); 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: 1414: constexpr auto 1414: make_from_tuple(_Tuple&& __t) 1414: noexcept(__unpack_std_tuple) 1414: 1414: -> _Tp 1414: requires __can_make_from_tuple<_Tp, _Tuple> 1414: 1414: 1414: 1414: { 1414: constexpr size_t __n = tuple_size_v>; 1414: 1414: if constexpr (__n == 1) 1414: { 1414: using _Elt = decltype(std::get<0>(std::declval<_Tuple>())); 1414: static_assert(!__reference_constructs_from_temporary(_Tp, _Elt)); 1414: } 1414: 1414: return __make_from_tuple_impl<_Tp>(std::forward<_Tuple>(__t), 1414: make_index_sequence<__n>{}); 1414: } 1414: # 3107 "/usr/arm-linux-gnueabihf/include/c++/16/tuple" 3 1414: 1414: } 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/uses_allocator_args.h" 2 3 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: concept _Std_pair = __is_pair>; 1414: 1414: 1414: 1414: 1414: template 1414: constexpr auto 1414: uses_allocator_construction_args(const _Alloc& __a, 1414: _Args&&... __args) noexcept 1414: requires (! _Std_pair<_Tp>) 1414: { 1414: if constexpr (uses_allocator_v, _Alloc>) 1414: { 1414: if constexpr (is_constructible_v<_Tp, allocator_arg_t, 1414: const _Alloc&, _Args...>) 1414: { 1414: return tuple( 1414: allocator_arg, __a, std::forward<_Args>(__args)...); 1414: } 1414: else 1414: { 1414: static_assert(is_constructible_v<_Tp, _Args..., const _Alloc&>, 1414: "construction with an allocator must be possible" 1414: " if uses_allocator is true"); 1414: 1414: return tuple<_Args&&..., const _Alloc&>( 1414: std::forward<_Args>(__args)..., __a); 1414: } 1414: } 1414: else 1414: { 1414: static_assert(is_constructible_v<_Tp, _Args...>); 1414: 1414: return tuple<_Args&&...>(std::forward<_Args>(__args)...); 1414: } 1414: } 1414: 1414: template<_Std_pair _Tp, typename _Alloc, typename _Tuple1, typename _Tuple2> 1414: constexpr auto 1414: uses_allocator_construction_args(const _Alloc& __a, piecewise_construct_t, 1414: _Tuple1&& __x, _Tuple2&& __y) noexcept; 1414: 1414: template<_Std_pair _Tp, typename _Alloc> 1414: constexpr auto 1414: uses_allocator_construction_args(const _Alloc&) noexcept; 1414: 1414: template<_Std_pair _Tp, typename _Alloc, typename _Up, typename _Vp> 1414: constexpr auto 1414: uses_allocator_construction_args(const _Alloc&, _Up&&, _Vp&&) noexcept; 1414: 1414: template<_Std_pair _Tp, typename _Alloc, typename _Up, typename _Vp> 1414: constexpr auto 1414: uses_allocator_construction_args(const _Alloc&, 1414: const pair<_Up, _Vp>&) noexcept; 1414: 1414: template<_Std_pair _Tp, typename _Alloc, typename _Up, typename _Vp> 1414: constexpr auto 1414: uses_allocator_construction_args(const _Alloc&, pair<_Up, _Vp>&&) noexcept; 1414: # 120 "/usr/arm-linux-gnueabihf/include/c++/16/bits/uses_allocator_args.h" 3 1414: template<_Std_pair _Tp, typename _Alloc, typename _Tuple1, typename _Tuple2> 1414: constexpr auto 1414: uses_allocator_construction_args(const _Alloc& __a, piecewise_construct_t, 1414: _Tuple1&& __x, _Tuple2&& __y) noexcept 1414: { 1414: using _Tp1 = typename _Tp::first_type; 1414: using _Tp2 = typename _Tp::second_type; 1414: 1414: return std::make_tuple(piecewise_construct, 1414: std::apply([&__a](auto&&... __args1) { 1414: return std::uses_allocator_construction_args<_Tp1>( 1414: __a, std::forward(__args1)...); 1414: }, std::forward<_Tuple1>(__x)), 1414: std::apply([&__a](auto&&... __args2) { 1414: return std::uses_allocator_construction_args<_Tp2>( 1414: __a, std::forward(__args2)...); 1414: }, std::forward<_Tuple2>(__y))); 1414: } 1414: 1414: template<_Std_pair _Tp, typename _Alloc> 1414: constexpr auto 1414: uses_allocator_construction_args(const _Alloc& __a) noexcept 1414: { 1414: using _Tp1 = typename _Tp::first_type; 1414: using _Tp2 = typename _Tp::second_type; 1414: 1414: return std::make_tuple(piecewise_construct, 1414: std::uses_allocator_construction_args<_Tp1>(__a), 1414: std::uses_allocator_construction_args<_Tp2>(__a)); 1414: } 1414: 1414: template<_Std_pair _Tp, typename _Alloc, typename _Up, typename _Vp> 1414: constexpr auto 1414: uses_allocator_construction_args(const _Alloc& __a, _Up&& __u, _Vp&& __v) 1414: noexcept 1414: { 1414: using _Tp1 = typename _Tp::first_type; 1414: using _Tp2 = typename _Tp::second_type; 1414: 1414: return std::make_tuple(piecewise_construct, 1414: std::uses_allocator_construction_args<_Tp1>(__a, 1414: std::forward<_Up>(__u)), 1414: std::uses_allocator_construction_args<_Tp2>(__a, 1414: std::forward<_Vp>(__v))); 1414: } 1414: 1414: template<_Std_pair _Tp, typename _Alloc, typename _Up, typename _Vp> 1414: constexpr auto 1414: uses_allocator_construction_args(const _Alloc& __a, 1414: const pair<_Up, _Vp>& __pr) noexcept 1414: { 1414: using _Tp1 = typename _Tp::first_type; 1414: using _Tp2 = typename _Tp::second_type; 1414: 1414: return std::make_tuple(piecewise_construct, 1414: std::uses_allocator_construction_args<_Tp1>(__a, __pr.first), 1414: std::uses_allocator_construction_args<_Tp2>(__a, __pr.second)); 1414: } 1414: 1414: template<_Std_pair _Tp, typename _Alloc, typename _Up, typename _Vp> 1414: constexpr auto 1414: uses_allocator_construction_args(const _Alloc& __a, 1414: pair<_Up, _Vp>&& __pr) noexcept 1414: { 1414: using _Tp1 = typename _Tp::first_type; 1414: using _Tp2 = typename _Tp::second_type; 1414: 1414: 1414: 1414: 1414: return std::make_tuple(piecewise_construct, 1414: std::uses_allocator_construction_args<_Tp1>(__a, 1414: std::get<0>(std::move(__pr))), 1414: std::uses_allocator_construction_args<_Tp2>(__a, 1414: std::get<1>(std::move(__pr)))); 1414: } 1414: # 227 "/usr/arm-linux-gnueabihf/include/c++/16/bits/uses_allocator_args.h" 3 1414: template 1414: constexpr _Tp 1414: make_obj_using_allocator(const _Alloc& __a, _Args&&... __args) 1414: { 1414: return std::make_from_tuple<_Tp>( 1414: std::uses_allocator_construction_args<_Tp>(__a, 1414: std::forward<_Args>(__args)...)); 1414: } 1414: 1414: template 1414: constexpr _Tp* 1414: uninitialized_construct_using_allocator(_Tp* __p, const _Alloc& __a, 1414: _Args&&... __args) 1414: { 1414: return std::apply([&](auto&&... __xs) { 1414: return std::construct_at(__p, std::forward(__xs)...); 1414: }, std::uses_allocator_construction_args<_Tp>(__a, 1414: std::forward<_Args>(__args)...)); 1414: } 1414: 1414: 1414: } 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 2 3 1414: # 53 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: namespace pmr 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: class memory_resource 1414: { 1414: static constexpr size_t _S_max_align = alignof(max_align_t); 1414: 1414: public: 1414: memory_resource() = default; 1414: memory_resource(const memory_resource&) = default; 1414: virtual ~memory_resource(); 1414: 1414: memory_resource& operator=(const memory_resource&) = default; 1414: 1414: [[nodiscard]] 1414: void* 1414: allocate(size_t __bytes, size_t __alignment = _S_max_align) 1414: __attribute__((__returns_nonnull__,__alloc_size__(2),__alloc_align__(3))) 1414: { return ::operator new(__bytes, do_allocate(__bytes, __alignment)); } 1414: 1414: void 1414: deallocate(void* __p, size_t __bytes, size_t __alignment = _S_max_align) 1414: __attribute__((__nonnull__)) 1414: { return do_deallocate(__p, __bytes, __alignment); } 1414: 1414: [[nodiscard]] 1414: bool 1414: is_equal(const memory_resource& __other) const noexcept 1414: { return do_is_equal(__other); } 1414: 1414: private: 1414: virtual void* 1414: do_allocate(size_t __bytes, size_t __alignment) = 0; 1414: 1414: virtual void 1414: do_deallocate(void* __p, size_t __bytes, size_t __alignment) = 0; 1414: 1414: virtual bool 1414: do_is_equal(const memory_resource& __other) const noexcept = 0; 1414: }; 1414: 1414: [[nodiscard]] 1414: inline bool 1414: operator==(const memory_resource& __a, const memory_resource& __b) noexcept 1414: { return &__a == &__b || __a.is_equal(__b); } 1414: # 122 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 3 1414: template 1414: class polymorphic_allocator 1414: { 1414: 1414: 1414: template 1414: struct __not_pair { using type = void; }; 1414: 1414: template 1414: struct __not_pair> { }; 1414: 1414: public: 1414: using value_type = _Tp; 1414: 1414: polymorphic_allocator() noexcept 1414: { 1414: extern memory_resource* get_default_resource() noexcept 1414: __attribute__((__returns_nonnull__)); 1414: _M_resource = get_default_resource(); 1414: } 1414: 1414: polymorphic_allocator(memory_resource* __r) noexcept 1414: __attribute__((__nonnull__)) 1414: : _M_resource(__r) 1414: { ; } 1414: 1414: polymorphic_allocator(const polymorphic_allocator& __other) = default; 1414: 1414: template 1414: polymorphic_allocator(const polymorphic_allocator<_Up>& __x) noexcept 1414: : _M_resource(__x.resource()) 1414: { } 1414: 1414: polymorphic_allocator& 1414: operator=(const polymorphic_allocator&) = delete; 1414: 1414: [[nodiscard]] 1414: _Tp* 1414: allocate(size_t __n) 1414: __attribute__((__returns_nonnull__)) 1414: { 1414: if ((__gnu_cxx::__int_traits::__max / sizeof(_Tp)) < __n) 1414: std::__throw_bad_array_new_length(); 1414: return static_cast<_Tp*>(_M_resource->allocate(__n * sizeof(_Tp), 1414: alignof(_Tp))); 1414: } 1414: 1414: void 1414: deallocate(_Tp* __p, size_t __n) noexcept 1414: __attribute__((__nonnull__)) 1414: { _M_resource->deallocate(__p, __n * sizeof(_Tp), alignof(_Tp)); } 1414: 1414: 1414: [[nodiscard]] void* 1414: allocate_bytes(size_t __nbytes, 1414: size_t __alignment = alignof(max_align_t)) 1414: { return _M_resource->allocate(__nbytes, __alignment); } 1414: 1414: void 1414: deallocate_bytes(void* __p, size_t __nbytes, 1414: size_t __alignment = alignof(max_align_t)) 1414: { _M_resource->deallocate(__p, __nbytes, __alignment); } 1414: 1414: template 1414: [[nodiscard]] _Up* 1414: allocate_object(size_t __n = 1) 1414: { 1414: if ((__gnu_cxx::__int_traits::__max / sizeof(_Up)) < __n) 1414: std::__throw_bad_array_new_length(); 1414: return static_cast<_Up*>(allocate_bytes(__n * sizeof(_Up), 1414: alignof(_Up))); 1414: } 1414: 1414: template 1414: void 1414: deallocate_object(_Up* __p, size_t __n = 1) 1414: { deallocate_bytes(__p, __n * sizeof(_Up), alignof(_Up)); } 1414: 1414: template 1414: [[nodiscard]] _Up* 1414: new_object(_CtorArgs&&... __ctor_args) 1414: { 1414: _Up* __p = allocate_object<_Up>(); 1414: try 1414: { 1414: construct(__p, std::forward<_CtorArgs>(__ctor_args)...); 1414: } 1414: catch(...) 1414: { 1414: deallocate_object(__p); 1414: throw; 1414: } 1414: return __p; 1414: } 1414: 1414: template 1414: void 1414: delete_object(_Up* __p) 1414: { 1414: __p->~_Up(); 1414: deallocate_object(__p); 1414: } 1414: # 300 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 3 1414: template 1414: __attribute__((__nonnull__)) 1414: void 1414: construct(_Tp1* __p, _Args&&... __args) 1414: { 1414: std::uninitialized_construct_using_allocator(__p, *this, 1414: std::forward<_Args>(__args)...); 1414: } 1414: 1414: 1414: template 1414: __attribute__((__nonnull__)) 1414: void 1414: destroy(_Up* __p) 1414: { __p->~_Up(); } 1414: 1414: polymorphic_allocator 1414: select_on_container_copy_construction() const noexcept 1414: { return polymorphic_allocator(); } 1414: 1414: memory_resource* 1414: resource() const noexcept 1414: __attribute__((__returns_nonnull__)) 1414: { return _M_resource; } 1414: 1414: 1414: 1414: [[nodiscard]] 1414: friend bool 1414: operator==(const polymorphic_allocator& __a, 1414: const polymorphic_allocator& __b) noexcept 1414: { return *__a.resource() == *__b.resource(); } 1414: # 341 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 3 1414: private: 1414: # 368 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 3 1414: memory_resource* _M_resource; 1414: }; 1414: 1414: template 1414: [[nodiscard]] 1414: inline bool 1414: operator==(const polymorphic_allocator<_Tp1>& __a, 1414: const polymorphic_allocator<_Tp2>& __b) noexcept 1414: { return *__a.resource() == *__b.resource(); } 1414: # 387 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 3 1414: } 1414: 1414: template struct allocator_traits; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct allocator_traits> 1414: { 1414: 1414: using allocator_type = pmr::polymorphic_allocator<_Tp>; 1414: 1414: 1414: using value_type = _Tp; 1414: 1414: 1414: using pointer = _Tp*; 1414: 1414: 1414: using const_pointer = const _Tp*; 1414: 1414: 1414: using void_pointer = void*; 1414: 1414: 1414: using const_void_pointer = const void*; 1414: 1414: 1414: using difference_type = std::ptrdiff_t; 1414: 1414: 1414: using size_type = std::size_t; 1414: 1414: 1414: 1414: 1414: 1414: using propagate_on_container_copy_assignment = false_type; 1414: using propagate_on_container_move_assignment = false_type; 1414: using propagate_on_container_swap = false_type; 1414: 1414: static allocator_type 1414: select_on_container_copy_construction(const allocator_type&) noexcept 1414: { return allocator_type(); } 1414: 1414: 1414: 1414: using is_always_equal = false_type; 1414: 1414: template 1414: using rebind_alloc = pmr::polymorphic_allocator<_Up>; 1414: 1414: template 1414: using rebind_traits = allocator_traits>; 1414: # 453 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 3 1414: [[nodiscard]] static pointer 1414: allocate(allocator_type& __a, size_type __n) 1414: { return __a.allocate(__n); } 1414: # 468 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 3 1414: [[nodiscard]] static pointer 1414: allocate(allocator_type& __a, size_type __n, const_void_pointer) 1414: { return __a.allocate(__n); } 1414: # 496 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 3 1414: static void 1414: deallocate(allocator_type& __a, pointer __p, size_type __n) 1414: { __a.deallocate(__p, __n); } 1414: # 511 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 3 1414: template 1414: static void 1414: construct(allocator_type& __a, _Up* __p, _Args&&... __args) 1414: { __a.construct(__p, std::forward<_Args>(__args)...); } 1414: # 523 "/usr/arm-linux-gnueabihf/include/c++/16/bits/memory_resource.h" 3 1414: template 1414: static constexpr void 1414: destroy(allocator_type&, _Up* __p) 1414: noexcept(is_nothrow_destructible<_Up>::value) 1414: { __p->~_Up(); } 1414: 1414: 1414: 1414: 1414: 1414: static constexpr size_type 1414: max_size(const allocator_type&) noexcept 1414: { return size_t(-1) / sizeof(value_type); } 1414: }; 1414: 1414: 1414: } 1414: # 84 "/usr/arm-linux-gnueabihf/include/c++/16/string" 2 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: namespace pmr { 1414: template> 1414: using basic_string = std::basic_string<_CharT, _Traits, 1414: polymorphic_allocator<_CharT>>; 1414: using string = basic_string; 1414: 1414: using u8string = basic_string; 1414: 1414: using u16string = basic_string; 1414: using u32string = basic_string; 1414: using wstring = basic_string; 1414: } 1414: 1414: } 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: constexpr typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: erase_if(basic_string<_CharT, _Traits, _Alloc>& __cont, _Predicate __pred) 1414: { return __detail::__erase_if(__cont, __cont, std::move(__pred)); } 1414: 1414: template 1414: constexpr typename basic_string<_CharT, _Traits, _Alloc>::size_type 1414: erase(basic_string<_CharT, _Traits, _Alloc>& __cont, const _Up& __value) 1414: { return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); } 1414: 1414: 1414: } 1414: # 15 "build/include/public/botan/ipv6_address.h" 2 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/vector" 1 3 1414: # 67 "/usr/arm-linux-gnueabihf/include/c++/16/vector" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 1 3 1414: # 71 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct _UninitDestroyGuard 1414: { 1414: constexpr 1414: explicit 1414: _UninitDestroyGuard(_ForwardIterator& __first, _Alloc& __a) 1414: : _M_first(__first), _M_cur(__builtin_addressof(__first)), _M_alloc(__a) 1414: { } 1414: 1414: constexpr 1414: ~_UninitDestroyGuard() 1414: { 1414: if (__builtin_expect(_M_cur != 0, 0)) 1414: std::_Destroy(_M_first, *_M_cur, _M_alloc); 1414: } 1414: 1414: constexpr 1414: void release() { _M_cur = 0; } 1414: 1414: private: 1414: _ForwardIterator const _M_first; 1414: _ForwardIterator* _M_cur; 1414: _Alloc& _M_alloc; 1414: 1414: _UninitDestroyGuard(const _UninitDestroyGuard&); 1414: }; 1414: 1414: template 1414: struct _UninitDestroyGuard<_ForwardIterator, void> 1414: { 1414: constexpr 1414: explicit 1414: _UninitDestroyGuard(_ForwardIterator& __first) 1414: : _M_first(__first), _M_cur(__builtin_addressof(__first)) 1414: { } 1414: 1414: constexpr 1414: ~_UninitDestroyGuard() 1414: { 1414: if (__builtin_expect(_M_cur != 0, 0)) 1414: 1414: 1414: 1414: 1414: 1414: std::_Destroy(_M_first, *_M_cur); 1414: 1414: } 1414: 1414: constexpr 1414: void release() { _M_cur = 0; } 1414: 1414: _ForwardIterator const _M_first; 1414: _ForwardIterator* _M_cur; 1414: 1414: private: 1414: _UninitDestroyGuard(const _UninitDestroyGuard&); 1414: # 152 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: }; 1414: 1414: 1414: 1414: template 1414: constexpr 1414: _ForwardIterator 1414: __do_uninit_copy(_InputIterator __first, _Sentinel __last, 1414: _ForwardIterator __result) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator> __guard(__result); 1414: for (; __first != __last; ++__first, (void)++__result) 1414: std::_Construct(std::__addressof(*__result), *__first); 1414: __guard.release(); 1414: return __result; 1414: } 1414: # 237 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: #pragma GCC diagnostic ignored "-Wclass-memaccess" 1414: # 249 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: template 1414: 1414: inline _ForwardIterator 1414: uninitialized_copy(_InputIterator __first, _InputIterator __last, 1414: _ForwardIterator __result) 1414: { 1414: # 277 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: using _Dest = decltype(std::__niter_base(__result)); 1414: using _Src = decltype(std::__niter_base(__first)); 1414: using _ValT = typename iterator_traits<_ForwardIterator>::value_type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: if constexpr (!__is_trivially_constructible(_ValT, decltype(*__first))) 1414: return std::__do_uninit_copy(__first, __last, __result); 1414: else if constexpr (__memcpyable<_Dest, _Src>::__value) 1414: { 1414: ptrdiff_t __n = __last - __first; 1414: if (__n > 0) [[__likely__]] 1414: { 1414: using _ValT = typename remove_pointer<_Src>::type; 1414: __builtin_memcpy(std::__niter_base(__result), 1414: std::__niter_base(__first), 1414: __n * sizeof(_ValT)); 1414: __result += __n; 1414: } 1414: return __result; 1414: } 1414: 1414: else if constexpr (contiguous_iterator<_ForwardIterator> 1414: && contiguous_iterator<_InputIterator>) 1414: { 1414: using _DestPtr = decltype(std::to_address(__result)); 1414: using _SrcPtr = decltype(std::to_address(__first)); 1414: if constexpr (__memcpyable<_DestPtr, _SrcPtr>::__value) 1414: { 1414: if (auto __n = __last - __first; __n > 0) [[likely]] 1414: { 1414: void* __dest = std::to_address(__result); 1414: const void* __src = std::to_address(__first); 1414: size_t __nbytes = __n * sizeof(remove_pointer_t<_DestPtr>); 1414: __builtin_memcpy(__dest, __src, __nbytes); 1414: __result += __n; 1414: } 1414: return __result; 1414: } 1414: else 1414: return std::__do_uninit_copy(__first, __last, __result); 1414: } 1414: 1414: else 1414: return std::__do_uninit_copy(__first, __last, __result); 1414: # 338 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: 1414: template 1414: constexpr void 1414: __do_uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 1414: const _Tp& __x) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator> __guard(__first); 1414: for (; __first != __last; ++__first) 1414: std::_Construct(std::__addressof(*__first), __x); 1414: __guard.release(); 1414: } 1414: # 409 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: template 1414: 1414: inline void 1414: uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, 1414: const _Tp& __x) 1414: { 1414: # 425 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: typedef typename iterator_traits<_ForwardIterator>::value_type 1414: _ValueType; 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: #pragma GCC diagnostic ignored "-Wclass-memaccess" 1414: 1414: 1414: 1414: 1414: 1414: if constexpr (__is_byte<_ValueType>::__value) 1414: if constexpr (is_same<_ValueType, _Tp>::value 1414: || is_integral<_Tp>::value) 1414: { 1414: using _BasePtr = decltype(std::__niter_base(__first)); 1414: if constexpr (is_pointer<_BasePtr>::value) 1414: { 1414: void* __dest = std::__niter_base(__first); 1414: ptrdiff_t __n = __last - __first; 1414: if (__n > 0) [[__likely__]] 1414: __builtin_memset(__dest, (unsigned char)__x, __n); 1414: return; 1414: } 1414: 1414: else if constexpr (contiguous_iterator<_ForwardIterator>) 1414: { 1414: auto __dest = std::to_address(__first); 1414: auto __n = __last - __first; 1414: if (__n > 0) [[__likely__]] 1414: __builtin_memset(__dest, (unsigned char)__x, __n); 1414: return; 1414: } 1414: 1414: } 1414: std::__do_uninit_fill(__first, __last, __x); 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: 1414: 1414: 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: constexpr 1414: _ForwardIterator 1414: __do_uninit_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator> __guard(__first); 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: if constexpr (is_integral<_Size>::value) 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) std::__glibcxx_assert_fail(); } while (false); 1414: else if constexpr (is_floating_point<_Size>::value) 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(__n >= 0 && static_cast(__n) == __n)) std::__glibcxx_assert_fail(); } while (false); 1414: #pragma GCC diagnostic pop 1414: 1414: for (; __n--; ++__first) 1414: std::_Construct(std::__addressof(*__first), __x); 1414: __guard.release(); 1414: return __first; 1414: } 1414: # 532 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: #pragma GCC diagnostic ignored "-Wclass-memaccess" 1414: # 546 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: template 1414: 1414: inline _ForwardIterator 1414: uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef typename iterator_traits<_ForwardIterator>::value_type 1414: _ValueType; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: if constexpr (__is_byte<_ValueType>::__value) 1414: if constexpr (is_integral<_Tp>::value) 1414: if constexpr (is_integral<_Size>::value) 1414: { 1414: using _BasePtr = decltype(std::__niter_base(__first)); 1414: if constexpr (is_pointer<_BasePtr>::value) 1414: { 1414: void* __dest = std::__niter_base(__first); 1414: if (__n > 0) [[__likely__]] 1414: { 1414: __builtin_memset(__dest, (unsigned char)__x, __n); 1414: __first += __n; 1414: } 1414: return __first; 1414: } 1414: 1414: else if constexpr (contiguous_iterator<_ForwardIterator>) 1414: { 1414: auto __dest = std::to_address(__first); 1414: if (__n > 0) [[__likely__]] 1414: { 1414: __builtin_memset(__dest, (unsigned char)__x, __n); 1414: __first += __n; 1414: } 1414: return __first; 1414: } 1414: 1414: } 1414: return std::__do_uninit_fill_n(__first, __n, __x); 1414: # 604 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: } 1414: #pragma GCC diagnostic pop 1414: # 615 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: template 1414: constexpr 1414: _ForwardIterator 1414: __uninitialized_copy_a(_InputIterator __first, _Sentinel __last, 1414: _ForwardIterator __result, _Allocator& __alloc) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator, _Allocator> 1414: __guard(__result, __alloc); 1414: 1414: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 1414: for (; __first != __last; ++__first, (void)++__result) 1414: __traits::construct(__alloc, std::__addressof(*__result), *__first); 1414: __guard.release(); 1414: return __result; 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: inline _ForwardIterator 1414: __uninitialized_copy_a(_InputIterator __first, _Sentinel __last, 1414: _ForwardIterator __result, allocator<_Tp>&) 1414: { 1414: 1414: if (std::is_constant_evaluated()) 1414: return std::__do_uninit_copy(std::move(__first), __last, __result); 1414: 1414: 1414: 1414: if constexpr (!is_same_v<_InputIterator, _Sentinel>) 1414: { 1414: 1414: 1414: if constexpr (sized_sentinel_for<_Sentinel, _InputIterator> 1414: && random_access_iterator<_InputIterator>) 1414: return std::uninitialized_copy(__first, 1414: __first + (__last - __first), 1414: __result); 1414: else 1414: return std::__do_uninit_copy(std::move(__first), __last, __result); 1414: } 1414: else 1414: return std::uninitialized_copy(std::move(__first), __last, __result); 1414: 1414: 1414: 1414: } 1414: 1414: 1414: 1414: template 1414: std::_Deque_iterator<_OTp, _OTp&, _OTp*> 1414: __uninitialized_copy_a( 1414: std::_Deque_iterator<_ITp, _IRef, _IPtr> __first, 1414: std::_Deque_iterator<_ITp, _IRef, _IPtr> __last, 1414: std::_Deque_iterator<_OTp, _OTp&, _OTp*> __result, 1414: allocator<_Tp>&); 1414: 1414: template 1414: __enable_if_t<__is_random_access_iter<_Iter>::value, 1414: std::_Deque_iterator<_OTp, _OTp&, _OTp*>> 1414: __uninitialized_copy_a(_Iter __first, _Iter __last, 1414: std::_Deque_iterator<_OTp, _OTp&, _OTp*> __result, 1414: allocator<_Tp>&); 1414: 1414: template 1414: std::_Deque_iterator<_OTp, _OTp&, _OTp*> 1414: __uninitialized_move_a( 1414: std::_Deque_iterator<_ITp, _IRef, _IPtr> __first, 1414: std::_Deque_iterator<_ITp, _IRef, _IPtr> __last, 1414: std::_Deque_iterator<_OTp, _OTp&, _OTp*> __result, 1414: allocator<_Tp>&); 1414: 1414: 1414: template 1414: constexpr 1414: inline _ForwardIterator 1414: __uninitialized_move_a(_InputIterator __first, _InputIterator __last, 1414: _ForwardIterator __result, _Allocator& __alloc) 1414: { 1414: return std::__uninitialized_copy_a(std::make_move_iterator(__first), 1414: std::make_move_iterator(__last), 1414: __result, __alloc); 1414: } 1414: 1414: template 1414: constexpr 1414: inline _ForwardIterator 1414: __uninitialized_move_if_noexcept_a(_InputIterator __first, 1414: _InputIterator __last, 1414: _ForwardIterator __result, 1414: _Allocator& __alloc) 1414: { 1414: return std::__uninitialized_copy_a 1414: (std::__make_move_if_noexcept_iterator(__first), 1414: std::__make_move_if_noexcept_iterator(__last), __result, __alloc); 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 1414: const _Tp& __x, _Allocator& __alloc) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator, _Allocator> 1414: __guard(__first, __alloc); 1414: 1414: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 1414: for (; __first != __last; ++__first) 1414: __traits::construct(__alloc, std::__addressof(*__first), __x); 1414: 1414: __guard.release(); 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: inline void 1414: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 1414: const _Tp& __x, allocator<_Tp2>&) 1414: { 1414: 1414: if (std::is_constant_evaluated()) 1414: return std::__do_uninit_fill(__first, __last, __x); 1414: 1414: std::uninitialized_fill(__first, __last, __x); 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: _ForwardIterator 1414: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 1414: const _Tp& __x, _Allocator& __alloc) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator, _Allocator> 1414: __guard(__first, __alloc); 1414: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 1414: for (; __n > 0; --__n, (void) ++__first) 1414: __traits::construct(__alloc, std::__addressof(*__first), __x); 1414: __guard.release(); 1414: return __first; 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: inline _ForwardIterator 1414: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 1414: const _Tp& __x, allocator<_Tp2>&) 1414: { 1414: 1414: if (std::is_constant_evaluated()) 1414: return std::__do_uninit_fill_n(__first, __n, __x); 1414: 1414: return std::uninitialized_fill_n(__first, __n, __x); 1414: } 1414: # 791 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: template 1414: inline _ForwardIterator 1414: __uninitialized_copy_move(_InputIterator1 __first1, 1414: _InputIterator1 __last1, 1414: _InputIterator2 __first2, 1414: _InputIterator2 __last2, 1414: _ForwardIterator __result, 1414: _Allocator& __alloc) 1414: { 1414: _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, 1414: __result, __alloc); 1414: _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__result, 1414: __alloc); 1414: __result = __mid; 1414: __result = std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); 1414: __guard.release(); 1414: return __result; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline _ForwardIterator 1414: __uninitialized_move_copy(_InputIterator1 __first1, 1414: _InputIterator1 __last1, 1414: _InputIterator2 __first2, 1414: _InputIterator2 __last2, 1414: _ForwardIterator __result, 1414: _Allocator& __alloc) 1414: { 1414: _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, 1414: __result, __alloc); 1414: _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__result, 1414: __alloc); 1414: __result = __mid; 1414: __result = std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); 1414: __guard.release(); 1414: return __result; 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: inline _ForwardIterator 1414: __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, 1414: const _Tp& __x, _InputIterator __first, 1414: _InputIterator __last, _Allocator& __alloc) 1414: { 1414: std::__uninitialized_fill_a(__result, __mid, __x, __alloc); 1414: _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__result, 1414: __alloc); 1414: __result = __mid; 1414: __result = std::__uninitialized_move_a(__first, __last, __mid, __alloc); 1414: __guard.release(); 1414: return __result; 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: inline void 1414: __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, 1414: _ForwardIterator __first2, 1414: _ForwardIterator __last2, const _Tp& __x, 1414: _Allocator& __alloc) 1414: { 1414: _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, 1414: __first2, 1414: __alloc); 1414: _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__first2, 1414: __alloc); 1414: __first2 = __mid2; 1414: std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); 1414: __guard.release(); 1414: } 1414: # 883 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: template 1414: struct __uninitialized_default_1 1414: { 1414: template 1414: 1414: static void 1414: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator> __guard(__first); 1414: for (; __first != __last; ++__first) 1414: std::_Construct(std::addressof(*__first)); 1414: __guard.release(); 1414: } 1414: }; 1414: 1414: template<> 1414: struct __uninitialized_default_1 1414: { 1414: template 1414: 1414: static void 1414: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 1414: { 1414: if (__first == __last) 1414: return; 1414: 1414: typename iterator_traits<_ForwardIterator>::value_type* __val 1414: = std::addressof(*__first); 1414: std::_Construct(__val); 1414: if (++__first != __last) 1414: std::fill(__first, __last, *__val); 1414: } 1414: }; 1414: 1414: template 1414: struct __uninitialized_default_n_1 1414: { 1414: template 1414: constexpr 1414: static _ForwardIterator 1414: __uninit_default_n(_ForwardIterator __first, _Size __n) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator> __guard(__first); 1414: for (; __n > 0; --__n, (void) ++__first) 1414: std::_Construct(std::addressof(*__first)); 1414: __guard.release(); 1414: return __first; 1414: } 1414: }; 1414: 1414: template<> 1414: struct __uninitialized_default_n_1 1414: { 1414: template 1414: constexpr 1414: static _ForwardIterator 1414: __uninit_default_n(_ForwardIterator __first, _Size __n) 1414: { 1414: if (__n > 0) 1414: { 1414: typename iterator_traits<_ForwardIterator>::value_type* __val 1414: = std::addressof(*__first); 1414: std::_Construct(__val); 1414: ++__first; 1414: __first = std::fill_n(__first, __n - 1, *__val); 1414: } 1414: return __first; 1414: } 1414: }; 1414: 1414: 1414: 1414: template 1414: constexpr 1414: inline void 1414: __uninitialized_default(_ForwardIterator __first, 1414: _ForwardIterator __last) 1414: { 1414: 1414: if (std::is_constant_evaluated()) 1414: return __uninitialized_default_1:: 1414: __uninit_default(__first, __last); 1414: 1414: 1414: typedef typename iterator_traits<_ForwardIterator>::value_type 1414: _ValueType; 1414: 1414: const bool __assignable = is_copy_assignable<_ValueType>::value; 1414: 1414: std::__uninitialized_default_1<__is_trivial(_ValueType) 1414: && __assignable>:: 1414: __uninit_default(__first, __last); 1414: } 1414: 1414: 1414: 1414: template 1414: constexpr 1414: inline _ForwardIterator 1414: __uninitialized_default_n(_ForwardIterator __first, _Size __n) 1414: { 1414: 1414: if (std::is_constant_evaluated()) 1414: return __uninitialized_default_n_1:: 1414: __uninit_default_n(__first, __n); 1414: 1414: 1414: typedef typename iterator_traits<_ForwardIterator>::value_type 1414: _ValueType; 1414: 1414: constexpr bool __can_fill 1414: = __and_, is_copy_assignable<_ValueType>>::value; 1414: 1414: return __uninitialized_default_n_1<__is_trivial(_ValueType) 1414: && __can_fill>:: 1414: __uninit_default_n(__first, __n); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: void 1414: __uninitialized_default_a(_ForwardIterator __first, 1414: _ForwardIterator __last, 1414: _Allocator& __alloc) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__first, 1414: __alloc); 1414: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 1414: for (; __first != __last; ++__first) 1414: __traits::construct(__alloc, std::addressof(*__first)); 1414: __guard.release(); 1414: } 1414: 1414: 1414: template 1414: inline void 1414: __uninitialized_default_a(_ForwardIterator __first, 1414: _ForwardIterator __last, 1414: allocator<_Tp>&) 1414: { std::__uninitialized_default(__first, __last); } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr _ForwardIterator 1414: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 1414: _Allocator& __alloc) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__first, 1414: __alloc); 1414: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 1414: for (; __n > 0; --__n, (void) ++__first) 1414: __traits::construct(__alloc, std::addressof(*__first)); 1414: __guard.release(); 1414: return __first; 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: constexpr 1414: inline _ForwardIterator 1414: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 1414: allocator<_Tp>&) 1414: { return std::__uninitialized_default_n(__first, __n); } 1414: 1414: 1414: template 1414: struct __uninitialized_default_novalue_1 1414: { 1414: template 1414: 1414: static void 1414: __uninit_default_novalue(_ForwardIterator __first, 1414: _ForwardIterator __last) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator> __guard(__first); 1414: for (; __first != __last; ++__first) 1414: std::_Construct_novalue(std::addressof(*__first)); 1414: __guard.release(); 1414: } 1414: }; 1414: 1414: template<> 1414: struct __uninitialized_default_novalue_1 1414: { 1414: template 1414: 1414: static void 1414: __uninit_default_novalue(_ForwardIterator, _ForwardIterator) 1414: { 1414: } 1414: }; 1414: 1414: template 1414: struct __uninitialized_default_novalue_n_1 1414: { 1414: template 1414: 1414: static _ForwardIterator 1414: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator> __guard(__first); 1414: for (; __n > 0; --__n, (void) ++__first) 1414: std::_Construct_novalue(std::addressof(*__first)); 1414: __guard.release(); 1414: return __first; 1414: } 1414: }; 1414: 1414: template<> 1414: struct __uninitialized_default_novalue_n_1 1414: { 1414: template 1414: 1414: static _ForwardIterator 1414: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 1414: { return std::next(__first, __n); } 1414: }; 1414: 1414: 1414: 1414: template 1414: 1414: inline void 1414: __uninitialized_default_novalue(_ForwardIterator __first, 1414: _ForwardIterator __last) 1414: { 1414: typedef typename iterator_traits<_ForwardIterator>::value_type 1414: _ValueType; 1414: 1414: std::__uninitialized_default_novalue_1< 1414: is_trivially_default_constructible<_ValueType>::value>:: 1414: __uninit_default_novalue(__first, __last); 1414: } 1414: 1414: 1414: 1414: template 1414: 1414: inline _ForwardIterator 1414: __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) 1414: { 1414: typedef typename iterator_traits<_ForwardIterator>::value_type 1414: _ValueType; 1414: 1414: return __uninitialized_default_novalue_n_1< 1414: is_trivially_default_constructible<_ValueType>::value>:: 1414: __uninit_default_novalue_n(__first, __n); 1414: } 1414: 1414: template 1414: 1414: _ForwardIterator 1414: __uninitialized_copy_n(_InputIterator __first, _Size __n, 1414: _ForwardIterator __result, input_iterator_tag) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator> __guard(__result); 1414: for (; __n > 0; --__n, (void) ++__first, ++__result) 1414: std::_Construct(std::addressof(*__result), *__first); 1414: __guard.release(); 1414: return __result; 1414: } 1414: 1414: template 1414: 1414: inline _ForwardIterator 1414: __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, 1414: _ForwardIterator __result, 1414: random_access_iterator_tag) 1414: { return std::uninitialized_copy(__first, __first + __n, __result); } 1414: 1414: template 1414: 1414: pair<_InputIterator, _ForwardIterator> 1414: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 1414: _ForwardIterator __result, input_iterator_tag) 1414: { 1414: _UninitDestroyGuard<_ForwardIterator> __guard(__result); 1414: for (; __n > 0; --__n, (void) ++__first, ++__result) 1414: std::_Construct(std::addressof(*__result), *__first); 1414: __guard.release(); 1414: return {__first, __result}; 1414: } 1414: 1414: template 1414: 1414: inline pair<_RandomAccessIterator, _ForwardIterator> 1414: __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, 1414: _ForwardIterator __result, 1414: random_access_iterator_tag) 1414: { 1414: auto __second_res = uninitialized_copy(__first, __first + __n, __result); 1414: auto __first_res = std::next(__first, __n); 1414: return {__first_res, __second_res}; 1414: } 1414: # 1202 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: template 1414: 1414: inline _ForwardIterator 1414: uninitialized_copy_n(_InputIterator __first, _Size __n, 1414: _ForwardIterator __result) 1414: { return std::__uninitialized_copy_n(__first, __n, __result, 1414: std::__iter_concept_or_category(__first)); } 1414: 1414: 1414: template 1414: 1414: inline pair<_InputIterator, _ForwardIterator> 1414: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 1414: _ForwardIterator __result) 1414: { 1414: return 1414: std::__uninitialized_copy_n_pair(__first, __n, __result, 1414: std::__iter_concept_or_category(__first)); 1414: } 1414: # 1231 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: template 1414: 1414: inline void 1414: uninitialized_default_construct(_ForwardIterator __first, 1414: _ForwardIterator __last) 1414: { 1414: std::__uninitialized_default_novalue(__first, __last); 1414: } 1414: # 1247 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: template 1414: 1414: inline _ForwardIterator 1414: uninitialized_default_construct_n(_ForwardIterator __first, _Size __count) 1414: { 1414: return std::__uninitialized_default_novalue_n(__first, __count); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: 1414: inline void 1414: uninitialized_value_construct(_ForwardIterator __first, 1414: _ForwardIterator __last) 1414: { 1414: return std::__uninitialized_default(__first, __last); 1414: } 1414: # 1277 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: template 1414: 1414: inline _ForwardIterator 1414: uninitialized_value_construct_n(_ForwardIterator __first, _Size __count) 1414: { 1414: return std::__uninitialized_default_n(__first, __count); 1414: } 1414: # 1293 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: template 1414: 1414: inline _ForwardIterator 1414: uninitialized_move(_InputIterator __first, _InputIterator __last, 1414: _ForwardIterator __result) 1414: { 1414: return std::uninitialized_copy(std::make_move_iterator(__first), 1414: std::make_move_iterator(__last), 1414: __result); 1414: } 1414: # 1312 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_uninitialized.h" 3 1414: template 1414: 1414: inline pair<_InputIterator, _ForwardIterator> 1414: uninitialized_move_n(_InputIterator __first, _Size __count, 1414: _ForwardIterator __result) 1414: { 1414: auto __res 1414: = std::__uninitialized_copy_n_pair(std::make_move_iterator(__first), 1414: __count, __result); 1414: return {__res.first.base(), __res.second}; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr 1414: inline void 1414: __relocate_object_a(_Tp* __restrict __dest, _Up* __restrict __orig, 1414: _Allocator& __alloc) 1414: noexcept(noexcept(std::allocator_traits<_Allocator>::construct(__alloc, 1414: __dest, std::move(*__orig))) 1414: && noexcept(std::allocator_traits<_Allocator>::destroy( 1414: __alloc, std::addressof(*__orig)))) 1414: { 1414: typedef std::allocator_traits<_Allocator> __traits; 1414: __traits::construct(__alloc, __dest, std::move(*__orig)); 1414: __traits::destroy(__alloc, std::addressof(*__orig)); 1414: } 1414: 1414: 1414: 1414: template 1414: struct __is_bitwise_relocatable 1414: : __bool_constant<__is_trivial(_Tp)> 1414: { }; 1414: 1414: template 1414: constexpr 1414: inline _ForwardIterator 1414: __relocate_a_1(_InputIterator __first, _InputIterator __last, 1414: _ForwardIterator __result, _Allocator& __alloc) 1414: noexcept(noexcept(std::__relocate_object_a(std::addressof(*__result), 1414: std::addressof(*__first), 1414: __alloc))) 1414: { 1414: typedef typename iterator_traits<_InputIterator>::value_type 1414: _ValueType; 1414: typedef typename iterator_traits<_ForwardIterator>::value_type 1414: _ValueType2; 1414: static_assert(std::is_same<_ValueType, _ValueType2>::value, 1414: "relocation is only possible for values of the same type"); 1414: _ForwardIterator __cur = __result; 1414: for (; __first != __last; ++__first, (void)++__cur) 1414: std::__relocate_object_a(std::addressof(*__cur), 1414: std::addressof(*__first), __alloc); 1414: return __cur; 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: inline __enable_if_t::value, _Tp*> 1414: __relocate_a_1(_Tp* __first, _Tp* __last, 1414: _Tp* __result, 1414: [[__maybe_unused__]] allocator<_Up>& __alloc) noexcept 1414: { 1414: ptrdiff_t __count = __last - __first; 1414: if (__count > 0) 1414: { 1414: 1414: if (std::is_constant_evaluated()) 1414: { 1414: 1414: 1414: __gnu_cxx::__normal_iterator<_Tp*, void> __out(__result); 1414: __out = std::__relocate_a_1(__first, __last, __out, __alloc); 1414: return __out.base(); 1414: } 1414: 1414: __builtin_memcpy(__result, __first, __count * sizeof(_Tp)); 1414: } 1414: return __result + __count; 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: inline _ForwardIterator 1414: __relocate_a(_InputIterator __first, _InputIterator __last, 1414: _ForwardIterator __result, _Allocator& __alloc) 1414: noexcept(noexcept(__relocate_a_1(std::__niter_base(__first), 1414: std::__niter_base(__last), 1414: std::__niter_base(__result), __alloc))) 1414: { 1414: return std::__relocate_a_1(std::__niter_base(__first), 1414: std::__niter_base(__last), 1414: std::__niter_base(__result), __alloc); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: } 1414: # 68 "/usr/arm-linux-gnueabihf/include/c++/16/vector" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 1 3 1414: # 60 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throw.h" 1 3 1414: # 61 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 2 3 1414: # 84 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: template 1414: struct _Vector_base 1414: { 1414: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 1414: rebind<_Tp>::other _Tp_alloc_type; 1414: typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer 1414: pointer; 1414: 1414: struct _Vector_impl_data 1414: { 1414: pointer _M_start; 1414: pointer _M_finish; 1414: pointer _M_end_of_storage; 1414: 1414: constexpr 1414: _Vector_impl_data() noexcept 1414: : _M_start(), _M_finish(), _M_end_of_storage() 1414: { } 1414: 1414: 1414: constexpr 1414: _Vector_impl_data(_Vector_impl_data&& __x) noexcept 1414: : _M_start(__x._M_start), _M_finish(__x._M_finish), 1414: _M_end_of_storage(__x._M_end_of_storage) 1414: { __x._M_start = __x._M_finish = __x._M_end_of_storage = pointer(); } 1414: 1414: 1414: constexpr 1414: void 1414: _M_copy_data(_Vector_impl_data const& __x) noexcept 1414: { 1414: _M_start = __x._M_start; 1414: _M_finish = __x._M_finish; 1414: _M_end_of_storage = __x._M_end_of_storage; 1414: } 1414: 1414: constexpr 1414: void 1414: _M_swap_data(_Vector_impl_data& __x) noexcept 1414: { 1414: 1414: 1414: _Vector_impl_data __tmp; 1414: __tmp._M_copy_data(*this); 1414: _M_copy_data(__x); 1414: __x._M_copy_data(__tmp); 1414: } 1414: }; 1414: 1414: struct _Vector_impl 1414: : public _Tp_alloc_type, public _Vector_impl_data 1414: { 1414: constexpr 1414: _Vector_impl() noexcept(is_nothrow_default_constructible<_Tp_alloc_type>::value) 1414: 1414: 1414: requires is_default_constructible_v<_Tp_alloc_type> 1414: 1414: : _Tp_alloc_type() 1414: { } 1414: 1414: constexpr 1414: _Vector_impl(_Tp_alloc_type const& __a) noexcept 1414: : _Tp_alloc_type(__a) 1414: { } 1414: 1414: 1414: 1414: 1414: constexpr 1414: _Vector_impl(_Vector_impl&& __x) noexcept 1414: : _Tp_alloc_type(std::move(__x)), _Vector_impl_data(std::move(__x)) 1414: { } 1414: 1414: constexpr 1414: _Vector_impl(_Tp_alloc_type&& __a) noexcept 1414: : _Tp_alloc_type(std::move(__a)) 1414: { } 1414: 1414: constexpr 1414: _Vector_impl(_Tp_alloc_type&& __a, _Vector_impl&& __rv) noexcept 1414: : _Tp_alloc_type(std::move(__a)), _Vector_impl_data(std::move(__rv)) 1414: { } 1414: # 300 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: }; 1414: 1414: public: 1414: typedef _Alloc allocator_type; 1414: 1414: constexpr 1414: _Tp_alloc_type& 1414: _M_get_Tp_allocator() noexcept 1414: { return this->_M_impl; } 1414: 1414: constexpr 1414: const _Tp_alloc_type& 1414: _M_get_Tp_allocator() const noexcept 1414: { return this->_M_impl; } 1414: 1414: constexpr 1414: allocator_type 1414: get_allocator() const noexcept 1414: { return allocator_type(_M_get_Tp_allocator()); } 1414: 1414: 1414: _Vector_base() = default; 1414: 1414: 1414: 1414: 1414: constexpr 1414: _Vector_base(const allocator_type& __a) noexcept 1414: : _M_impl(__a) { } 1414: 1414: 1414: 1414: constexpr 1414: _Vector_base(size_t __n) 1414: : _M_impl() 1414: { _M_create_storage(__n); } 1414: 1414: 1414: constexpr 1414: _Vector_base(size_t __n, const allocator_type& __a) 1414: : _M_impl(__a) 1414: { _M_create_storage(__n); } 1414: 1414: 1414: _Vector_base(_Vector_base&&) = default; 1414: 1414: 1414: 1414: constexpr 1414: _Vector_base(_Tp_alloc_type&& __a) noexcept 1414: : _M_impl(std::move(__a)) { } 1414: 1414: constexpr 1414: _Vector_base(_Vector_base&& __x, const allocator_type& __a) 1414: : _M_impl(__a) 1414: { 1414: if (__x.get_allocator() == __a) 1414: this->_M_impl._M_swap_data(__x._M_impl); 1414: else 1414: { 1414: size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; 1414: _M_create_storage(__n); 1414: } 1414: } 1414: 1414: 1414: constexpr 1414: _Vector_base(const allocator_type& __a, _Vector_base&& __x) 1414: : _M_impl(_Tp_alloc_type(__a), std::move(__x._M_impl)) 1414: { } 1414: 1414: 1414: constexpr 1414: ~_Vector_base() noexcept 1414: { 1414: ptrdiff_t __n = _M_impl._M_end_of_storage - _M_impl._M_start; 1414: if (__n < 0) 1414: __builtin_unreachable(); 1414: _M_deallocate(_M_impl._M_start, size_t(__n)); 1414: } 1414: 1414: public: 1414: _Vector_impl _M_impl; 1414: 1414: constexpr 1414: pointer 1414: _M_allocate(size_t __n) 1414: { 1414: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 1414: return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); 1414: } 1414: 1414: constexpr 1414: void 1414: _M_deallocate(pointer __p, size_t __n) 1414: { 1414: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 1414: if (__p) 1414: _Tr::deallocate(_M_impl, __p, __n); 1414: } 1414: 1414: protected: 1414: 1414: constexpr 1414: void 1414: _M_create_storage(size_t __n) 1414: { 1414: this->_M_impl._M_start = this->_M_allocate(__n); 1414: this->_M_impl._M_finish = this->_M_impl._M_start; 1414: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 1414: } 1414: # 434 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: }; 1414: # 459 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: template > 1414: class vector : protected _Vector_base<_Tp, _Alloc> 1414: { 1414: # 472 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: static_assert(is_same::type, _Tp>::value, 1414: "std::vector must have a non-const, non-volatile value_type"); 1414: 1414: static_assert(is_same::value, 1414: "std::vector must have the same value_type as its allocator"); 1414: 1414: 1414: 1414: typedef _Vector_base<_Tp, _Alloc> _Base; 1414: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 1414: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 1414: 1414: public: 1414: typedef _Tp value_type; 1414: typedef typename _Base::pointer pointer; 1414: typedef typename _Alloc_traits::const_pointer const_pointer; 1414: typedef typename _Alloc_traits::reference reference; 1414: typedef typename _Alloc_traits::const_reference const_reference; 1414: typedef __gnu_cxx::__normal_iterator iterator; 1414: typedef __gnu_cxx::__normal_iterator 1414: const_iterator; 1414: typedef std::reverse_iterator const_reverse_iterator; 1414: typedef std::reverse_iterator reverse_iterator; 1414: typedef size_t size_type; 1414: typedef ptrdiff_t difference_type; 1414: typedef _Alloc allocator_type; 1414: 1414: private: 1414: 1414: static constexpr bool 1414: _S_nothrow_relocate(true_type) 1414: { 1414: return noexcept(std::__relocate_a(std::declval(), 1414: std::declval(), 1414: std::declval(), 1414: std::declval<_Tp_alloc_type&>())); 1414: } 1414: 1414: static constexpr bool 1414: _S_nothrow_relocate(false_type) 1414: { return false; } 1414: 1414: static constexpr bool 1414: _S_use_relocate() 1414: { 1414: 1414: 1414: 1414: return _S_nothrow_relocate(__is_move_insertable<_Tp_alloc_type>{}); 1414: } 1414: 1414: static constexpr pointer 1414: _S_relocate(pointer __first, pointer __last, pointer __result, 1414: _Tp_alloc_type& __alloc) noexcept 1414: { 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: if constexpr (_S_use_relocate()) 1414: return std::__relocate_a(__first, __last, __result, __alloc); 1414: else 1414: return __result; 1414: #pragma GCC diagnostic pop 1414: } 1414: 1414: 1414: protected: 1414: using _Base::_M_allocate; 1414: using _Base::_M_deallocate; 1414: using _Base::_M_impl; 1414: using _Base::_M_get_Tp_allocator; 1414: 1414: public: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: vector() = default; 1414: # 560 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: explicit 1414: constexpr 1414: vector(const allocator_type& __a) noexcept 1414: : _Base(__a) { } 1414: # 574 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: explicit 1414: constexpr 1414: vector(size_type __n, const allocator_type& __a = allocator_type()) 1414: : _Base(_S_check_init_len(__n, __a), __a) 1414: { _M_default_initialize(__n); } 1414: # 588 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: vector(size_type __n, const value_type& __value, 1414: const allocator_type& __a = allocator_type()) 1414: : _Base(_S_check_init_len(__n, __a), __a) 1414: { _M_fill_initialize(__n, __value); } 1414: # 620 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: vector(const vector& __x) 1414: : _Base(__x.size(), 1414: _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) 1414: { 1414: this->_M_impl._M_finish = 1414: std::__uninitialized_copy_a(__x.begin(), __x.end(), 1414: this->_M_impl._M_start, 1414: _M_get_Tp_allocator()); 1414: } 1414: # 640 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: vector(vector&&) noexcept = default; 1414: 1414: 1414: constexpr 1414: vector(const vector& __x, const __type_identity_t& __a) 1414: : _Base(__x.size(), __a) 1414: { 1414: this->_M_impl._M_finish = 1414: std::__uninitialized_copy_a(__x.begin(), __x.end(), 1414: this->_M_impl._M_start, 1414: _M_get_Tp_allocator()); 1414: } 1414: 1414: private: 1414: constexpr 1414: vector(vector&& __rv, const allocator_type& __m, true_type) noexcept 1414: : _Base(__m, std::move(__rv)) 1414: { } 1414: 1414: constexpr 1414: vector(vector&& __rv, const allocator_type& __m, false_type) 1414: : _Base(__m) 1414: { 1414: if (__rv.get_allocator() == __m) 1414: this->_M_impl._M_swap_data(__rv._M_impl); 1414: else if (!__rv.empty()) 1414: { 1414: this->_M_create_storage(__rv.size()); 1414: this->_M_impl._M_finish = 1414: std::__uninitialized_move_a(__rv.begin(), __rv.end(), 1414: this->_M_impl._M_start, 1414: _M_get_Tp_allocator()); 1414: __rv.clear(); 1414: } 1414: } 1414: 1414: public: 1414: 1414: constexpr 1414: vector(vector&& __rv, const __type_identity_t& __m) 1414: noexcept( noexcept( 1414: vector(std::declval(), std::declval(), 1414: std::declval())) ) 1414: : vector(std::move(__rv), __m, typename _Alloc_traits::is_always_equal{}) 1414: { } 1414: # 697 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: vector(initializer_list __l, 1414: const allocator_type& __a = allocator_type()) 1414: : _Base(__a) 1414: { 1414: _M_range_initialize_n(__l.begin(), __l.end(), __l.size()); 1414: } 1414: # 723 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: template> 1414: constexpr 1414: vector(_InputIterator __first, _InputIterator __last, 1414: const allocator_type& __a = allocator_type()) 1414: : _Base(__a) 1414: { 1414: 1414: if constexpr (sized_sentinel_for<_InputIterator, _InputIterator> 1414: || forward_iterator<_InputIterator>) 1414: { 1414: const auto __n 1414: = static_cast(ranges::distance(__first, __last)); 1414: _M_range_initialize_n(__first, __last, __n); 1414: return; 1414: } 1414: else 1414: 1414: _M_range_initialize(__first, __last, 1414: std::__iterator_category(__first)); 1414: } 1414: # 789 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: ~vector() noexcept 1414: { 1414: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 1414: _M_get_Tp_allocator()); 1414: ; 1414: } 1414: # 806 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: vector& 1414: operator=(const vector& __x); 1414: # 821 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: vector& 1414: operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) 1414: { 1414: constexpr bool __move_storage = 1414: _Alloc_traits::_S_propagate_on_move_assign() 1414: || _Alloc_traits::_S_always_equal(); 1414: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 1414: return *this; 1414: } 1414: # 843 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: vector& 1414: operator=(initializer_list __l) 1414: { 1414: this->_M_assign_aux(__l.begin(), __l.end(), 1414: random_access_iterator_tag()); 1414: return *this; 1414: } 1414: # 863 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: void 1414: assign(size_type __n, const value_type& __val) 1414: { _M_fill_assign(__n, __val); } 1414: # 881 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: template> 1414: constexpr 1414: void 1414: assign(_InputIterator __first, _InputIterator __last) 1414: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 1414: # 910 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: void 1414: assign(initializer_list __l) 1414: { 1414: this->_M_assign_aux(__l.begin(), __l.end(), 1414: random_access_iterator_tag()); 1414: } 1414: # 978 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: using _Base::get_allocator; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: iterator 1414: begin() noexcept 1414: { return iterator(this->_M_impl._M_start); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_iterator 1414: begin() const noexcept 1414: { return const_iterator(this->_M_impl._M_start); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: iterator 1414: end() noexcept 1414: { return iterator(this->_M_impl._M_finish); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_iterator 1414: end() const noexcept 1414: { return const_iterator(this->_M_impl._M_finish); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: reverse_iterator 1414: rbegin() noexcept 1414: { return reverse_iterator(end()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reverse_iterator 1414: rbegin() const noexcept 1414: { return const_reverse_iterator(end()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: reverse_iterator 1414: rend() noexcept 1414: { return reverse_iterator(begin()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reverse_iterator 1414: rend() const noexcept 1414: { return const_reverse_iterator(begin()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_iterator 1414: cbegin() const noexcept 1414: { return const_iterator(this->_M_impl._M_start); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_iterator 1414: cend() const noexcept 1414: { return const_iterator(this->_M_impl._M_finish); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reverse_iterator 1414: crbegin() const noexcept 1414: { return const_reverse_iterator(end()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reverse_iterator 1414: crend() const noexcept 1414: { return const_reverse_iterator(begin()); } 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: size() const noexcept 1414: { 1414: ptrdiff_t __dif = this->_M_impl._M_finish - this->_M_impl._M_start; 1414: if (__dif < 0) 1414: __builtin_unreachable(); 1414: return size_type(__dif); 1414: } 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: max_size() const noexcept 1414: { return _S_max_size(_M_get_Tp_allocator()); } 1414: # 1131 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: void 1414: resize(size_type __new_size) 1414: { 1414: if (__new_size > size()) 1414: _M_default_append(__new_size - size()); 1414: else if (__new_size < size()) 1414: _M_erase_at_end(this->_M_impl._M_start + __new_size); 1414: } 1414: # 1152 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: void 1414: resize(size_type __new_size, const value_type& __x) 1414: { 1414: if (__new_size > size()) 1414: _M_fill_append(__new_size - size(), __x); 1414: else if (__new_size < size()) 1414: _M_erase_at_end(this->_M_impl._M_start + __new_size); 1414: } 1414: # 1186 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: void 1414: shrink_to_fit() 1414: { _M_shrink_to_fit(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: capacity() const noexcept 1414: { 1414: ptrdiff_t __dif = this->_M_impl._M_end_of_storage 1414: - this->_M_impl._M_start; 1414: if (__dif < 0) 1414: __builtin_unreachable(); 1414: return size_type(__dif); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: bool 1414: empty() const noexcept 1414: { return begin() == end(); } 1414: # 1233 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: void 1414: reserve(size_type __n); 1414: # 1249 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: [[__nodiscard__]] constexpr 1414: reference 1414: operator[](size_type __n) noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__n < this->size())) std::__glibcxx_assert_fail(); } while (false); 1414: return *(this->_M_impl._M_start + __n); 1414: } 1414: # 1268 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: operator[](size_type __n) const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__n < this->size())) std::__glibcxx_assert_fail(); } while (false); 1414: return *(this->_M_impl._M_start + __n); 1414: } 1414: 1414: protected: 1414: 1414: constexpr 1414: void 1414: _M_range_check(size_type __n) const 1414: { 1414: if (__n >= this->size()) 1414: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 1414: 1414: , 1414: __n, this->size()); 1414: } 1414: 1414: public: 1414: # 1301 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: [[__nodiscard__]] constexpr 1414: reference 1414: at(size_type __n) 1414: { 1414: _M_range_check(__n); 1414: return (*this)[__n]; 1414: } 1414: # 1320 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: at(size_type __n) const 1414: { 1414: _M_range_check(__n); 1414: return (*this)[__n]; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: reference 1414: front() noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *begin(); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: front() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *begin(); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: reference 1414: back() noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *(end() - 1); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: back() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *(end() - 1); 1414: } 1414: # 1383 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: [[__nodiscard__]] constexpr 1414: _Tp* 1414: data() noexcept 1414: { return _M_data_ptr(this->_M_impl._M_start); } 1414: 1414: [[__nodiscard__]] constexpr 1414: const _Tp* 1414: data() const noexcept 1414: { return _M_data_ptr(this->_M_impl._M_start); } 1414: # 1404 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: void 1414: push_back(const value_type& __x) 1414: { 1414: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 1414: { 1414: ; 1414: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 1414: __x); 1414: ++this->_M_impl._M_finish; 1414: ; 1414: } 1414: else 1414: _M_realloc_append(__x); 1414: } 1414: 1414: 1414: constexpr 1414: void 1414: push_back(value_type&& __x) 1414: { emplace_back(std::move(__x)); } 1414: 1414: template 1414: 1414: constexpr 1414: reference 1414: 1414: 1414: 1414: emplace_back(_Args&&... __args); 1414: # 1445 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: void 1414: pop_back() noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: --this->_M_impl._M_finish; 1414: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 1414: ; 1414: } 1414: # 1468 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: template 1414: constexpr 1414: iterator 1414: emplace(const_iterator __position, _Args&&... __args) 1414: { return _M_emplace_aux(__position, std::forward<_Args>(__args)...); } 1414: # 1485 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: iterator 1414: insert(const_iterator __position, const value_type& __x); 1414: # 1516 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: iterator 1414: insert(const_iterator __position, value_type&& __x) 1414: { return _M_insert_rval(__position, std::move(__x)); } 1414: # 1534 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: iterator 1414: insert(const_iterator __position, initializer_list __l) 1414: { 1414: auto __offset = __position - cbegin(); 1414: _M_range_insert(begin() + __offset, __l.begin(), __l.end(), 1414: std::random_access_iterator_tag()); 1414: return begin() + __offset; 1414: } 1414: # 1560 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: iterator 1414: insert(const_iterator __position, size_type __n, const value_type& __x) 1414: { 1414: difference_type __offset = __position - cbegin(); 1414: _M_fill_insert(begin() + __offset, __n, __x); 1414: return begin() + __offset; 1414: } 1414: # 1603 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: template> 1414: constexpr 1414: iterator 1414: insert(const_iterator __position, _InputIterator __first, 1414: _InputIterator __last) 1414: { 1414: difference_type __offset = __position - cbegin(); 1414: _M_range_insert(begin() + __offset, __first, __last, 1414: std::__iterator_category(__first)); 1414: return begin() + __offset; 1414: } 1414: # 1779 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: iterator 1414: 1414: erase(const_iterator __position) 1414: { return _M_erase(begin() + (__position - cbegin())); } 1414: # 1807 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: iterator 1414: 1414: erase(const_iterator __first, const_iterator __last) 1414: { 1414: const auto __beg = begin(); 1414: const auto __cbeg = cbegin(); 1414: return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); 1414: } 1414: # 1832 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: constexpr 1414: void 1414: swap(vector& __x) noexcept 1414: { 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(_Alloc_traits::propagate_on_container_swap::value || _M_get_Tp_allocator() == __x._M_get_Tp_allocator())) std::__glibcxx_assert_fail(); } while (false) 1414: ; 1414: 1414: this->_M_impl._M_swap_data(__x._M_impl); 1414: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 1414: __x._M_get_Tp_allocator()); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: void 1414: clear() noexcept 1414: { _M_erase_at_end(this->_M_impl._M_start); } 1414: 1414: private: 1414: 1414: struct _Guard_alloc 1414: { 1414: pointer _M_storage; 1414: size_type _M_len; 1414: _Base& _M_vect; 1414: 1414: constexpr 1414: _Guard_alloc(pointer __s, size_type __l, _Base& __vect) 1414: : _M_storage(__s), _M_len(__l), _M_vect(__vect) 1414: { } 1414: 1414: constexpr 1414: ~_Guard_alloc() 1414: { 1414: if (_M_storage) 1414: _M_vect._M_deallocate(_M_storage, _M_len); 1414: } 1414: 1414: constexpr 1414: pointer 1414: _M_release() 1414: { 1414: pointer __res = _M_storage; 1414: _M_storage = pointer(); 1414: return __res; 1414: } 1414: 1414: private: 1414: _Guard_alloc(const _Guard_alloc&); 1414: }; 1414: 1414: protected: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr 1414: pointer 1414: _M_allocate_and_copy(size_type __n, 1414: _ForwardIterator __first, _ForwardIterator __last) 1414: { 1414: _Guard_alloc __guard(this->_M_allocate(__n), __n, *this); 1414: std::__uninitialized_copy_a 1414: (__first, __last, __guard._M_storage, _M_get_Tp_allocator()); 1414: return __guard._M_release(); 1414: } 1414: # 1938 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: template 1414: constexpr 1414: void 1414: _M_range_initialize(_InputIterator __first, _InputIterator __last, 1414: std::input_iterator_tag) 1414: { 1414: try { 1414: for (; __first != __last; ++__first) 1414: 1414: emplace_back(*__first); 1414: 1414: 1414: 1414: } catch(...) { 1414: clear(); 1414: throw; 1414: } 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: void 1414: _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, 1414: std::forward_iterator_tag) 1414: { 1414: _M_range_initialize_n(__first, __last, 1414: std::distance(__first, __last)); 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: _M_range_initialize_n(_Iterator __first, _Sentinel __last, 1414: size_type __n) 1414: { 1414: pointer __start = 1414: this->_M_allocate(_S_check_init_len(__n, _M_get_Tp_allocator())); 1414: this->_M_impl._M_start = this->_M_impl._M_finish = __start; 1414: this->_M_impl._M_end_of_storage = __start + __n; 1414: this->_M_impl._M_finish 1414: = std::__uninitialized_copy_a(std::move(__first), __last, 1414: __start, _M_get_Tp_allocator()); 1414: } 1414: 1414: 1414: 1414: constexpr 1414: void 1414: _M_fill_initialize(size_type __n, const value_type& __value) 1414: { 1414: this->_M_impl._M_finish = 1414: std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, 1414: _M_get_Tp_allocator()); 1414: } 1414: 1414: 1414: 1414: constexpr 1414: void 1414: _M_default_initialize(size_type __n) 1414: { 1414: this->_M_impl._M_finish = 1414: std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, 1414: _M_get_Tp_allocator()); 1414: } 1414: # 2013 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: template 1414: constexpr 1414: void 1414: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 1414: { _M_fill_assign(__n, __val); } 1414: 1414: 1414: template 1414: constexpr 1414: void 1414: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 1414: __false_type) 1414: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 1414: 1414: 1414: template 1414: constexpr 1414: void 1414: _M_assign_aux(_InputIterator __first, _InputIterator __last, 1414: std::input_iterator_tag); 1414: 1414: 1414: template 1414: constexpr 1414: void 1414: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 1414: std::forward_iterator_tag); 1414: 1414: 1414: 1414: constexpr 1414: void 1414: _M_fill_assign(size_type __n, const value_type& __val); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr 1414: void 1414: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, 1414: __true_type) 1414: { _M_fill_insert(__pos, __n, __val); } 1414: 1414: 1414: template 1414: constexpr 1414: void 1414: _M_insert_dispatch(iterator __pos, _InputIterator __first, 1414: _InputIterator __last, __false_type) 1414: { 1414: _M_range_insert(__pos, __first, __last, 1414: std::__iterator_category(__first)); 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: void 1414: _M_range_insert(iterator __pos, _InputIterator __first, 1414: _InputIterator __last, std::input_iterator_tag); 1414: 1414: 1414: template 1414: constexpr 1414: void 1414: _M_range_insert(iterator __pos, _ForwardIterator __first, 1414: _ForwardIterator __last, std::forward_iterator_tag); 1414: 1414: 1414: 1414: constexpr 1414: void 1414: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 1414: 1414: 1414: constexpr 1414: void 1414: _M_fill_append(size_type __n, const value_type& __x); 1414: 1414: 1414: 1414: constexpr 1414: void 1414: _M_default_append(size_type __n); 1414: 1414: constexpr 1414: bool 1414: _M_shrink_to_fit(); 1414: # 2120 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: struct _Temporary_value 1414: { 1414: template 1414: constexpr explicit 1414: _Temporary_value(vector* __vec, _Args&&... __args) : _M_this(__vec) 1414: { 1414: _Alloc_traits::construct(_M_this->_M_impl, _M_ptr(), 1414: std::forward<_Args>(__args)...); 1414: } 1414: 1414: constexpr 1414: ~_Temporary_value() 1414: { _Alloc_traits::destroy(_M_this->_M_impl, _M_ptr()); } 1414: 1414: constexpr value_type& 1414: _M_val() noexcept { return _M_storage._M_val; } 1414: 1414: private: 1414: constexpr _Tp* 1414: _M_ptr() noexcept { return std::__addressof(_M_storage._M_val); } 1414: 1414: union _Storage 1414: { 1414: constexpr _Storage() : _M_byte() { } 1414: constexpr ~_Storage() { } 1414: _Storage& operator=(const _Storage&) = delete; 1414: unsigned char _M_byte; 1414: _Tp _M_val; 1414: }; 1414: 1414: vector* _M_this; 1414: _Storage _M_storage; 1414: }; 1414: 1414: 1414: 1414: template 1414: constexpr 1414: void 1414: _M_insert_aux(iterator __position, _Arg&& __arg); 1414: 1414: template 1414: constexpr 1414: void 1414: _M_realloc_insert(iterator __position, _Args&&... __args); 1414: 1414: template 1414: constexpr 1414: void 1414: _M_realloc_append(_Args&&... __args); 1414: 1414: 1414: constexpr 1414: iterator 1414: _M_insert_rval(const_iterator __position, value_type&& __v); 1414: 1414: 1414: template 1414: constexpr 1414: iterator 1414: _M_emplace_aux(const_iterator __position, _Args&&... __args); 1414: 1414: 1414: constexpr 1414: iterator 1414: _M_emplace_aux(const_iterator __position, value_type&& __v) 1414: { return _M_insert_rval(__position, std::move(__v)); } 1414: 1414: 1414: 1414: constexpr 1414: size_type 1414: _M_check_len(size_type __n, const char* __s) const 1414: { 1414: if (max_size() - size() < __n) 1414: __throw_length_error((__s)); 1414: 1414: const size_type __len = size() + (std::max)(size(), __n); 1414: return (__len < size() || __len > max_size()) ? max_size() : __len; 1414: } 1414: 1414: 1414: static constexpr size_type 1414: _S_check_init_len(size_type __n, const allocator_type& __a) 1414: { 1414: if (__n > _S_max_size(_Tp_alloc_type(__a))) 1414: __throw_length_error( 1414: ("cannot create std::vector larger than max_size()")); 1414: return __n; 1414: } 1414: 1414: static constexpr size_type 1414: _S_max_size(const _Tp_alloc_type& __a) noexcept 1414: { 1414: 1414: 1414: 1414: const size_t __diffmax 1414: = __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 1414: const size_t __allocmax = _Alloc_traits::max_size(__a); 1414: return (std::min)(__diffmax, __allocmax); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: void 1414: _M_erase_at_end(pointer __pos) noexcept 1414: { 1414: if (size_type __n = this->_M_impl._M_finish - __pos) 1414: { 1414: std::_Destroy(__pos, this->_M_impl._M_finish, 1414: _M_get_Tp_allocator()); 1414: this->_M_impl._M_finish = __pos; 1414: ; 1414: } 1414: } 1414: 1414: constexpr 1414: iterator 1414: _M_erase(iterator __position); 1414: 1414: constexpr 1414: iterator 1414: _M_erase(iterator __first, iterator __last); 1414: 1414: 1414: private: 1414: 1414: 1414: 1414: constexpr 1414: void 1414: _M_move_assign(vector&& __x, true_type) noexcept 1414: { 1414: vector __tmp(get_allocator()); 1414: this->_M_impl._M_swap_data(__x._M_impl); 1414: __tmp._M_impl._M_swap_data(__x._M_impl); 1414: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 1414: } 1414: 1414: 1414: 1414: constexpr 1414: void 1414: _M_move_assign(vector&& __x, false_type) 1414: { 1414: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 1414: _M_move_assign(std::move(__x), true_type()); 1414: else 1414: { 1414: 1414: 1414: this->_M_assign_aux(std::make_move_iterator(__x.begin()), 1414: std::make_move_iterator(__x.end()), 1414: std::random_access_iterator_tag()); 1414: __x.clear(); 1414: } 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: _Up* 1414: _M_data_ptr(_Up* __ptr) const noexcept 1414: { return __ptr; } 1414: 1414: 1414: template 1414: constexpr 1414: typename std::pointer_traits<_Ptr>::element_type* 1414: _M_data_ptr(_Ptr __ptr) const 1414: { return empty() ? nullptr : std::__to_address(__ptr); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: }; 1414: 1414: 1414: template::value_type, 1414: typename _Allocator = allocator<_ValT>, 1414: typename = _RequireInputIter<_InputIterator>, 1414: typename = _RequireAllocator<_Allocator>> 1414: vector(_InputIterator, _InputIterator, _Allocator = _Allocator()) 1414: -> vector<_ValT, _Allocator>; 1414: # 2330 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: template 1414: [[__nodiscard__]] constexpr 1414: inline bool 1414: operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 1414: { return (__x.size() == __y.size() 1414: && std::equal(__x.begin(), __x.end(), __y.begin())); } 1414: # 2349 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: template 1414: [[nodiscard]] 1414: constexpr __detail::__synth3way_t<_Tp> 1414: operator<=>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 1414: { 1414: return std::lexicographical_compare_three_way(__x.begin(), __x.end(), 1414: __y.begin(), __y.end(), 1414: __detail::__synth3way); 1414: } 1414: # 2402 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_vector.h" 3 1414: template 1414: constexpr 1414: inline void 1414: swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) 1414: noexcept(noexcept(__x.swap(__y))) 1414: { __x.swap(__y); } 1414: 1414: 1414: 1414: 1414: namespace __detail::__variant 1414: { 1414: template struct _Never_valueless_alt; 1414: 1414: 1414: 1414: template 1414: struct _Never_valueless_alt> 1414: : std::is_nothrow_move_assignable> 1414: { }; 1414: } 1414: 1414: 1414: 1414: } 1414: # 69 "/usr/arm-linux-gnueabihf/include/c++/16/vector" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 1 3 1414: # 68 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: typedef unsigned long _Bit_type; 1414: enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; 1414: 1414: __attribute__((__nonnull__)) 1414: constexpr 1414: void 1414: __fill_bvector_n(_Bit_type*, size_t, bool) noexcept; 1414: 1414: 1414: 1414: struct _Bit_reference 1414: { 1414: private: 1414: template friend class vector; 1414: friend struct _Bit_iterator; 1414: friend struct _Bit_const_iterator; 1414: 1414: constexpr 1414: _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } 1414: 1414: _Bit_type * _M_p; 1414: _Bit_type _M_mask; 1414: 1414: constexpr 1414: _Bit_reference(_Bit_type * __x, _Bit_type __y) 1414: : _M_p(__x), _M_mask(__y) { } 1414: 1414: public: 1414: 1414: _Bit_reference(const _Bit_reference&) = default; 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: operator bool() const noexcept 1414: { return !!(*_M_p & _M_mask); } 1414: 1414: constexpr 1414: _Bit_reference& 1414: operator=(bool __x) noexcept 1414: { 1414: if (__x) 1414: *_M_p |= _M_mask; 1414: else 1414: *_M_p &= ~_M_mask; 1414: return *this; 1414: } 1414: # 131 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: constexpr 1414: _Bit_reference& 1414: operator=(const _Bit_reference& __x) noexcept 1414: { return *this = bool(__x); } 1414: 1414: [[__nodiscard__]] constexpr 1414: bool 1414: operator==(const _Bit_reference& __x) const 1414: { return bool(*this) == bool(__x); } 1414: 1414: [[__nodiscard__]] constexpr 1414: bool 1414: operator<(const _Bit_reference& __x) const 1414: { return !bool(*this) && bool(__x); } 1414: 1414: constexpr 1414: void 1414: flip() noexcept 1414: { *_M_p ^= _M_mask; } 1414: 1414: 1414: constexpr 1414: friend void 1414: swap(_Bit_reference __x, _Bit_reference __y) noexcept 1414: { 1414: bool __tmp = __x; 1414: __x = __y; 1414: __y = __tmp; 1414: } 1414: 1414: constexpr 1414: friend void 1414: swap(_Bit_reference __x, bool& __y) noexcept 1414: { 1414: bool __tmp = __x; 1414: __x = __y; 1414: __y = __tmp; 1414: } 1414: 1414: constexpr 1414: friend void 1414: swap(bool& __x, _Bit_reference __y) noexcept 1414: { 1414: bool __tmp = __x; 1414: __x = __y; 1414: __y = __tmp; 1414: } 1414: 1414: }; 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: struct _Bit_iterator_base 1414: : public std::iterator 1414: { 1414: _Bit_type * _M_p; 1414: unsigned int _M_offset; 1414: 1414: constexpr inline __attribute__((__always_inline__)) 1414: void 1414: _M_assume_normalized() const 1414: { 1414: 1414: unsigned int __ofst = _M_offset; 1414: __attribute__ ((__assume__ (__ofst < unsigned(_S_word_bit)))); 1414: 1414: } 1414: 1414: constexpr 1414: _Bit_iterator_base(_Bit_type * __x, unsigned int __y) 1414: : _M_p(__x), _M_offset(__y) { } 1414: 1414: constexpr 1414: void 1414: _M_bump_up() 1414: { 1414: _M_assume_normalized(); 1414: if (_M_offset++ == int(_S_word_bit) - 1) 1414: { 1414: _M_offset = 0; 1414: ++_M_p; 1414: } 1414: } 1414: 1414: constexpr 1414: void 1414: _M_bump_down() 1414: { 1414: _M_assume_normalized(); 1414: if (_M_offset-- == 0) 1414: { 1414: _M_offset = int(_S_word_bit) - 1; 1414: --_M_p; 1414: } 1414: } 1414: 1414: constexpr 1414: void 1414: _M_incr(ptrdiff_t __i) 1414: { 1414: _M_assume_normalized(); 1414: difference_type __n = __i + _M_offset; 1414: _M_p += __n / int(_S_word_bit); 1414: __n = __n % int(_S_word_bit); 1414: if (__n < 0) 1414: { 1414: __n += int(_S_word_bit); 1414: --_M_p; 1414: } 1414: _M_offset = static_cast(__n); 1414: } 1414: 1414: [[__nodiscard__]] 1414: friend constexpr bool 1414: operator==(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 1414: { 1414: __x._M_assume_normalized(); 1414: __y._M_assume_normalized(); 1414: return __x._M_p == __y._M_p && __x._M_offset == __y._M_offset; 1414: } 1414: 1414: 1414: [[nodiscard]] 1414: friend constexpr strong_ordering 1414: operator<=>(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 1414: noexcept 1414: { 1414: __x._M_assume_normalized(); 1414: __y._M_assume_normalized(); 1414: if (const auto __cmp = __x._M_p <=> __y._M_p; __cmp != 0) 1414: return __cmp; 1414: return __x._M_offset <=> __y._M_offset; 1414: } 1414: # 297 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: friend constexpr ptrdiff_t 1414: operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 1414: { 1414: __x._M_assume_normalized(); 1414: __y._M_assume_normalized(); 1414: return (int(_S_word_bit) * (__x._M_p - __y._M_p) 1414: + __x._M_offset - __y._M_offset); 1414: } 1414: }; 1414: #pragma GCC diagnostic pop 1414: 1414: struct _Bit_iterator : public _Bit_iterator_base 1414: { 1414: typedef _Bit_reference reference; 1414: 1414: typedef void pointer; 1414: 1414: 1414: 1414: typedef _Bit_iterator iterator; 1414: 1414: constexpr 1414: _Bit_iterator() : _Bit_iterator_base(0, 0) { } 1414: 1414: constexpr 1414: _Bit_iterator(_Bit_type * __x, unsigned int __y) 1414: : _Bit_iterator_base(__x, __y) { } 1414: 1414: constexpr 1414: iterator 1414: _M_const_cast() const 1414: { return *this; } 1414: 1414: [[__nodiscard__]] constexpr 1414: reference 1414: operator*() const 1414: { 1414: _M_assume_normalized(); 1414: return reference(_M_p, 1UL << _M_offset); 1414: } 1414: 1414: constexpr 1414: iterator& 1414: operator++() 1414: { 1414: _M_bump_up(); 1414: return *this; 1414: } 1414: 1414: constexpr 1414: iterator 1414: operator++(int) 1414: { 1414: iterator __tmp = *this; 1414: _M_bump_up(); 1414: return __tmp; 1414: } 1414: 1414: constexpr 1414: iterator& 1414: operator--() 1414: { 1414: _M_bump_down(); 1414: return *this; 1414: } 1414: 1414: constexpr 1414: iterator 1414: operator--(int) 1414: { 1414: iterator __tmp = *this; 1414: _M_bump_down(); 1414: return __tmp; 1414: } 1414: 1414: constexpr 1414: iterator& 1414: operator+=(difference_type __i) 1414: { 1414: _M_incr(__i); 1414: return *this; 1414: } 1414: 1414: constexpr 1414: iterator& 1414: operator-=(difference_type __i) 1414: { 1414: *this += -__i; 1414: return *this; 1414: } 1414: 1414: [[__nodiscard__]] constexpr 1414: reference 1414: operator[](difference_type __i) const 1414: { return *(*this + __i); } 1414: 1414: [[__nodiscard__]] 1414: friend constexpr iterator 1414: operator+(const iterator& __x, difference_type __n) 1414: { 1414: iterator __tmp = __x; 1414: __tmp += __n; 1414: return __tmp; 1414: } 1414: 1414: [[__nodiscard__]] 1414: friend constexpr iterator 1414: operator+(difference_type __n, const iterator& __x) 1414: { return __x + __n; } 1414: 1414: [[__nodiscard__]] 1414: friend constexpr iterator 1414: operator-(const iterator& __x, difference_type __n) 1414: { 1414: iterator __tmp = __x; 1414: __tmp -= __n; 1414: return __tmp; 1414: } 1414: }; 1414: 1414: struct _Bit_const_iterator : public _Bit_iterator_base 1414: { 1414: typedef bool reference; 1414: typedef bool const_reference; 1414: 1414: typedef void pointer; 1414: 1414: 1414: 1414: typedef _Bit_const_iterator const_iterator; 1414: 1414: constexpr 1414: _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } 1414: 1414: constexpr 1414: _Bit_const_iterator(_Bit_type * __x, unsigned int __y) 1414: : _Bit_iterator_base(__x, __y) { } 1414: 1414: constexpr 1414: _Bit_const_iterator(const _Bit_iterator& __x) 1414: : _Bit_iterator_base(__x._M_p, __x._M_offset) { } 1414: 1414: constexpr 1414: _Bit_iterator 1414: _M_const_cast() const 1414: { return _Bit_iterator(_M_p, _M_offset); } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: operator*() const 1414: { 1414: _M_assume_normalized(); 1414: return _Bit_reference(_M_p, 1UL << _M_offset); 1414: } 1414: 1414: constexpr 1414: const_iterator& 1414: operator++() 1414: { 1414: _M_bump_up(); 1414: return *this; 1414: } 1414: 1414: constexpr 1414: const_iterator 1414: operator++(int) 1414: { 1414: const_iterator __tmp = *this; 1414: _M_bump_up(); 1414: return __tmp; 1414: } 1414: 1414: constexpr 1414: const_iterator& 1414: operator--() 1414: { 1414: _M_bump_down(); 1414: return *this; 1414: } 1414: 1414: constexpr 1414: const_iterator 1414: operator--(int) 1414: { 1414: const_iterator __tmp = *this; 1414: _M_bump_down(); 1414: return __tmp; 1414: } 1414: 1414: constexpr 1414: const_iterator& 1414: operator+=(difference_type __i) 1414: { 1414: _M_incr(__i); 1414: return *this; 1414: } 1414: 1414: constexpr 1414: const_iterator& 1414: operator-=(difference_type __i) 1414: { 1414: *this += -__i; 1414: return *this; 1414: } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: operator[](difference_type __i) const 1414: { return *(*this + __i); } 1414: 1414: [[__nodiscard__]] 1414: friend constexpr const_iterator 1414: operator+(const const_iterator& __x, difference_type __n) 1414: { 1414: const_iterator __tmp = __x; 1414: __tmp += __n; 1414: return __tmp; 1414: } 1414: 1414: [[__nodiscard__]] 1414: friend constexpr const_iterator 1414: operator-(const const_iterator& __x, difference_type __n) 1414: { 1414: const_iterator __tmp = __x; 1414: __tmp -= __n; 1414: return __tmp; 1414: } 1414: 1414: [[__nodiscard__]] 1414: friend constexpr const_iterator 1414: operator+(difference_type __n, const const_iterator& __x) 1414: { return __x + __n; } 1414: }; 1414: 1414: template 1414: struct _Bvector_base 1414: { 1414: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 1414: rebind<_Bit_type>::other _Bit_alloc_type; 1414: typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> 1414: _Bit_alloc_traits; 1414: typedef typename _Bit_alloc_traits::pointer _Bit_pointer; 1414: 1414: struct _Bvector_impl_data 1414: { 1414: 1414: _Bit_iterator _M_start; 1414: # 553 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: _Bit_iterator _M_finish; 1414: _Bit_pointer _M_end_of_storage; 1414: 1414: constexpr 1414: _Bvector_impl_data() noexcept 1414: : _M_start(), _M_finish(), _M_end_of_storage() 1414: { } 1414: 1414: 1414: _Bvector_impl_data(const _Bvector_impl_data&) = default; 1414: 1414: _Bvector_impl_data& 1414: operator=(const _Bvector_impl_data&) = default; 1414: 1414: constexpr 1414: _Bvector_impl_data(_Bvector_impl_data&& __x) noexcept 1414: : _Bvector_impl_data(__x) 1414: { __x._M_reset(); } 1414: 1414: constexpr 1414: void 1414: _M_move_data(_Bvector_impl_data&& __x) noexcept 1414: { 1414: *this = __x; 1414: __x._M_reset(); 1414: } 1414: 1414: 1414: constexpr 1414: void 1414: _M_reset() noexcept 1414: { *this = _Bvector_impl_data(); } 1414: 1414: constexpr 1414: void 1414: _M_swap_data(_Bvector_impl_data& __x) noexcept 1414: { 1414: 1414: 1414: std::swap(*this, __x); 1414: } 1414: }; 1414: 1414: struct _Bvector_impl 1414: : public _Bit_alloc_type, public _Bvector_impl_data 1414: { 1414: constexpr 1414: _Bvector_impl() noexcept(is_nothrow_default_constructible<_Bit_alloc_type>::value) 1414: 1414: 1414: requires is_default_constructible_v<_Bit_alloc_type> 1414: 1414: : _Bit_alloc_type() 1414: { } 1414: 1414: constexpr 1414: _Bvector_impl(const _Bit_alloc_type& __a) noexcept 1414: : _Bit_alloc_type(__a) 1414: { } 1414: 1414: 1414: 1414: 1414: constexpr 1414: _Bvector_impl(_Bvector_impl&& __x) noexcept 1414: : _Bit_alloc_type(std::move(__x)), _Bvector_impl_data(std::move(__x)) 1414: { } 1414: 1414: constexpr 1414: _Bvector_impl(_Bit_alloc_type&& __a, _Bvector_impl&& __x) noexcept 1414: : _Bit_alloc_type(std::move(__a)), _Bvector_impl_data(std::move(__x)) 1414: { } 1414: 1414: 1414: constexpr 1414: _Bit_type* 1414: _M_end_addr() const noexcept 1414: { 1414: if (this->_M_end_of_storage) 1414: return std::__addressof(this->_M_end_of_storage[-1]) + 1; 1414: return 0; 1414: } 1414: }; 1414: 1414: public: 1414: typedef _Alloc allocator_type; 1414: 1414: constexpr 1414: _Bit_alloc_type& 1414: _M_get_Bit_allocator() noexcept 1414: { return this->_M_impl; } 1414: 1414: constexpr 1414: const _Bit_alloc_type& 1414: _M_get_Bit_allocator() const noexcept 1414: { return this->_M_impl; } 1414: 1414: constexpr 1414: allocator_type 1414: get_allocator() const noexcept 1414: { return allocator_type(_M_get_Bit_allocator()); } 1414: 1414: 1414: _Bvector_base() = default; 1414: 1414: 1414: 1414: 1414: constexpr 1414: _Bvector_base(const allocator_type& __a) 1414: : _M_impl(_Bit_alloc_type(__a)) { } 1414: 1414: 1414: _Bvector_base(_Bvector_base&&) = default; 1414: 1414: constexpr 1414: _Bvector_base(_Bvector_base&& __x, const allocator_type& __a) noexcept 1414: : _M_impl(_Bit_alloc_type(__a), std::move(__x._M_impl)) 1414: { } 1414: 1414: 1414: constexpr 1414: ~_Bvector_base() 1414: { this->_M_deallocate(); } 1414: 1414: protected: 1414: _Bvector_impl _M_impl; 1414: 1414: constexpr 1414: _Bit_pointer 1414: _M_allocate(size_t __n) 1414: { 1414: _Bit_pointer __p = _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); 1414: 1414: if (std::is_constant_evaluated()) 1414: { 1414: __n = _S_nword(__n); 1414: for (size_t __i = 0; __i < __n; ++__i) 1414: std::construct_at(std::to_address(__p) + __i); 1414: } 1414: 1414: return __p; 1414: } 1414: 1414: constexpr 1414: void 1414: _M_deallocate() 1414: { 1414: if (_M_impl._M_start._M_p) 1414: { 1414: const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; 1414: _Bit_alloc_traits::deallocate(_M_impl, 1414: _M_impl._M_end_of_storage - __n, 1414: __n); 1414: _M_impl._M_reset(); 1414: } 1414: } 1414: 1414: 1414: constexpr 1414: void 1414: _M_move_data(_Bvector_base&& __x) noexcept 1414: { _M_impl._M_move_data(std::move(__x._M_impl)); } 1414: 1414: 1414: constexpr 1414: static size_t 1414: _S_nword(size_t __n) 1414: { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } 1414: }; 1414: # 745 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: template 1414: class vector : protected _Bvector_base<_Alloc> 1414: { 1414: typedef _Bvector_base<_Alloc> _Base; 1414: typedef typename _Base::_Bit_pointer _Bit_pointer; 1414: typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; 1414: 1414: 1414: friend struct std::hash; 1414: 1414: static_assert(is_same::value, 1414: "std::vector must have the same value_type as its allocator"); 1414: 1414: 1414: 1414: public: 1414: typedef bool value_type; 1414: typedef size_t size_type; 1414: typedef ptrdiff_t difference_type; 1414: typedef _Bit_reference reference; 1414: typedef bool const_reference; 1414: typedef _Bit_reference* pointer; 1414: typedef const bool* const_pointer; 1414: typedef _Bit_iterator iterator; 1414: typedef _Bit_const_iterator const_iterator; 1414: typedef std::reverse_iterator const_reverse_iterator; 1414: typedef std::reverse_iterator reverse_iterator; 1414: typedef _Alloc allocator_type; 1414: 1414: constexpr 1414: allocator_type 1414: get_allocator() const 1414: { return _Base::get_allocator(); } 1414: 1414: protected: 1414: using _Base::_M_allocate; 1414: using _Base::_M_deallocate; 1414: using _Base::_S_nword; 1414: using _Base::_M_get_Bit_allocator; 1414: 1414: public: 1414: 1414: vector() = default; 1414: 1414: 1414: 1414: 1414: constexpr 1414: explicit 1414: vector(const allocator_type& __a) noexcept 1414: : _Base(__a) { } 1414: 1414: 1414: constexpr 1414: explicit 1414: vector(size_type __n, const allocator_type& __a = allocator_type()) 1414: : vector(__n, false, __a) 1414: { } 1414: 1414: constexpr 1414: vector(size_type __n, const bool& __value, 1414: const allocator_type& __a = allocator_type()) 1414: 1414: 1414: 1414: 1414: 1414: : _Base(__a) 1414: { 1414: _M_initialize(__n); 1414: _M_initialize_value(__value); 1414: } 1414: 1414: constexpr 1414: vector(const vector& __x) 1414: : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) 1414: { 1414: const_iterator __xbegin = __x.begin(), __xend = __x.end(); 1414: _M_initialize(__x.size()); 1414: _M_copy_aligned(__xbegin, __xend, begin()); 1414: } 1414: 1414: 1414: vector(vector&&) = default; 1414: 1414: private: 1414: constexpr 1414: vector(vector&& __x, const allocator_type& __a, true_type) noexcept 1414: : _Base(std::move(__x), __a) 1414: { } 1414: 1414: constexpr 1414: vector(vector&& __x, const allocator_type& __a, false_type) 1414: : _Base(__a) 1414: { 1414: if (__x.get_allocator() == __a) 1414: this->_M_move_data(std::move(__x)); 1414: else 1414: { 1414: _M_initialize(__x.size()); 1414: _M_copy_aligned(__x.begin(), __x.end(), begin()); 1414: __x.clear(); 1414: } 1414: } 1414: 1414: public: 1414: constexpr 1414: vector(vector&& __x, const __type_identity_t& __a) 1414: noexcept(_Bit_alloc_traits::_S_always_equal()) 1414: : vector(std::move(__x), __a, 1414: typename _Bit_alloc_traits::is_always_equal{}) 1414: { } 1414: 1414: constexpr 1414: vector(const vector& __x, const __type_identity_t& __a) 1414: : _Base(__a) 1414: { 1414: _M_initialize(__x.size()); 1414: _M_copy_aligned(__x.begin(), __x.end(), begin()); 1414: } 1414: 1414: constexpr 1414: vector(initializer_list __l, 1414: const allocator_type& __a = allocator_type()) 1414: : _Base(__a) 1414: { 1414: _M_initialize_range(__l.begin(), __l.end(), 1414: random_access_iterator_tag()); 1414: } 1414: 1414: 1414: 1414: template> 1414: constexpr 1414: vector(_InputIterator __first, _InputIterator __last, 1414: const allocator_type& __a = allocator_type()) 1414: : _Base(__a) 1414: { 1414: _M_initialize_range(__first, __last, 1414: std::__iterator_category(__first)); 1414: } 1414: # 925 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: constexpr 1414: ~vector() noexcept { } 1414: 1414: constexpr 1414: vector& 1414: operator=(const vector& __x) 1414: { 1414: if (&__x == this) 1414: return *this; 1414: 1414: if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) 1414: { 1414: if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) 1414: { 1414: this->_M_deallocate(); 1414: std::__alloc_on_copy(_M_get_Bit_allocator(), 1414: __x._M_get_Bit_allocator()); 1414: _M_initialize(__x.size()); 1414: } 1414: else 1414: std::__alloc_on_copy(_M_get_Bit_allocator(), 1414: __x._M_get_Bit_allocator()); 1414: } 1414: 1414: if (__x.size() > capacity()) 1414: { 1414: this->_M_deallocate(); 1414: _M_initialize(__x.size()); 1414: } 1414: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 1414: begin()); 1414: return *this; 1414: } 1414: 1414: 1414: constexpr 1414: vector& 1414: operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) 1414: { 1414: if (_Bit_alloc_traits::_S_propagate_on_move_assign() 1414: || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) 1414: { 1414: this->_M_deallocate(); 1414: this->_M_move_data(std::move(__x)); 1414: std::__alloc_on_move(_M_get_Bit_allocator(), 1414: __x._M_get_Bit_allocator()); 1414: } 1414: else 1414: { 1414: if (__x.size() > capacity()) 1414: { 1414: this->_M_deallocate(); 1414: _M_initialize(__x.size()); 1414: } 1414: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 1414: begin()); 1414: __x.clear(); 1414: } 1414: return *this; 1414: } 1414: 1414: constexpr 1414: vector& 1414: operator=(initializer_list __l) 1414: { 1414: this->assign(__l.begin(), __l.end()); 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: void 1414: assign(size_type __n, const bool& __x) 1414: { _M_fill_assign(__n, __x); } 1414: 1414: 1414: template> 1414: constexpr 1414: void 1414: assign(_InputIterator __first, _InputIterator __last) 1414: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 1414: # 1023 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: constexpr 1414: void 1414: assign(initializer_list __l) 1414: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 1414: # 1063 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: [[__nodiscard__]] constexpr 1414: iterator 1414: begin() noexcept 1414: { return iterator(this->_M_impl._M_start._M_p, 0); } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_iterator 1414: begin() const noexcept 1414: { return const_iterator(this->_M_impl._M_start._M_p, 0); } 1414: 1414: [[__nodiscard__]] constexpr 1414: iterator 1414: end() noexcept 1414: { return this->_M_impl._M_finish; } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_iterator 1414: end() const noexcept 1414: { return this->_M_impl._M_finish; } 1414: 1414: [[__nodiscard__]] constexpr 1414: reverse_iterator 1414: rbegin() noexcept 1414: { return reverse_iterator(end()); } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reverse_iterator 1414: rbegin() const noexcept 1414: { return const_reverse_iterator(end()); } 1414: 1414: [[__nodiscard__]] constexpr 1414: reverse_iterator 1414: rend() noexcept 1414: { return reverse_iterator(begin()); } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reverse_iterator 1414: rend() const noexcept 1414: { return const_reverse_iterator(begin()); } 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: const_iterator 1414: cbegin() const noexcept 1414: { return const_iterator(this->_M_impl._M_start._M_p, 0); } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_iterator 1414: cend() const noexcept 1414: { return this->_M_impl._M_finish; } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reverse_iterator 1414: crbegin() const noexcept 1414: { return const_reverse_iterator(end()); } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reverse_iterator 1414: crend() const noexcept 1414: { return const_reverse_iterator(begin()); } 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: size() const noexcept 1414: { return size_type(end() - begin()); } 1414: 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: max_size() const noexcept 1414: { 1414: const size_type __isize = 1414: __gnu_cxx::__numeric_traits::__max 1414: - int(_S_word_bit) + 1; 1414: const size_type __asize 1414: = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); 1414: return (__asize <= __isize / int(_S_word_bit) 1414: ? __asize * int(_S_word_bit) : __isize); 1414: } 1414: 1414: [[__nodiscard__]] constexpr 1414: size_type 1414: capacity() const noexcept 1414: { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) 1414: - begin()); } 1414: 1414: [[__nodiscard__]] constexpr 1414: bool 1414: empty() const noexcept 1414: { return begin() == end(); } 1414: 1414: [[__nodiscard__]] constexpr 1414: reference 1414: operator[](size_type __n) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__n < this->size())) std::__glibcxx_assert_fail(); } while (false); 1414: return _Bit_reference (this->_M_impl._M_start._M_p 1414: + __n / int(_S_word_bit), 1414: 1UL << __n % int(_S_word_bit)); 1414: } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: operator[](size_type __n) const 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__n < this->size())) std::__glibcxx_assert_fail(); } while (false); 1414: return _Bit_reference (this->_M_impl._M_start._M_p 1414: + __n / int(_S_word_bit), 1414: 1UL << __n % int(_S_word_bit)); 1414: } 1414: 1414: protected: 1414: constexpr 1414: void 1414: _M_range_check(size_type __n) const 1414: { 1414: if (__n >= this->size()) 1414: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 1414: 1414: , 1414: __n, this->size()); 1414: } 1414: 1414: public: 1414: [[__nodiscard__]] constexpr 1414: reference 1414: at(size_type __n) 1414: { 1414: _M_range_check(__n); 1414: return (*this)[__n]; 1414: } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: at(size_type __n) const 1414: { 1414: _M_range_check(__n); 1414: return (*this)[__n]; 1414: } 1414: 1414: constexpr 1414: void 1414: reserve(size_type __n) 1414: { 1414: if (__n > max_size()) 1414: __throw_length_error(("vector::reserve")); 1414: if (capacity() < __n) 1414: _M_reallocate(__n); 1414: } 1414: 1414: [[__nodiscard__]] constexpr 1414: reference 1414: front() 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *begin(); 1414: } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: front() const 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *begin(); 1414: } 1414: 1414: [[__nodiscard__]] constexpr 1414: reference 1414: back() 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *(end() - 1); 1414: } 1414: 1414: [[__nodiscard__]] constexpr 1414: const_reference 1414: back() const 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *(end() - 1); 1414: } 1414: 1414: constexpr 1414: void 1414: push_back(bool __x) 1414: { 1414: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 1414: *this->_M_impl._M_finish++ = __x; 1414: else 1414: _M_insert_aux(end(), __x); 1414: } 1414: 1414: constexpr 1414: void 1414: swap(vector& __x) noexcept 1414: { 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(_Bit_alloc_traits::propagate_on_container_swap::value || _M_get_Bit_allocator() == __x._M_get_Bit_allocator())) std::__glibcxx_assert_fail(); } while (false) 1414: ; 1414: 1414: this->_M_impl._M_swap_data(__x._M_impl); 1414: _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), 1414: __x._M_get_Bit_allocator()); 1414: } 1414: 1414: 1414: constexpr 1414: static void 1414: swap(reference __x, reference __y) noexcept 1414: { 1414: bool __tmp = __x; 1414: __x = __y; 1414: __y = __tmp; 1414: } 1414: 1414: constexpr 1414: iterator 1414: 1414: insert(const_iterator __position, const bool& __x) 1414: 1414: 1414: 1414: { 1414: const difference_type __n = __position - begin(); 1414: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() 1414: && __position == end()) 1414: *this->_M_impl._M_finish++ = __x; 1414: else 1414: _M_insert_aux(__position._M_const_cast(), __x); 1414: return begin() + __n; 1414: } 1414: 1414: 1414: __attribute__ ((__deprecated__ ("use '" "insert(position, false)" "' instead"))) 1414: iterator 1414: insert(const_iterator __position) 1414: { return this->insert(__position._M_const_cast(), false); } 1414: 1414: 1414: 1414: template> 1414: constexpr 1414: iterator 1414: insert(const_iterator __position, 1414: _InputIterator __first, _InputIterator __last) 1414: { 1414: difference_type __offset = __position - cbegin(); 1414: _M_insert_range(__position._M_const_cast(), 1414: __first, __last, 1414: std::__iterator_category(__first)); 1414: return begin() + __offset; 1414: } 1414: # 1329 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: constexpr 1414: iterator 1414: insert(const_iterator __position, size_type __n, const bool& __x) 1414: { 1414: difference_type __offset = __position - cbegin(); 1414: _M_fill_insert(__position._M_const_cast(), __n, __x); 1414: return begin() + __offset; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: constexpr 1414: iterator 1414: insert(const_iterator __p, initializer_list __l) 1414: { return this->insert(__p, __l.begin(), __l.end()); } 1414: # 1463 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: constexpr 1414: void 1414: pop_back() 1414: { --this->_M_impl._M_finish; } 1414: 1414: constexpr 1414: iterator 1414: 1414: erase(const_iterator __position) 1414: 1414: 1414: 1414: { return _M_erase(__position._M_const_cast()); } 1414: 1414: constexpr 1414: iterator 1414: 1414: erase(const_iterator __first, const_iterator __last) 1414: 1414: 1414: 1414: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 1414: 1414: constexpr 1414: void 1414: resize(size_type __new_size, bool __x = bool()) 1414: { 1414: if (__new_size < size()) 1414: _M_erase_at_end(begin() + difference_type(__new_size)); 1414: else 1414: insert(end(), __new_size - size(), __x); 1414: } 1414: 1414: 1414: constexpr 1414: void 1414: shrink_to_fit() 1414: { _M_shrink_to_fit(); } 1414: 1414: 1414: constexpr 1414: void 1414: flip() noexcept 1414: { 1414: _Bit_type * const __end = this->_M_impl._M_end_addr(); 1414: for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) 1414: *__p = ~*__p; 1414: } 1414: 1414: constexpr 1414: void 1414: clear() noexcept 1414: { _M_erase_at_end(begin()); } 1414: 1414: 1414: template 1414: 1414: constexpr 1414: reference 1414: 1414: 1414: 1414: emplace_back(_Args&&... __args) 1414: { 1414: push_back(bool(std::forward<_Args>(__args)...)); 1414: 1414: return back(); 1414: 1414: } 1414: 1414: template 1414: constexpr 1414: iterator 1414: emplace(const_iterator __pos, _Args&&... __args) 1414: { return insert(__pos, bool(std::forward<_Args>(__args)...)); } 1414: 1414: 1414: protected: 1414: 1414: constexpr 1414: iterator 1414: _M_copy_aligned(const_iterator __first, const_iterator __last, 1414: iterator __result) 1414: { 1414: _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); 1414: return std::copy(const_iterator(__last._M_p, 0), __last, 1414: iterator(__q, 0)); 1414: } 1414: 1414: constexpr 1414: void 1414: _M_initialize(size_type __n) 1414: { 1414: if (__n) 1414: { 1414: _Bit_pointer __q = this->_M_allocate(__n); 1414: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 1414: iterator __start = iterator(std::__addressof(*__q), 0); 1414: this->_M_impl._M_start = __start; 1414: this->_M_impl._M_finish = __start + difference_type(__n); 1414: } 1414: } 1414: 1414: constexpr 1414: void 1414: _M_initialize_value(bool __x) noexcept 1414: { 1414: if (_Bit_type* __p = this->_M_impl._M_start._M_p) 1414: __fill_bvector_n(__p, this->_M_impl._M_end_addr() - __p, __x); 1414: } 1414: 1414: constexpr 1414: void 1414: _M_reallocate(size_type __n); 1414: 1414: 1414: constexpr 1414: bool 1414: _M_shrink_to_fit(); 1414: # 1603 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: template 1414: constexpr 1414: void 1414: _M_initialize_range(_InputIterator __first, _InputIterator __last, 1414: std::input_iterator_tag) 1414: { 1414: for (; __first != __last; ++__first) 1414: push_back(*__first); 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, 1414: std::forward_iterator_tag) 1414: { 1414: const size_type __n = std::distance(__first, __last); 1414: _M_initialize(__n); 1414: std::copy(__first, __last, begin()); 1414: } 1414: # 1639 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: constexpr 1414: void 1414: _M_fill_assign(size_t __n, bool __x) 1414: { 1414: if (__n > size()) 1414: { 1414: _M_initialize_value(__x); 1414: insert(end(), __n - size(), __x); 1414: } 1414: else 1414: { 1414: _M_erase_at_end(begin() + __n); 1414: _M_initialize_value(__x); 1414: } 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: _M_assign_aux(_InputIterator __first, _InputIterator __last, 1414: std::input_iterator_tag) 1414: { 1414: iterator __cur = begin(); 1414: for (; __first != __last && __cur != end(); ++__cur, (void)++__first) 1414: *__cur = *__first; 1414: if (__first == __last) 1414: _M_erase_at_end(__cur); 1414: else 1414: insert(end(), __first, __last); 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 1414: std::forward_iterator_tag) 1414: { 1414: const size_type __len = std::distance(__first, __last); 1414: if (__len < size()) 1414: _M_erase_at_end(std::copy(__first, __last, begin())); 1414: else 1414: { 1414: _ForwardIterator __mid = __first; 1414: std::advance(__mid, size()); 1414: std::copy(__first, __mid, begin()); 1414: insert(end(), __mid, __last); 1414: } 1414: } 1414: # 1706 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_bvector.h" 3 1414: constexpr 1414: void 1414: _M_fill_insert(iterator __position, size_type __n, bool __x); 1414: 1414: template 1414: constexpr 1414: void 1414: _M_insert_range(iterator __pos, _InputIterator __first, 1414: _InputIterator __last, std::input_iterator_tag) 1414: { 1414: for (; __first != __last; ++__first) 1414: { 1414: __pos = insert(__pos, *__first); 1414: ++__pos; 1414: } 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: _M_insert_range(iterator __position, _ForwardIterator __first, 1414: _ForwardIterator __last, std::forward_iterator_tag); 1414: 1414: constexpr 1414: void 1414: _M_insert_aux(iterator __position, bool __x); 1414: 1414: constexpr 1414: size_type 1414: _M_check_len(size_type __n, const char* __s) const 1414: { 1414: if (max_size() - size() < __n) 1414: __throw_length_error((__s)); 1414: 1414: const size_type __len = size() + std::max(size(), __n); 1414: return (__len < size() || __len > max_size()) ? max_size() : __len; 1414: } 1414: 1414: constexpr 1414: void 1414: _M_erase_at_end(iterator __pos) 1414: { this->_M_impl._M_finish = __pos; } 1414: 1414: constexpr 1414: iterator 1414: _M_erase(iterator __pos); 1414: 1414: constexpr 1414: iterator 1414: _M_erase(iterator __first, iterator __last); 1414: 1414: protected: 1414: 1414: 1414: 1414: 1414: 1414: 1414: void data() = delete; 1414: 1414: 1414: 1414: }; 1414: 1414: 1414: 1414: 1414: constexpr 1414: inline void 1414: __fill_bvector(_Bit_type* __v, unsigned int __first, unsigned int __last, 1414: bool __x) noexcept 1414: { 1414: const _Bit_type __fmask = ~0ul << __first; 1414: const _Bit_type __lmask = ~0ul >> (_S_word_bit - __last); 1414: const _Bit_type __mask = __fmask & __lmask; 1414: 1414: if (__x) 1414: *__v |= __mask; 1414: else 1414: *__v &= ~__mask; 1414: } 1414: 1414: 1414: __attribute__((__nonnull__)) 1414: constexpr 1414: inline void 1414: __fill_bvector_n(_Bit_type* __p, size_t __n, bool __x) noexcept 1414: { 1414: 1414: if (std::is_constant_evaluated()) 1414: { 1414: for (size_t __i = 0; __i < __n; ++__i) 1414: __p[__i] = __x ? ~0ul : 0ul; 1414: return; 1414: } 1414: 1414: __builtin_memset(__p, __x ? ~0 : 0, __n * sizeof(_Bit_type)); 1414: } 1414: 1414: 1414: constexpr 1414: inline void 1414: __fill_a1(std::_Bit_iterator __first, 1414: std::_Bit_iterator __last, const bool& __x) 1414: { 1414: if (__first._M_p != __last._M_p) 1414: { 1414: _Bit_type* __first_p = __first._M_p; 1414: if (__first._M_offset != 0) 1414: __fill_bvector(__first_p++, __first._M_offset, _S_word_bit, __x); 1414: 1414: __fill_bvector_n(__first_p, __last._M_p - __first_p, __x); 1414: 1414: if (__last._M_offset != 0) 1414: __fill_bvector(__last._M_p, 0, __last._M_offset, __x); 1414: } 1414: else if (__first._M_offset != __last._M_offset) 1414: __fill_bvector(__first._M_p, __first._M_offset, __last._M_offset, __x); 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: struct hash> 1414: : public __hash_base> 1414: { 1414: size_t 1414: operator()(const std::vector&) const noexcept; 1414: }; 1414: 1414: 1414: 1414: } 1414: # 70 "/usr/arm-linux-gnueabihf/include/c++/16/vector" 2 3 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/vector.tcc" 1 3 1414: # 59 "/usr/arm-linux-gnueabihf/include/c++/16/bits/vector.tcc" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: # 64 "/usr/arm-linux-gnueabihf/include/c++/16/bits/vector.tcc" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: 1414: template 1414: constexpr 1414: void 1414: vector<_Tp, _Alloc>:: 1414: reserve(size_type __n) 1414: { 1414: if (__n > this->max_size()) 1414: __throw_length_error(("vector::reserve")); 1414: if (this->capacity() < __n) 1414: { 1414: const size_type __old_size = size(); 1414: pointer __tmp; 1414: 1414: if constexpr (_S_use_relocate()) 1414: { 1414: __tmp = this->_M_allocate(__n); 1414: std::__relocate_a(this->_M_impl._M_start, this->_M_impl._M_finish, 1414: __tmp, _M_get_Tp_allocator()); 1414: } 1414: else 1414: 1414: { 1414: __tmp = _M_allocate_and_copy(__n, 1414: std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), 1414: std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); 1414: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 1414: _M_get_Tp_allocator()); 1414: } 1414: ; 1414: _M_deallocate(this->_M_impl._M_start, 1414: this->_M_impl._M_end_of_storage 1414: - this->_M_impl._M_start); 1414: this->_M_impl._M_start = __tmp; 1414: this->_M_impl._M_finish = __tmp + __old_size; 1414: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 1414: } 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: template 1414: template 1414: 1414: constexpr 1414: typename vector<_Tp, _Alloc>::reference 1414: 1414: 1414: 1414: vector<_Tp, _Alloc>:: 1414: emplace_back(_Args&&... __args) 1414: { 1414: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 1414: { 1414: ; 1414: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 1414: std::forward<_Args>(__args)...); 1414: ++this->_M_impl._M_finish; 1414: ; 1414: } 1414: else 1414: _M_realloc_append(std::forward<_Args>(__args)...); 1414: 1414: return back(); 1414: 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: typename vector<_Tp, _Alloc>::iterator 1414: vector<_Tp, _Alloc>:: 1414: 1414: insert(const_iterator __position, const value_type& __x) 1414: 1414: 1414: 1414: { 1414: const size_type __n = __position - begin(); 1414: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__position != const_iterator())) std::__glibcxx_assert_fail(); } while (false); 1414: if (!(__position != const_iterator())) 1414: __builtin_unreachable(); 1414: 1414: if (__position == end()) 1414: { 1414: ; 1414: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 1414: __x); 1414: ++this->_M_impl._M_finish; 1414: ; 1414: } 1414: else 1414: { 1414: 1414: const auto __pos = begin() + (__position - cbegin()); 1414: 1414: 1414: _Temporary_value __x_copy(this, __x); 1414: _M_insert_aux(__pos, std::move(__x_copy._M_val())); 1414: 1414: 1414: 1414: } 1414: } 1414: else 1414: 1414: _M_realloc_insert(begin() + (__position - cbegin()), __x); 1414: 1414: 1414: 1414: 1414: return iterator(this->_M_impl._M_start + __n); 1414: } 1414: 1414: template 1414: constexpr 1414: typename vector<_Tp, _Alloc>::iterator 1414: vector<_Tp, _Alloc>:: 1414: _M_erase(iterator __position) 1414: { 1414: if (__position + 1 != end()) 1414: std::move(__position + 1, end(), __position); 1414: --this->_M_impl._M_finish; 1414: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 1414: ; 1414: return __position; 1414: } 1414: 1414: template 1414: constexpr 1414: typename vector<_Tp, _Alloc>::iterator 1414: vector<_Tp, _Alloc>:: 1414: _M_erase(iterator __first, iterator __last) 1414: { 1414: if (__first != __last) 1414: { 1414: if (__last != end()) 1414: std::move(__last, end(), __first); 1414: _M_erase_at_end(__first.base() + (end() - __last)); 1414: } 1414: return __first; 1414: } 1414: 1414: template 1414: constexpr 1414: vector<_Tp, _Alloc>& 1414: vector<_Tp, _Alloc>:: 1414: operator=(const vector<_Tp, _Alloc>& __x) 1414: { 1414: if (std::__addressof(__x) != this) 1414: { 1414: ; 1414: 1414: if (_Alloc_traits::_S_propagate_on_copy_assign()) 1414: { 1414: if (!_Alloc_traits::_S_always_equal() 1414: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 1414: { 1414: 1414: this->clear(); 1414: _M_deallocate(this->_M_impl._M_start, 1414: this->_M_impl._M_end_of_storage 1414: - this->_M_impl._M_start); 1414: this->_M_impl._M_start = nullptr; 1414: this->_M_impl._M_finish = nullptr; 1414: this->_M_impl._M_end_of_storage = nullptr; 1414: } 1414: std::__alloc_on_copy(_M_get_Tp_allocator(), 1414: __x._M_get_Tp_allocator()); 1414: } 1414: 1414: const size_type __xlen = __x.size(); 1414: if (__xlen > capacity()) 1414: { 1414: pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), 1414: __x.end()); 1414: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 1414: _M_get_Tp_allocator()); 1414: _M_deallocate(this->_M_impl._M_start, 1414: this->_M_impl._M_end_of_storage 1414: - this->_M_impl._M_start); 1414: this->_M_impl._M_start = __tmp; 1414: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; 1414: } 1414: else if (size() >= __xlen) 1414: { 1414: std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), 1414: end(), _M_get_Tp_allocator()); 1414: } 1414: else 1414: { 1414: std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), 1414: this->_M_impl._M_start); 1414: std::__uninitialized_copy_a(__x._M_impl._M_start + size(), 1414: __x._M_impl._M_finish, 1414: this->_M_impl._M_finish, 1414: _M_get_Tp_allocator()); 1414: } 1414: this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: vector<_Tp, _Alloc>:: 1414: _M_fill_assign(size_t __n, const value_type& __val) 1414: { 1414: const size_type __sz = size(); 1414: if (__n > capacity()) 1414: { 1414: if (__n <= __sz) 1414: __builtin_unreachable(); 1414: vector __tmp(__n, __val, _M_get_Tp_allocator()); 1414: __tmp._M_impl._M_swap_data(this->_M_impl); 1414: } 1414: else if (__n > __sz) 1414: { 1414: std::fill(begin(), end(), __val); 1414: const size_type __add = __n - __sz; 1414: ; 1414: this->_M_impl._M_finish = 1414: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 1414: __add, __val, _M_get_Tp_allocator()); 1414: ; 1414: } 1414: else 1414: _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); 1414: } 1414: 1414: template 1414: template 1414: constexpr 1414: void 1414: vector<_Tp, _Alloc>:: 1414: _M_assign_aux(_InputIterator __first, _InputIterator __last, 1414: std::input_iterator_tag) 1414: { 1414: pointer __cur(this->_M_impl._M_start); 1414: for (; __first != __last && __cur != this->_M_impl._M_finish; 1414: ++__cur, (void)++__first) 1414: *__cur = *__first; 1414: if (__first == __last) 1414: _M_erase_at_end(__cur); 1414: else 1414: _M_range_insert(end(), __first, __last, 1414: std::__iterator_category(__first)); 1414: } 1414: 1414: template 1414: template 1414: constexpr 1414: void 1414: vector<_Tp, _Alloc>:: 1414: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 1414: std::forward_iterator_tag) 1414: { 1414: const size_type __sz = size(); 1414: const size_type __len = std::distance(__first, __last); 1414: 1414: if (__len > capacity()) 1414: { 1414: if (__len <= __sz) 1414: __builtin_unreachable(); 1414: 1414: _S_check_init_len(__len, _M_get_Tp_allocator()); 1414: pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); 1414: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 1414: _M_get_Tp_allocator()); 1414: ; 1414: _M_deallocate(this->_M_impl._M_start, 1414: this->_M_impl._M_end_of_storage 1414: - this->_M_impl._M_start); 1414: this->_M_impl._M_start = __tmp; 1414: this->_M_impl._M_finish = this->_M_impl._M_start + __len; 1414: this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; 1414: } 1414: else if (__sz >= __len) 1414: _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); 1414: else 1414: { 1414: _ForwardIterator __mid = __first; 1414: std::advance(__mid, __sz); 1414: std::copy(__first, __mid, this->_M_impl._M_start); 1414: const size_type __attribute__((__unused__)) __n = __len - __sz; 1414: ; 1414: this->_M_impl._M_finish = 1414: std::__uninitialized_copy_a(__mid, __last, 1414: this->_M_impl._M_finish, 1414: _M_get_Tp_allocator()); 1414: ; 1414: } 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: auto 1414: vector<_Tp, _Alloc>:: 1414: _M_insert_rval(const_iterator __position, value_type&& __v) -> iterator 1414: { 1414: const auto __n = __position - cbegin(); 1414: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 1414: if (__position == cend()) 1414: { 1414: ; 1414: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 1414: std::move(__v)); 1414: ++this->_M_impl._M_finish; 1414: ; 1414: } 1414: else 1414: _M_insert_aux(begin() + __n, std::move(__v)); 1414: else 1414: _M_realloc_insert(begin() + __n, std::move(__v)); 1414: 1414: return iterator(this->_M_impl._M_start + __n); 1414: } 1414: 1414: template 1414: template 1414: constexpr 1414: auto 1414: vector<_Tp, _Alloc>:: 1414: _M_emplace_aux(const_iterator __position, _Args&&... __args) 1414: -> iterator 1414: { 1414: const auto __n = __position - cbegin(); 1414: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 1414: if (__position == cend()) 1414: { 1414: ; 1414: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 1414: std::forward<_Args>(__args)...); 1414: ++this->_M_impl._M_finish; 1414: ; 1414: } 1414: else 1414: { 1414: 1414: 1414: 1414: _Temporary_value __tmp(this, std::forward<_Args>(__args)...); 1414: _M_insert_aux(begin() + __n, std::move(__tmp._M_val())); 1414: } 1414: else 1414: _M_realloc_insert(begin() + __n, std::forward<_Args>(__args)...); 1414: 1414: return iterator(this->_M_impl._M_start + __n); 1414: } 1414: 1414: template 1414: template 1414: constexpr 1414: void 1414: vector<_Tp, _Alloc>:: 1414: _M_insert_aux(iterator __position, _Arg&& __arg) 1414: 1414: 1414: 1414: 1414: 1414: 1414: { 1414: ; 1414: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 1414: std::move(*(this->_M_impl._M_finish - 1))); 1414: ++this->_M_impl._M_finish; 1414: ; 1414: 1414: 1414: 1414: std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) 1414: 1414: ; 1414: 1414: 1414: 1414: *__position = std::forward<_Arg>(__arg); 1414: 1414: } 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: 1414: template 1414: template 1414: constexpr 1414: void 1414: vector<_Tp, _Alloc>:: 1414: _M_realloc_insert(iterator __position, _Args&&... __args) 1414: 1414: 1414: 1414: 1414: 1414: 1414: { 1414: const size_type __len = _M_check_len(1u, "vector::_M_realloc_insert"); 1414: if (__len <= 0) 1414: __builtin_unreachable(); 1414: pointer __old_start = this->_M_impl._M_start; 1414: pointer __old_finish = this->_M_impl._M_finish; 1414: const size_type __elems_before = __position - begin(); 1414: pointer __new_start(this->_M_allocate(__len)); 1414: pointer __new_finish(__new_start); 1414: 1414: { 1414: _Guard_alloc __guard(__new_start, __len, *this); 1414: # 487 "/usr/arm-linux-gnueabihf/include/c++/16/bits/vector.tcc" 3 1414: _Alloc_traits::construct(this->_M_impl, 1414: std::__to_address(__new_start + __elems_before), 1414: std::forward<_Args>(__args)...); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: if constexpr (_S_use_relocate()) 1414: { 1414: 1414: __new_finish = std::__relocate_a(__old_start, __position.base(), 1414: __new_start, 1414: _M_get_Tp_allocator()); 1414: ++__new_finish; 1414: __new_finish = std::__relocate_a(__position.base(), __old_finish, 1414: __new_finish, 1414: _M_get_Tp_allocator()); 1414: } 1414: else 1414: 1414: { 1414: 1414: struct _Guard_elts 1414: { 1414: pointer _M_first, _M_last; 1414: _Tp_alloc_type& _M_alloc; 1414: 1414: constexpr 1414: _Guard_elts(pointer __elt, _Tp_alloc_type& __a) 1414: : _M_first(__elt), _M_last(__elt + 1), _M_alloc(__a) 1414: { } 1414: 1414: constexpr 1414: ~_Guard_elts() 1414: { std::_Destroy(_M_first, _M_last, _M_alloc); } 1414: 1414: private: 1414: _Guard_elts(const _Guard_elts&); 1414: }; 1414: 1414: 1414: _Guard_elts __guard_elts(__new_start + __elems_before, _M_impl); 1414: 1414: __new_finish = std::__uninitialized_move_if_noexcept_a( 1414: __old_start, __position.base(), 1414: __new_start, _M_get_Tp_allocator()); 1414: 1414: ++__new_finish; 1414: 1414: __guard_elts._M_first = __new_start; 1414: 1414: __new_finish = std::__uninitialized_move_if_noexcept_a( 1414: __position.base(), __old_finish, 1414: __new_finish, _M_get_Tp_allocator()); 1414: 1414: 1414: __guard_elts._M_first = __old_start; 1414: __guard_elts._M_last = __old_finish; 1414: } 1414: __guard._M_storage = __old_start; 1414: __guard._M_len = this->_M_impl._M_end_of_storage - __old_start; 1414: } 1414: 1414: 1414: 1414: this->_M_impl._M_start = __new_start; 1414: this->_M_impl._M_finish = __new_finish; 1414: this->_M_impl._M_end_of_storage = __new_start + __len; 1414: } 1414: 1414: 1414: template 1414: template 1414: constexpr 1414: void 1414: vector<_Tp, _Alloc>:: 1414: _M_realloc_append(_Args&&... __args) 1414: 1414: 1414: 1414: 1414: 1414: 1414: { 1414: const size_type __len = _M_check_len(1u, "vector::_M_realloc_append"); 1414: if (__len <= 0) 1414: __builtin_unreachable(); 1414: pointer __old_start = this->_M_impl._M_start; 1414: pointer __old_finish = this->_M_impl._M_finish; 1414: const size_type __elems = size(); 1414: pointer __new_start(this->_M_allocate(__len)); 1414: pointer __new_finish(__new_start); 1414: 1414: { 1414: _Guard_alloc __guard(__new_start, __len, *this); 1414: # 594 "/usr/arm-linux-gnueabihf/include/c++/16/bits/vector.tcc" 3 1414: _Alloc_traits::construct(this->_M_impl, 1414: std::__to_address(__new_start + __elems), 1414: std::forward<_Args>(__args)...); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: if constexpr (_S_use_relocate()) 1414: { 1414: 1414: __new_finish = std::__relocate_a(__old_start, __old_finish, 1414: __new_start, 1414: _M_get_Tp_allocator()); 1414: ++__new_finish; 1414: } 1414: else 1414: 1414: { 1414: 1414: struct _Guard_elts 1414: { 1414: pointer _M_first, _M_last; 1414: _Tp_alloc_type& _M_alloc; 1414: 1414: constexpr 1414: _Guard_elts(pointer __elt, _Tp_alloc_type& __a) 1414: : _M_first(__elt), _M_last(__elt + 1), _M_alloc(__a) 1414: { } 1414: 1414: constexpr 1414: ~_Guard_elts() 1414: { std::_Destroy(_M_first, _M_last, _M_alloc); } 1414: 1414: private: 1414: _Guard_elts(const _Guard_elts&); 1414: }; 1414: 1414: 1414: _Guard_elts __guard_elts(__new_start + __elems, _M_impl); 1414: 1414: __new_finish = std::__uninitialized_move_if_noexcept_a( 1414: __old_start, __old_finish, 1414: __new_start, _M_get_Tp_allocator()); 1414: 1414: ++__new_finish; 1414: 1414: 1414: __guard_elts._M_first = __old_start; 1414: __guard_elts._M_last = __old_finish; 1414: } 1414: __guard._M_storage = __old_start; 1414: __guard._M_len = this->_M_impl._M_end_of_storage - __old_start; 1414: } 1414: 1414: 1414: 1414: this->_M_impl._M_start = __new_start; 1414: this->_M_impl._M_finish = __new_finish; 1414: this->_M_impl._M_end_of_storage = __new_start + __len; 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: template 1414: constexpr 1414: void 1414: vector<_Tp, _Alloc>:: 1414: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) 1414: { 1414: if (__n != 0) 1414: { 1414: if (__position.base() == this->_M_impl._M_finish) 1414: _M_fill_append(__n, __x); 1414: else if (size_type(this->_M_impl._M_end_of_storage 1414: - this->_M_impl._M_finish) >= __n) 1414: { 1414: 1414: 1414: 1414: _Temporary_value __tmp(this, __x); 1414: value_type& __x_copy = __tmp._M_val(); 1414: 1414: const size_type __elems_after = end() - __position; 1414: pointer __old_finish(this->_M_impl._M_finish); 1414: if (__elems_after > __n) 1414: { 1414: ; 1414: std::__uninitialized_move_a(__old_finish - __n, 1414: __old_finish, 1414: __old_finish, 1414: _M_get_Tp_allocator()); 1414: this->_M_impl._M_finish += __n; 1414: ; 1414: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 1414: ; 1414: std::fill(__position.base(), __position.base() + __n, 1414: __x_copy); 1414: } 1414: else 1414: { 1414: ; 1414: this->_M_impl._M_finish = 1414: std::__uninitialized_fill_n_a(__old_finish, 1414: __n - __elems_after, 1414: __x_copy, 1414: _M_get_Tp_allocator()); 1414: ; 1414: std::__uninitialized_move_a(__position.base(), __old_finish, 1414: this->_M_impl._M_finish, 1414: _M_get_Tp_allocator()); 1414: this->_M_impl._M_finish += __elems_after; 1414: ; 1414: std::fill(__position.base(), __old_finish, __x_copy); 1414: } 1414: } 1414: else 1414: { 1414: 1414: 1414: pointer __old_start = this->_M_impl._M_start; 1414: pointer __old_finish = this->_M_impl._M_finish; 1414: const pointer __pos = __position.base(); 1414: 1414: const size_type __len = 1414: _M_check_len(__n, "vector::_M_fill_insert"); 1414: const size_type __elems_before = __pos - __old_start; 1414: pointer __new_start(this->_M_allocate(__len)); 1414: pointer __new_finish(__new_start); 1414: try 1414: { 1414: 1414: std::__uninitialized_fill_n_a(__new_start + __elems_before, 1414: __n, __x, 1414: _M_get_Tp_allocator()); 1414: __new_finish = pointer(); 1414: 1414: __new_finish 1414: = std::__uninitialized_move_if_noexcept_a 1414: (__old_start, __pos, __new_start, _M_get_Tp_allocator()); 1414: 1414: __new_finish += __n; 1414: 1414: __new_finish 1414: = std::__uninitialized_move_if_noexcept_a 1414: (__pos, __old_finish, __new_finish, _M_get_Tp_allocator()); 1414: } 1414: catch(...) 1414: { 1414: if (!__new_finish) 1414: std::_Destroy(__new_start + __elems_before, 1414: __new_start + __elems_before + __n, 1414: _M_get_Tp_allocator()); 1414: else 1414: std::_Destroy(__new_start, __new_finish, 1414: _M_get_Tp_allocator()); 1414: _M_deallocate(__new_start, __len); 1414: throw; 1414: } 1414: std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); 1414: ; 1414: _M_deallocate(__old_start, 1414: this->_M_impl._M_end_of_storage - __old_start); 1414: this->_M_impl._M_start = __new_start; 1414: this->_M_impl._M_finish = __new_finish; 1414: this->_M_impl._M_end_of_storage = __new_start + __len; 1414: } 1414: } 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: vector<_Tp, _Alloc>:: 1414: _M_fill_append(size_type __n, const value_type& __x) 1414: { 1414: if (size_type(this->_M_impl._M_end_of_storage 1414: - this->_M_impl._M_finish) >= __n) 1414: { 1414: ; 1414: this->_M_impl._M_finish = 1414: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, __n, __x, 1414: _M_get_Tp_allocator()); 1414: ; 1414: } 1414: else 1414: { 1414: 1414: 1414: pointer __old_start = this->_M_impl._M_start; 1414: pointer __old_finish = this->_M_impl._M_finish; 1414: const size_type __old_size = __old_finish - __old_start; 1414: 1414: const size_type __len = 1414: _M_check_len(__n, "vector::_M_fill_append"); 1414: pointer __new_start(this->_M_allocate(__len)); 1414: pointer __new_finish(__new_start + __old_size); 1414: try 1414: { 1414: 1414: __new_finish = std::__uninitialized_fill_n_a( 1414: __new_finish, __n, __x, 1414: _M_get_Tp_allocator()); 1414: std::__uninitialized_move_if_noexcept_a( 1414: __old_start, __old_finish, __new_start, 1414: _M_get_Tp_allocator()); 1414: } 1414: catch(...) 1414: { 1414: std::_Destroy(__new_start + __old_size, __new_finish, 1414: _M_get_Tp_allocator()); 1414: _M_deallocate(__new_start, __len); 1414: throw; 1414: } 1414: std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); 1414: ; 1414: _M_deallocate(__old_start, 1414: this->_M_impl._M_end_of_storage - __old_start); 1414: this->_M_impl._M_start = __new_start; 1414: this->_M_impl._M_finish = __new_finish; 1414: this->_M_impl._M_end_of_storage = __new_start + __len; 1414: } 1414: } 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: template 1414: constexpr 1414: void 1414: vector<_Tp, _Alloc>:: 1414: _M_default_append(size_type __n) 1414: { 1414: if (__n != 0) 1414: { 1414: const size_type __size = size(); 1414: size_type __navail = size_type(this->_M_impl._M_end_of_storage 1414: - this->_M_impl._M_finish); 1414: 1414: if (__size > max_size() || __navail > max_size() - __size) 1414: __builtin_unreachable(); 1414: 1414: if (__navail >= __n) 1414: { 1414: if (!this->_M_impl._M_finish) 1414: __builtin_unreachable(); 1414: 1414: ; 1414: this->_M_impl._M_finish = 1414: std::__uninitialized_default_n_a(this->_M_impl._M_finish, 1414: __n, _M_get_Tp_allocator()); 1414: ; 1414: } 1414: else 1414: { 1414: 1414: 1414: pointer __old_start = this->_M_impl._M_start; 1414: pointer __old_finish = this->_M_impl._M_finish; 1414: 1414: const size_type __len = 1414: _M_check_len(__n, "vector::_M_default_append"); 1414: pointer __new_start(this->_M_allocate(__len)); 1414: 1414: { 1414: _Guard_alloc __guard(__new_start, __len, *this); 1414: 1414: std::__uninitialized_default_n_a(__new_start + __size, __n, 1414: _M_get_Tp_allocator()); 1414: 1414: if constexpr (_S_use_relocate()) 1414: { 1414: std::__relocate_a(__old_start, __old_finish, 1414: __new_start, _M_get_Tp_allocator()); 1414: } 1414: else 1414: { 1414: 1414: struct _Guard_elts 1414: { 1414: pointer _M_first, _M_last; 1414: _Tp_alloc_type& _M_alloc; 1414: 1414: constexpr 1414: _Guard_elts(pointer __first, size_type __n, 1414: _Tp_alloc_type& __a) 1414: : _M_first(__first), _M_last(__first + __n), _M_alloc(__a) 1414: { } 1414: 1414: constexpr 1414: ~_Guard_elts() 1414: { std::_Destroy(_M_first, _M_last, _M_alloc); } 1414: 1414: private: 1414: _Guard_elts(const _Guard_elts&); 1414: }; 1414: _Guard_elts __guard_elts(__new_start + __size, __n, _M_impl); 1414: 1414: std::__uninitialized_move_if_noexcept_a( 1414: __old_start, __old_finish, __new_start, 1414: _M_get_Tp_allocator()); 1414: 1414: __guard_elts._M_first = __old_start; 1414: __guard_elts._M_last = __old_finish; 1414: } 1414: ; 1414: __guard._M_storage = __old_start; 1414: __guard._M_len = this->_M_impl._M_end_of_storage - __old_start; 1414: } 1414: 1414: 1414: 1414: this->_M_impl._M_start = __new_start; 1414: this->_M_impl._M_finish = __new_start + __size + __n; 1414: this->_M_impl._M_end_of_storage = __new_start + __len; 1414: } 1414: } 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: template 1414: constexpr 1414: bool 1414: vector<_Tp, _Alloc>:: 1414: _M_shrink_to_fit() 1414: { 1414: if (capacity() == size()) 1414: return false; 1414: ; 1414: return std::__shrink_to_fit_aux::_S_do_it(*this); 1414: } 1414: 1414: 1414: template 1414: template 1414: constexpr 1414: void 1414: vector<_Tp, _Alloc>:: 1414: _M_range_insert(iterator __pos, _InputIterator __first, 1414: _InputIterator __last, std::input_iterator_tag) 1414: { 1414: if (__pos == end()) 1414: { 1414: for (; __first != __last; ++__first) 1414: insert(end(), *__first); 1414: } 1414: else if (__first != __last) 1414: { 1414: vector __tmp(__first, __last, _M_get_Tp_allocator()); 1414: insert(__pos, 1414: std::make_move_iterator(__tmp.begin()), 1414: std::make_move_iterator(__tmp.end())); 1414: } 1414: } 1414: 1414: template 1414: template 1414: constexpr 1414: void 1414: vector<_Tp, _Alloc>:: 1414: _M_range_insert(iterator __position, _ForwardIterator __first, 1414: _ForwardIterator __last, std::forward_iterator_tag) 1414: { 1414: if (__first != __last) 1414: { 1414: const size_type __n = std::distance(__first, __last); 1414: if (size_type(this->_M_impl._M_end_of_storage 1414: - this->_M_impl._M_finish) >= __n) 1414: { 1414: const size_type __elems_after = end() - __position; 1414: pointer __old_finish(this->_M_impl._M_finish); 1414: if (__elems_after > __n) 1414: { 1414: ; 1414: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 1414: this->_M_impl._M_finish, 1414: this->_M_impl._M_finish, 1414: _M_get_Tp_allocator()); 1414: this->_M_impl._M_finish += __n; 1414: ; 1414: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 1414: ; 1414: std::copy(__first, __last, __position); 1414: } 1414: else 1414: { 1414: _ForwardIterator __mid = __first; 1414: std::advance(__mid, __elems_after); 1414: ; 1414: std::__uninitialized_copy_a(__mid, __last, 1414: this->_M_impl._M_finish, 1414: _M_get_Tp_allocator()); 1414: this->_M_impl._M_finish += __n - __elems_after; 1414: ; 1414: std::__uninitialized_move_a(__position.base(), 1414: __old_finish, 1414: this->_M_impl._M_finish, 1414: _M_get_Tp_allocator()); 1414: this->_M_impl._M_finish += __elems_after; 1414: ; 1414: std::copy(__first, __mid, __position); 1414: } 1414: } 1414: else 1414: { 1414: 1414: 1414: 1414: pointer __old_start = this->_M_impl._M_start; 1414: pointer __old_finish = this->_M_impl._M_finish; 1414: 1414: const size_type __len = 1414: _M_check_len(__n, "vector::_M_range_insert"); 1414: 1414: 1414: 1414: 1414: 1414: pointer __new_start(this->_M_allocate(__len)); 1414: pointer __new_finish(__new_start); 1414: try 1414: { 1414: __new_finish 1414: = std::__uninitialized_move_if_noexcept_a 1414: (__old_start, __position.base(), 1414: __new_start, _M_get_Tp_allocator()); 1414: __new_finish 1414: = std::__uninitialized_copy_a(__first, __last, 1414: __new_finish, 1414: _M_get_Tp_allocator()); 1414: __new_finish 1414: = std::__uninitialized_move_if_noexcept_a 1414: (__position.base(), __old_finish, 1414: __new_finish, _M_get_Tp_allocator()); 1414: } 1414: catch(...) 1414: { 1414: std::_Destroy(__new_start, __new_finish, 1414: _M_get_Tp_allocator()); 1414: _M_deallocate(__new_start, __len); 1414: throw; 1414: } 1414: std::_Destroy(__old_start, __old_finish, 1414: _M_get_Tp_allocator()); 1414: ; 1414: _M_deallocate(__old_start, 1414: this->_M_impl._M_end_of_storage - __old_start); 1414: this->_M_impl._M_start = __new_start; 1414: this->_M_impl._M_finish = __new_finish; 1414: this->_M_impl._M_end_of_storage = __new_start + __len; 1414: } 1414: } 1414: } 1414: # 1178 "/usr/arm-linux-gnueabihf/include/c++/16/bits/vector.tcc" 3 1414: template 1414: constexpr 1414: void 1414: vector:: 1414: _M_reallocate(size_type __n) 1414: { 1414: const iterator __begin = begin(), __end = end(); 1414: if (size_type(__end - __begin) > __n) 1414: __builtin_unreachable(); 1414: _Bit_pointer __q = this->_M_allocate(__n); 1414: iterator __start(std::__addressof(*__q), 0); 1414: iterator __finish(_M_copy_aligned(__begin, __end, __start)); 1414: this->_M_deallocate(); 1414: this->_M_impl._M_start = __start; 1414: this->_M_impl._M_finish = __finish; 1414: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: vector:: 1414: _M_fill_insert(iterator __position, size_type __n, bool __x) 1414: { 1414: if (__n == 0) 1414: return; 1414: if (capacity() - size() >= __n) 1414: { 1414: std::copy_backward(__position, end(), 1414: this->_M_impl._M_finish + difference_type(__n)); 1414: std::fill(__position, __position + difference_type(__n), __x); 1414: this->_M_impl._M_finish += difference_type(__n); 1414: } 1414: else 1414: { 1414: const size_type __len = 1414: _M_check_len(__n, "vector::_M_fill_insert"); 1414: iterator __begin = begin(), __end = end(); 1414: _Bit_pointer __q = this->_M_allocate(__len); 1414: iterator __start(std::__addressof(*__q), 0); 1414: iterator __i = _M_copy_aligned(__begin, __position, __start); 1414: std::fill(__i, __i + difference_type(__n), __x); 1414: iterator __finish = std::copy(__position, __end, 1414: __i + difference_type(__n)); 1414: this->_M_deallocate(); 1414: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 1414: this->_M_impl._M_start = __start; 1414: this->_M_impl._M_finish = __finish; 1414: } 1414: } 1414: 1414: template 1414: template 1414: constexpr 1414: void 1414: vector:: 1414: _M_insert_range(iterator __position, _ForwardIterator __first, 1414: _ForwardIterator __last, std::forward_iterator_tag) 1414: { 1414: if (__first != __last) 1414: { 1414: size_type __n = std::distance(__first, __last); 1414: if (capacity() - size() >= __n) 1414: { 1414: std::copy_backward(__position, end(), 1414: this->_M_impl._M_finish 1414: + difference_type(__n)); 1414: std::copy(__first, __last, __position); 1414: this->_M_impl._M_finish += difference_type(__n); 1414: } 1414: else 1414: { 1414: const size_type __len = 1414: _M_check_len(__n, "vector::_M_insert_range"); 1414: const iterator __begin = begin(), __end = end(); 1414: _Bit_pointer __q = this->_M_allocate(__len); 1414: iterator __start(std::__addressof(*__q), 0); 1414: iterator __i = _M_copy_aligned(__begin, __position, __start); 1414: __i = std::copy(__first, __last, __i); 1414: iterator __finish = std::copy(__position, __end, __i); 1414: this->_M_deallocate(); 1414: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 1414: this->_M_impl._M_start = __start; 1414: this->_M_impl._M_finish = __finish; 1414: } 1414: } 1414: } 1414: 1414: template 1414: constexpr 1414: void 1414: vector:: 1414: _M_insert_aux(iterator __position, bool __x) 1414: { 1414: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 1414: { 1414: std::copy_backward(__position, this->_M_impl._M_finish, 1414: this->_M_impl._M_finish + 1); 1414: *__position = __x; 1414: ++this->_M_impl._M_finish; 1414: } 1414: else 1414: { 1414: const size_type __len = 1414: _M_check_len(size_type(1), "vector::_M_insert_aux"); 1414: _Bit_pointer __q = this->_M_allocate(__len); 1414: iterator __start(std::__addressof(*__q), 0); 1414: iterator __i = _M_copy_aligned(begin(), __position, __start); 1414: *__i++ = __x; 1414: iterator __finish = std::copy(__position, end(), __i); 1414: this->_M_deallocate(); 1414: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 1414: this->_M_impl._M_start = __start; 1414: this->_M_impl._M_finish = __finish; 1414: } 1414: } 1414: 1414: template 1414: constexpr 1414: typename vector::iterator 1414: vector:: 1414: _M_erase(iterator __position) 1414: { 1414: if (__position + 1 != end()) 1414: std::copy(__position + 1, end(), __position); 1414: --this->_M_impl._M_finish; 1414: return __position; 1414: } 1414: 1414: template 1414: constexpr 1414: typename vector::iterator 1414: vector:: 1414: _M_erase(iterator __first, iterator __last) 1414: { 1414: if (__first != __last) 1414: _M_erase_at_end(std::copy(__last, end(), __first)); 1414: return __first; 1414: } 1414: 1414: 1414: template 1414: constexpr 1414: bool 1414: vector:: 1414: _M_shrink_to_fit() 1414: { 1414: if (capacity() - size() < int(_S_word_bit)) 1414: return false; 1414: try 1414: { 1414: if (size_type __n = size()) 1414: _M_reallocate(__n); 1414: else 1414: { 1414: this->_M_deallocate(); 1414: this->_M_impl._M_reset(); 1414: } 1414: return true; 1414: } 1414: catch(...) 1414: { return false; } 1414: } 1414: 1414: 1414: 1414: 1414: } 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: size_t 1414: hash>:: 1414: operator()(const std::vector& __b) const noexcept 1414: { 1414: size_t __hash = 0; 1414: const size_t __words = __b.size() / _S_word_bit; 1414: if (__words) 1414: { 1414: const size_t __clength = __words * sizeof(_Bit_type); 1414: __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); 1414: } 1414: 1414: const size_t __extrabits = __b.size() % _S_word_bit; 1414: if (__extrabits) 1414: { 1414: _Bit_type __hiword = *__b._M_impl._M_finish._M_p; 1414: __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); 1414: 1414: const size_t __clength 1414: = (__extrabits + 8 - 1) / 8; 1414: if (__words) 1414: __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); 1414: else 1414: __hash = std::_Hash_impl::hash(&__hiword, __clength); 1414: } 1414: 1414: return __hash; 1414: } 1414: 1414: 1414: } 1414: # 75 "/usr/arm-linux-gnueabihf/include/c++/16/vector" 2 3 1414: # 88 "/usr/arm-linux-gnueabihf/include/c++/16/vector" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 89 "/usr/arm-linux-gnueabihf/include/c++/16/vector" 2 3 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: namespace pmr { 1414: template 1414: using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: } 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: constexpr typename std::vector<_Tp, _Alloc>::size_type 1414: erase_if(std::vector<_Tp, _Alloc>& __cont, _Predicate __pred) 1414: { return __detail::__erase_if(__cont, __cont, std::move(__pred)); } 1414: 1414: template 1414: constexpr typename std::vector<_Tp, _Alloc>::size_type 1414: erase(std::vector<_Tp, _Alloc>& __cont, const _Up& __value) 1414: { return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); } 1414: 1414: 1414: } 1414: # 17 "build/include/public/botan/ipv6_address.h" 2 1414: 1414: 1414: # 18 "build/include/public/botan/ipv6_address.h" 1414: namespace Botan { 1414: 1414: class IPv4Address; 1414: 1414: 1414: 1414: 1414: class __attribute__((visibility("default"))) IPv6Address final { 1414: public: 1414: explicit IPv6Address(std::span ip); 1414: 1414: explicit IPv6Address(std::array ip) : m_ip(ip) {} 1414: 1414: static std::optional from_string(std::string_view str); 1414: 1414: 1414: 1414: 1414: 1414: static IPv6Address netmask(size_t bits); 1414: 1414: static IPv6Address host_mask() { return netmask(128); } 1414: 1414: IPv6Address operator&(const IPv6Address& other) const; 1414: 1414: auto operator<=>(const IPv6Address&) const = default; 1414: 1414: std::span address() const { return m_ip; } 1414: 1414: std::string to_string() const; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: std::optional prefix_length() const; 1414: 1414: 1414: 1414: 1414: 1414: 1414: std::optional as_ipv4() const; 1414: 1414: private: 1414: std::array m_ip; 1414: }; 1414: 1414: 1414: 1414: 1414: class __attribute__((visibility("default"))) IPv6Subnet final { 1414: public: 1414: 1414: 1414: 1414: 1414: 1414: 1414: IPv6Subnet(IPv6Address address, size_t prefix_length); 1414: 1414: 1414: 1414: 1414: 1414: static std::optional from_address_and_mask(std::span addr_and_mask); 1414: # 95 "build/include/public/botan/ipv6_address.h" 1414: static std::optional from_string(std::string_view str); 1414: 1414: 1414: 1414: 1414: static IPv6Subnet host(IPv6Address address) { return IPv6Subnet(address, 128); } 1414: 1414: 1414: const IPv6Address& address() const { return m_address; } 1414: 1414: 1414: size_t prefix_length() const { return m_prefix_length; } 1414: 1414: 1414: bool is_host() const { return m_prefix_length == 128; } 1414: 1414: 1414: bool contains(const IPv6Address& ip) const; 1414: 1414: 1414: std::string to_string() const; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: std::vector serialize() const; 1414: 1414: friend bool operator==(const IPv6Subnet&, const IPv6Subnet&) = default; 1414: 1414: private: 1414: IPv6Address m_address; 1414: uint8_t m_prefix_length; 1414: }; 1414: 1414: } 1414: # 8 "/build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ip_address/ipv6_address.cpp" 2 1414: 1414: # 1 "build/include/public/botan/ipv4_address.h" 1 1414: # 18 "build/include/public/botan/ipv4_address.h" 1414: namespace Botan { 1414: 1414: 1414: 1414: 1414: class __attribute__((visibility("default"))) IPv4Address final { 1414: public: 1414: explicit IPv4Address(uint32_t ip) : m_ip(ip) {} 1414: 1414: static std::optional from_string(std::string_view str); 1414: 1414: 1414: 1414: 1414: 1414: static IPv4Address netmask(size_t bits); 1414: 1414: static IPv4Address host_mask() { return netmask(32); } 1414: 1414: IPv4Address operator&(const IPv4Address& other) const { return IPv4Address(m_ip & other.m_ip); } 1414: 1414: auto operator<=>(const IPv4Address&) const = default; 1414: 1414: 1414: uint32_t value() const { return m_ip; } 1414: 1414: 1414: std::array to_bytes() const; 1414: 1414: 1414: std::string to_string() const; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: std::optional prefix_length() const; 1414: 1414: private: 1414: uint32_t m_ip; 1414: }; 1414: 1414: 1414: 1414: 1414: class __attribute__((visibility("default"))) IPv4Subnet final { 1414: public: 1414: 1414: 1414: 1414: 1414: 1414: 1414: IPv4Subnet(IPv4Address address, size_t prefix_length); 1414: 1414: 1414: 1414: 1414: 1414: static std::optional from_address_and_mask(std::span addr_and_mask); 1414: 1414: 1414: 1414: 1414: 1414: static std::optional from_address_and_mask(uint32_t addr, uint32_t mask); 1414: # 95 "build/include/public/botan/ipv4_address.h" 1414: static std::optional from_string(std::string_view str); 1414: 1414: 1414: 1414: 1414: static IPv4Subnet host(IPv4Address address) { return IPv4Subnet(address, 32); } 1414: 1414: 1414: const IPv4Address& address() const { return m_address; } 1414: 1414: 1414: size_t prefix_length() const { return m_prefix_length; } 1414: 1414: 1414: bool is_host() const { return m_prefix_length == 32; } 1414: 1414: 1414: bool contains(const IPv4Address& ip) const; 1414: 1414: 1414: std::string to_string() const; 1414: 1414: 1414: 1414: 1414: 1414: 1414: std::vector serialize() const; 1414: 1414: friend bool operator==(const IPv4Subnet&, const IPv4Subnet&) = default; 1414: 1414: private: 1414: IPv4Address m_address; 1414: uint8_t m_prefix_length; 1414: }; 1414: 1414: } 1414: # 10 "/build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ip_address/ipv6_address.cpp" 2 1414: # 1 "build/include/internal/botan/internal/fmt.h" 1 1414: # 11 "build/include/internal/botan/internal/fmt.h" 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/locale" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/locale" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/functexcept.h" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/bits/functexcept.h" 3 1414: 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/bits/functexcept.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: void 1414: __throw_bad_exception(void) __attribute__((__noreturn__)); 1414: 1414: 1414: void 1414: __throw_bad_cast(void) __attribute__((__noreturn__,__cold__)); 1414: 1414: void 1414: __throw_bad_typeid(void) __attribute__((__noreturn__,__cold__)); 1414: 1414: 1414: void 1414: __throw_range_error(const char*) __attribute__((__noreturn__,__cold__)); 1414: 1414: 1414: void 1414: __throw_ios_failure(const char*) __attribute__((__noreturn__,__cold__)); 1414: 1414: void 1414: __throw_ios_failure(const char*, int) __attribute__((__noreturn__,__cold__)); 1414: 1414: 1414: void 1414: __throw_system_error(int) __attribute__((__noreturn__,__cold__)); 1414: 1414: 1414: void 1414: __throw_future_error(int) __attribute__((__noreturn__,__cold__)); 1414: 1414: 1414: void 1414: __throw_bad_function_call() __attribute__((__noreturn__,__cold__)); 1414: 1414: 1414: } 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/ext/atomicity.h" 1 3 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/ext/atomicity.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr.h" 1 3 1414: # 30 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr.h" 3 1414: #pragma GCC visibility push(default) 1414: # 157 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr-default.h" 1 3 1414: # 35 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr-default.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/pthread.h" 1 3 1414: # 22 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/sched.h" 1 3 1414: # 29 "/usr/arm-linux-gnueabihf/include/sched.h" 3 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 1 3 1414: # 30 "/usr/arm-linux-gnueabihf/include/sched.h" 2 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/sched.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/sched.h" 1 3 1414: # 63 "/usr/arm-linux-gnueabihf/include/bits/sched.h" 3 1414: # 1 "/usr/include/linux/sched/types.h" 1 3 1414: 1414: 1414: 1414: 1414: # 1 "/usr/include/linux/types.h" 1 3 1414: 1414: 1414: 1414: 1414: # 1 "/usr/lib/linux/uapi/arm/asm/types.h" 1 3 1414: 1414: 1414: 1414: 1414: # 1 "/usr/include/asm-generic/int-ll64.h" 1 3 1414: # 12 "/usr/include/asm-generic/int-ll64.h" 3 1414: # 1 "/usr/lib/linux/uapi/arm/asm/bitsperlong.h" 1 3 1414: # 1 "/usr/include/asm-generic/bitsperlong.h" 1 3 1414: # 2 "/usr/lib/linux/uapi/arm/asm/bitsperlong.h" 2 3 1414: # 13 "/usr/include/asm-generic/int-ll64.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef __signed__ char __s8; 1414: typedef unsigned char __u8; 1414: 1414: typedef __signed__ short __s16; 1414: typedef unsigned short __u16; 1414: 1414: typedef __signed__ int __s32; 1414: typedef unsigned int __u32; 1414: 1414: 1414: __extension__ typedef __signed__ long long __s64; 1414: __extension__ typedef unsigned long long __u64; 1414: # 6 "/usr/lib/linux/uapi/arm/asm/types.h" 2 3 1414: # 6 "/usr/include/linux/types.h" 2 3 1414: 1414: 1414: 1414: # 1 "/usr/include/linux/posix_types.h" 1 3 1414: 1414: 1414: 1414: 1414: # 1 "/usr/include/linux/stddef.h" 1 3 1414: # 6 "/usr/include/linux/posix_types.h" 2 3 1414: # 25 "/usr/include/linux/posix_types.h" 3 1414: typedef struct { 1414: unsigned long fds_bits[1024 / (8 * sizeof(long))]; 1414: } __kernel_fd_set; 1414: 1414: 1414: typedef void (*__kernel_sighandler_t)(int); 1414: 1414: 1414: typedef int __kernel_key_t; 1414: typedef int __kernel_mqd_t; 1414: 1414: # 1 "/usr/lib/linux/uapi/arm/asm/posix_types.h" 1 3 1414: # 23 "/usr/lib/linux/uapi/arm/asm/posix_types.h" 3 1414: typedef unsigned short __kernel_mode_t; 1414: 1414: 1414: typedef unsigned short __kernel_ipc_pid_t; 1414: 1414: 1414: typedef unsigned short __kernel_uid_t; 1414: typedef unsigned short __kernel_gid_t; 1414: 1414: 1414: typedef unsigned short __kernel_old_dev_t; 1414: 1414: 1414: # 1 "/usr/include/asm-generic/posix_types.h" 1 3 1414: 1414: 1414: 1414: 1414: # 1 "/usr/lib/linux/uapi/arm/asm/bitsperlong.h" 1 3 1414: # 6 "/usr/include/asm-generic/posix_types.h" 2 3 1414: # 15 "/usr/include/asm-generic/posix_types.h" 3 1414: typedef long __kernel_long_t; 1414: typedef unsigned long __kernel_ulong_t; 1414: 1414: 1414: 1414: typedef __kernel_ulong_t __kernel_ino_t; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef int __kernel_pid_t; 1414: # 41 "/usr/include/asm-generic/posix_types.h" 3 1414: typedef __kernel_long_t __kernel_suseconds_t; 1414: 1414: 1414: 1414: typedef int __kernel_daddr_t; 1414: 1414: 1414: 1414: typedef unsigned int __kernel_uid32_t; 1414: typedef unsigned int __kernel_gid32_t; 1414: 1414: 1414: 1414: typedef __kernel_uid_t __kernel_old_uid_t; 1414: typedef __kernel_gid_t __kernel_old_gid_t; 1414: # 68 "/usr/include/asm-generic/posix_types.h" 3 1414: typedef unsigned int __kernel_size_t; 1414: typedef int __kernel_ssize_t; 1414: typedef int __kernel_ptrdiff_t; 1414: # 79 "/usr/include/asm-generic/posix_types.h" 3 1414: typedef struct { 1414: int val[2]; 1414: } __kernel_fsid_t; 1414: 1414: 1414: 1414: 1414: 1414: typedef __kernel_long_t __kernel_off_t; 1414: typedef long long __kernel_loff_t; 1414: typedef unsigned long long __kernel_uoff_t; 1414: typedef __kernel_long_t __kernel_old_time_t; 1414: typedef __kernel_long_t __kernel_time_t; 1414: typedef long long __kernel_time64_t; 1414: typedef __kernel_long_t __kernel_clock_t; 1414: typedef int __kernel_timer_t; 1414: typedef int __kernel_clockid_t; 1414: typedef char * __kernel_caddr_t; 1414: typedef unsigned short __kernel_uid16_t; 1414: typedef unsigned short __kernel_gid16_t; 1414: # 37 "/usr/lib/linux/uapi/arm/asm/posix_types.h" 2 3 1414: # 37 "/usr/include/linux/posix_types.h" 2 3 1414: # 10 "/usr/include/linux/types.h" 2 3 1414: # 31 "/usr/include/linux/types.h" 3 1414: typedef __u16 __le16; 1414: typedef __u16 __be16; 1414: typedef __u32 __le32; 1414: typedef __u32 __be32; 1414: typedef __u64 __le64; 1414: typedef __u64 __be64; 1414: 1414: typedef __u16 __sum16; 1414: typedef __u32 __wsum; 1414: # 55 "/usr/include/linux/types.h" 3 1414: typedef unsigned __poll_t; 1414: # 6 "/usr/include/linux/sched/types.h" 2 3 1414: # 98 "/usr/include/linux/sched/types.h" 3 1414: struct sched_attr { 1414: __u32 size; 1414: 1414: __u32 sched_policy; 1414: __u64 sched_flags; 1414: 1414: 1414: __s32 sched_nice; 1414: 1414: 1414: __u32 sched_priority; 1414: 1414: 1414: __u64 sched_runtime; 1414: __u64 sched_deadline; 1414: __u64 sched_period; 1414: 1414: 1414: __u32 sched_util_min; 1414: __u32 sched_util_max; 1414: 1414: }; 1414: # 64 "/usr/arm-linux-gnueabihf/include/bits/sched.h" 2 3 1414: # 126 "/usr/arm-linux-gnueabihf/include/bits/sched.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/struct_sched_param.h" 1 3 1414: # 23 "/usr/arm-linux-gnueabihf/include/bits/types/struct_sched_param.h" 3 1414: struct sched_param 1414: { 1414: int sched_priority; 1414: }; 1414: # 127 "/usr/arm-linux-gnueabihf/include/bits/sched.h" 2 3 1414: 1414: extern "C" { 1414: 1414: 1414: 1414: extern int clone (int (*__fn) (void *__arg), void *__child_stack, 1414: int __flags, void *__arg, ...) noexcept (true); 1414: 1414: 1414: extern int unshare (int __flags) noexcept (true); 1414: 1414: 1414: extern int sched_getcpu (void) noexcept (true); 1414: 1414: 1414: extern int getcpu (unsigned int *, unsigned int *) noexcept (true); 1414: 1414: 1414: extern int setns (int __fd, int __nstype) noexcept (true); 1414: 1414: 1414: int sched_setattr (pid_t tid, struct sched_attr *attr, unsigned int flags) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: int sched_getattr (pid_t tid, struct sched_attr *attr, unsigned int size, 1414: unsigned int flags) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: } 1414: # 44 "/usr/arm-linux-gnueabihf/include/sched.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/cpu-set.h" 1 3 1414: # 32 "/usr/arm-linux-gnueabihf/include/bits/cpu-set.h" 3 1414: typedef unsigned long int __cpu_mask; 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef struct 1414: { 1414: __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; 1414: } cpu_set_t; 1414: # 115 "/usr/arm-linux-gnueabihf/include/bits/cpu-set.h" 3 1414: extern "C" { 1414: 1414: extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) 1414: noexcept (true); 1414: extern cpu_set_t *__sched_cpualloc (size_t __count) noexcept (true) ; 1414: extern void __sched_cpufree (cpu_set_t *__set) noexcept (true); 1414: 1414: } 1414: # 45 "/usr/arm-linux-gnueabihf/include/sched.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern "C" { 1414: 1414: 1414: extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) 1414: noexcept (true); 1414: 1414: 1414: extern int sched_getparam (__pid_t __pid, struct sched_param *__param) noexcept (true); 1414: 1414: 1414: extern int sched_setscheduler (__pid_t __pid, int __policy, 1414: const struct sched_param *__param) noexcept (true); 1414: 1414: 1414: extern int sched_getscheduler (__pid_t __pid) noexcept (true); 1414: 1414: 1414: extern int sched_yield (void) noexcept (true); 1414: 1414: 1414: extern int sched_get_priority_max (int __algorithm) noexcept (true); 1414: 1414: 1414: extern int sched_get_priority_min (int __algorithm) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) noexcept (true) __asm__ ("" "__sched_rr_get_interval64") 1414: 1414: ; 1414: # 130 "/usr/arm-linux-gnueabihf/include/sched.h" 3 1414: extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, 1414: const cpu_set_t *__cpuset) noexcept (true); 1414: 1414: 1414: extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, 1414: cpu_set_t *__cpuset) noexcept (true); 1414: 1414: 1414: } 1414: # 23 "/usr/arm-linux-gnueabihf/include/pthread.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/time.h" 1 3 1414: # 29 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 1 3 1414: # 30 "/usr/arm-linux-gnueabihf/include/time.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/time.h" 1 3 1414: # 73 "/usr/arm-linux-gnueabihf/include/bits/time.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/timex.h" 1 3 1414: # 26 "/usr/arm-linux-gnueabihf/include/bits/timex.h" 3 1414: struct timex 1414: { 1414: 1414: unsigned int modes; 1414: int :32; 1414: long long offset; 1414: long long freq; 1414: long long maxerror; 1414: long long esterror; 1414: int status; 1414: int :32; 1414: long long constant; 1414: long long precision; 1414: long long tolerance; 1414: struct timeval time; 1414: long long tick; 1414: long long ppsfreq; 1414: long long jitter; 1414: int shift; 1414: int :32; 1414: long long stabil; 1414: long long jitcnt; 1414: long long calcnt; 1414: long long errcnt; 1414: long long stbcnt; 1414: 1414: int tai; 1414: 1414: int :32; int :32; int :32; int :32; 1414: int :32; int :32; int :32; int :32; 1414: int :32; int :32; int :32; 1414: # 85 "/usr/arm-linux-gnueabihf/include/bits/timex.h" 3 1414: }; 1414: # 74 "/usr/arm-linux-gnueabihf/include/bits/time.h" 2 3 1414: 1414: extern "C" { 1414: 1414: 1414: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) noexcept (true) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) noexcept (true) __asm__ ("" "__clock_adjtime64") 1414: 1414: __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: 1414: 1414: } 1414: # 38 "/usr/arm-linux-gnueabihf/include/time.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/struct_tm.h" 1 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: struct tm 1414: { 1414: int tm_sec; 1414: int tm_min; 1414: int tm_hour; 1414: int tm_mday; 1414: int tm_mon; 1414: int tm_year; 1414: int tm_wday; 1414: int tm_yday; 1414: int tm_isdst; 1414: 1414: 1414: long int tm_gmtoff; 1414: const char *tm_zone; 1414: 1414: 1414: 1414: 1414: }; 1414: # 44 "/usr/arm-linux-gnueabihf/include/time.h" 2 3 1414: # 52 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/struct_itimerspec.h" 1 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: struct itimerspec 1414: { 1414: struct timespec it_interval; 1414: struct timespec it_value; 1414: }; 1414: # 53 "/usr/arm-linux-gnueabihf/include/time.h" 2 3 1414: struct sigevent; 1414: # 77 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern "C" { 1414: 1414: 1414: 1414: extern clock_t clock (void) noexcept (true); 1414: # 94 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern time_t time (time_t *__timer) noexcept (true) __asm__ ("" "__time64"); 1414: extern double difftime (time_t __time1, time_t __time0) noexcept (true) __asm__ ("" "__difftime64") 1414: ; 1414: extern time_t mktime (struct tm *__tp) noexcept (true) __asm__ ("" "__mktime64"); 1414: # 108 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern size_t strftime (char *__restrict __s, size_t __maxsize, 1414: const char *__restrict __format, 1414: const struct tm *__restrict __tp) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 3, 4))); 1414: 1414: 1414: 1414: 1414: extern char *strptime (const char *__restrict __s, 1414: const char *__restrict __fmt, struct tm *__tp) 1414: noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern size_t strftime_l (char *__restrict __s, size_t __maxsize, 1414: const char *__restrict __format, 1414: const struct tm *__restrict __tp, 1414: locale_t __loc) noexcept (true); 1414: 1414: 1414: 1414: extern char *strptime_l (const char *__restrict __s, 1414: const char *__restrict __fmt, struct tm *__tp, 1414: locale_t __loc) noexcept (true); 1414: # 149 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern struct tm*gmtime (const time_t *__timer) noexcept (true) __asm__ ("" "__gmtime64"); 1414: extern struct tm *localtime (const time_t *__timer) noexcept (true) __asm__ ("" "__localtime64") 1414: ; 1414: # 172 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern struct tm*gmtime_r (const time_t *__restrict __timer, struct tm *__restrict __tp) noexcept (true) __asm__ ("" "__gmtime64_r") 1414: 1414: ; 1414: 1414: extern struct tm*localtime_r (const time_t *__restrict __t, struct tm *__restrict __tp) noexcept (true) __asm__ ("" "__localtime64_r") 1414: 1414: ; 1414: # 188 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern char *asctime (const struct tm *__tp) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern char *ctime (const time_t *__timer) noexcept (true) __asm__ ("" "__ctime64"); 1414: # 206 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern char *asctime_r (const struct tm *__restrict __tp, 1414: char *__restrict __buf) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern char *ctime_r (const time_t *__restrict __timer, char *__restrict __buf) noexcept (true) __asm__ ("" "__ctime64_r") 1414: ; 1414: # 226 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern char *__tzname[2]; 1414: extern int __daylight; 1414: extern long int __timezone; 1414: 1414: 1414: 1414: 1414: extern char *tzname[2]; 1414: 1414: 1414: 1414: extern void tzset (void) noexcept (true); 1414: 1414: 1414: 1414: extern int daylight; 1414: extern long int timezone; 1414: # 258 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern time_t timegm (struct tm *__tp) noexcept (true) __asm__ ("" "__timegm64"); 1414: # 275 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern time_t timelocal (struct tm *__tp) noexcept (true) __asm__ ("" "__mktime64"); 1414: 1414: 1414: 1414: 1414: extern int dysize (int __year) noexcept (true) __attribute__ ((__const__)); 1414: # 305 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern int nanosleep (const struct timespec *__requested_time, struct timespec *__remaining) __asm__ ("" "__nanosleep64") 1414: 1414: ; 1414: extern int clock_getres (clockid_t __clock_id, struct timespec *__res) noexcept (true) __asm__ ("" "__clock_getres64") 1414: 1414: ; 1414: extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) noexcept (true) __asm__ ("" "__clock_gettime64") 1414: 1414: __attribute__ ((__nonnull__ (2))); 1414: extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) noexcept (true) __asm__ ("" "__clock_settime64") 1414: 1414: __attribute__ ((__nonnull__ (2))); 1414: # 337 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern int clock_nanosleep (clockid_t __clock_id, int __flags, const struct timespec *__req, struct timespec *__rem) __asm__ ("" "__clock_nanosleep_time64") 1414: 1414: 1414: ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int timer_create (clockid_t __clock_id, 1414: struct sigevent *__restrict __evp, 1414: timer_t *__restrict __timerid) noexcept (true); 1414: 1414: 1414: extern int timer_delete (timer_t __timerid) noexcept (true); 1414: # 370 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern int timer_settime (timer_t __timerid, int __flags, const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) noexcept (true) __asm__ ("" "__timer_settime64") 1414: 1414: 1414: ; 1414: 1414: extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) noexcept (true) __asm__ ("" "__timer_gettime64") 1414: 1414: ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int timer_getoverrun (timer_t __timerid) noexcept (true); 1414: # 396 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern int timespec_get (struct timespec *__ts, int __base) noexcept (true) __asm__ ("" "__timespec_get64") 1414: __attribute__ ((__nonnull__ (1))); 1414: # 412 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern int timespec_getres (struct timespec *__ts, int __base) noexcept (true) __asm__ ("" "__timespec_getres64") 1414: 1414: ; 1414: # 434 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern int getdate_err; 1414: # 443 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern struct tm *getdate (const char *__string); 1414: # 457 "/usr/arm-linux-gnueabihf/include/time.h" 3 1414: extern int getdate_r (const char *__restrict __string, 1414: struct tm *__restrict __resbufp); 1414: 1414: 1414: } 1414: # 24 "/usr/arm-linux-gnueabihf/include/pthread.h" 2 3 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/setjmp.h" 1 3 1414: # 33 "/usr/arm-linux-gnueabihf/include/bits/setjmp.h" 3 1414: typedef int __jmp_buf[64] __attribute__((__aligned__ (8))); 1414: # 28 "/usr/arm-linux-gnueabihf/include/pthread.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/wordsize.h" 1 3 1414: # 29 "/usr/arm-linux-gnueabihf/include/pthread.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/types/struct___jmp_buf_tag.h" 1 3 1414: # 26 "/usr/arm-linux-gnueabihf/include/bits/types/struct___jmp_buf_tag.h" 3 1414: struct __jmp_buf_tag 1414: { 1414: 1414: 1414: 1414: 1414: __jmp_buf __jmpbuf; 1414: int __mask_was_saved; 1414: __sigset_t __saved_mask; 1414: }; 1414: # 32 "/usr/arm-linux-gnueabihf/include/pthread.h" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/pthread_stack_min-dynamic.h" 1 3 1414: # 23 "/usr/arm-linux-gnueabihf/include/bits/pthread_stack_min-dynamic.h" 3 1414: extern "C" { 1414: extern long int __sysconf (int __name) noexcept (true); 1414: } 1414: # 34 "/usr/arm-linux-gnueabihf/include/pthread.h" 2 3 1414: 1414: 1414: 1414: enum 1414: { 1414: PTHREAD_CREATE_JOINABLE, 1414: 1414: PTHREAD_CREATE_DETACHED 1414: 1414: }; 1414: 1414: 1414: 1414: enum 1414: { 1414: PTHREAD_MUTEX_TIMED_NP, 1414: PTHREAD_MUTEX_RECURSIVE_NP, 1414: PTHREAD_MUTEX_ERRORCHECK_NP, 1414: PTHREAD_MUTEX_ADAPTIVE_NP 1414: 1414: , 1414: PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 1414: PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 1414: PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 1414: PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 1414: 1414: 1414: 1414: , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP 1414: 1414: }; 1414: 1414: 1414: 1414: 1414: enum 1414: { 1414: PTHREAD_MUTEX_STALLED, 1414: PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 1414: PTHREAD_MUTEX_ROBUST, 1414: PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: enum 1414: { 1414: PTHREAD_PRIO_NONE, 1414: PTHREAD_PRIO_INHERIT, 1414: PTHREAD_PRIO_PROTECT 1414: }; 1414: # 104 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: enum 1414: { 1414: PTHREAD_RWLOCK_PREFER_READER_NP, 1414: PTHREAD_RWLOCK_PREFER_WRITER_NP, 1414: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 1414: PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 1414: }; 1414: # 124 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: enum 1414: { 1414: PTHREAD_INHERIT_SCHED, 1414: 1414: PTHREAD_EXPLICIT_SCHED 1414: 1414: }; 1414: 1414: 1414: 1414: enum 1414: { 1414: PTHREAD_SCOPE_SYSTEM, 1414: 1414: PTHREAD_SCOPE_PROCESS 1414: 1414: }; 1414: 1414: 1414: 1414: enum 1414: { 1414: PTHREAD_PROCESS_PRIVATE, 1414: 1414: PTHREAD_PROCESS_SHARED 1414: 1414: }; 1414: # 159 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: struct _pthread_cleanup_buffer 1414: { 1414: void (*__routine) (void *); 1414: void *__arg; 1414: int __canceltype; 1414: struct _pthread_cleanup_buffer *__prev; 1414: }; 1414: 1414: 1414: enum 1414: { 1414: PTHREAD_CANCEL_ENABLE, 1414: 1414: PTHREAD_CANCEL_DISABLE 1414: 1414: }; 1414: enum 1414: { 1414: PTHREAD_CANCEL_DEFERRED, 1414: 1414: PTHREAD_CANCEL_ASYNCHRONOUS 1414: 1414: }; 1414: # 197 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern "C" { 1414: 1414: 1414: 1414: 1414: extern int pthread_create (pthread_t *__restrict __newthread, 1414: const pthread_attr_t *__restrict __attr, 1414: void *(*__start_routine) (void *), 1414: void *__restrict __arg) noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 1414: 1414: 1414: 1414: 1414: 1414: extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_join (pthread_t __th, void **__thread_return); 1414: 1414: 1414: 1414: 1414: extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) noexcept (true); 1414: # 248 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, const struct timespec *__abstime) __asm__ ("" "__pthread_timedjoin_np64") 1414: 1414: 1414: ; 1414: 1414: extern int pthread_clockjoin_np (pthread_t __th, void **__thread_return, clockid_t __clockid, const struct timespec *__abstime) __asm__ ("" "__pthread_clockjoin_np64") 1414: 1414: 1414: 1414: ; 1414: # 269 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_detach (pthread_t __th) noexcept (true); 1414: 1414: 1414: 1414: extern pthread_t pthread_self (void) noexcept (true) __attribute__ ((__const__)); 1414: 1414: 1414: extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) 1414: noexcept (true) __attribute__ ((__const__)); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_attr_init (pthread_attr_t *__attr) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_attr_destroy (pthread_attr_t *__attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, 1414: int *__detachstate) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, 1414: int __detachstate) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, 1414: size_t *__guardsize) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_attr_setguardsize (pthread_attr_t *__attr, 1414: size_t __guardsize) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, 1414: struct sched_param *__restrict __param) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, 1414: const struct sched_param *__restrict 1414: __param) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict 1414: __attr, int *__restrict __policy) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict 1414: __attr, int *__restrict __inherit) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, 1414: int __inherit) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, 1414: int *__restrict __scope) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict 1414: __attr, void **__restrict __stackaddr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, 1414: void *__stackaddr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); 1414: 1414: 1414: extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict 1414: __attr, size_t *__restrict __stacksize) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: 1414: extern int pthread_attr_setstacksize (pthread_attr_t *__attr, 1414: size_t __stacksize) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, 1414: void **__restrict __stackaddr, 1414: size_t *__restrict __stacksize) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2, 3))); 1414: 1414: 1414: 1414: 1414: extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, 1414: size_t __stacksize) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, 1414: size_t __cpusetsize, 1414: const cpu_set_t *__cpuset) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 1414: 1414: 1414: 1414: extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, 1414: size_t __cpusetsize, 1414: cpu_set_t *__cpuset) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 1414: 1414: 1414: extern int pthread_getattr_default_np (pthread_attr_t *__attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_attr_setsigmask_np (pthread_attr_t *__attr, 1414: const __sigset_t *sigmask); 1414: 1414: 1414: 1414: 1414: extern int pthread_attr_getsigmask_np (const pthread_attr_t *__attr, 1414: __sigset_t *sigmask); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_setattr_default_np (const pthread_attr_t *__attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_setschedparam (pthread_t __target_thread, int __policy, 1414: const struct sched_param *__param) 1414: noexcept (true) __attribute__ ((__nonnull__ (3))); 1414: 1414: 1414: extern int pthread_getschedparam (pthread_t __target_thread, 1414: int *__restrict __policy, 1414: struct sched_param *__restrict __param) 1414: noexcept (true) __attribute__ ((__nonnull__ (2, 3))); 1414: 1414: 1414: extern int pthread_setschedprio (pthread_t __target_thread, int __prio) 1414: noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int pthread_getname_np (pthread_t __target_thread, char *__buf, 1414: size_t __buflen) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: extern int pthread_setname_np (pthread_t __target_thread, const char *__name) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_getconcurrency (void) noexcept (true); 1414: 1414: 1414: extern int pthread_setconcurrency (int __level) noexcept (true); 1414: 1414: 1414: 1414: extern int pthread_yield (void) noexcept (true); 1414: 1414: extern int pthread_yield (void) noexcept (true) __asm__ ("" "sched_yield") 1414: __attribute__ ((__deprecated__ ("pthread_yield is deprecated, use sched_yield instead"))) 1414: ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, 1414: const cpu_set_t *__cpuset) 1414: noexcept (true) __attribute__ ((__nonnull__ (3))); 1414: 1414: 1414: extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, 1414: cpu_set_t *__cpuset) 1414: noexcept (true) __attribute__ ((__nonnull__ (3))); 1414: # 509 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_once (pthread_once_t *__once_control, 1414: void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); 1414: # 521 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_setcancelstate (int __state, int *__oldstate); 1414: 1414: 1414: 1414: extern int pthread_setcanceltype (int __type, int *__oldtype); 1414: 1414: 1414: extern int pthread_cancel (pthread_t __th); 1414: 1414: 1414: 1414: 1414: extern void pthread_testcancel (void); 1414: 1414: 1414: 1414: 1414: struct __cancel_jmp_buf_tag 1414: { 1414: __jmp_buf __cancel_jmp_buf; 1414: int __mask_was_saved; 1414: }; 1414: 1414: typedef struct 1414: { 1414: struct __cancel_jmp_buf_tag __cancel_jmp_buf[1]; 1414: void *__pad[4]; 1414: } __pthread_unwind_buf_t __attribute__ ((__aligned__)); 1414: # 557 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: struct __pthread_cleanup_frame 1414: { 1414: void (*__cancel_routine) (void *); 1414: void *__cancel_arg; 1414: int __do_it; 1414: int __cancel_type; 1414: }; 1414: 1414: 1414: 1414: 1414: class __pthread_cleanup_class 1414: { 1414: void (*__cancel_routine) (void *); 1414: void *__cancel_arg; 1414: int __do_it; 1414: int __cancel_type; 1414: 1414: public: 1414: __pthread_cleanup_class (void (*__fct) (void *), void *__arg) 1414: : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } 1414: ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } 1414: void __setdoit (int __newval) { __do_it = __newval; } 1414: void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, 1414: &__cancel_type); } 1414: void __restore () const { pthread_setcanceltype (__cancel_type, 0); } 1414: }; 1414: # 766 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int __sigsetjmp_cancel (struct __cancel_jmp_buf_tag __env[1], int __savemask) noexcept (true) __asm__ ("" "__sigsetjmp") 1414: 1414: 1414: __attribute__ ((__returns_twice__)); 1414: # 781 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_mutex_init (pthread_mutex_t *__mutex, 1414: const pthread_mutexattr_t *__mutexattr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_mutex_lock (pthread_mutex_t *__mutex) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: # 805 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, const struct timespec *__restrict __abstime) noexcept (true) __asm__ ("" "__pthread_mutex_timedlock64") 1414: 1414: 1414: __attribute__ ((__nonnull__ (1, 2))); 1414: # 823 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict __mutex, clockid_t __clockid, const struct timespec *__restrict __abstime) noexcept (true) __asm__ ("" "__pthread_mutex_clocklock64") 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1, 3))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern int pthread_mutex_getprioceiling (const pthread_mutex_t * 1414: __restrict __mutex, 1414: int *__restrict __prioceiling) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, 1414: int __prioceiling, 1414: int *__restrict __old_ceiling) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 1414: 1414: 1414: 1414: 1414: extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_mutex_consistent_np (pthread_mutex_t *) noexcept (true) __asm__ ("" "pthread_mutex_consistent") 1414: __attribute__ ((__nonnull__ (1))) 1414: __attribute__ ((__deprecated__ ("pthread_mutex_consistent_np is deprecated, use pthread_mutex_consistent"))) 1414: ; 1414: # 874 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * 1414: __restrict __attr, 1414: int *__restrict __pshared) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, 1414: int __pshared) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict 1414: __attr, int *__restrict __kind) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: 1414: extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * 1414: __restrict __attr, 1414: int *__restrict __protocol) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, 1414: int __protocol) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * 1414: __restrict __attr, 1414: int *__restrict __prioceiling) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, 1414: int __prioceiling) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, 1414: int *__robustness) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_mutexattr_getrobust_np (pthread_mutexattr_t *, int *) noexcept (true) __asm__ ("" "pthread_mutexattr_getrobust") 1414: 1414: __attribute__ ((__nonnull__ (1))) 1414: __attribute__ ((__deprecated__ ("pthread_mutexattr_getrobust_np is deprecated, use pthread_mutexattr_getrobust"))) 1414: ; 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, 1414: int __robustness) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *, int) noexcept (true) __asm__ ("" "pthread_mutexattr_setrobust") 1414: 1414: __attribute__ ((__nonnull__ (1))) 1414: __attribute__ ((__deprecated__ ("pthread_mutexattr_setrobust_np is deprecated, use pthread_mutexattr_setrobust"))) 1414: ; 1414: # 967 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, 1414: const pthread_rwlockattr_t *__restrict 1414: __attr) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: # 991 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, const struct timespec *__restrict __abstime) noexcept (true) __asm__ ("" "__pthread_rwlock_timedrdlock64") 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1, 2))); 1414: # 1010 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict __rwlock, clockid_t __clockid, const struct timespec *__restrict __abstime) noexcept (true) __asm__ ("" "__pthread_rwlock_clockrdlock64") 1414: 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1, 3))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: # 1038 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, const struct timespec *__restrict __abstime) noexcept (true) __asm__ ("" "__pthread_rwlock_timedwrlock64") 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1, 2))); 1414: # 1058 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict __rwlock, clockid_t __clockid, const struct timespec *__restrict __abstime) noexcept (true) __asm__ ("" "__pthread_rwlock_clockwrlock64") 1414: 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1, 3))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * 1414: __restrict __attr, 1414: int *__restrict __pshared) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, 1414: int __pshared) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * 1414: __restrict __attr, 1414: int *__restrict __pref) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, 1414: int __pref) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_cond_init (pthread_cond_t *__restrict __cond, 1414: const pthread_condattr_t *__restrict __cond_attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_cond_destroy (pthread_cond_t *__cond) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_cond_signal (pthread_cond_t *__cond) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_cond_broadcast (pthread_cond_t *__cond) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, 1414: pthread_mutex_t *__restrict __mutex) 1414: __attribute__ ((__nonnull__ (1, 2))); 1414: # 1151 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, const struct timespec *__restrict __abstime) __asm__ ("" "__pthread_cond_timedwait64") 1414: 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1, 2, 3))); 1414: # 1178 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, __clockid_t __clock_id, const struct timespec *__restrict __abstime) __asm__ ("" "__pthread_cond_clockwait64") 1414: 1414: 1414: 1414: 1414: 1414: __attribute__ ((__nonnull__ (1, 2, 4))); 1414: # 1194 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_condattr_init (pthread_condattr_t *__attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_condattr_destroy (pthread_condattr_t *__attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_condattr_getpshared (const pthread_condattr_t * 1414: __restrict __attr, 1414: int *__restrict __pshared) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, 1414: int __pshared) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern int pthread_condattr_getclock (const pthread_condattr_t * 1414: __restrict __attr, 1414: __clockid_t *__restrict __clock_id) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_condattr_setclock (pthread_condattr_t *__attr, 1414: __clockid_t __clock_id) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: # 1230 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_spin_destroy (pthread_spinlock_t *__lock) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_spin_lock (pthread_spinlock_t *__lock) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_spin_trylock (pthread_spinlock_t *__lock) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_spin_unlock (pthread_spinlock_t *__lock) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 1414: const pthread_barrierattr_t *__restrict 1414: __attr, unsigned int __count) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * 1414: __restrict __attr, 1414: int *__restrict __pshared) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, 1414: int __pshared) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: # 1297 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_key_create (pthread_key_t *__key, 1414: void (*__destr_function) (void *)) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern int pthread_key_delete (pthread_key_t __key) noexcept (true); 1414: 1414: 1414: extern void *pthread_getspecific (pthread_key_t __key) noexcept (true); 1414: 1414: 1414: extern int pthread_setspecific (pthread_key_t __key, 1414: const void *__pointer) 1414: noexcept (true) __attribute__ ((__access__ (__none__, 2))); 1414: 1414: 1414: 1414: 1414: extern int pthread_getcpuclockid (pthread_t __thread_id, 1414: __clockid_t *__clock_id) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: 1414: extern pid_t pthread_gettid_np (pthread_t __thread_id); 1414: # 1337 "/usr/arm-linux-gnueabihf/include/pthread.h" 3 1414: extern int pthread_atfork (void (*__prepare) (void), 1414: void (*__parent) (void), 1414: void (*__child) (void)) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern __inline __attribute__ ((__gnu_inline__)) int 1414: __attribute__ ((__leaf__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) noexcept (true) 1414: { 1414: return __thread1 == __thread2; 1414: } 1414: 1414: 1414: } 1414: # 36 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr-default.h" 2 3 1414: # 62 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr-default.h" 3 1414: typedef pthread_t __gthread_t; 1414: typedef pthread_key_t __gthread_key_t; 1414: typedef pthread_once_t __gthread_once_t; 1414: typedef pthread_mutex_t __gthread_mutex_t; 1414: 1414: 1414: 1414: typedef pthread_mutex_t __gthread_recursive_mutex_t; 1414: typedef pthread_cond_t __gthread_cond_t; 1414: typedef struct timespec __gthread_time_t; 1414: # 123 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr-default.h" 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: # 345 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr-default.h" 3 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_active_p (void) 1414: { 1414: return 1; 1414: } 1414: # 705 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr-default.h" 3 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), 1414: void *__args) 1414: { 1414: return pthread_create (__threadid, __null, __func, __args); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_join (__gthread_t __threadid, void **__value_ptr) 1414: { 1414: return pthread_join (__threadid, __value_ptr); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_detach (__gthread_t __threadid) 1414: { 1414: return pthread_detach (__threadid); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_equal (__gthread_t __t1, __gthread_t __t2) 1414: { 1414: return pthread_equal (__t1, __t2); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) __gthread_t 1414: __gthread_self (void) 1414: { 1414: return pthread_self (); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_yield (void) 1414: { 1414: return sched_yield (); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_once (__gthread_once_t *__once, void (*__func) (void)) 1414: { 1414: if (__gthread_active_p ()) 1414: return pthread_once (__once, __func); 1414: else 1414: return -1; 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) 1414: { 1414: return pthread_key_create (__key, __dtor); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_key_delete (__gthread_key_t __key) 1414: { 1414: return pthread_key_delete (__key); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) void * 1414: __gthread_getspecific (__gthread_key_t __key) 1414: { 1414: return pthread_getspecific (__key); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_setspecific (__gthread_key_t __key, const void *__ptr) 1414: { 1414: return pthread_setspecific (__key, __ptr); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) void 1414: __gthread_mutex_init_function (__gthread_mutex_t *__mutex) 1414: { 1414: if (__gthread_active_p ()) 1414: pthread_mutex_init (__mutex, __null); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_mutex_destroy (__gthread_mutex_t *__mutex) 1414: { 1414: if (__gthread_active_p ()) 1414: return pthread_mutex_destroy (__mutex); 1414: else 1414: return 0; 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_mutex_lock (__gthread_mutex_t *__mutex) 1414: { 1414: if (__gthread_active_p ()) 1414: return pthread_mutex_lock (__mutex); 1414: else 1414: return 0; 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_mutex_trylock (__gthread_mutex_t *__mutex) 1414: { 1414: if (__gthread_active_p ()) 1414: return pthread_mutex_trylock (__mutex); 1414: else 1414: return 0; 1414: } 1414: 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, 1414: const __gthread_time_t *__abs_timeout) 1414: { 1414: if (__gthread_active_p ()) 1414: return pthread_mutex_timedlock (__mutex, __abs_timeout); 1414: else 1414: return 0; 1414: } 1414: 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_mutex_unlock (__gthread_mutex_t *__mutex) 1414: { 1414: if (__gthread_active_p ()) 1414: return pthread_mutex_unlock (__mutex); 1414: else 1414: return 0; 1414: } 1414: # 854 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr-default.h" 3 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) 1414: { 1414: return __gthread_mutex_lock (__mutex); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) 1414: { 1414: return __gthread_mutex_trylock (__mutex); 1414: } 1414: 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, 1414: const __gthread_time_t *__abs_timeout) 1414: { 1414: return __gthread_mutex_timedlock (__mutex, __abs_timeout); 1414: } 1414: 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) 1414: { 1414: return __gthread_mutex_unlock (__mutex); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) 1414: { 1414: return __gthread_mutex_destroy (__mutex); 1414: } 1414: # 896 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr-default.h" 3 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_cond_broadcast (__gthread_cond_t *__cond) 1414: { 1414: return pthread_cond_broadcast (__cond); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_cond_signal (__gthread_cond_t *__cond) 1414: { 1414: return pthread_cond_signal (__cond); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) 1414: { 1414: return pthread_cond_wait (__cond, __mutex); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, 1414: const __gthread_time_t *__abs_timeout) 1414: { 1414: return pthread_cond_timedwait (__cond, __mutex, __abs_timeout); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_cond_wait_recursive (__gthread_cond_t *__cond, 1414: __gthread_recursive_mutex_t *__mutex) 1414: { 1414: return __gthread_cond_wait (__cond, __mutex); 1414: } 1414: 1414: inline __attribute__((__always_inline__)) int 1414: __gthread_cond_destroy (__gthread_cond_t* __cond) 1414: { 1414: return pthread_cond_destroy (__cond); 1414: } 1414: # 158 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/gthr.h" 2 3 1414: 1414: 1414: #pragma GCC visibility pop 1414: # 38 "/usr/arm-linux-gnueabihf/include/c++/16/ext/atomicity.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/atomic_word.h" 1 3 1414: # 32 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/atomic_word.h" 3 1414: typedef int _Atomic_word; 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/ext/atomicity.h" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/sys/single_threaded.h" 1 3 1414: # 24 "/usr/arm-linux-gnueabihf/include/sys/single_threaded.h" 3 1414: extern "C" { 1414: 1414: 1414: 1414: 1414: extern char __libc_single_threaded; 1414: 1414: } 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/ext/atomicity.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: __attribute__((__always_inline__)) 1414: inline bool 1414: __is_single_threaded() noexcept 1414: { 1414: 1414: 1414: 1414: return ::__libc_single_threaded; 1414: 1414: 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: inline _Atomic_word 1414: __attribute__((__always_inline__)) 1414: __exchange_and_add(volatile _Atomic_word* __mem, int __val) 1414: { return __atomic_fetch_add(__mem, __val, 4); } 1414: 1414: inline void 1414: __attribute__((__always_inline__)) 1414: __atomic_add(volatile _Atomic_word* __mem, int __val) 1414: { __atomic_fetch_add(__mem, __val, 4); } 1414: # 96 "/usr/arm-linux-gnueabihf/include/c++/16/ext/atomicity.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wignored-attributes" 1414: # 112 "/usr/arm-linux-gnueabihf/include/c++/16/ext/atomicity.h" 3 1414: inline _Atomic_word 1414: __attribute__((__always_inline__)) 1414: __exchange_and_add_single(_Atomic_word* __mem, int __val) 1414: { 1414: _Atomic_word __result = *__mem; 1414: 1414: std::make_unsigned<_Atomic_word>::type __u; 1414: __u = __result; 1414: __u += __val; 1414: *__mem = __u; 1414: return __result; 1414: } 1414: 1414: inline void 1414: __attribute__((__always_inline__)) 1414: __atomic_add_single(_Atomic_word* __mem, int __val) 1414: { 1414: std::make_unsigned<_Atomic_word>::type __u; 1414: __u = *__mem; 1414: __u += __val; 1414: *__mem = __u; 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: 1414: inline _Atomic_word 1414: __attribute__ ((__always_inline__)) 1414: __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) 1414: { 1414: if (__is_single_threaded()) 1414: return __exchange_and_add_single(__mem, __val); 1414: else 1414: return __exchange_and_add(__mem, __val); 1414: } 1414: 1414: inline void 1414: __attribute__ ((__always_inline__)) 1414: __atomic_add_dispatch(_Atomic_word* __mem, int __val) 1414: { 1414: if (__is_single_threaded()) 1414: __atomic_add_single(__mem, __val); 1414: else 1414: __atomic_add(__mem, __val); 1414: } 1414: 1414: 1414: } 1414: # 45 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 69 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: class locale 1414: { 1414: public: 1414: 1414: 1414: typedef int category; 1414: 1414: 1414: class facet; 1414: class id; 1414: class _Impl; 1414: 1414: friend class facet; 1414: friend class _Impl; 1414: 1414: template 1414: friend bool 1414: has_facet(const locale&) throw(); 1414: 1414: template 1414: friend const _Facet& 1414: use_facet(const locale&); 1414: 1414: template 1414: friend const _Facet* 1414: __try_use_facet(const locale&) noexcept; 1414: 1414: template 1414: friend struct __use_cache; 1414: # 109 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: static const category none = 0; 1414: static const category ctype = 1L << 0; 1414: static const category numeric = 1L << 1; 1414: static const category collate = 1L << 2; 1414: static const category time = 1L << 3; 1414: static const category monetary = 1L << 4; 1414: static const category messages = 1L << 5; 1414: static const category all = (ctype | numeric | collate | 1414: time | monetary | messages); 1414: # 128 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: locale() throw(); 1414: # 137 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: locale(const locale& __other) throw(); 1414: # 147 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: explicit 1414: locale(const char* __s); 1414: # 162 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: locale(const locale& __base, const char* __s, category __cat); 1414: # 173 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: explicit 1414: locale(const std::string& __s) : locale(__s.c_str()) { } 1414: # 188 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: locale(const locale& __base, const std::string& __s, category __cat) 1414: : locale(__base, __s.c_str(), __cat) { } 1414: # 203 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: locale(const locale& __base, const locale& __add, category __cat); 1414: # 216 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: template 1414: locale(const locale& __other, _Facet* __f); 1414: 1414: 1414: ~locale() throw(); 1414: # 230 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: const locale& 1414: operator=(const locale& __other) throw(); 1414: # 245 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: template 1414: [[__nodiscard__]] 1414: locale 1414: combine(const locale& __other) const; 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] __attribute ((__abi_tag__ ("cxx11"))) 1414: string 1414: name() const; 1414: # 276 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: [[__nodiscard__]] 1414: bool 1414: operator==(const locale& __other) const throw(); 1414: # 308 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: template 1414: [[__nodiscard__]] 1414: bool 1414: operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, 1414: const basic_string<_Char, _Traits, _Alloc>& __s2) const; 1414: # 325 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: static locale 1414: global(const locale& __loc); 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: static const locale& 1414: classic(); 1414: 1414: private: 1414: 1414: _Impl* _M_impl; 1414: 1414: 1414: static _Impl* _S_classic; 1414: 1414: 1414: static _Impl* _S_global; 1414: 1414: 1414: 1414: 1414: 1414: static const char* const* const _S_categories; 1414: # 361 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: enum { _S_categories_size = 6 + 6 }; 1414: 1414: 1414: static __gthread_once_t _S_once; 1414: 1414: 1414: explicit 1414: locale(_Impl*) throw(); 1414: 1414: static void 1414: _S_initialize(); 1414: 1414: static void 1414: _S_initialize_once() throw(); 1414: 1414: static category 1414: _S_normalize_category(category); 1414: 1414: void 1414: _M_coalesce(const locale& __base, const locale& __add, category __cat); 1414: 1414: 1414: static const id* const _S_twinned_facets[]; 1414: 1414: }; 1414: 1414: 1414: template 1414: constexpr bool __is_facet = is_base_of_v; 1414: template 1414: constexpr bool __is_facet = false; 1414: # 405 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: class locale::facet 1414: { 1414: private: 1414: friend class locale; 1414: friend class locale::_Impl; 1414: 1414: mutable _Atomic_word _M_refcount; 1414: 1414: 1414: static __c_locale _S_c_locale; 1414: 1414: 1414: static const char _S_c_name[2]; 1414: 1414: 1414: static __gthread_once_t _S_once; 1414: 1414: 1414: static void 1414: _S_initialize_once(); 1414: 1414: protected: 1414: # 436 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: explicit 1414: facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) 1414: { } 1414: 1414: 1414: virtual 1414: ~facet(); 1414: 1414: static void 1414: _S_create_c_locale(__c_locale& __cloc, const char* __s, 1414: __c_locale __old = 0); 1414: 1414: static __c_locale 1414: _S_clone_c_locale(__c_locale& __cloc) throw(); 1414: 1414: static void 1414: _S_destroy_c_locale(__c_locale& __cloc); 1414: 1414: static __c_locale 1414: _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); 1414: 1414: 1414: 1414: static __c_locale 1414: _S_get_c_locale(); 1414: 1414: __attribute__ ((__const__)) static const char* 1414: _S_get_c_name() throw(); 1414: # 472 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: facet(const facet&) = delete; 1414: 1414: facet& 1414: operator=(const facet&) = delete; 1414: 1414: 1414: private: 1414: void 1414: _M_add_reference() const throw() 1414: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 1414: 1414: void 1414: _M_remove_reference() const throw() 1414: { 1414: 1414: ; 1414: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 1414: { 1414: ; 1414: try 1414: { delete this; } 1414: catch(...) 1414: { } 1414: } 1414: } 1414: 1414: const facet* _M_sso_shim(const id*) const; 1414: const facet* _M_cow_shim(const id*) const; 1414: 1414: protected: 1414: class __shim; 1414: }; 1414: # 517 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: class locale::id 1414: { 1414: private: 1414: friend class locale; 1414: friend class locale::_Impl; 1414: 1414: template 1414: friend const _Facet& 1414: use_facet(const locale&); 1414: 1414: template 1414: friend bool 1414: has_facet(const locale&) throw(); 1414: 1414: template 1414: friend const _Facet* 1414: __try_use_facet(const locale&) noexcept; 1414: 1414: 1414: 1414: 1414: mutable size_t _M_index; 1414: 1414: 1414: static _Atomic_word _S_refcount; 1414: 1414: void 1414: operator=(const id&); 1414: 1414: id(const id&); 1414: 1414: public: 1414: 1414: 1414: 1414: id() { } 1414: 1414: size_t 1414: _M_id() const throw(); 1414: }; 1414: 1414: 1414: 1414: class locale::_Impl 1414: { 1414: public: 1414: 1414: friend class locale; 1414: friend class locale::facet; 1414: 1414: template 1414: friend bool 1414: has_facet(const locale&) throw(); 1414: 1414: template 1414: friend const _Facet& 1414: use_facet(const locale&); 1414: 1414: template 1414: friend const _Facet* 1414: __try_use_facet(const locale&) noexcept; 1414: 1414: template 1414: friend struct __use_cache; 1414: 1414: private: 1414: 1414: _Atomic_word _M_refcount; 1414: const facet** _M_facets; 1414: size_t _M_facets_size; 1414: const facet** _M_caches; 1414: char** _M_names; 1414: static const locale::id* const _S_id_ctype[]; 1414: static const locale::id* const _S_id_numeric[]; 1414: static const locale::id* const _S_id_collate[]; 1414: static const locale::id* const _S_id_time[]; 1414: static const locale::id* const _S_id_monetary[]; 1414: static const locale::id* const _S_id_messages[]; 1414: static const locale::id* const* const _S_facet_categories[]; 1414: 1414: void 1414: _M_add_reference() throw() 1414: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 1414: 1414: void 1414: _M_remove_reference() throw() 1414: { 1414: 1414: ; 1414: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 1414: { 1414: ; 1414: try 1414: { delete this; } 1414: catch(...) 1414: { } 1414: } 1414: } 1414: 1414: _Impl(const _Impl&, size_t); 1414: _Impl(const char*, size_t); 1414: _Impl(size_t) throw(); 1414: 1414: ~_Impl() throw(); 1414: 1414: _Impl(const _Impl&); 1414: 1414: void 1414: operator=(const _Impl&); 1414: 1414: bool 1414: _M_check_same_name() 1414: { 1414: bool __ret = true; 1414: if (_M_names[1]) 1414: 1414: for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) 1414: __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; 1414: return __ret; 1414: } 1414: 1414: void 1414: _M_replace_categories(const _Impl*, category); 1414: 1414: void 1414: _M_replace_category(const _Impl*, const locale::id* const*); 1414: 1414: void 1414: _M_replace_facet(const _Impl*, const locale::id*); 1414: 1414: void 1414: _M_install_facet(const locale::id*, const facet*); 1414: 1414: template 1414: void 1414: _M_init_facet(_Facet* __facet) 1414: { _M_install_facet(&_Facet::id, __facet); } 1414: 1414: template 1414: void 1414: _M_init_facet_unchecked(_Facet* __facet) 1414: { 1414: __facet->_M_add_reference(); 1414: _M_facets[_Facet::id._M_id()] = __facet; 1414: } 1414: 1414: void 1414: _M_install_cache(const facet*, size_t); 1414: 1414: void _M_init_extra(facet**); 1414: void _M_init_extra(void*, void*, const char*, const char*); 1414: 1414: 1414: 1414: 1414: }; 1414: # 687 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: template 1414: class __cxx11:: collate : public locale::facet 1414: { 1414: public: 1414: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef basic_string<_CharT> string_type; 1414: 1414: 1414: protected: 1414: 1414: 1414: __c_locale _M_c_locale_collate; 1414: 1414: public: 1414: 1414: static locale::id id; 1414: # 714 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: explicit 1414: collate(size_t __refs = 0) 1414: : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) 1414: { } 1414: # 728 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: explicit 1414: collate(__c_locale __cloc, size_t __refs = 0) 1414: : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) 1414: { } 1414: # 745 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: int 1414: compare(const _CharT* __lo1, const _CharT* __hi1, 1414: const _CharT* __lo2, const _CharT* __hi2) const 1414: { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } 1414: # 764 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: string_type 1414: transform(const _CharT* __lo, const _CharT* __hi) const 1414: { return this->do_transform(__lo, __hi); } 1414: # 778 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: long 1414: hash(const _CharT* __lo, const _CharT* __hi) const 1414: { return this->do_hash(__lo, __hi); } 1414: 1414: 1414: int 1414: _M_compare(const _CharT*, const _CharT*) const throw(); 1414: 1414: size_t 1414: _M_transform(_CharT*, const _CharT*, size_t) const throw(); 1414: 1414: protected: 1414: 1414: virtual 1414: ~collate() 1414: { _S_destroy_c_locale(_M_c_locale_collate); } 1414: # 807 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: virtual int 1414: do_compare(const _CharT* __lo1, const _CharT* __hi1, 1414: const _CharT* __lo2, const _CharT* __hi2) const; 1414: # 821 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: virtual string_type 1414: do_transform(const _CharT* __lo, const _CharT* __hi) const; 1414: # 834 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 3 1414: virtual long 1414: do_hash(const _CharT* __lo, const _CharT* __hi) const; 1414: }; 1414: 1414: template 1414: locale::id collate<_CharT>::id; 1414: 1414: 1414: template<> 1414: int 1414: collate::_M_compare(const char*, const char*) const throw(); 1414: 1414: template<> 1414: size_t 1414: collate::_M_transform(char*, const char*, size_t) const throw(); 1414: 1414: 1414: template<> 1414: int 1414: collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); 1414: 1414: template<> 1414: size_t 1414: collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); 1414: 1414: 1414: 1414: template 1414: class __cxx11:: collate_byname : public collate<_CharT> 1414: { 1414: public: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef basic_string<_CharT> string_type; 1414: 1414: 1414: explicit 1414: collate_byname(const char* __s, size_t __refs = 0) 1414: : collate<_CharT>(__refs) 1414: { 1414: if (__builtin_strcmp(__s, "C") != 0 1414: && __builtin_strcmp(__s, "POSIX") != 0) 1414: { 1414: this->_S_destroy_c_locale(this->_M_c_locale_collate); 1414: this->_S_create_c_locale(this->_M_c_locale_collate, __s); 1414: } 1414: } 1414: 1414: 1414: explicit 1414: collate_byname(const string& __s, size_t __refs = 0) 1414: : collate_byname(__s.c_str(), __refs) { } 1414: 1414: 1414: protected: 1414: virtual 1414: ~collate_byname() { } 1414: }; 1414: 1414: 1414: } 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.tcc" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.tcc" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: #pragma GCC diagnostic ignored "-Wvariadic-macros" 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: locale:: 1414: locale(const locale& __other, _Facet* __f) 1414: { 1414: 1414: 1414: if (__builtin_expect(!__f, 0)) 1414: { 1414: _M_impl = __other._M_impl; 1414: _M_impl->_M_add_reference(); 1414: return; 1414: } 1414: 1414: _M_impl = new _Impl(*__other._M_impl, 1); 1414: 1414: try 1414: { _M_impl->_M_install_facet(&_Facet::id, __f); } 1414: catch(...) 1414: { 1414: _M_impl->_M_remove_reference(); 1414: throw; 1414: } 1414: delete [] _M_impl->_M_names[0]; 1414: _M_impl->_M_names[0] = 0; 1414: } 1414: 1414: template 1414: locale 1414: locale:: 1414: combine(const locale& __other) const 1414: { 1414: 1414: static_assert(__is_facet<_Facet>, "Template argument must be a facet"); 1414: 1414: 1414: _Impl* __tmp = new _Impl(*_M_impl, 1); 1414: try 1414: { 1414: __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); 1414: } 1414: catch(...) 1414: { 1414: __tmp->_M_remove_reference(); 1414: throw; 1414: } 1414: delete[] __tmp->_M_names[0]; 1414: __tmp->_M_names[0] = 0; 1414: return locale(__tmp); 1414: } 1414: 1414: template 1414: bool 1414: locale:: 1414: operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, 1414: const basic_string<_CharT, _Traits, _Alloc>& __s2) const 1414: { 1414: typedef std::collate<_CharT> __collate_type; 1414: const __collate_type& __collate = use_facet<__collate_type>(*this); 1414: return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), 1414: __s2.data(), __s2.data() + __s2.length()) < 0); 1414: } 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: template 1414: inline const _Facet* 1414: __try_use_facet(const locale& __loc) noexcept 1414: { 1414: const size_t __i = _Facet::id._M_id(); 1414: const locale::facet** __facets = __loc._M_impl->_M_facets; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: if constexpr (__is_same(const _Facet, const ctype)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const num_get)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const num_put)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const codecvt)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const collate)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const moneypunct)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const moneypunct)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const money_get)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const money_put)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const numpunct)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const time_get)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const time_put)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const messages)) return static_cast(__facets[__i]); 1414: 1414: 1414: if constexpr (__is_same(const _Facet, const ctype)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const num_get)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const num_put)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const codecvt)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const collate)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const moneypunct)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const moneypunct)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const money_get)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const money_put)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const numpunct)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const time_get)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const time_put)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const messages)) return static_cast(__facets[__i]); 1414: 1414: 1414: if constexpr (__is_same(const _Facet, const codecvt)) return static_cast(__facets[__i]); 1414: if constexpr (__is_same(const _Facet, const codecvt)) return static_cast(__facets[__i]); 1414: 1414: 1414: 1414: 1414: if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) 1414: return 0; 1414: 1414: 1414: return dynamic_cast(__facets[__i]); 1414: 1414: 1414: 1414: } 1414: #pragma GCC diagnostic pop 1414: # 187 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.tcc" 3 1414: template 1414: [[__nodiscard__]] 1414: inline bool 1414: has_facet(const locale& __loc) noexcept 1414: { 1414: 1414: static_assert(__is_base_of(locale::facet, _Facet), 1414: "template argument must be derived from locale::facet"); 1414: 1414: 1414: 1414: return std::__try_use_facet<_Facet>(__loc) != 0; 1414: } 1414: # 215 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.tcc" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdangling-reference" 1414: template 1414: [[__nodiscard__]] 1414: inline const _Facet& 1414: use_facet(const locale& __loc) 1414: { 1414: 1414: static_assert(__is_base_of(locale::facet, _Facet), 1414: "template argument must be derived from locale::facet"); 1414: 1414: 1414: 1414: if (const _Facet* __f = std::__try_use_facet<_Facet>(__loc)) 1414: return *__f; 1414: __throw_bad_cast(); 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: template 1414: int 1414: collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () 1414: { return 0; } 1414: 1414: 1414: template 1414: size_t 1414: collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () 1414: { return 0; } 1414: 1414: template 1414: int 1414: collate<_CharT>:: 1414: do_compare(const _CharT* __lo1, const _CharT* __hi1, 1414: const _CharT* __lo2, const _CharT* __hi2) const 1414: { 1414: 1414: 1414: const string_type __one(__lo1, __hi1); 1414: const string_type __two(__lo2, __hi2); 1414: 1414: const _CharT* __p = __one.c_str(); 1414: const _CharT* __pend = __one.data() + __one.length(); 1414: const _CharT* __q = __two.c_str(); 1414: const _CharT* __qend = __two.data() + __two.length(); 1414: 1414: 1414: 1414: 1414: for (;;) 1414: { 1414: const int __res = _M_compare(__p, __q); 1414: if (__res) 1414: return __res; 1414: 1414: __p += char_traits<_CharT>::length(__p); 1414: __q += char_traits<_CharT>::length(__q); 1414: if (__p == __pend && __q == __qend) 1414: return 0; 1414: else if (__p == __pend) 1414: return -1; 1414: else if (__q == __qend) 1414: return 1; 1414: 1414: __p++; 1414: __q++; 1414: } 1414: } 1414: 1414: template 1414: typename collate<_CharT>::string_type 1414: collate<_CharT>:: 1414: do_transform(const _CharT* __lo, const _CharT* __hi) const 1414: { 1414: string_type __ret; 1414: 1414: 1414: const string_type __str(__lo, __hi); 1414: 1414: const _CharT* __p = __str.c_str(); 1414: const _CharT* __pend = __str.data() + __str.length(); 1414: 1414: size_t __len = (__hi - __lo) * 2; 1414: 1414: struct _Buf 1414: { 1414: _Buf(size_t __n, void* __buf, int __e) 1414: : _M_c(__buf ? (_CharT*)__buf : new _CharT[__n]), 1414: _M_stackbuf(__buf), 1414: _M_errno(__e) 1414: { } 1414: 1414: ~_Buf() 1414: { 1414: if (_M_c != _M_stackbuf) 1414: delete[] _M_c; 1414: if ((*__errno_location ()) == 0) 1414: (*__errno_location ()) = _M_errno; 1414: } 1414: 1414: void _M_realloc(size_t __len) 1414: { 1414: _CharT* __p = new _CharT[__len]; 1414: if (_M_c != _M_stackbuf) 1414: delete[] _M_c; 1414: _M_c = __p; 1414: } 1414: 1414: _CharT* _M_c; 1414: void* const _M_stackbuf; 1414: int _M_errno; 1414: }; 1414: 1414: const size_t __bytes = __len * sizeof(_CharT); 1414: _Buf __buf(__len, __bytes <= 256 ? __builtin_alloca(__bytes) : 0, (*__errno_location ())); 1414: (*__errno_location ()) = 0; 1414: 1414: 1414: 1414: 1414: for (;;) 1414: { 1414: 1414: size_t __res = _M_transform(__buf._M_c, __p, __len); 1414: 1414: 1414: if (__res >= __len) 1414: { 1414: if (__builtin_expect((*__errno_location ()), 0)) 1414: { 1414: 1414: __throw_system_error((*__errno_location ())); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: } 1414: 1414: __len = __res + 1; 1414: __buf._M_realloc(__len); 1414: __res = _M_transform(__buf._M_c, __p, __len); 1414: } 1414: 1414: __ret.append(__buf._M_c, __res); 1414: __p += char_traits<_CharT>::length(__p); 1414: if (__p == __pend) 1414: break; 1414: 1414: __p++; 1414: __ret.push_back(_CharT()); 1414: } 1414: 1414: return __ret; 1414: } 1414: 1414: template 1414: long 1414: collate<_CharT>:: 1414: do_hash(const _CharT* __lo, const _CharT* __hi) const 1414: { 1414: unsigned long __val = 0; 1414: for (; __lo < __hi; ++__lo) 1414: __val = 1414: *__lo + ((__val << 7) 1414: | (__val >> (__gnu_cxx::__numeric_traits:: 1414: __digits - 7))); 1414: return static_cast(__val); 1414: } 1414: 1414: 1414: 1414: 1414: extern template class collate; 1414: extern template class collate_byname; 1414: 1414: extern template 1414: const collate* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const collate& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: 1414: extern template class collate; 1414: extern template class collate_byname; 1414: 1414: extern template 1414: const collate* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const collate& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 898 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_classes.h" 2 3 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/locale" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/cwctype" 1 3 1414: # 55 "/usr/arm-linux-gnueabihf/include/c++/16/cwctype" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/wctype.h" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/wctype.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/wctype-wchar.h" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/bits/wctype-wchar.h" 3 1414: typedef unsigned long int wctype_t; 1414: # 56 "/usr/arm-linux-gnueabihf/include/bits/wctype-wchar.h" 3 1414: enum 1414: { 1414: __ISwupper = 0, 1414: __ISwlower = 1, 1414: __ISwalpha = 2, 1414: __ISwdigit = 3, 1414: __ISwxdigit = 4, 1414: __ISwspace = 5, 1414: __ISwprint = 6, 1414: __ISwgraph = 7, 1414: __ISwblank = 8, 1414: __ISwcntrl = 9, 1414: __ISwpunct = 10, 1414: __ISwalnum = 11, 1414: 1414: _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), 1414: _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), 1414: _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), 1414: _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), 1414: _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), 1414: _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), 1414: _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), 1414: _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), 1414: _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), 1414: _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), 1414: _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), 1414: _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) 1414: }; 1414: 1414: 1414: 1414: extern "C" { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int iswalnum (wint_t __wc) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: extern int iswalpha (wint_t __wc) noexcept (true); 1414: 1414: 1414: extern int iswcntrl (wint_t __wc) noexcept (true); 1414: 1414: 1414: 1414: extern int iswdigit (wint_t __wc) noexcept (true); 1414: 1414: 1414: 1414: extern int iswgraph (wint_t __wc) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int iswlower (wint_t __wc) noexcept (true); 1414: 1414: 1414: extern int iswprint (wint_t __wc) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int iswpunct (wint_t __wc) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int iswspace (wint_t __wc) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int iswupper (wint_t __wc) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int iswxdigit (wint_t __wc) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: extern int iswblank (wint_t __wc) noexcept (true); 1414: # 155 "/usr/arm-linux-gnueabihf/include/bits/wctype-wchar.h" 3 1414: extern wctype_t wctype (const char *__property) noexcept (true); 1414: 1414: 1414: 1414: extern int iswctype (wint_t __wc, wctype_t __desc) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern wint_t towlower (wint_t __wc) noexcept (true); 1414: 1414: 1414: extern wint_t towupper (wint_t __wc) noexcept (true); 1414: 1414: } 1414: # 39 "/usr/arm-linux-gnueabihf/include/wctype.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: extern "C" { 1414: 1414: 1414: 1414: typedef const __int32_t *wctrans_t; 1414: 1414: 1414: 1414: extern wctrans_t wctrans (const char *__property) noexcept (true); 1414: 1414: 1414: extern wint_t towctrans (wint_t __wc, wctrans_t __desc) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int iswalnum_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: extern int iswalpha_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: extern int iswcntrl_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: 1414: extern int iswdigit_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: 1414: extern int iswgraph_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int iswlower_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: extern int iswprint_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int iswpunct_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int iswspace_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int iswupper_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int iswxdigit_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: 1414: 1414: extern int iswblank_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: 1414: extern wctype_t wctype_l (const char *__property, locale_t __locale) 1414: noexcept (true); 1414: 1414: 1414: 1414: extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale) 1414: noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern wint_t towlower_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: extern wint_t towupper_l (wint_t __wc, locale_t __locale) noexcept (true); 1414: 1414: 1414: 1414: extern wctrans_t wctrans_l (const char *__property, locale_t __locale) 1414: noexcept (true); 1414: 1414: 1414: extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, 1414: locale_t __locale) noexcept (true); 1414: 1414: 1414: 1414: } 1414: # 56 "/usr/arm-linux-gnueabihf/include/c++/16/cwctype" 2 3 1414: # 82 "/usr/arm-linux-gnueabihf/include/c++/16/cwctype" 3 1414: namespace std 1414: { 1414: using ::wctrans_t; 1414: using ::wctype_t; 1414: using ::wint_t; 1414: 1414: using ::iswalnum; 1414: using ::iswalpha; 1414: 1414: using ::iswblank; 1414: 1414: using ::iswcntrl; 1414: using ::iswctype; 1414: using ::iswdigit; 1414: using ::iswgraph; 1414: using ::iswlower; 1414: using ::iswprint; 1414: using ::iswpunct; 1414: using ::iswspace; 1414: using ::iswupper; 1414: using ::iswxdigit; 1414: using ::towctrans; 1414: using ::towlower; 1414: using ::towupper; 1414: using ::wctrans; 1414: using ::wctype; 1414: } 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/ctype_base.h" 1 3 1414: # 36 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/ctype_base.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: struct ctype_base 1414: { 1414: 1414: typedef const int* __to_type; 1414: 1414: 1414: 1414: typedef unsigned short mask; 1414: static const mask upper = _ISupper; 1414: static const mask lower = _ISlower; 1414: static const mask alpha = _ISalpha; 1414: static const mask digit = _ISdigit; 1414: static const mask xdigit = _ISxdigit; 1414: static const mask space = _ISspace; 1414: static const mask print = _ISprint; 1414: static const mask graph = _ISalpha | _ISdigit | _ISpunct; 1414: static const mask cntrl = _IScntrl; 1414: static const mask punct = _ISpunct; 1414: static const mask alnum = _ISalpha | _ISdigit; 1414: 1414: static const mask blank = _ISblank; 1414: 1414: }; 1414: 1414: 1414: } 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 1 3 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/error_constants.h" 1 3 1414: # 36 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/error_constants.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: enum class errc 1414: { 1414: address_family_not_supported = 97, 1414: address_in_use = 98, 1414: address_not_available = 99, 1414: already_connected = 106, 1414: argument_list_too_long = 7, 1414: argument_out_of_domain = 33, 1414: bad_address = 14, 1414: bad_file_descriptor = 9, 1414: 1414: 1414: bad_message = 74, 1414: 1414: 1414: broken_pipe = 32, 1414: connection_aborted = 103, 1414: connection_already_in_progress = 114, 1414: connection_refused = 111, 1414: connection_reset = 104, 1414: cross_device_link = 18, 1414: destination_address_required = 89, 1414: device_or_resource_busy = 16, 1414: directory_not_empty = 39, 1414: executable_format_error = 8, 1414: file_exists = 17, 1414: file_too_large = 27, 1414: filename_too_long = 36, 1414: function_not_supported = 38, 1414: host_unreachable = 113, 1414: 1414: 1414: identifier_removed = 43, 1414: 1414: 1414: illegal_byte_sequence = 84, 1414: inappropriate_io_control_operation = 25, 1414: interrupted = 4, 1414: invalid_argument = 22, 1414: invalid_seek = 29, 1414: io_error = 5, 1414: is_a_directory = 21, 1414: message_size = 90, 1414: network_down = 100, 1414: network_reset = 102, 1414: network_unreachable = 101, 1414: no_buffer_space = 105, 1414: no_child_process = 10, 1414: 1414: 1414: no_link = 67, 1414: 1414: 1414: no_lock_available = 37, 1414: 1414: 1414: no_message_available = 61, 1414: 1414: 1414: no_message = 42, 1414: no_protocol_option = 92, 1414: no_space_on_device = 28, 1414: 1414: 1414: no_stream_resources = 63, 1414: 1414: 1414: no_such_device_or_address = 6, 1414: no_such_device = 19, 1414: no_such_file_or_directory = 2, 1414: no_such_process = 3, 1414: not_a_directory = 20, 1414: not_a_socket = 88, 1414: 1414: 1414: not_a_stream = 60, 1414: 1414: 1414: not_connected = 107, 1414: not_enough_memory = 12, 1414: 1414: 1414: not_supported = 95, 1414: 1414: 1414: 1414: operation_canceled = 125, 1414: 1414: 1414: operation_in_progress = 115, 1414: operation_not_permitted = 1, 1414: operation_not_supported = 95, 1414: operation_would_block = 11, 1414: 1414: 1414: owner_dead = 130, 1414: 1414: 1414: permission_denied = 13, 1414: 1414: 1414: protocol_error = 71, 1414: 1414: 1414: protocol_not_supported = 93, 1414: read_only_file_system = 30, 1414: resource_deadlock_would_occur = 35, 1414: resource_unavailable_try_again = 11, 1414: result_out_of_range = 34, 1414: 1414: 1414: state_not_recoverable = 131, 1414: 1414: 1414: 1414: stream_timeout = 62, 1414: 1414: 1414: 1414: text_file_busy = 26, 1414: 1414: 1414: timed_out = 110, 1414: too_many_files_open_in_system = 23, 1414: too_many_files_open = 24, 1414: too_many_links = 31, 1414: too_many_symbolic_link_levels = 40, 1414: 1414: 1414: value_too_large = 75, 1414: 1414: 1414: 1414: 1414: wrong_protocol_type = 91 1414: }; 1414: 1414: 1414: } 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/stdexcept" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/stdexcept" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_except.h" 1 3 1414: # 35 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_except.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 189 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_except.h" 3 1414: struct __cow_string 1414: { 1414: union { 1414: const char* _M_p; 1414: char _M_bytes[sizeof(const char*)]; 1414: }; 1414: 1414: __cow_string(); 1414: __cow_string(const std::string&); 1414: __cow_string(const char*, size_t); 1414: __cow_string(const __cow_string&) noexcept; 1414: __cow_string& operator=(const __cow_string&) noexcept; 1414: ~__cow_string(); 1414: 1414: __cow_string(__cow_string&&) noexcept; 1414: __cow_string& operator=(__cow_string&&) noexcept; 1414: 1414: }; 1414: 1414: 1414: typedef basic_string __sso_string; 1414: # 255 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_except.h" 3 1414: class logic_error : public exception 1414: { 1414: __cow_string _M_msg; 1414: 1414: public: 1414: # 287 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_except.h" 3 1414: explicit 1414: logic_error(const string& __arg) ; 1414: 1414: 1414: explicit 1414: logic_error(const char*) ; 1414: 1414: logic_error(logic_error&&) noexcept; 1414: logic_error& operator=(logic_error&&) noexcept; 1414: 1414: 1414: 1414: logic_error(const logic_error&) noexcept; 1414: logic_error& operator=(const logic_error&) noexcept; 1414: 1414: 1414: 1414: 1414: 1414: virtual ~logic_error() noexcept; 1414: 1414: 1414: 1414: virtual const char* 1414: what() const noexcept; 1414: 1414: 1414: 1414: 1414: 1414: 1414: }; 1414: 1414: 1414: 1414: class domain_error : public logic_error 1414: { 1414: public: 1414: # 340 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_except.h" 3 1414: explicit domain_error(const string& __arg) ; 1414: 1414: explicit domain_error(const char*) ; 1414: domain_error(const domain_error&) = default; 1414: domain_error& operator=(const domain_error&) = default; 1414: domain_error(domain_error&&) = default; 1414: domain_error& operator=(domain_error&&) = default; 1414: 1414: virtual ~domain_error() noexcept; 1414: 1414: }; 1414: 1414: 1414: class invalid_argument : public logic_error 1414: { 1414: public: 1414: # 372 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_except.h" 3 1414: explicit invalid_argument(const string& __arg) ; 1414: 1414: explicit invalid_argument(const char*) ; 1414: invalid_argument(const invalid_argument&) = default; 1414: invalid_argument& operator=(const invalid_argument&) = default; 1414: invalid_argument(invalid_argument&&) = default; 1414: invalid_argument& operator=(invalid_argument&&) = default; 1414: 1414: virtual ~invalid_argument() noexcept; 1414: 1414: }; 1414: 1414: 1414: 1414: class length_error : public logic_error 1414: { 1414: public: 1414: # 404 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_except.h" 3 1414: explicit length_error(const string& __arg) ; 1414: 1414: explicit length_error(const char*) ; 1414: length_error(const length_error&) = default; 1414: length_error& operator=(const length_error&) = default; 1414: length_error(length_error&&) = default; 1414: length_error& operator=(length_error&&) = default; 1414: 1414: virtual ~length_error() noexcept; 1414: 1414: }; 1414: 1414: 1414: 1414: class out_of_range : public logic_error 1414: { 1414: public: 1414: # 436 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_except.h" 3 1414: explicit out_of_range(const string& __arg) ; 1414: 1414: explicit out_of_range(const char*) ; 1414: out_of_range(const out_of_range&) = default; 1414: out_of_range& operator=(const out_of_range&) = default; 1414: out_of_range(out_of_range&&) = default; 1414: out_of_range& operator=(out_of_range&&) = default; 1414: 1414: virtual ~out_of_range() noexcept; 1414: 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: class runtime_error : public exception 1414: { 1414: __cow_string _M_msg; 1414: 1414: public: 1414: # 486 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_except.h" 3 1414: explicit 1414: runtime_error(const string& __arg) ; 1414: 1414: 1414: explicit 1414: runtime_error(const char*) ; 1414: 1414: runtime_error(runtime_error&&) noexcept; 1414: runtime_error& operator=(runtime_error&&) noexcept; 1414: 1414: 1414: 1414: runtime_error(const runtime_error&) noexcept; 1414: runtime_error& operator=(const runtime_error&) noexcept; 1414: 1414: 1414: 1414: 1414: 1414: virtual ~runtime_error() noexcept; 1414: 1414: 1414: 1414: virtual const char* 1414: what() const noexcept; 1414: 1414: 1414: 1414: 1414: 1414: 1414: }; 1414: 1414: 1414: class overflow_error : public runtime_error 1414: { 1414: public: 1414: # 539 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_except.h" 3 1414: explicit overflow_error(const string& __arg) ; 1414: 1414: explicit overflow_error(const char*) ; 1414: overflow_error(const overflow_error&) = default; 1414: overflow_error& operator=(const overflow_error&) = default; 1414: overflow_error(overflow_error&&) = default; 1414: overflow_error& operator=(overflow_error&&) = default; 1414: 1414: virtual ~overflow_error() noexcept; 1414: 1414: }; 1414: 1414: 1414: class underflow_error : public runtime_error 1414: { 1414: public: 1414: # 571 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_except.h" 3 1414: explicit underflow_error(const string& __arg) ; 1414: 1414: explicit underflow_error(const char*) ; 1414: underflow_error(const underflow_error&) = default; 1414: underflow_error& operator=(const underflow_error&) = default; 1414: underflow_error(underflow_error&&) = default; 1414: underflow_error& operator=(underflow_error&&) = default; 1414: 1414: virtual ~underflow_error() noexcept; 1414: 1414: }; 1414: 1414: 1414: 1414: 1414: } 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/stdexcept" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: class range_error : public runtime_error 1414: { 1414: public: 1414: # 68 "/usr/arm-linux-gnueabihf/include/c++/16/stdexcept" 3 1414: explicit range_error(const string& __arg) ; 1414: 1414: explicit range_error(const char*) ; 1414: range_error(const range_error&) = default; 1414: range_error& operator=(const range_error&) = default; 1414: range_error(range_error&&) = default; 1414: range_error& operator=(range_error&&) = default; 1414: 1414: virtual ~range_error() noexcept; 1414: 1414: }; 1414: 1414: 1414: 1414: 1414: } 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 2 3 1414: 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: class error_code; 1414: class error_condition; 1414: class system_error; 1414: 1414: 1414: template 1414: struct is_error_code_enum : public false_type { }; 1414: 1414: 1414: template 1414: struct is_error_condition_enum : public false_type { }; 1414: 1414: template<> 1414: struct is_error_condition_enum 1414: : public true_type { }; 1414: 1414: 1414: template 1414: inline constexpr bool is_error_code_enum_v = 1414: is_error_code_enum<_Tp>::value; 1414: template 1414: inline constexpr bool is_error_condition_enum_v = 1414: is_error_condition_enum<_Tp>::value; 1414: 1414: 1414: 1414: inline namespace _V2 { 1414: # 108 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: class error_category 1414: { 1414: public: 1414: constexpr error_category() noexcept = default; 1414: 1414: virtual ~error_category(); 1414: 1414: error_category(const error_category&) = delete; 1414: error_category& operator=(const error_category&) = delete; 1414: 1414: 1414: virtual const char* 1414: name() const noexcept = 0; 1414: 1414: 1414: 1414: 1414: 1414: 1414: private: 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: virtual __cow_string 1414: _M_message(int) const; 1414: 1414: public: 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: virtual string 1414: message(int) const = 0; 1414: # 146 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: public: 1414: 1414: virtual error_condition 1414: default_error_condition(int __i) const noexcept; 1414: 1414: 1414: virtual bool 1414: equivalent(int __i, const error_condition& __cond) const noexcept; 1414: 1414: 1414: virtual bool 1414: equivalent(const error_code& __code, int __i) const noexcept; 1414: 1414: 1414: [[__nodiscard__]] 1414: bool 1414: operator==(const error_category& __other) const noexcept 1414: { return this == &__other; } 1414: 1414: 1414: 1414: [[nodiscard]] 1414: strong_ordering 1414: operator<=>(const error_category& __rhs) const noexcept 1414: { return std::compare_three_way()(this, &__rhs); } 1414: # 180 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: }; 1414: 1414: 1414: 1414: 1414: [[__nodiscard__, __gnu__::__const__]] 1414: const error_category& 1414: generic_category() noexcept; 1414: 1414: 1414: [[__nodiscard__, __gnu__::__const__]] 1414: const error_category& 1414: system_category() noexcept; 1414: 1414: 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: namespace __adl_only 1414: { 1414: void make_error_code() = delete; 1414: void make_error_condition() = delete; 1414: } 1414: # 225 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: class error_code 1414: { 1414: template 1414: using _Check 1414: = __enable_if_t::value>; 1414: 1414: public: 1414: error_code() noexcept 1414: : _M_value(0), _M_cat(&system_category()) { } 1414: 1414: error_code(int __v, const error_category& __cat) noexcept 1414: : _M_value(__v), _M_cat(&__cat) { } 1414: 1414: 1414: template> 1414: error_code(_ErrorCodeEnum __e) noexcept 1414: { 1414: using __adl_only::make_error_code; 1414: *this = make_error_code(__e); 1414: } 1414: 1414: error_code(const error_code&) = default; 1414: error_code& operator=(const error_code&) = default; 1414: 1414: void 1414: assign(int __v, const error_category& __cat) noexcept 1414: { 1414: _M_value = __v; 1414: _M_cat = &__cat; 1414: } 1414: 1414: void 1414: clear() noexcept 1414: { assign(0, system_category()); } 1414: 1414: 1414: [[__nodiscard__]] 1414: int 1414: value() const noexcept { return _M_value; } 1414: 1414: 1414: [[__nodiscard__]] 1414: const error_category& 1414: category() const noexcept { return *_M_cat; } 1414: 1414: 1414: error_condition 1414: default_error_condition() const noexcept; 1414: 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: string 1414: message() const 1414: { return category().message(value()); } 1414: 1414: 1414: [[__nodiscard__]] 1414: explicit operator bool() const noexcept 1414: { return _M_value != 0; } 1414: 1414: 1414: private: 1414: int _M_value; 1414: const error_category* _M_cat; 1414: }; 1414: # 302 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: [[__nodiscard__]] 1414: inline error_code 1414: make_error_code(errc __e) noexcept 1414: { return error_code(static_cast(__e), generic_category()); } 1414: # 316 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: [[nodiscard]] 1414: inline strong_ordering 1414: operator<=>(const error_code& __lhs, const error_code& __rhs) noexcept 1414: { 1414: if (auto __c = __lhs.category() <=> __rhs.category(); __c != 0) 1414: return __c; 1414: return __lhs.value() <=> __rhs.value(); 1414: } 1414: # 339 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: template 1414: basic_ostream<_CharT, _Traits>& 1414: operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) 1414: { return (__os << __e.category().name() << ':' << __e.value()); } 1414: # 356 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: class error_condition 1414: { 1414: template 1414: using _Check 1414: = __enable_if_t::value>; 1414: 1414: public: 1414: 1414: error_condition() noexcept 1414: : _M_value(0), _M_cat(&generic_category()) { } 1414: 1414: 1414: error_condition(int __v, const error_category& __cat) noexcept 1414: : _M_value(__v), _M_cat(&__cat) { } 1414: 1414: 1414: template> 1414: error_condition(_ErrorConditionEnum __e) noexcept 1414: { 1414: using __adl_only::make_error_condition; 1414: *this = make_error_condition(__e); 1414: } 1414: 1414: error_condition(const error_condition&) = default; 1414: error_condition& operator=(const error_condition&) = default; 1414: 1414: 1414: void 1414: assign(int __v, const error_category& __cat) noexcept 1414: { 1414: _M_value = __v; 1414: _M_cat = &__cat; 1414: } 1414: 1414: 1414: void 1414: clear() noexcept 1414: { assign(0, generic_category()); } 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: int 1414: value() const noexcept { return _M_value; } 1414: 1414: 1414: [[__nodiscard__]] 1414: const error_category& 1414: category() const noexcept { return *_M_cat; } 1414: 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: string 1414: message() const 1414: { return category().message(value()); } 1414: 1414: 1414: [[__nodiscard__]] 1414: explicit operator bool() const noexcept 1414: { return _M_value != 0; } 1414: 1414: 1414: private: 1414: int _M_value; 1414: const error_category* _M_cat; 1414: }; 1414: # 435 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: [[__nodiscard__]] 1414: inline error_condition 1414: make_error_condition(errc __e) noexcept 1414: { return error_condition(static_cast(__e), generic_category()); } 1414: # 449 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: [[__nodiscard__]] 1414: inline bool 1414: operator==(const error_code& __lhs, const error_code& __rhs) noexcept 1414: { 1414: return __lhs.category() == __rhs.category() 1414: && __lhs.value() == __rhs.value(); 1414: } 1414: # 465 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: [[__nodiscard__]] 1414: inline bool 1414: operator==(const error_code& __lhs, const error_condition& __rhs) noexcept 1414: { 1414: return __lhs.category().equivalent(__lhs.value(), __rhs) 1414: || __rhs.category().equivalent(__lhs, __rhs.value()); 1414: } 1414: # 480 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: [[__nodiscard__]] 1414: inline bool 1414: operator==(const error_condition& __lhs, 1414: const error_condition& __rhs) noexcept 1414: { 1414: return __lhs.category() == __rhs.category() 1414: && __lhs.value() == __rhs.value(); 1414: } 1414: # 498 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: [[nodiscard]] 1414: inline strong_ordering 1414: operator<=>(const error_condition& __lhs, 1414: const error_condition& __rhs) noexcept 1414: { 1414: if (auto __c = __lhs.category() <=> __rhs.category(); __c != 0) 1414: return __c; 1414: return __lhs.value() <=> __rhs.value(); 1414: } 1414: # 558 "/usr/arm-linux-gnueabihf/include/c++/16/system_error" 3 1414: class system_error : public std::runtime_error 1414: { 1414: private: 1414: error_code _M_code; 1414: 1414: public: 1414: system_error(error_code __ec = error_code()) 1414: : runtime_error(__ec.message()), _M_code(__ec) { } 1414: 1414: system_error(error_code __ec, const string& __what) 1414: : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } 1414: 1414: system_error(error_code __ec, const char* __what) 1414: : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } 1414: 1414: system_error(int __v, const error_category& __ecat, const char* __what) 1414: : system_error(error_code(__v, __ecat), __what) { } 1414: 1414: system_error(int __v, const error_category& __ecat) 1414: : runtime_error(error_code(__v, __ecat).message()), 1414: _M_code(__v, __ecat) { } 1414: 1414: system_error(int __v, const error_category& __ecat, const string& __what) 1414: : runtime_error(__what + (": " + error_code(__v, __ecat).message())), 1414: _M_code(__v, __ecat) { } 1414: 1414: 1414: system_error (const system_error &) = default; 1414: system_error &operator= (const system_error &) = default; 1414: 1414: 1414: virtual ~system_error() noexcept; 1414: 1414: const error_code& 1414: code() const noexcept { return _M_code; } 1414: }; 1414: 1414: 1414: } 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: template<> 1414: struct hash 1414: : public __hash_base 1414: { 1414: size_t 1414: operator()(const error_code& __e) const noexcept 1414: { 1414: const size_t __tmp = std::_Hash_impl::hash(__e.value()); 1414: return std::_Hash_impl::__hash_combine(&__e.category(), __tmp); 1414: } 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template<> 1414: struct hash 1414: : public __hash_base 1414: { 1414: size_t 1414: operator()(const error_condition& __e) const noexcept 1414: { 1414: const size_t __tmp = std::_Hash_impl::hash(__e.value()); 1414: return std::_Hash_impl::__hash_combine(&__e.category(), __tmp); 1414: } 1414: }; 1414: 1414: 1414: 1414: } 1414: # 49 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 2 3 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: enum __attribute__((__flag_enum__)) _Ios_Fmtflags 1414: { 1414: _S_boolalpha = 1L << 0, 1414: _S_dec = 1L << 1, 1414: _S_fixed = 1L << 2, 1414: _S_hex = 1L << 3, 1414: _S_internal = 1L << 4, 1414: _S_left = 1L << 5, 1414: _S_oct = 1L << 6, 1414: _S_right = 1L << 7, 1414: _S_scientific = 1L << 8, 1414: _S_showbase = 1L << 9, 1414: _S_showpoint = 1L << 10, 1414: _S_showpos = 1L << 11, 1414: _S_skipws = 1L << 12, 1414: _S_unitbuf = 1L << 13, 1414: _S_uppercase = 1L << 14, 1414: _S_adjustfield = _S_left | _S_right | _S_internal, 1414: _S_basefield = _S_dec | _S_oct | _S_hex, 1414: _S_floatfield = _S_scientific | _S_fixed, 1414: _S_ios_fmtflags_end __attribute__((__unused__)) = 1L << 16, 1414: _S_ios_fmtflags_max __attribute__((__unused__)) = 0x7fffffff, 1414: _S_ios_fmtflags_min __attribute__((__unused__)) = ~0x7fffffff 1414: }; 1414: 1414: [[__nodiscard__]] constexpr 1414: inline _Ios_Fmtflags 1414: operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) noexcept 1414: { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } 1414: 1414: [[__nodiscard__]] constexpr 1414: inline _Ios_Fmtflags 1414: operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) noexcept 1414: { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } 1414: 1414: [[__nodiscard__]] constexpr 1414: inline _Ios_Fmtflags 1414: operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) noexcept 1414: { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } 1414: 1414: [[__nodiscard__]] constexpr 1414: inline _Ios_Fmtflags 1414: operator~(_Ios_Fmtflags __a) noexcept 1414: { return _Ios_Fmtflags(~static_cast(__a)); } 1414: 1414: constexpr 1414: inline const _Ios_Fmtflags& 1414: operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) noexcept 1414: { return __a = __a | __b; } 1414: 1414: constexpr 1414: inline const _Ios_Fmtflags& 1414: operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) noexcept 1414: { return __a = __a & __b; } 1414: 1414: constexpr 1414: inline const _Ios_Fmtflags& 1414: operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) noexcept 1414: { return __a = __a ^ __b; } 1414: # 127 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: enum __attribute__((__flag_enum__)) _Ios_Openmode 1414: { 1414: _S_app = 1L << 0, 1414: _S_ate = 1L << 1, 1414: _S_bin = 1L << 2, 1414: _S_in = 1L << 3, 1414: _S_out = 1L << 4, 1414: _S_trunc = 1L << 5, 1414: _S_noreplace __attribute__((__unused__)) = 1L << 6, 1414: _S_ios_openmode_end __attribute__((__unused__)) = 1L << 16, 1414: _S_ios_openmode_max __attribute__((__unused__)) = 0x7fffffff, 1414: _S_ios_openmode_min __attribute__((__unused__)) = ~0x7fffffff 1414: }; 1414: 1414: 1414: 1414: [[__nodiscard__]] constexpr 1414: inline _Ios_Openmode 1414: operator&(_Ios_Openmode __a, _Ios_Openmode __b) noexcept 1414: { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } 1414: 1414: [[__nodiscard__]] constexpr 1414: inline _Ios_Openmode 1414: operator|(_Ios_Openmode __a, _Ios_Openmode __b) noexcept 1414: { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } 1414: 1414: [[__nodiscard__]] constexpr 1414: inline _Ios_Openmode 1414: operator^(_Ios_Openmode __a, _Ios_Openmode __b) noexcept 1414: { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } 1414: 1414: [[__nodiscard__]] constexpr 1414: inline _Ios_Openmode 1414: operator~(_Ios_Openmode __a) noexcept 1414: { return _Ios_Openmode(~static_cast(__a)); } 1414: 1414: constexpr 1414: inline const _Ios_Openmode& 1414: operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) noexcept 1414: { return __a = __a | __b; } 1414: 1414: constexpr 1414: inline const _Ios_Openmode& 1414: operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) noexcept 1414: { return __a = __a & __b; } 1414: 1414: constexpr 1414: inline const _Ios_Openmode& 1414: operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) noexcept 1414: { return __a = __a ^ __b; } 1414: 1414: 1414: enum __attribute__((__flag_enum__)) _Ios_Iostate 1414: { 1414: _S_goodbit = 0, 1414: _S_badbit = 1L << 0, 1414: _S_eofbit = 1L << 1, 1414: _S_failbit = 1L << 2, 1414: _S_ios_iostate_end __attribute__((__unused__)) = 1L << 16, 1414: _S_ios_iostate_max __attribute__((__unused__)) = 0x7fffffff, 1414: _S_ios_iostate_min __attribute__((__unused__)) = ~0x7fffffff 1414: }; 1414: 1414: [[__nodiscard__]] constexpr 1414: inline _Ios_Iostate 1414: operator&(_Ios_Iostate __a, _Ios_Iostate __b) noexcept 1414: { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } 1414: 1414: [[__nodiscard__]] constexpr 1414: inline _Ios_Iostate 1414: operator|(_Ios_Iostate __a, _Ios_Iostate __b) noexcept 1414: { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } 1414: 1414: [[__nodiscard__]] constexpr 1414: inline _Ios_Iostate 1414: operator^(_Ios_Iostate __a, _Ios_Iostate __b) noexcept 1414: { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } 1414: 1414: [[__nodiscard__]] constexpr 1414: inline _Ios_Iostate 1414: operator~(_Ios_Iostate __a) noexcept 1414: { return _Ios_Iostate(~static_cast(__a)); } 1414: 1414: constexpr 1414: inline const _Ios_Iostate& 1414: operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) noexcept 1414: { return __a = __a | __b; } 1414: 1414: constexpr 1414: inline const _Ios_Iostate& 1414: operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) noexcept 1414: { return __a = __a & __b; } 1414: 1414: constexpr 1414: inline const _Ios_Iostate& 1414: operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) noexcept 1414: { return __a = __a ^ __b; } 1414: 1414: 1414: enum _Ios_Seekdir 1414: { 1414: _S_beg = 0, 1414: _S_cur = 1, 1414: _S_end = 2, 1414: _S_ios_seekdir_end __attribute__((__unused__)) = 1L << 16 1414: }; 1414: 1414: 1414: 1414: enum class io_errc { stream = 1 }; 1414: 1414: template <> struct is_error_code_enum : public true_type { }; 1414: 1414: [[__nodiscard__, __gnu__::__const__]] 1414: const error_category& 1414: iostream_category() noexcept; 1414: 1414: [[__nodiscard__]] 1414: inline error_code 1414: make_error_code(io_errc __e) noexcept 1414: { return error_code(static_cast(__e), iostream_category()); } 1414: 1414: [[__nodiscard__]] 1414: inline error_condition 1414: make_error_condition(io_errc __e) noexcept 1414: { return error_condition(static_cast(__e), iostream_category()); } 1414: # 265 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: class ios_base 1414: { 1414: # 283 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: public: 1414: # 292 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: class __attribute ((__abi_tag__ ("cxx11"))) failure : public system_error 1414: { 1414: public: 1414: explicit 1414: failure(const string& __str); 1414: 1414: 1414: explicit 1414: failure(const string&, const error_code&); 1414: 1414: explicit 1414: failure(const char*, const error_code& = io_errc::stream); 1414: 1414: 1414: virtual 1414: ~failure() throw(); 1414: 1414: virtual const char* 1414: what() const throw(); 1414: }; 1414: # 378 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: typedef _Ios_Fmtflags fmtflags; 1414: 1414: 1414: static const fmtflags boolalpha = _S_boolalpha; 1414: 1414: 1414: static const fmtflags dec = _S_dec; 1414: 1414: 1414: static const fmtflags fixed = _S_fixed; 1414: 1414: 1414: static const fmtflags hex = _S_hex; 1414: 1414: 1414: 1414: 1414: static const fmtflags internal = _S_internal; 1414: 1414: 1414: 1414: static const fmtflags left = _S_left; 1414: 1414: 1414: static const fmtflags oct = _S_oct; 1414: 1414: 1414: 1414: static const fmtflags right = _S_right; 1414: 1414: 1414: static const fmtflags scientific = _S_scientific; 1414: 1414: 1414: 1414: static const fmtflags showbase = _S_showbase; 1414: 1414: 1414: 1414: static const fmtflags showpoint = _S_showpoint; 1414: 1414: 1414: static const fmtflags showpos = _S_showpos; 1414: 1414: 1414: static const fmtflags skipws = _S_skipws; 1414: 1414: 1414: static const fmtflags unitbuf = _S_unitbuf; 1414: 1414: 1414: 1414: static const fmtflags uppercase = _S_uppercase; 1414: 1414: 1414: static const fmtflags adjustfield = _S_adjustfield; 1414: 1414: 1414: static const fmtflags basefield = _S_basefield; 1414: 1414: 1414: static const fmtflags floatfield = _S_floatfield; 1414: # 453 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: typedef _Ios_Iostate iostate; 1414: 1414: 1414: 1414: static const iostate badbit = _S_badbit; 1414: 1414: 1414: static const iostate eofbit = _S_eofbit; 1414: 1414: 1414: 1414: 1414: static const iostate failbit = _S_failbit; 1414: 1414: 1414: static const iostate goodbit = _S_goodbit; 1414: # 484 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: typedef _Ios_Openmode openmode; 1414: 1414: 1414: static const openmode app = _S_app; 1414: 1414: 1414: static const openmode ate = _S_ate; 1414: 1414: 1414: 1414: 1414: static const openmode binary = _S_bin; 1414: 1414: 1414: static const openmode in = _S_in; 1414: 1414: 1414: static const openmode out = _S_out; 1414: 1414: 1414: static const openmode trunc = _S_trunc; 1414: 1414: static const openmode __noreplace = _S_noreplace; 1414: # 523 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: typedef _Ios_Seekdir seekdir; 1414: 1414: 1414: static const seekdir beg = _S_beg; 1414: 1414: 1414: static const seekdir cur = _S_cur; 1414: 1414: 1414: static const seekdir end = _S_end; 1414: # 556 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: enum event 1414: { 1414: erase_event, 1414: imbue_event, 1414: copyfmt_event 1414: }; 1414: # 573 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: typedef void (*event_callback) (event __e, ios_base& __b, int __i); 1414: # 585 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: void 1414: register_callback(event_callback __fn, int __index); 1414: 1414: protected: 1414: streamsize _M_precision; 1414: streamsize _M_width; 1414: fmtflags _M_flags; 1414: iostate _M_exception; 1414: iostate _M_streambuf_state; 1414: 1414: 1414: 1414: struct _Callback_list 1414: { 1414: 1414: _Callback_list* _M_next; 1414: ios_base::event_callback _M_fn; 1414: int _M_index; 1414: _Atomic_word _M_refcount; 1414: 1414: _Callback_list(ios_base::event_callback __fn, int __index, 1414: _Callback_list* __cb) 1414: : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } 1414: 1414: void 1414: _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 1414: 1414: 1414: int 1414: _M_remove_reference() 1414: { 1414: 1414: ; 1414: int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); 1414: if (__res == 0) 1414: { 1414: ; 1414: } 1414: return __res; 1414: } 1414: }; 1414: 1414: _Callback_list* _M_callbacks; 1414: 1414: void 1414: _M_call_callbacks(event __ev) throw(); 1414: 1414: void 1414: _M_dispose_callbacks(void) throw(); 1414: 1414: 1414: struct _Words 1414: { 1414: void* _M_pword; 1414: long _M_iword; 1414: _Words() : _M_pword(0), _M_iword(0) { } 1414: }; 1414: 1414: 1414: _Words _M_word_zero; 1414: 1414: 1414: 1414: enum { _S_local_word_size = 8 }; 1414: _Words _M_local_word[_S_local_word_size]; 1414: 1414: 1414: int _M_word_size; 1414: _Words* _M_word; 1414: 1414: _Words& 1414: _M_grow_words(int __index, bool __iword); 1414: 1414: 1414: locale _M_ios_locale; 1414: 1414: void 1414: _M_init() throw(); 1414: 1414: public: 1414: 1414: 1414: 1414: 1414: 1414: class Init 1414: { 1414: friend class ios_base; 1414: public: 1414: Init(); 1414: ~Init(); 1414: 1414: 1414: Init(const Init&) = default; 1414: Init& operator=(const Init&) = default; 1414: 1414: 1414: private: 1414: static _Atomic_word _S_refcount; 1414: static bool _S_synced_with_stdio; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: fmtflags 1414: flags() const 1414: { return _M_flags; } 1414: # 704 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: fmtflags 1414: flags(fmtflags __fmtfl) 1414: { 1414: fmtflags __old = _M_flags; 1414: _M_flags = __fmtfl; 1414: return __old; 1414: } 1414: # 720 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: fmtflags 1414: setf(fmtflags __fmtfl) 1414: { 1414: fmtflags __old = _M_flags; 1414: _M_flags |= __fmtfl; 1414: return __old; 1414: } 1414: # 737 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: fmtflags 1414: setf(fmtflags __fmtfl, fmtflags __mask) 1414: { 1414: fmtflags __old = _M_flags; 1414: _M_flags &= ~__mask; 1414: _M_flags |= (__fmtfl & __mask); 1414: return __old; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: void 1414: unsetf(fmtflags __mask) 1414: { _M_flags &= ~__mask; } 1414: # 763 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: [[__nodiscard__]] 1414: streamsize 1414: precision() const 1414: { return _M_precision; } 1414: 1414: 1414: 1414: 1414: 1414: 1414: streamsize 1414: precision(streamsize __prec) 1414: { 1414: streamsize __old = _M_precision; 1414: _M_precision = __prec; 1414: return __old; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: streamsize 1414: width() const 1414: { return _M_width; } 1414: 1414: 1414: 1414: 1414: 1414: 1414: streamsize 1414: width(streamsize __wide) 1414: { 1414: streamsize __old = _M_width; 1414: _M_width = __wide; 1414: return __old; 1414: } 1414: # 816 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: static bool 1414: sync_with_stdio(bool __sync = true); 1414: # 828 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: locale 1414: imbue(const locale& __loc) throw(); 1414: # 839 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: [[__nodiscard__]] 1414: locale 1414: getloc() const 1414: { return _M_ios_locale; } 1414: # 851 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: const locale& 1414: _M_getloc() const 1414: { return _M_ios_locale; } 1414: # 870 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: static int 1414: xalloc() throw(); 1414: # 886 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: long& 1414: iword(int __ix) 1414: { 1414: _Words& __word = ((unsigned)__ix < (unsigned)_M_word_size) 1414: ? _M_word[__ix] : _M_grow_words(__ix, true); 1414: return __word._M_iword; 1414: } 1414: # 907 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: void*& 1414: pword(int __ix) 1414: { 1414: _Words& __word = ((unsigned)__ix < (unsigned)_M_word_size) 1414: ? _M_word[__ix] : _M_grow_words(__ix, false); 1414: return __word._M_pword; 1414: } 1414: # 924 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: virtual ~ios_base(); 1414: 1414: protected: 1414: ios_base() throw (); 1414: # 938 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ios_base.h" 3 1414: public: 1414: ios_base(const ios_base&) = delete; 1414: 1414: ios_base& 1414: operator=(const ios_base&) = delete; 1414: 1414: protected: 1414: void 1414: _M_move(ios_base&) noexcept; 1414: 1414: void 1414: _M_swap(ios_base& __rhs) noexcept; 1414: 1414: }; 1414: 1414: 1414: 1414: inline ios_base& 1414: boolalpha(ios_base& __base) 1414: { 1414: __base.setf(ios_base::boolalpha); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: noboolalpha(ios_base& __base) 1414: { 1414: __base.unsetf(ios_base::boolalpha); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: showbase(ios_base& __base) 1414: { 1414: __base.setf(ios_base::showbase); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: noshowbase(ios_base& __base) 1414: { 1414: __base.unsetf(ios_base::showbase); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: showpoint(ios_base& __base) 1414: { 1414: __base.setf(ios_base::showpoint); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: noshowpoint(ios_base& __base) 1414: { 1414: __base.unsetf(ios_base::showpoint); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: showpos(ios_base& __base) 1414: { 1414: __base.setf(ios_base::showpos); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: noshowpos(ios_base& __base) 1414: { 1414: __base.unsetf(ios_base::showpos); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: skipws(ios_base& __base) 1414: { 1414: __base.setf(ios_base::skipws); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: noskipws(ios_base& __base) 1414: { 1414: __base.unsetf(ios_base::skipws); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: uppercase(ios_base& __base) 1414: { 1414: __base.setf(ios_base::uppercase); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: nouppercase(ios_base& __base) 1414: { 1414: __base.unsetf(ios_base::uppercase); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: unitbuf(ios_base& __base) 1414: { 1414: __base.setf(ios_base::unitbuf); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: nounitbuf(ios_base& __base) 1414: { 1414: __base.unsetf(ios_base::unitbuf); 1414: return __base; 1414: } 1414: 1414: 1414: 1414: inline ios_base& 1414: internal(ios_base& __base) 1414: { 1414: __base.setf(ios_base::internal, ios_base::adjustfield); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: left(ios_base& __base) 1414: { 1414: __base.setf(ios_base::left, ios_base::adjustfield); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: right(ios_base& __base) 1414: { 1414: __base.setf(ios_base::right, ios_base::adjustfield); 1414: return __base; 1414: } 1414: 1414: 1414: 1414: inline ios_base& 1414: dec(ios_base& __base) 1414: { 1414: __base.setf(ios_base::dec, ios_base::basefield); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: hex(ios_base& __base) 1414: { 1414: __base.setf(ios_base::hex, ios_base::basefield); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: oct(ios_base& __base) 1414: { 1414: __base.setf(ios_base::oct, ios_base::basefield); 1414: return __base; 1414: } 1414: 1414: 1414: 1414: inline ios_base& 1414: fixed(ios_base& __base) 1414: { 1414: __base.setf(ios_base::fixed, ios_base::floatfield); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: scientific(ios_base& __base) 1414: { 1414: __base.setf(ios_base::scientific, ios_base::floatfield); 1414: return __base; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: inline ios_base& 1414: hexfloat(ios_base& __base) 1414: { 1414: __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); 1414: return __base; 1414: } 1414: 1414: 1414: inline ios_base& 1414: defaultfloat(ios_base& __base) 1414: { 1414: __base.unsetf(ios_base::floatfield); 1414: return __base; 1414: } 1414: 1414: 1414: 1414: } 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 1 3 1414: # 49 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: template 1414: streamsize 1414: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, 1414: basic_streambuf<_CharT, _Traits>*, bool&); 1414: # 125 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: template 1414: class basic_streambuf 1414: { 1414: public: 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef _Traits traits_type; 1414: typedef typename traits_type::int_type int_type; 1414: typedef typename traits_type::pos_type pos_type; 1414: typedef typename traits_type::off_type off_type; 1414: 1414: 1414: 1414: 1414: typedef basic_streambuf __streambuf_type; 1414: 1414: 1414: friend class basic_ios; 1414: friend class basic_istream; 1414: friend class basic_ostream; 1414: friend class istreambuf_iterator; 1414: friend class ostreambuf_iterator; 1414: 1414: friend streamsize 1414: __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); 1414: 1414: template 1414: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1414: _CharT2*>::__type 1414: __copy_move_a2(istreambuf_iterator<_CharT2>, 1414: istreambuf_iterator<_CharT2>, _CharT2*); 1414: 1414: template 1414: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1414: istreambuf_iterator<_CharT2> >::__type 1414: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 1414: const _CharT2&); 1414: 1414: template 1414: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1414: void>::__type 1414: advance(istreambuf_iterator<_CharT2>&, _Distance); 1414: 1414: friend void __istream_extract(istream&, char*, streamsize); 1414: 1414: template 1414: friend basic_istream<_CharT2, _Traits2>& 1414: operator>>(basic_istream<_CharT2, _Traits2>&, 1414: basic_string<_CharT2, _Traits2, _Alloc>&); 1414: 1414: template 1414: friend basic_istream<_CharT2, _Traits2>& 1414: getline(basic_istream<_CharT2, _Traits2>&, 1414: basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); 1414: 1414: protected: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: char_type* _M_in_beg; 1414: char_type* _M_in_cur; 1414: char_type* _M_in_end; 1414: char_type* _M_out_beg; 1414: char_type* _M_out_cur; 1414: char_type* _M_out_end; 1414: 1414: 1414: locale _M_buf_locale; 1414: 1414: public: 1414: 1414: virtual 1414: ~basic_streambuf() 1414: { } 1414: # 217 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: locale 1414: pubimbue(const locale& __loc) 1414: { 1414: locale __tmp(this->getloc()); 1414: this->imbue(__loc); 1414: _M_buf_locale = __loc; 1414: return __tmp; 1414: } 1414: # 234 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: locale 1414: getloc() const 1414: { return _M_buf_locale; } 1414: # 247 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: basic_streambuf* 1414: pubsetbuf(char_type* __s, streamsize __n) 1414: { return this->setbuf(__s, __n); } 1414: # 259 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: pos_type 1414: pubseekoff(off_type __off, ios_base::seekdir __way, 1414: ios_base::openmode __mode = ios_base::in | ios_base::out) 1414: { return this->seekoff(__off, __way, __mode); } 1414: # 271 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: pos_type 1414: pubseekpos(pos_type __sp, 1414: ios_base::openmode __mode = ios_base::in | ios_base::out) 1414: { return this->seekpos(__sp, __mode); } 1414: 1414: 1414: 1414: 1414: int 1414: pubsync() { return this->sync(); } 1414: # 292 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: streamsize 1414: in_avail() 1414: { 1414: const streamsize __ret = this->egptr() - this->gptr(); 1414: return __ret ? __ret : this->showmanyc(); 1414: } 1414: # 306 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: int_type 1414: snextc() 1414: { 1414: int_type __ret = traits_type::eof(); 1414: if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), 1414: __ret), true)) 1414: __ret = this->sgetc(); 1414: return __ret; 1414: } 1414: # 324 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: int_type 1414: sbumpc() 1414: { 1414: int_type __ret; 1414: if (__builtin_expect(this->gptr() < this->egptr(), true)) 1414: { 1414: __ret = traits_type::to_int_type(*this->gptr()); 1414: this->gbump(1); 1414: } 1414: else 1414: __ret = this->uflow(); 1414: return __ret; 1414: } 1414: # 346 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: int_type 1414: sgetc() 1414: { 1414: int_type __ret; 1414: if (__builtin_expect(this->gptr() < this->egptr(), true)) 1414: __ret = traits_type::to_int_type(*this->gptr()); 1414: else 1414: __ret = this->underflow(); 1414: return __ret; 1414: } 1414: # 365 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: streamsize 1414: sgetn(char_type* __s, streamsize __n) 1414: { return this->xsgetn(__s, __n); } 1414: # 380 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: int_type 1414: sputbackc(char_type __c) 1414: { 1414: int_type __ret; 1414: const bool __testpos = this->eback() < this->gptr(); 1414: if (__builtin_expect(!__testpos || 1414: !traits_type::eq(__c, this->gptr()[-1]), false)) 1414: __ret = this->pbackfail(traits_type::to_int_type(__c)); 1414: else 1414: { 1414: this->gbump(-1); 1414: __ret = traits_type::to_int_type(*this->gptr()); 1414: } 1414: return __ret; 1414: } 1414: # 405 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: int_type 1414: sungetc() 1414: { 1414: int_type __ret; 1414: if (__builtin_expect(this->eback() < this->gptr(), true)) 1414: { 1414: this->gbump(-1); 1414: __ret = traits_type::to_int_type(*this->gptr()); 1414: } 1414: else 1414: __ret = this->pbackfail(); 1414: return __ret; 1414: } 1414: # 432 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: int_type 1414: sputc(char_type __c) 1414: { 1414: int_type __ret; 1414: if (__builtin_expect(this->pptr() < this->epptr(), true)) 1414: { 1414: *this->pptr() = __c; 1414: this->pbump(1); 1414: __ret = traits_type::to_int_type(__c); 1414: } 1414: else 1414: __ret = this->overflow(traits_type::to_int_type(__c)); 1414: return __ret; 1414: } 1414: # 458 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: streamsize 1414: sputn(const char_type* __s, streamsize __n) 1414: { return this->xsputn(__s, __n); } 1414: 1414: protected: 1414: # 472 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: basic_streambuf() 1414: : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), 1414: _M_out_beg(0), _M_out_cur(0), _M_out_end(0), 1414: _M_buf_locale(locale()) 1414: { } 1414: # 490 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: char_type* 1414: eback() const { return _M_in_beg; } 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wnull-dereference" 1414: char_type* 1414: gptr() const { return _M_in_cur; } 1414: 1414: char_type* 1414: egptr() const { return _M_in_end; } 1414: # 510 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: void 1414: gbump(int __n) { _M_in_cur += __n; } 1414: #pragma GCC diagnostic pop 1414: # 522 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: void 1414: setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) 1414: { 1414: _M_in_beg = __gbeg; 1414: _M_in_cur = __gnext; 1414: _M_in_end = __gend; 1414: } 1414: # 542 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: char_type* 1414: pbase() const { return _M_out_beg; } 1414: 1414: char_type* 1414: pptr() const { return _M_out_cur; } 1414: 1414: char_type* 1414: epptr() const { return _M_out_end; } 1414: # 558 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: void 1414: pbump(int __n) { _M_out_cur += __n; } 1414: # 568 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: void 1414: setp(char_type* __pbeg, char_type* __pend) 1414: { 1414: _M_out_beg = _M_out_cur = __pbeg; 1414: _M_out_end = __pend; 1414: } 1414: # 589 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: virtual void 1414: imbue(const locale& __loc __attribute__ ((__unused__))) 1414: { } 1414: # 604 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: virtual basic_streambuf* 1414: setbuf(char_type*, streamsize) 1414: { return this; } 1414: # 615 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: virtual pos_type 1414: seekoff(off_type, ios_base::seekdir, 1414: ios_base::openmode = ios_base::in | ios_base::out) 1414: { return pos_type(off_type(-1)); } 1414: # 627 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: virtual pos_type 1414: seekpos(pos_type, 1414: ios_base::openmode = ios_base::in | ios_base::out) 1414: { return pos_type(off_type(-1)); } 1414: # 640 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: virtual int 1414: sync() { return 0; } 1414: # 662 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: virtual streamsize 1414: showmanyc() { return 0; } 1414: # 678 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: virtual streamsize 1414: xsgetn(char_type* __s, streamsize __n); 1414: # 700 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: virtual int_type 1414: underflow() 1414: { return traits_type::eof(); } 1414: # 713 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: virtual int_type 1414: uflow() 1414: { 1414: int_type __ret = traits_type::eof(); 1414: const bool __testeof = traits_type::eq_int_type(this->underflow(), 1414: __ret); 1414: if (!__testeof) 1414: { 1414: __ret = traits_type::to_int_type(*this->gptr()); 1414: this->gbump(1); 1414: } 1414: return __ret; 1414: } 1414: # 737 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: virtual int_type 1414: pbackfail(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 1414: { return traits_type::eof(); } 1414: # 755 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: virtual streamsize 1414: xsputn(const char_type* __s, streamsize __n); 1414: # 781 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: virtual int_type 1414: overflow(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 1414: { return traits_type::eof(); } 1414: # 808 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 3 1414: void 1414: __safe_gbump(streamsize __n) { _M_in_cur += __n; } 1414: 1414: void 1414: __safe_pbump(streamsize __n) { _M_out_cur += __n; } 1414: 1414: 1414: 1414: 1414: protected: 1414: 1414: basic_streambuf(const basic_streambuf&); 1414: 1414: basic_streambuf& 1414: operator=(const basic_streambuf&); 1414: 1414: 1414: void 1414: swap(basic_streambuf& __sb) 1414: { 1414: std::swap(_M_in_beg, __sb._M_in_beg); 1414: std::swap(_M_in_cur, __sb._M_in_cur); 1414: std::swap(_M_in_end, __sb._M_in_end); 1414: std::swap(_M_out_beg, __sb._M_out_beg); 1414: std::swap(_M_out_cur, __sb._M_out_cur); 1414: std::swap(_M_out_end, __sb._M_out_end); 1414: std::swap(_M_buf_locale, __sb._M_buf_locale); 1414: } 1414: 1414: }; 1414: 1414: 1414: template 1414: std::basic_streambuf<_CharT, _Traits>:: 1414: basic_streambuf(const basic_streambuf&) = default; 1414: 1414: template 1414: std::basic_streambuf<_CharT, _Traits>& 1414: std::basic_streambuf<_CharT, _Traits>:: 1414: operator=(const basic_streambuf&) = default; 1414: 1414: 1414: 1414: template<> 1414: streamsize 1414: __copy_streambufs_eof(basic_streambuf* __sbin, 1414: basic_streambuf* __sbout, bool& __ineof); 1414: 1414: template<> 1414: streamsize 1414: __copy_streambufs_eof(basic_streambuf* __sbin, 1414: basic_streambuf* __sbout, bool& __ineof); 1414: 1414: 1414: 1414: 1414: 1414: } 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/streambuf.tcc" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/streambuf.tcc" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: streamsize 1414: basic_streambuf<_CharT, _Traits>:: 1414: xsgetn(char_type* __s, streamsize __n) 1414: { 1414: streamsize __ret = 0; 1414: while (__ret < __n) 1414: { 1414: const streamsize __buf_len = this->egptr() - this->gptr(); 1414: if (__buf_len) 1414: { 1414: const streamsize __remaining = __n - __ret; 1414: const streamsize __len = std::min(__buf_len, __remaining); 1414: traits_type::copy(__s, this->gptr(), __len); 1414: __ret += __len; 1414: __s += __len; 1414: this->__safe_gbump(__len); 1414: } 1414: 1414: if (__ret < __n) 1414: { 1414: const int_type __c = this->uflow(); 1414: if (!traits_type::eq_int_type(__c, traits_type::eof())) 1414: { 1414: traits_type::assign(*__s++, traits_type::to_char_type(__c)); 1414: ++__ret; 1414: } 1414: else 1414: break; 1414: } 1414: } 1414: return __ret; 1414: } 1414: 1414: template 1414: streamsize 1414: basic_streambuf<_CharT, _Traits>:: 1414: xsputn(const char_type* __s, streamsize __n) 1414: { 1414: streamsize __ret = 0; 1414: while (__ret < __n) 1414: { 1414: const streamsize __buf_len = this->epptr() - this->pptr(); 1414: if (__buf_len) 1414: { 1414: const streamsize __remaining = __n - __ret; 1414: const streamsize __len = std::min(__buf_len, __remaining); 1414: traits_type::copy(this->pptr(), __s, __len); 1414: __ret += __len; 1414: __s += __len; 1414: this->__safe_pbump(__len); 1414: } 1414: 1414: if (__ret < __n) 1414: { 1414: int_type __c = this->overflow(traits_type::to_int_type(*__s)); 1414: if (!traits_type::eq_int_type(__c, traits_type::eof())) 1414: { 1414: ++__ret; 1414: ++__s; 1414: } 1414: else 1414: break; 1414: } 1414: } 1414: return __ret; 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: streamsize 1414: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, 1414: basic_streambuf<_CharT, _Traits>* __sbout, 1414: bool& __ineof) 1414: { 1414: streamsize __ret = 0; 1414: __ineof = true; 1414: typename _Traits::int_type __c = __sbin->sgetc(); 1414: while (!_Traits::eq_int_type(__c, _Traits::eof())) 1414: { 1414: __c = __sbout->sputc(_Traits::to_char_type(__c)); 1414: if (_Traits::eq_int_type(__c, _Traits::eof())) 1414: { 1414: __ineof = false; 1414: break; 1414: } 1414: ++__ret; 1414: __c = __sbin->snextc(); 1414: } 1414: return __ret; 1414: } 1414: 1414: template 1414: inline streamsize 1414: __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, 1414: basic_streambuf<_CharT, _Traits>* __sbout) 1414: { 1414: bool __ineof; 1414: return __copy_streambufs_eof(__sbin, __sbout, __ineof); 1414: } 1414: 1414: 1414: 1414: 1414: extern template class basic_streambuf; 1414: 1414: extern template 1414: streamsize 1414: __copy_streambufs(basic_streambuf*, 1414: basic_streambuf*); 1414: 1414: 1414: extern template class basic_streambuf; 1414: 1414: extern template 1414: streamsize 1414: __copy_streambufs(basic_streambuf*, 1414: basic_streambuf*); 1414: 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 868 "/usr/arm-linux-gnueabihf/include/c++/16/streambuf" 2 3 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 2 3 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/streambuf_iterator.h" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/streambuf_iterator.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: # 51 "/usr/arm-linux-gnueabihf/include/c++/16/bits/streambuf_iterator.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: 1414: 1414: template 1414: class istreambuf_iterator 1414: : public iterator 1414: { 1414: public: 1414: # 69 "/usr/arm-linux-gnueabihf/include/c++/16/bits/streambuf_iterator.h" 3 1414: using pointer = void; 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef _Traits traits_type; 1414: typedef typename _Traits::int_type int_type; 1414: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 1414: typedef basic_istream<_CharT, _Traits> istream_type; 1414: 1414: 1414: template 1414: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1414: ostreambuf_iterator<_CharT2> >::__type 1414: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 1414: ostreambuf_iterator<_CharT2>); 1414: 1414: template 1414: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1414: _CharT2*>::__type 1414: __copy_move_a2(istreambuf_iterator<_CharT2>, 1414: istreambuf_iterator<_CharT2>, _CharT2*); 1414: 1414: template 1414: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1414: _CharT2*>::__type 1414: __copy_n_a(istreambuf_iterator<_CharT2>, _Size, _CharT2*, bool); 1414: 1414: template 1414: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1414: istreambuf_iterator<_CharT2> >::__type 1414: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 1414: const _CharT2&); 1414: 1414: template 1414: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1414: void>::__type 1414: advance(istreambuf_iterator<_CharT2>&, _Distance); 1414: 1414: private: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: mutable streambuf_type* _M_sbuf; 1414: int_type _M_c; 1414: 1414: public: 1414: 1414: constexpr istreambuf_iterator() noexcept 1414: : _M_sbuf(0), _M_c(traits_type::eof()) { } 1414: 1414: 1414: constexpr istreambuf_iterator(default_sentinel_t) noexcept 1414: : istreambuf_iterator() { } 1414: 1414: 1414: 1414: istreambuf_iterator(const istreambuf_iterator&) noexcept = default; 1414: 1414: ~istreambuf_iterator() = default; 1414: 1414: 1414: 1414: istreambuf_iterator(istream_type& __s) noexcept 1414: : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } 1414: 1414: 1414: istreambuf_iterator(streambuf_type* __s) noexcept 1414: : _M_sbuf(__s), _M_c(traits_type::eof()) { } 1414: 1414: 1414: istreambuf_iterator& 1414: operator=(const istreambuf_iterator&) noexcept = default; 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: char_type 1414: operator*() const 1414: { 1414: int_type __c = _M_get(); 1414: # 163 "/usr/arm-linux-gnueabihf/include/c++/16/bits/streambuf_iterator.h" 3 1414: return traits_type::to_char_type(__c); 1414: } 1414: 1414: 1414: istreambuf_iterator& 1414: operator++() 1414: { 1414: 1414: 1414: 1414: ; 1414: 1414: _M_sbuf->sbumpc(); 1414: _M_c = traits_type::eof(); 1414: return *this; 1414: } 1414: 1414: 1414: istreambuf_iterator 1414: operator++(int) 1414: { 1414: 1414: 1414: 1414: ; 1414: 1414: istreambuf_iterator __old = *this; 1414: __old._M_c = _M_sbuf->sbumpc(); 1414: _M_c = traits_type::eof(); 1414: return __old; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: bool 1414: equal(const istreambuf_iterator& __b) const 1414: { return _M_at_eof() == __b._M_at_eof(); } 1414: 1414: private: 1414: int_type 1414: _M_get() const 1414: { 1414: int_type __ret = _M_c; 1414: if (_M_sbuf && _S_is_eof(__ret) && _S_is_eof(__ret = _M_sbuf->sgetc())) 1414: _M_sbuf = 0; 1414: return __ret; 1414: } 1414: 1414: bool 1414: _M_at_eof() const 1414: { return _S_is_eof(_M_get()); } 1414: 1414: static bool 1414: _S_is_eof(int_type __c) 1414: { 1414: const int_type __eof = traits_type::eof(); 1414: return traits_type::eq_int_type(__c, __eof); 1414: } 1414: 1414: 1414: [[nodiscard]] 1414: friend bool 1414: operator==(const istreambuf_iterator& __i, default_sentinel_t) 1414: { return __i._M_at_eof(); } 1414: 1414: }; 1414: 1414: template 1414: [[__nodiscard__]] 1414: inline bool 1414: operator==(const istreambuf_iterator<_CharT, _Traits>& __a, 1414: const istreambuf_iterator<_CharT, _Traits>& __b) 1414: { return __a.equal(__b); } 1414: # 250 "/usr/arm-linux-gnueabihf/include/c++/16/bits/streambuf_iterator.h" 3 1414: template 1414: class ostreambuf_iterator 1414: : public iterator 1414: { 1414: public: 1414: 1414: 1414: 1414: 1414: using difference_type = ptrdiff_t; 1414: 1414: typedef _CharT char_type; 1414: typedef _Traits traits_type; 1414: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 1414: typedef basic_ostream<_CharT, _Traits> ostream_type; 1414: 1414: 1414: template 1414: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1414: ostreambuf_iterator<_CharT2> >::__type 1414: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 1414: ostreambuf_iterator<_CharT2>); 1414: 1414: private: 1414: streambuf_type* _M_sbuf; 1414: bool _M_failed; 1414: 1414: public: 1414: 1414: 1414: constexpr 1414: ostreambuf_iterator() noexcept 1414: : _M_sbuf(nullptr), _M_failed(true) { } 1414: 1414: 1414: 1414: ostreambuf_iterator(ostream_type& __s) noexcept 1414: : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } 1414: 1414: 1414: ostreambuf_iterator(streambuf_type* __s) noexcept 1414: : _M_sbuf(__s), _M_failed(!_M_sbuf) { } 1414: 1414: 1414: ostreambuf_iterator& 1414: operator=(_CharT __c) 1414: { 1414: if (!_M_failed && 1414: _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) 1414: _M_failed = true; 1414: return *this; 1414: } 1414: 1414: 1414: [[__nodiscard__]] 1414: ostreambuf_iterator& 1414: operator*() 1414: { return *this; } 1414: 1414: 1414: ostreambuf_iterator& 1414: operator++(int) 1414: { return *this; } 1414: 1414: 1414: ostreambuf_iterator& 1414: operator++() 1414: { return *this; } 1414: 1414: 1414: [[__nodiscard__]] 1414: bool 1414: failed() const noexcept 1414: { return _M_failed; } 1414: 1414: ostreambuf_iterator& 1414: _M_put(const _CharT* __ws, streamsize __len) 1414: { 1414: if (__builtin_expect(!_M_failed, true) 1414: && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, 1414: false)) 1414: _M_failed = true; 1414: return *this; 1414: } 1414: }; 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: template 1414: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1414: ostreambuf_iterator<_CharT> >::__type 1414: copy(istreambuf_iterator<_CharT> __first, 1414: istreambuf_iterator<_CharT> __last, 1414: ostreambuf_iterator<_CharT> __result) 1414: { 1414: if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) 1414: { 1414: bool __ineof; 1414: __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); 1414: if (!__ineof) 1414: __result._M_failed = true; 1414: } 1414: return __result; 1414: } 1414: 1414: template 1414: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1414: ostreambuf_iterator<_CharT> >::__type 1414: __copy_move_a2(_CharT* __first, _CharT* __last, 1414: ostreambuf_iterator<_CharT> __result) 1414: { 1414: const streamsize __num = __last - __first; 1414: if (__num > 0) 1414: __result._M_put(__first, __num); 1414: return __result; 1414: } 1414: 1414: template 1414: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1414: ostreambuf_iterator<_CharT> >::__type 1414: __copy_move_a2(const _CharT* __first, const _CharT* __last, 1414: ostreambuf_iterator<_CharT> __result) 1414: { 1414: const streamsize __num = __last - __first; 1414: if (__num > 0) 1414: __result._M_put(__first, __num); 1414: return __result; 1414: } 1414: 1414: template 1414: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1414: _CharT*>::__type 1414: __copy_move_a2(istreambuf_iterator<_CharT> __first, 1414: istreambuf_iterator<_CharT> __last, _CharT* __result) 1414: { 1414: typedef istreambuf_iterator<_CharT> __is_iterator_type; 1414: typedef typename __is_iterator_type::traits_type traits_type; 1414: typedef typename __is_iterator_type::streambuf_type streambuf_type; 1414: typedef typename traits_type::int_type int_type; 1414: 1414: if (__first._M_sbuf && !__last._M_sbuf) 1414: { 1414: streambuf_type* __sb = __first._M_sbuf; 1414: int_type __c = __sb->sgetc(); 1414: while (!traits_type::eq_int_type(__c, traits_type::eof())) 1414: { 1414: const streamsize __n = __sb->egptr() - __sb->gptr(); 1414: if (__n > 1) 1414: { 1414: traits_type::copy(__result, __sb->gptr(), __n); 1414: __sb->__safe_gbump(__n); 1414: __result += __n; 1414: __c = __sb->underflow(); 1414: } 1414: else 1414: { 1414: *__result++ = traits_type::to_char_type(__c); 1414: __c = __sb->snextc(); 1414: } 1414: } 1414: } 1414: return __result; 1414: } 1414: 1414: template 1414: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1414: _CharT*>::__type 1414: __copy_n_a(istreambuf_iterator<_CharT> __it, _Size __n, _CharT* __result, 1414: bool __strict __attribute__((__unused__))) 1414: { 1414: if (__n == 0) 1414: return __result; 1414: 1414: 1414: 1414: ; 1414: _CharT* __beg = __result; 1414: __result += __it._M_sbuf->sgetn(__beg, __n); 1414: 1414: 1414: ; 1414: return __result; 1414: } 1414: 1414: template 1414: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1414: istreambuf_iterator<_CharT> >::__type 1414: find(istreambuf_iterator<_CharT> __first, 1414: istreambuf_iterator<_CharT> __last, const _CharT& __val) 1414: { 1414: typedef istreambuf_iterator<_CharT> __is_iterator_type; 1414: typedef typename __is_iterator_type::traits_type traits_type; 1414: typedef typename __is_iterator_type::streambuf_type streambuf_type; 1414: typedef typename traits_type::int_type int_type; 1414: const int_type __eof = traits_type::eof(); 1414: 1414: if (__first._M_sbuf && !__last._M_sbuf) 1414: { 1414: const int_type __ival = traits_type::to_int_type(__val); 1414: streambuf_type* __sb = __first._M_sbuf; 1414: int_type __c = __sb->sgetc(); 1414: while (!traits_type::eq_int_type(__c, __eof) 1414: && !traits_type::eq_int_type(__c, __ival)) 1414: { 1414: streamsize __n = __sb->egptr() - __sb->gptr(); 1414: if (__n > 1) 1414: { 1414: const _CharT* __p = traits_type::find(__sb->gptr(), 1414: __n, __val); 1414: if (__p) 1414: __n = __p - __sb->gptr(); 1414: __sb->__safe_gbump(__n); 1414: __c = __sb->sgetc(); 1414: } 1414: else 1414: __c = __sb->snextc(); 1414: } 1414: 1414: __first._M_c = __eof; 1414: } 1414: 1414: return __first; 1414: } 1414: 1414: template 1414: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1414: void>::__type 1414: advance(istreambuf_iterator<_CharT>& __i, _Distance __n) 1414: { 1414: if (__n == 0) 1414: return; 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(__n > 0)) std::__glibcxx_assert_fail(); } while (false); 1414: 1414: 1414: ; 1414: 1414: typedef istreambuf_iterator<_CharT> __is_iterator_type; 1414: typedef typename __is_iterator_type::traits_type traits_type; 1414: typedef typename __is_iterator_type::streambuf_type streambuf_type; 1414: typedef typename traits_type::int_type int_type; 1414: const int_type __eof = traits_type::eof(); 1414: 1414: streambuf_type* __sb = __i._M_sbuf; 1414: while (__n > 0) 1414: { 1414: streamsize __size = __sb->egptr() - __sb->gptr(); 1414: if (__size > __n) 1414: { 1414: __sb->__safe_gbump(__n); 1414: break; 1414: } 1414: 1414: __sb->__safe_gbump(__size); 1414: __n -= __size; 1414: if (traits_type::eq_int_type(__sb->underflow(), __eof)) 1414: { 1414: 1414: 1414: ; 1414: break; 1414: } 1414: } 1414: 1414: __i._M_c = __eof; 1414: } 1414: 1414: 1414: 1414: 1414: } 1414: # 51 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 76 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: template 1414: void 1414: __convert_to_v(const char*, _Tp&, ios_base::iostate&, 1414: const __c_locale&) throw(); 1414: 1414: 1414: template<> 1414: void 1414: __convert_to_v(const char*, float&, ios_base::iostate&, 1414: const __c_locale&) throw(); 1414: 1414: template<> 1414: void 1414: __convert_to_v(const char*, double&, ios_base::iostate&, 1414: const __c_locale&) throw(); 1414: 1414: template<> 1414: void 1414: __convert_to_v(const char*, long double&, ios_base::iostate&, 1414: const __c_locale&) throw(); 1414: 1414: 1414: 1414: template 1414: struct __pad 1414: { 1414: static void 1414: _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, 1414: const _CharT* __olds, streamsize __newlen, streamsize __oldlen); 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: _CharT* 1414: __add_grouping(_CharT* __s, _CharT __sep, 1414: const char* __gbeg, size_t __gsize, 1414: const _CharT* __first, const _CharT* __last); 1414: 1414: 1414: 1414: 1414: template 1414: inline 1414: ostreambuf_iterator<_CharT> 1414: __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) 1414: { 1414: __s._M_put(__ws, __len); 1414: return __s; 1414: } 1414: 1414: 1414: template 1414: inline 1414: _OutIter 1414: __write(_OutIter __s, const _CharT* __ws, int __len) 1414: { 1414: for (int __j = 0; __j < __len; __j++, ++__s) 1414: *__s = __ws[__j]; 1414: return __s; 1414: } 1414: # 154 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: template 1414: class __ctype_abstract_base : public locale::facet, public ctype_base 1414: { 1414: public: 1414: 1414: 1414: typedef _CharT char_type; 1414: # 173 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: bool 1414: is(mask __m, char_type __c) const 1414: { return this->do_is(__m, __c); } 1414: # 190 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: const char_type* 1414: is(const char_type *__lo, const char_type *__hi, mask *__vec) const 1414: { return this->do_is(__lo, __hi, __vec); } 1414: # 206 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: const char_type* 1414: scan_is(mask __m, const char_type* __lo, const char_type* __hi) const 1414: { return this->do_scan_is(__m, __lo, __hi); } 1414: # 222 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: const char_type* 1414: scan_not(mask __m, const char_type* __lo, const char_type* __hi) const 1414: { return this->do_scan_not(__m, __lo, __hi); } 1414: # 236 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: char_type 1414: toupper(char_type __c) const 1414: { return this->do_toupper(__c); } 1414: # 251 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: const char_type* 1414: toupper(char_type *__lo, const char_type* __hi) const 1414: { return this->do_toupper(__lo, __hi); } 1414: # 265 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: char_type 1414: tolower(char_type __c) const 1414: { return this->do_tolower(__c); } 1414: # 280 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: const char_type* 1414: tolower(char_type* __lo, const char_type* __hi) const 1414: { return this->do_tolower(__lo, __hi); } 1414: # 297 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: char_type 1414: widen(char __c) const 1414: { return this->do_widen(__c); } 1414: # 316 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: const char* 1414: widen(const char* __lo, const char* __hi, char_type* __to) const 1414: { return this->do_widen(__lo, __hi, __to); } 1414: # 335 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: char 1414: narrow(char_type __c, char __dfault) const 1414: { return this->do_narrow(__c, __dfault); } 1414: # 357 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: const char_type* 1414: narrow(const char_type* __lo, const char_type* __hi, 1414: char __dfault, char* __to) const 1414: { return this->do_narrow(__lo, __hi, __dfault, __to); } 1414: 1414: protected: 1414: explicit 1414: __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } 1414: 1414: virtual 1414: ~__ctype_abstract_base() { } 1414: # 382 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual bool 1414: do_is(mask __m, char_type __c) const = 0; 1414: # 401 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_is(const char_type* __lo, const char_type* __hi, 1414: mask* __vec) const = 0; 1414: # 420 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_scan_is(mask __m, const char_type* __lo, 1414: const char_type* __hi) const = 0; 1414: # 439 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_scan_not(mask __m, const char_type* __lo, 1414: const char_type* __hi) const = 0; 1414: # 457 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char_type 1414: do_toupper(char_type __c) const = 0; 1414: # 474 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_toupper(char_type* __lo, const char_type* __hi) const = 0; 1414: # 490 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char_type 1414: do_tolower(char_type __c) const = 0; 1414: # 507 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_tolower(char_type* __lo, const char_type* __hi) const = 0; 1414: # 526 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char_type 1414: do_widen(char __c) const = 0; 1414: # 547 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char* 1414: do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; 1414: # 568 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char 1414: do_narrow(char_type __c, char __dfault) const = 0; 1414: # 593 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_narrow(const char_type* __lo, const char_type* __hi, 1414: char __dfault, char* __to) const = 0; 1414: }; 1414: # 616 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: template 1414: class ctype : public __ctype_abstract_base<_CharT> 1414: { 1414: public: 1414: 1414: typedef _CharT char_type; 1414: typedef typename __ctype_abstract_base<_CharT>::mask mask; 1414: 1414: 1414: static locale::id id; 1414: 1414: explicit 1414: ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } 1414: 1414: protected: 1414: virtual 1414: ~ctype(); 1414: 1414: virtual bool 1414: do_is(mask __m, char_type __c) const; 1414: 1414: virtual const char_type* 1414: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 1414: 1414: virtual const char_type* 1414: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 1414: 1414: virtual const char_type* 1414: do_scan_not(mask __m, const char_type* __lo, 1414: const char_type* __hi) const; 1414: 1414: virtual char_type 1414: do_toupper(char_type __c) const; 1414: 1414: virtual const char_type* 1414: do_toupper(char_type* __lo, const char_type* __hi) const; 1414: 1414: virtual char_type 1414: do_tolower(char_type __c) const; 1414: 1414: virtual const char_type* 1414: do_tolower(char_type* __lo, const char_type* __hi) const; 1414: 1414: virtual char_type 1414: do_widen(char __c) const; 1414: 1414: virtual const char* 1414: do_widen(const char* __lo, const char* __hi, char_type* __dest) const; 1414: 1414: virtual char 1414: do_narrow(char_type, char __dfault) const; 1414: 1414: virtual const char_type* 1414: do_narrow(const char_type* __lo, const char_type* __hi, 1414: char __dfault, char* __to) const; 1414: }; 1414: 1414: template 1414: locale::id ctype<_CharT>::id; 1414: 1414: 1414: 1414: template 1414: class ctype >; 1414: # 690 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: template<> 1414: class ctype : public locale::facet, public ctype_base 1414: { 1414: public: 1414: 1414: 1414: typedef char char_type; 1414: 1414: protected: 1414: 1414: __c_locale _M_c_locale_ctype; 1414: bool _M_del; 1414: __to_type _M_toupper; 1414: __to_type _M_tolower; 1414: const mask* _M_table; 1414: mutable char _M_widen_ok; 1414: mutable char _M_widen[1 + static_cast(-1)]; 1414: mutable char _M_narrow[1 + static_cast(-1)]; 1414: mutable char _M_narrow_ok; 1414: 1414: 1414: public: 1414: 1414: static locale::id id; 1414: 1414: static const size_t table_size = 1 + static_cast(-1); 1414: # 727 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: explicit 1414: ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); 1414: # 740 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: explicit 1414: ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, 1414: size_t __refs = 0); 1414: # 753 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: inline bool 1414: is(mask __m, char __c) const; 1414: # 768 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: inline const char* 1414: is(const char* __lo, const char* __hi, mask* __vec) const; 1414: # 782 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: inline const char* 1414: scan_is(mask __m, const char* __lo, const char* __hi) const; 1414: # 796 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: inline const char* 1414: scan_not(mask __m, const char* __lo, const char* __hi) const; 1414: # 811 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: char_type 1414: toupper(char_type __c) const 1414: { return this->do_toupper(__c); } 1414: # 828 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: const char_type* 1414: toupper(char_type *__lo, const char_type* __hi) const 1414: { return this->do_toupper(__lo, __hi); } 1414: # 844 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: char_type 1414: tolower(char_type __c) const 1414: { return this->do_tolower(__c); } 1414: # 861 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: const char_type* 1414: tolower(char_type* __lo, const char_type* __hi) const 1414: { return this->do_tolower(__lo, __hi); } 1414: # 881 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: char_type 1414: widen(char __c) const 1414: { 1414: if (_M_widen_ok) 1414: return _M_widen[static_cast(__c)]; 1414: this->_M_widen_init(); 1414: return this->do_widen(__c); 1414: } 1414: # 908 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: const char* 1414: widen(const char* __lo, const char* __hi, char_type* __to) const 1414: { 1414: if (_M_widen_ok == 1) 1414: { 1414: if (__builtin_expect(__hi != __lo, true)) 1414: __builtin_memcpy(__to, __lo, __hi - __lo); 1414: return __hi; 1414: } 1414: if (!_M_widen_ok) 1414: _M_widen_init(); 1414: return this->do_widen(__lo, __hi, __to); 1414: } 1414: # 940 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: char 1414: narrow(char_type __c, char __dfault) const 1414: { 1414: if (_M_narrow[static_cast(__c)]) 1414: return _M_narrow[static_cast(__c)]; 1414: const char __t = do_narrow(__c, __dfault); 1414: if (__t != __dfault) 1414: _M_narrow[static_cast(__c)] = __t; 1414: return __t; 1414: } 1414: # 973 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: const char_type* 1414: narrow(const char_type* __lo, const char_type* __hi, 1414: char __dfault, char* __to) const 1414: { 1414: if (__builtin_expect(_M_narrow_ok == 1, true)) 1414: { 1414: if (__builtin_expect(__hi != __lo, true)) 1414: __builtin_memcpy(__to, __lo, __hi - __lo); 1414: return __hi; 1414: } 1414: if (!_M_narrow_ok) 1414: _M_narrow_init(); 1414: return this->do_narrow(__lo, __hi, __dfault, __to); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: const mask* 1414: table() const throw() 1414: { return _M_table; } 1414: 1414: 1414: static const mask* 1414: classic_table() throw(); 1414: protected: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: virtual 1414: ~ctype(); 1414: # 1023 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char_type 1414: do_toupper(char_type __c) const; 1414: # 1040 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_toupper(char_type* __lo, const char_type* __hi) const; 1414: # 1056 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char_type 1414: do_tolower(char_type __c) const; 1414: # 1073 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_tolower(char_type* __lo, const char_type* __hi) const; 1414: # 1093 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char_type 1414: do_widen(char __c) const 1414: { return __c; } 1414: # 1116 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char* 1414: do_widen(const char* __lo, const char* __hi, char_type* __to) const 1414: { 1414: if (__builtin_expect(__hi != __lo, true)) 1414: __builtin_memcpy(__to, __lo, __hi - __lo); 1414: return __hi; 1414: } 1414: # 1143 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char 1414: do_narrow(char_type __c, char __dfault __attribute__((__unused__))) const 1414: { return __c; } 1414: # 1169 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_narrow(const char_type* __lo, const char_type* __hi, 1414: char __dfault __attribute__((__unused__)), char* __to) const 1414: { 1414: if (__builtin_expect(__hi != __lo, true)) 1414: __builtin_memcpy(__to, __lo, __hi - __lo); 1414: return __hi; 1414: } 1414: 1414: private: 1414: void _M_narrow_init() const; 1414: void _M_widen_init() const; 1414: }; 1414: # 1195 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: template<> 1414: class ctype : public __ctype_abstract_base 1414: { 1414: public: 1414: 1414: 1414: typedef wchar_t char_type; 1414: typedef wctype_t __wmask_type; 1414: 1414: protected: 1414: __c_locale _M_c_locale_ctype; 1414: 1414: 1414: bool _M_narrow_ok; 1414: char _M_narrow[128]; 1414: wint_t _M_widen[1 + static_cast(-1)]; 1414: 1414: 1414: mask _M_bit[16]; 1414: __wmask_type _M_wmask[16]; 1414: 1414: public: 1414: 1414: 1414: static locale::id id; 1414: # 1228 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: explicit 1414: ctype(size_t __refs = 0); 1414: # 1239 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: explicit 1414: ctype(__c_locale __cloc, size_t __refs = 0); 1414: 1414: protected: 1414: __wmask_type 1414: _M_convert_to_wmask(const mask __m) const throw(); 1414: 1414: 1414: virtual 1414: ~ctype(); 1414: # 1263 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual bool 1414: do_is(mask __m, char_type __c) const; 1414: # 1282 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 1414: # 1300 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 1414: # 1318 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_scan_not(mask __m, const char_type* __lo, 1414: const char_type* __hi) const; 1414: # 1335 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char_type 1414: do_toupper(char_type __c) const; 1414: # 1352 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_toupper(char_type* __lo, const char_type* __hi) const; 1414: # 1368 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char_type 1414: do_tolower(char_type __c) const; 1414: # 1385 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_tolower(char_type* __lo, const char_type* __hi) const; 1414: # 1405 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char_type 1414: do_widen(char __c) const; 1414: # 1427 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char* 1414: do_widen(const char* __lo, const char* __hi, char_type* __to) const; 1414: # 1450 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char 1414: do_narrow(char_type __c, char __dfault) const; 1414: # 1476 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual const char_type* 1414: do_narrow(const char_type* __lo, const char_type* __hi, 1414: char __dfault, char* __to) const; 1414: 1414: 1414: void 1414: _M_initialize_ctype() throw(); 1414: }; 1414: 1414: 1414: 1414: template 1414: class ctype_byname : public ctype<_CharT> 1414: { 1414: public: 1414: typedef typename ctype<_CharT>::mask mask; 1414: 1414: explicit 1414: ctype_byname(const char* __s, size_t __refs = 0); 1414: 1414: 1414: explicit 1414: ctype_byname(const string& __s, size_t __refs = 0) 1414: : ctype_byname(__s.c_str(), __refs) { } 1414: 1414: 1414: protected: 1414: virtual 1414: ~ctype_byname() { } 1414: }; 1414: 1414: 1414: template<> 1414: class ctype_byname : public ctype 1414: { 1414: public: 1414: explicit 1414: ctype_byname(const char* __s, size_t __refs = 0); 1414: 1414: 1414: explicit 1414: ctype_byname(const string& __s, size_t __refs = 0); 1414: 1414: 1414: protected: 1414: virtual 1414: ~ctype_byname(); 1414: }; 1414: 1414: 1414: template<> 1414: class ctype_byname : public ctype 1414: { 1414: public: 1414: explicit 1414: ctype_byname(const char* __s, size_t __refs = 0); 1414: 1414: 1414: explicit 1414: ctype_byname(const string& __s, size_t __refs = 0); 1414: 1414: 1414: protected: 1414: virtual 1414: ~ctype_byname(); 1414: }; 1414: 1414: 1414: 1414: } 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/ctype_inline.h" 1 3 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/ctype_inline.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: bool 1414: ctype:: 1414: is(mask __m, char __c) const 1414: { return _M_table[static_cast(__c)] & __m; } 1414: 1414: const char* 1414: ctype:: 1414: is(const char* __low, const char* __high, mask* __vec) const 1414: { 1414: while (__low < __high) 1414: *__vec++ = _M_table[static_cast(*__low++)]; 1414: return __high; 1414: } 1414: 1414: const char* 1414: ctype:: 1414: scan_is(mask __m, const char* __low, const char* __high) const 1414: { 1414: while (__low < __high 1414: && !(_M_table[static_cast(*__low)] & __m)) 1414: ++__low; 1414: return __low; 1414: } 1414: 1414: const char* 1414: ctype:: 1414: scan_not(mask __m, const char* __low, const char* __high) const 1414: { 1414: while (__low < __high 1414: && (_M_table[static_cast(*__low)] & __m) != 0) 1414: ++__low; 1414: return __low; 1414: } 1414: 1414: 1414: } 1414: # 1549 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: class __num_base 1414: { 1414: public: 1414: 1414: 1414: enum 1414: { 1414: _S_ominus, 1414: _S_oplus, 1414: _S_ox, 1414: _S_oX, 1414: _S_odigits, 1414: _S_odigits_end = _S_odigits + 16, 1414: _S_oudigits = _S_odigits_end, 1414: _S_oudigits_end = _S_oudigits + 16, 1414: _S_oe = _S_odigits + 14, 1414: _S_oE = _S_oudigits + 14, 1414: _S_oend = _S_oudigits_end 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: static const char* _S_atoms_out; 1414: 1414: 1414: 1414: static const char* _S_atoms_in; 1414: 1414: enum 1414: { 1414: _S_iminus, 1414: _S_iplus, 1414: _S_ix, 1414: _S_iX, 1414: _S_izero, 1414: _S_ie = _S_izero + 14, 1414: _S_iE = _S_izero + 20, 1414: _S_iend = 26 1414: }; 1414: 1414: 1414: 1414: static void 1414: _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); 1414: }; 1414: 1414: template 1414: struct __numpunct_cache : public locale::facet 1414: { 1414: const char* _M_grouping; 1414: size_t _M_grouping_size; 1414: bool _M_use_grouping; 1414: const _CharT* _M_truename; 1414: size_t _M_truename_size; 1414: const _CharT* _M_falsename; 1414: size_t _M_falsename_size; 1414: _CharT _M_decimal_point; 1414: _CharT _M_thousands_sep; 1414: 1414: 1414: 1414: 1414: 1414: _CharT _M_atoms_out[__num_base::_S_oend]; 1414: 1414: 1414: 1414: 1414: 1414: _CharT _M_atoms_in[__num_base::_S_iend]; 1414: 1414: bool _M_allocated; 1414: 1414: __numpunct_cache(size_t __refs = 0) 1414: : facet(__refs), _M_grouping(0), _M_grouping_size(0), 1414: _M_use_grouping(false), 1414: _M_truename(0), _M_truename_size(0), _M_falsename(0), 1414: _M_falsename_size(0), _M_decimal_point(_CharT()), 1414: _M_thousands_sep(_CharT()), _M_allocated(false) 1414: { } 1414: 1414: ~__numpunct_cache(); 1414: 1414: void 1414: _M_cache(const locale& __loc); 1414: 1414: private: 1414: __numpunct_cache& 1414: operator=(const __numpunct_cache&); 1414: 1414: explicit 1414: __numpunct_cache(const __numpunct_cache&); 1414: }; 1414: 1414: template 1414: __numpunct_cache<_CharT>::~__numpunct_cache() 1414: { 1414: if (_M_allocated) 1414: { 1414: delete [] _M_grouping; 1414: delete [] _M_truename; 1414: delete [] _M_falsename; 1414: } 1414: } 1414: 1414: namespace __cxx11 { 1414: # 1679 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: template 1414: class numpunct : public locale::facet 1414: { 1414: public: 1414: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef basic_string<_CharT> string_type; 1414: 1414: typedef __numpunct_cache<_CharT> __cache_type; 1414: 1414: protected: 1414: __cache_type* _M_data; 1414: 1414: public: 1414: 1414: static locale::id id; 1414: 1414: 1414: 1414: 1414: 1414: 1414: explicit 1414: numpunct(size_t __refs = 0) 1414: : facet(__refs), _M_data(0) 1414: { _M_initialize_numpunct(); } 1414: # 1717 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: explicit 1414: numpunct(__cache_type* __cache, size_t __refs = 0) 1414: : facet(__refs), _M_data(__cache) 1414: { _M_initialize_numpunct(); } 1414: # 1731 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: explicit 1414: numpunct(__c_locale __cloc, size_t __refs = 0) 1414: : facet(__refs), _M_data(0) 1414: { _M_initialize_numpunct(__cloc); } 1414: # 1745 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: char_type 1414: decimal_point() const 1414: { return this->do_decimal_point(); } 1414: # 1758 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: char_type 1414: thousands_sep() const 1414: { return this->do_thousands_sep(); } 1414: # 1789 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: string 1414: grouping() const 1414: { return this->do_grouping(); } 1414: # 1802 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: string_type 1414: truename() const 1414: { return this->do_truename(); } 1414: # 1815 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: string_type 1414: falsename() const 1414: { return this->do_falsename(); } 1414: 1414: protected: 1414: 1414: virtual 1414: ~numpunct(); 1414: # 1832 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char_type 1414: do_decimal_point() const 1414: { return _M_data->_M_decimal_point; } 1414: # 1844 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual char_type 1414: do_thousands_sep() const 1414: { return _M_data->_M_thousands_sep; } 1414: # 1857 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual string 1414: do_grouping() const 1414: { return _M_data->_M_grouping; } 1414: # 1870 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual string_type 1414: do_truename() const 1414: { return _M_data->_M_truename; } 1414: # 1883 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual string_type 1414: do_falsename() const 1414: { return _M_data->_M_falsename; } 1414: 1414: 1414: void 1414: _M_initialize_numpunct(__c_locale __cloc = 0); 1414: }; 1414: 1414: template 1414: locale::id numpunct<_CharT>::id; 1414: 1414: template<> 1414: numpunct::~numpunct(); 1414: 1414: template<> 1414: void 1414: numpunct::_M_initialize_numpunct(__c_locale __cloc); 1414: 1414: 1414: template<> 1414: numpunct::~numpunct(); 1414: 1414: template<> 1414: void 1414: numpunct::_M_initialize_numpunct(__c_locale __cloc); 1414: 1414: 1414: 1414: template 1414: class numpunct_byname : public numpunct<_CharT> 1414: { 1414: public: 1414: typedef _CharT char_type; 1414: typedef basic_string<_CharT> string_type; 1414: 1414: explicit 1414: numpunct_byname(const char* __s, size_t __refs = 0) 1414: : numpunct<_CharT>(__refs) 1414: { 1414: if (__builtin_strcmp(__s, "C") != 0 1414: && __builtin_strcmp(__s, "POSIX") != 0) 1414: { 1414: __c_locale __tmp; 1414: this->_S_create_c_locale(__tmp, __s); 1414: this->_M_initialize_numpunct(__tmp); 1414: this->_S_destroy_c_locale(__tmp); 1414: } 1414: } 1414: 1414: 1414: explicit 1414: numpunct_byname(const string& __s, size_t __refs = 0) 1414: : numpunct_byname(__s.c_str(), __refs) { } 1414: 1414: 1414: protected: 1414: virtual 1414: ~numpunct_byname() { } 1414: }; 1414: 1414: } 1414: 1414: 1414: # 1961 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: template 1414: class num_get : public locale::facet 1414: { 1414: public: 1414: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef _InIter iter_type; 1414: 1414: 1414: 1414: static locale::id id; 1414: # 1982 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: explicit 1414: num_get(size_t __refs = 0) : facet(__refs) { } 1414: # 2008 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: iter_type 1414: get(iter_type __in, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, bool& __v) const 1414: { return this->do_get(__in, __end, __io, __err, __v); } 1414: # 2045 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: iter_type 1414: get(iter_type __in, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, long& __v) const 1414: { return this->do_get(__in, __end, __io, __err, __v); } 1414: 1414: iter_type 1414: get(iter_type __in, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, unsigned short& __v) const 1414: { return this->do_get(__in, __end, __io, __err, __v); } 1414: 1414: iter_type 1414: get(iter_type __in, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, unsigned int& __v) const 1414: { return this->do_get(__in, __end, __io, __err, __v); } 1414: 1414: iter_type 1414: get(iter_type __in, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, unsigned long& __v) const 1414: { return this->do_get(__in, __end, __io, __err, __v); } 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: iter_type 1414: get(iter_type __in, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, long long& __v) const 1414: { return this->do_get(__in, __end, __io, __err, __v); } 1414: 1414: iter_type 1414: get(iter_type __in, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, unsigned long long& __v) const 1414: { return this->do_get(__in, __end, __io, __err, __v); } 1414: #pragma GCC diagnostic pop 1414: # 2108 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: iter_type 1414: get(iter_type __in, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, float& __v) const 1414: { return this->do_get(__in, __end, __io, __err, __v); } 1414: 1414: iter_type 1414: get(iter_type __in, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, double& __v) const 1414: { return this->do_get(__in, __end, __io, __err, __v); } 1414: 1414: iter_type 1414: get(iter_type __in, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, long double& __v) const 1414: { return this->do_get(__in, __end, __io, __err, __v); } 1414: # 2151 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: iter_type 1414: get(iter_type __in, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, void*& __v) const 1414: { return this->do_get(__in, __end, __io, __err, __v); } 1414: 1414: protected: 1414: 1414: virtual ~num_get() { } 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: iter_type 1414: _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, 1414: string&) const; 1414: 1414: template 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: iter_type 1414: _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, 1414: _ValueT&) const; 1414: 1414: template 1414: typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type 1414: _M_find(const _CharT2*, size_t __len, _CharT2 __c) const 1414: { 1414: int __ret = -1; 1414: if (__len <= 10) 1414: { 1414: if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) 1414: __ret = __c - _CharT2('0'); 1414: } 1414: else 1414: { 1414: if (__c >= _CharT2('0') && __c <= _CharT2('9')) 1414: __ret = __c - _CharT2('0'); 1414: else if (__c >= _CharT2('a') && __c <= _CharT2('f')) 1414: __ret = 10 + (__c - _CharT2('a')); 1414: else if (__c >= _CharT2('A') && __c <= _CharT2('F')) 1414: __ret = 10 + (__c - _CharT2('A')); 1414: } 1414: return __ret; 1414: } 1414: 1414: template 1414: typename __gnu_cxx::__enable_if::__value, 1414: int>::__type 1414: _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const 1414: { 1414: int __ret = -1; 1414: const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); 1414: if (__q) 1414: { 1414: __ret = __q - __zero; 1414: if (__ret > 15) 1414: __ret -= 6; 1414: } 1414: return __ret; 1414: } 1414: # 2224 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual iter_type 1414: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; 1414: 1414: virtual iter_type 1414: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, long& __v) const 1414: { return _M_extract_int(__beg, __end, __io, __err, __v); } 1414: 1414: virtual iter_type 1414: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, unsigned short& __v) const 1414: { return _M_extract_int(__beg, __end, __io, __err, __v); } 1414: 1414: virtual iter_type 1414: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, unsigned int& __v) const 1414: { return _M_extract_int(__beg, __end, __io, __err, __v); } 1414: 1414: virtual iter_type 1414: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, unsigned long& __v) const 1414: { return _M_extract_int(__beg, __end, __io, __err, __v); } 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: virtual iter_type 1414: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, long long& __v) const 1414: { return _M_extract_int(__beg, __end, __io, __err, __v); } 1414: 1414: virtual iter_type 1414: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, unsigned long long& __v) const 1414: { return _M_extract_int(__beg, __end, __io, __err, __v); } 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: virtual iter_type 1414: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; 1414: 1414: virtual iter_type 1414: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 1414: double&) const; 1414: # 2279 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual iter_type 1414: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 1414: long double&) const; 1414: 1414: 1414: virtual iter_type 1414: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; 1414: # 2307 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: }; 1414: 1414: template 1414: locale::id num_get<_CharT, _InIter>::id; 1414: # 2325 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: template 1414: class num_put : public locale::facet 1414: { 1414: public: 1414: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef _OutIter iter_type; 1414: 1414: 1414: 1414: static locale::id id; 1414: # 2346 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: explicit 1414: num_put(size_t __refs = 0) : facet(__refs) { } 1414: # 2364 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: iter_type 1414: put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 1414: { return this->do_put(__s, __io, __fill, __v); } 1414: # 2406 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: iter_type 1414: put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 1414: { return this->do_put(__s, __io, __fill, __v); } 1414: 1414: iter_type 1414: put(iter_type __s, ios_base& __io, char_type __fill, 1414: unsigned long __v) const 1414: { return this->do_put(__s, __io, __fill, __v); } 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: iter_type 1414: put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const 1414: { return this->do_put(__s, __io, __fill, __v); } 1414: 1414: iter_type 1414: put(iter_type __s, ios_base& __io, char_type __fill, 1414: unsigned long long __v) const 1414: { return this->do_put(__s, __io, __fill, __v); } 1414: #pragma GCC diagnostic pop 1414: # 2472 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: iter_type 1414: put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 1414: { return this->do_put(__s, __io, __fill, __v); } 1414: 1414: iter_type 1414: put(iter_type __s, ios_base& __io, char_type __fill, 1414: long double __v) const 1414: { return this->do_put(__s, __io, __fill, __v); } 1414: # 2497 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: iter_type 1414: put(iter_type __s, ios_base& __io, char_type __fill, 1414: const void* __v) const 1414: { return this->do_put(__s, __io, __fill, __v); } 1414: 1414: protected: 1414: template 1414: iter_type 1414: _M_insert_float(iter_type, ios_base& __io, char_type __fill, 1414: char __mod, _ValueT __v) const; 1414: 1414: void 1414: _M_group_float(const char* __grouping, size_t __grouping_size, 1414: char_type __sep, const char_type* __p, char_type* __new, 1414: char_type* __cs, int& __len) const; 1414: 1414: template 1414: iter_type 1414: _M_insert_int(iter_type, ios_base& __io, char_type __fill, 1414: _ValueT __v) const; 1414: 1414: void 1414: _M_group_int(const char* __grouping, size_t __grouping_size, 1414: char_type __sep, ios_base& __io, char_type* __new, 1414: char_type* __cs, int& __len) const; 1414: 1414: void 1414: _M_pad(char_type __fill, streamsize __w, ios_base& __io, 1414: char_type* __new, const char_type* __cs, int& __len) const; 1414: 1414: 1414: virtual 1414: ~num_put() { } 1414: # 2545 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: virtual iter_type 1414: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; 1414: 1414: virtual iter_type 1414: do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 1414: { return _M_insert_int(__s, __io, __fill, __v); } 1414: 1414: virtual iter_type 1414: do_put(iter_type __s, ios_base& __io, char_type __fill, 1414: unsigned long __v) const 1414: { return _M_insert_int(__s, __io, __fill, __v); } 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: virtual iter_type 1414: do_put(iter_type __s, ios_base& __io, char_type __fill, 1414: long long __v) const 1414: { return _M_insert_int(__s, __io, __fill, __v); } 1414: 1414: virtual iter_type 1414: do_put(iter_type __s, ios_base& __io, char_type __fill, 1414: unsigned long long __v) const 1414: { return _M_insert_int(__s, __io, __fill, __v); } 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: virtual iter_type 1414: do_put(iter_type, ios_base&, char_type, double) const; 1414: 1414: 1414: 1414: 1414: 1414: 1414: virtual iter_type 1414: do_put(iter_type, ios_base&, char_type, long double) const; 1414: 1414: 1414: virtual iter_type 1414: do_put(iter_type, ios_base&, char_type, const void*) const; 1414: # 2600 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 3 1414: }; 1414: 1414: template 1414: locale::id num_put<_CharT, _OutIter>::id; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline bool 1414: isspace(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).is(ctype_base::space, __c); } 1414: 1414: 1414: template 1414: inline bool 1414: isprint(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).is(ctype_base::print, __c); } 1414: 1414: 1414: template 1414: inline bool 1414: iscntrl(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).is(ctype_base::cntrl, __c); } 1414: 1414: 1414: template 1414: inline bool 1414: isupper(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).is(ctype_base::upper, __c); } 1414: 1414: 1414: template 1414: inline bool 1414: islower(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).is(ctype_base::lower, __c); } 1414: 1414: 1414: template 1414: inline bool 1414: isalpha(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).is(ctype_base::alpha, __c); } 1414: 1414: 1414: template 1414: inline bool 1414: isdigit(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).is(ctype_base::digit, __c); } 1414: 1414: 1414: template 1414: inline bool 1414: ispunct(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).is(ctype_base::punct, __c); } 1414: 1414: 1414: template 1414: inline bool 1414: isxdigit(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).is(ctype_base::xdigit, __c); } 1414: 1414: 1414: template 1414: inline bool 1414: isalnum(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).is(ctype_base::alnum, __c); } 1414: 1414: 1414: template 1414: inline bool 1414: isgraph(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).is(ctype_base::graph, __c); } 1414: 1414: 1414: 1414: template 1414: inline bool 1414: isblank(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).is(ctype_base::blank, __c); } 1414: 1414: 1414: 1414: template 1414: inline _CharT 1414: toupper(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).toupper(__c); } 1414: 1414: 1414: template 1414: inline _CharT 1414: tolower(_CharT __c, const locale& __loc) 1414: { return use_facet >(__loc).tolower(__c); } 1414: 1414: 1414: } 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.tcc" 1 3 1414: # 36 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.tcc" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: template 1414: struct __use_cache 1414: { 1414: const _Facet* 1414: operator() (const locale& __loc) const; 1414: }; 1414: 1414: 1414: template 1414: struct __use_cache<__numpunct_cache<_CharT> > 1414: { 1414: const __numpunct_cache<_CharT>* 1414: operator() (const locale& __loc) const 1414: { 1414: const size_t __i = numpunct<_CharT>::id._M_id(); 1414: const locale::facet** __caches = __loc._M_impl->_M_caches; 1414: if (!__caches[__i]) 1414: { 1414: __numpunct_cache<_CharT>* __tmp = 0; 1414: try 1414: { 1414: __tmp = new __numpunct_cache<_CharT>; 1414: __tmp->_M_cache(__loc); 1414: } 1414: catch(...) 1414: { 1414: delete __tmp; 1414: throw; 1414: } 1414: __loc._M_impl->_M_install_cache(__tmp, __i); 1414: } 1414: return static_cast*>(__caches[__i]); 1414: } 1414: }; 1414: 1414: template 1414: void 1414: __numpunct_cache<_CharT>::_M_cache(const locale& __loc) 1414: { 1414: const numpunct<_CharT>& __np = use_facet >(__loc); 1414: 1414: char* __grouping = 0; 1414: _CharT* __truename = 0; 1414: _CharT* __falsename = 0; 1414: try 1414: { 1414: const string& __g = __np.grouping(); 1414: _M_grouping_size = __g.size(); 1414: __grouping = new char[_M_grouping_size]; 1414: __g.copy(__grouping, _M_grouping_size); 1414: _M_use_grouping = (_M_grouping_size 1414: && static_cast(__grouping[0]) > 0 1414: && (__grouping[0] 1414: != __gnu_cxx::__numeric_traits::__max)); 1414: 1414: const basic_string<_CharT>& __tn = __np.truename(); 1414: _M_truename_size = __tn.size(); 1414: __truename = new _CharT[_M_truename_size]; 1414: __tn.copy(__truename, _M_truename_size); 1414: 1414: const basic_string<_CharT>& __fn = __np.falsename(); 1414: _M_falsename_size = __fn.size(); 1414: __falsename = new _CharT[_M_falsename_size]; 1414: __fn.copy(__falsename, _M_falsename_size); 1414: 1414: _M_decimal_point = __np.decimal_point(); 1414: _M_thousands_sep = __np.thousands_sep(); 1414: 1414: const ctype<_CharT>& __ct = use_facet >(__loc); 1414: __ct.widen(__num_base::_S_atoms_out, 1414: __num_base::_S_atoms_out 1414: + __num_base::_S_oend, _M_atoms_out); 1414: __ct.widen(__num_base::_S_atoms_in, 1414: __num_base::_S_atoms_in 1414: + __num_base::_S_iend, _M_atoms_in); 1414: 1414: _M_grouping = __grouping; 1414: _M_truename = __truename; 1414: _M_falsename = __falsename; 1414: _M_allocated = true; 1414: } 1414: catch(...) 1414: { 1414: delete [] __grouping; 1414: delete [] __truename; 1414: delete [] __falsename; 1414: throw; 1414: } 1414: } 1414: # 143 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.tcc" 3 1414: __attribute__ ((__pure__)) bool 1414: __verify_grouping(const char* __grouping, size_t __grouping_size, 1414: const string& __grouping_tmp) throw (); 1414: 1414: 1414: 1414: template 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: _InIter 1414: num_get<_CharT, _InIter>:: 1414: _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, 1414: ios_base::iostate& __err, string& __xtrc) const 1414: { 1414: typedef char_traits<_CharT> __traits_type; 1414: typedef __numpunct_cache<_CharT> __cache_type; 1414: __use_cache<__cache_type> __uc; 1414: const locale& __loc = __io._M_getloc(); 1414: const __cache_type* __lc = __uc(__loc); 1414: const _CharT* __lit = __lc->_M_atoms_in; 1414: char_type __c = char_type(); 1414: 1414: 1414: bool __testeof = __beg == __end; 1414: 1414: 1414: if (!__testeof) 1414: { 1414: __c = *__beg; 1414: const bool __plus = __c == __lit[__num_base::_S_iplus]; 1414: if ((__plus || __c == __lit[__num_base::_S_iminus]) 1414: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 1414: && !(__c == __lc->_M_decimal_point)) 1414: { 1414: __xtrc += __plus ? '+' : '-'; 1414: if (++__beg != __end) 1414: __c = *__beg; 1414: else 1414: __testeof = true; 1414: } 1414: } 1414: 1414: 1414: bool __found_mantissa = false; 1414: int __sep_pos = 0; 1414: while (!__testeof) 1414: { 1414: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 1414: || __c == __lc->_M_decimal_point) 1414: break; 1414: else if (__c == __lit[__num_base::_S_izero]) 1414: { 1414: if (!__found_mantissa) 1414: { 1414: __xtrc += '0'; 1414: __found_mantissa = true; 1414: } 1414: ++__sep_pos; 1414: 1414: if (++__beg != __end) 1414: __c = *__beg; 1414: else 1414: __testeof = true; 1414: } 1414: else 1414: break; 1414: } 1414: 1414: 1414: bool __found_dec = false; 1414: bool __found_sci = false; 1414: string __found_grouping; 1414: if (__lc->_M_use_grouping) 1414: __found_grouping.reserve(32); 1414: const char_type* __lit_zero = __lit + __num_base::_S_izero; 1414: 1414: if (!__lc->_M_allocated) 1414: 1414: while (!__testeof) 1414: { 1414: const int __digit = _M_find(__lit_zero, 10, __c); 1414: if (__digit != -1) 1414: { 1414: __xtrc += '0' + __digit; 1414: __found_mantissa = true; 1414: } 1414: else if (__c == __lc->_M_decimal_point 1414: && !__found_dec && !__found_sci) 1414: { 1414: __xtrc += '.'; 1414: __found_dec = true; 1414: } 1414: else if ((__c == __lit[__num_base::_S_ie] 1414: || __c == __lit[__num_base::_S_iE]) 1414: && !__found_sci && __found_mantissa) 1414: { 1414: 1414: __xtrc += 'e'; 1414: __found_sci = true; 1414: 1414: 1414: if (++__beg != __end) 1414: { 1414: __c = *__beg; 1414: const bool __plus = __c == __lit[__num_base::_S_iplus]; 1414: if (__plus || __c == __lit[__num_base::_S_iminus]) 1414: __xtrc += __plus ? '+' : '-'; 1414: else 1414: continue; 1414: } 1414: else 1414: { 1414: __testeof = true; 1414: break; 1414: } 1414: } 1414: else 1414: break; 1414: 1414: if (++__beg != __end) 1414: __c = *__beg; 1414: else 1414: __testeof = true; 1414: } 1414: else 1414: while (!__testeof) 1414: { 1414: 1414: 1414: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 1414: { 1414: if (!__found_dec && !__found_sci) 1414: { 1414: 1414: 1414: if (__sep_pos) 1414: { 1414: __found_grouping += static_cast(__sep_pos); 1414: __sep_pos = 0; 1414: } 1414: else 1414: { 1414: 1414: 1414: __xtrc.clear(); 1414: break; 1414: } 1414: } 1414: else 1414: break; 1414: } 1414: else if (__c == __lc->_M_decimal_point) 1414: { 1414: if (!__found_dec && !__found_sci) 1414: { 1414: 1414: 1414: 1414: if (__found_grouping.size()) 1414: __found_grouping += static_cast(__sep_pos); 1414: __xtrc += '.'; 1414: __found_dec = true; 1414: } 1414: else 1414: break; 1414: } 1414: else 1414: { 1414: const char_type* __q = 1414: __traits_type::find(__lit_zero, 10, __c); 1414: if (__q) 1414: { 1414: __xtrc += '0' + (__q - __lit_zero); 1414: __found_mantissa = true; 1414: ++__sep_pos; 1414: } 1414: else if ((__c == __lit[__num_base::_S_ie] 1414: || __c == __lit[__num_base::_S_iE]) 1414: && !__found_sci && __found_mantissa) 1414: { 1414: 1414: if (__found_grouping.size() && !__found_dec) 1414: __found_grouping += static_cast(__sep_pos); 1414: __xtrc += 'e'; 1414: __found_sci = true; 1414: 1414: 1414: if (++__beg != __end) 1414: { 1414: __c = *__beg; 1414: const bool __plus = __c == __lit[__num_base::_S_iplus]; 1414: if ((__plus || __c == __lit[__num_base::_S_iminus]) 1414: && !(__lc->_M_use_grouping 1414: && __c == __lc->_M_thousands_sep) 1414: && !(__c == __lc->_M_decimal_point)) 1414: __xtrc += __plus ? '+' : '-'; 1414: else 1414: continue; 1414: } 1414: else 1414: { 1414: __testeof = true; 1414: break; 1414: } 1414: } 1414: else 1414: break; 1414: } 1414: 1414: if (++__beg != __end) 1414: __c = *__beg; 1414: else 1414: __testeof = true; 1414: } 1414: 1414: 1414: 1414: if (__found_grouping.size()) 1414: { 1414: 1414: if (!__found_dec && !__found_sci) 1414: __found_grouping += static_cast(__sep_pos); 1414: 1414: if (!std::__verify_grouping(__lc->_M_grouping, 1414: __lc->_M_grouping_size, 1414: __found_grouping)) 1414: __err = ios_base::failbit; 1414: } 1414: 1414: return __beg; 1414: } 1414: 1414: template 1414: template 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: _InIter 1414: num_get<_CharT, _InIter>:: 1414: _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, 1414: ios_base::iostate& __err, _ValueT& __v) const 1414: { 1414: typedef char_traits<_CharT> __traits_type; 1414: using __gnu_cxx::__add_unsigned; 1414: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 1414: typedef __numpunct_cache<_CharT> __cache_type; 1414: __use_cache<__cache_type> __uc; 1414: const locale& __loc = __io._M_getloc(); 1414: const __cache_type* __lc = __uc(__loc); 1414: const _CharT* __lit = __lc->_M_atoms_in; 1414: char_type __c = char_type(); 1414: 1414: 1414: const ios_base::fmtflags __basefield = __io.flags() 1414: & ios_base::basefield; 1414: const bool __oct = __basefield == ios_base::oct; 1414: int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); 1414: 1414: 1414: bool __testeof = __beg == __end; 1414: 1414: 1414: bool __negative = false; 1414: if (!__testeof) 1414: { 1414: __c = *__beg; 1414: __negative = __c == __lit[__num_base::_S_iminus]; 1414: if ((__negative || __c == __lit[__num_base::_S_iplus]) 1414: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 1414: && !(__c == __lc->_M_decimal_point)) 1414: { 1414: if (++__beg != __end) 1414: __c = *__beg; 1414: else 1414: __testeof = true; 1414: } 1414: } 1414: 1414: 1414: 1414: bool __found_zero = false; 1414: int __sep_pos = 0; 1414: while (!__testeof) 1414: { 1414: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 1414: || __c == __lc->_M_decimal_point) 1414: break; 1414: else if (__c == __lit[__num_base::_S_izero] 1414: && (!__found_zero || __base == 10)) 1414: { 1414: __found_zero = true; 1414: ++__sep_pos; 1414: if (__basefield == 0) 1414: __base = 8; 1414: if (__base == 8) 1414: __sep_pos = 0; 1414: } 1414: else if (__found_zero 1414: && (__c == __lit[__num_base::_S_ix] 1414: || __c == __lit[__num_base::_S_iX])) 1414: { 1414: if (__basefield == 0) 1414: __base = 16; 1414: if (__base == 16) 1414: { 1414: __found_zero = false; 1414: __sep_pos = 0; 1414: } 1414: else 1414: break; 1414: } 1414: else 1414: break; 1414: 1414: if (++__beg != __end) 1414: { 1414: __c = *__beg; 1414: if (!__found_zero) 1414: break; 1414: } 1414: else 1414: __testeof = true; 1414: } 1414: 1414: 1414: 1414: const size_t __len = (__base == 16 ? __num_base::_S_iend 1414: - __num_base::_S_izero : __base); 1414: 1414: 1414: typedef __gnu_cxx::__numeric_traits<_ValueT> __num_traits; 1414: string __found_grouping; 1414: if (__lc->_M_use_grouping) 1414: __found_grouping.reserve(32); 1414: bool __testfail = false; 1414: bool __testoverflow = false; 1414: const __unsigned_type __max = 1414: (__negative && __num_traits::__is_signed) 1414: ? -static_cast<__unsigned_type>(__num_traits::__min) 1414: : __num_traits::__max; 1414: const __unsigned_type __smax = __max / __base; 1414: __unsigned_type __result = 0; 1414: int __digit = 0; 1414: const char_type* __lit_zero = __lit + __num_base::_S_izero; 1414: 1414: if (!__lc->_M_allocated) 1414: 1414: while (!__testeof) 1414: { 1414: __digit = _M_find(__lit_zero, __len, __c); 1414: if (__digit == -1) 1414: break; 1414: 1414: if (__result > __smax) 1414: __testoverflow = true; 1414: else 1414: { 1414: __result *= __base; 1414: __testoverflow |= __result > __max - __digit; 1414: __result += __digit; 1414: ++__sep_pos; 1414: } 1414: 1414: if (++__beg != __end) 1414: __c = *__beg; 1414: else 1414: __testeof = true; 1414: } 1414: else 1414: while (!__testeof) 1414: { 1414: 1414: 1414: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 1414: { 1414: 1414: 1414: if (__sep_pos) 1414: { 1414: __found_grouping += static_cast(__sep_pos); 1414: __sep_pos = 0; 1414: } 1414: else 1414: { 1414: __testfail = true; 1414: break; 1414: } 1414: } 1414: else if (__c == __lc->_M_decimal_point) 1414: break; 1414: else 1414: { 1414: const char_type* __q = 1414: __traits_type::find(__lit_zero, __len, __c); 1414: if (!__q) 1414: break; 1414: 1414: __digit = __q - __lit_zero; 1414: if (__digit > 15) 1414: __digit -= 6; 1414: if (__result > __smax) 1414: __testoverflow = true; 1414: else 1414: { 1414: __result *= __base; 1414: __testoverflow |= __result > __max - __digit; 1414: __result += __digit; 1414: ++__sep_pos; 1414: } 1414: } 1414: 1414: if (++__beg != __end) 1414: __c = *__beg; 1414: else 1414: __testeof = true; 1414: } 1414: 1414: 1414: 1414: if (__found_grouping.size()) 1414: { 1414: 1414: __found_grouping += static_cast(__sep_pos); 1414: 1414: if (!std::__verify_grouping(__lc->_M_grouping, 1414: __lc->_M_grouping_size, 1414: __found_grouping)) 1414: __err = ios_base::failbit; 1414: } 1414: 1414: 1414: 1414: if ((!__sep_pos && !__found_zero && !__found_grouping.size()) 1414: || __testfail) 1414: { 1414: __v = 0; 1414: __err = ios_base::failbit; 1414: } 1414: else if (__testoverflow) 1414: { 1414: if (__negative && __num_traits::__is_signed) 1414: __v = __num_traits::__min; 1414: else 1414: __v = __num_traits::__max; 1414: __err = ios_base::failbit; 1414: } 1414: else 1414: __v = __negative ? -__result : __result; 1414: 1414: if (__testeof) 1414: __err |= ios_base::eofbit; 1414: return __beg; 1414: } 1414: 1414: 1414: 1414: template 1414: _InIter 1414: num_get<_CharT, _InIter>:: 1414: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, bool& __v) const 1414: { 1414: if (!(__io.flags() & ios_base::boolalpha)) 1414: { 1414: 1414: 1414: 1414: long __l = -1; 1414: __beg = _M_extract_int(__beg, __end, __io, __err, __l); 1414: if (__l == 0 || __l == 1) 1414: __v = bool(__l); 1414: else 1414: { 1414: 1414: 1414: __v = true; 1414: __err = ios_base::failbit; 1414: if (__beg == __end) 1414: __err |= ios_base::eofbit; 1414: } 1414: } 1414: else 1414: { 1414: 1414: typedef __numpunct_cache<_CharT> __cache_type; 1414: __use_cache<__cache_type> __uc; 1414: const locale& __loc = __io._M_getloc(); 1414: const __cache_type* __lc = __uc(__loc); 1414: 1414: bool __testf = true; 1414: bool __testt = true; 1414: bool __donef = __lc->_M_falsename_size == 0; 1414: bool __donet = __lc->_M_truename_size == 0; 1414: bool __testeof = false; 1414: size_t __n = 0; 1414: while (!__donef || !__donet) 1414: { 1414: if (__beg == __end) 1414: { 1414: __testeof = true; 1414: break; 1414: } 1414: 1414: const char_type __c = *__beg; 1414: 1414: if (!__donef) 1414: __testf = __c == __lc->_M_falsename[__n]; 1414: 1414: if (!__testf && __donet) 1414: break; 1414: 1414: if (!__donet) 1414: __testt = __c == __lc->_M_truename[__n]; 1414: 1414: if (!__testt && __donef) 1414: break; 1414: 1414: if (!__testt && !__testf) 1414: break; 1414: 1414: ++__n; 1414: ++__beg; 1414: 1414: __donef = !__testf || __n >= __lc->_M_falsename_size; 1414: __donet = !__testt || __n >= __lc->_M_truename_size; 1414: } 1414: if (__testf && __n == __lc->_M_falsename_size && __n) 1414: { 1414: __v = false; 1414: if (__testt && __n == __lc->_M_truename_size) 1414: __err = ios_base::failbit; 1414: else 1414: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 1414: } 1414: else if (__testt && __n == __lc->_M_truename_size && __n) 1414: { 1414: __v = true; 1414: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 1414: } 1414: else 1414: { 1414: 1414: 1414: __v = false; 1414: __err = ios_base::failbit; 1414: if (__testeof) 1414: __err |= ios_base::eofbit; 1414: } 1414: } 1414: return __beg; 1414: } 1414: 1414: template 1414: _InIter 1414: num_get<_CharT, _InIter>:: 1414: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, float& __v) const 1414: { 1414: string __xtrc; 1414: __xtrc.reserve(32); 1414: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 1414: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 1414: if (__beg == __end) 1414: __err |= ios_base::eofbit; 1414: return __beg; 1414: } 1414: 1414: template 1414: _InIter 1414: num_get<_CharT, _InIter>:: 1414: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, double& __v) const 1414: { 1414: string __xtrc; 1414: __xtrc.reserve(32); 1414: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 1414: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 1414: if (__beg == __end) 1414: __err |= ios_base::eofbit; 1414: return __beg; 1414: } 1414: # 739 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.tcc" 3 1414: template 1414: _InIter 1414: num_get<_CharT, _InIter>:: 1414: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, long double& __v) const 1414: { 1414: string __xtrc; 1414: __xtrc.reserve(32); 1414: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 1414: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 1414: if (__beg == __end) 1414: __err |= ios_base::eofbit; 1414: return __beg; 1414: } 1414: 1414: template 1414: _InIter 1414: num_get<_CharT, _InIter>:: 1414: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, void*& __v) const 1414: { 1414: 1414: typedef ios_base::fmtflags fmtflags; 1414: const fmtflags __fmt = __io.flags(); 1414: __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: typedef __gnu_cxx::__conditional_type<(sizeof(void*) 1414: <= sizeof(unsigned long)), 1414: unsigned long, unsigned long long>::__type _UIntPtrType; 1414: #pragma GCC diagnostic pop 1414: 1414: _UIntPtrType __ul; 1414: __beg = _M_extract_int(__beg, __end, __io, __err, __ul); 1414: 1414: 1414: __io.flags(__fmt); 1414: 1414: __v = reinterpret_cast(__ul); 1414: return __beg; 1414: } 1414: # 802 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.tcc" 3 1414: template 1414: void 1414: num_put<_CharT, _OutIter>:: 1414: _M_pad(_CharT __fill, streamsize __w, ios_base& __io, 1414: _CharT* __new, const _CharT* __cs, int& __len) const 1414: { 1414: 1414: 1414: __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, 1414: __cs, __w, __len); 1414: __len = static_cast(__w); 1414: } 1414: 1414: 1414: 1414: template 1414: int 1414: __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, 1414: ios_base::fmtflags __flags, bool __dec) 1414: { 1414: _CharT* __buf = __bufend; 1414: if (__builtin_expect(__dec, true)) 1414: { 1414: 1414: do 1414: { 1414: *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; 1414: __v /= 10; 1414: } 1414: while (__v != 0); 1414: } 1414: else if ((__flags & ios_base::basefield) == ios_base::oct) 1414: { 1414: 1414: do 1414: { 1414: *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; 1414: __v >>= 3; 1414: } 1414: while (__v != 0); 1414: } 1414: else 1414: { 1414: 1414: const bool __uppercase = __flags & ios_base::uppercase; 1414: const int __case_offset = __uppercase ? __num_base::_S_oudigits 1414: : __num_base::_S_odigits; 1414: do 1414: { 1414: *--__buf = __lit[(__v & 0xf) + __case_offset]; 1414: __v >>= 4; 1414: } 1414: while (__v != 0); 1414: } 1414: return __bufend - __buf; 1414: } 1414: 1414: 1414: 1414: template 1414: void 1414: num_put<_CharT, _OutIter>:: 1414: _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, 1414: ios_base&, _CharT* __new, _CharT* __cs, int& __len) const 1414: { 1414: _CharT* __p = std::__add_grouping(__new, __sep, __grouping, 1414: __grouping_size, __cs, __cs + __len); 1414: __len = __p - __new; 1414: } 1414: 1414: template 1414: template 1414: _OutIter 1414: num_put<_CharT, _OutIter>:: 1414: _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, 1414: _ValueT __v) const 1414: { 1414: using __gnu_cxx::__add_unsigned; 1414: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 1414: typedef __numpunct_cache<_CharT> __cache_type; 1414: __use_cache<__cache_type> __uc; 1414: const locale& __loc = __io._M_getloc(); 1414: const __cache_type* __lc = __uc(__loc); 1414: const _CharT* __lit = __lc->_M_atoms_out; 1414: const ios_base::fmtflags __flags = __io.flags(); 1414: 1414: 1414: const int __ilen = 5 * sizeof(_ValueT); 1414: _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1414: * __ilen)); 1414: 1414: 1414: 1414: const ios_base::fmtflags __basefield = __flags & ios_base::basefield; 1414: const bool __dec = (__basefield != ios_base::oct 1414: && __basefield != ios_base::hex); 1414: const __unsigned_type __u = ((__v > 0 || !__dec) 1414: ? __unsigned_type(__v) 1414: : -__unsigned_type(__v)); 1414: int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); 1414: __cs += __ilen - __len; 1414: 1414: 1414: if (__lc->_M_use_grouping) 1414: { 1414: 1414: 1414: _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1414: * (__len + 1) 1414: * 2)); 1414: _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, 1414: __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); 1414: __cs = __cs2 + 2; 1414: } 1414: 1414: 1414: if (__builtin_expect(__dec, true)) 1414: { 1414: 1414: if (__v >= 0) 1414: { 1414: if (bool(__flags & ios_base::showpos) 1414: && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) 1414: *--__cs = __lit[__num_base::_S_oplus], ++__len; 1414: } 1414: else 1414: *--__cs = __lit[__num_base::_S_ominus], ++__len; 1414: } 1414: else if (bool(__flags & ios_base::showbase) && __v) 1414: { 1414: if (__basefield == ios_base::oct) 1414: *--__cs = __lit[__num_base::_S_odigits], ++__len; 1414: else 1414: { 1414: 1414: const bool __uppercase = __flags & ios_base::uppercase; 1414: *--__cs = __lit[__num_base::_S_ox + __uppercase]; 1414: 1414: *--__cs = __lit[__num_base::_S_odigits]; 1414: __len += 2; 1414: } 1414: } 1414: 1414: 1414: const streamsize __w = __io.width(); 1414: if (__w > static_cast(__len)) 1414: { 1414: _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1414: * __w)); 1414: _M_pad(__fill, __w, __io, __cs3, __cs, __len); 1414: __cs = __cs3; 1414: } 1414: __io.width(0); 1414: 1414: 1414: 1414: return std::__write(__s, __cs, __len); 1414: } 1414: 1414: template 1414: void 1414: num_put<_CharT, _OutIter>:: 1414: _M_group_float(const char* __grouping, size_t __grouping_size, 1414: _CharT __sep, const _CharT* __p, _CharT* __new, 1414: _CharT* __cs, int& __len) const 1414: { 1414: 1414: 1414: 1414: const int __declen = __p ? __p - __cs : __len; 1414: _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, 1414: __grouping_size, 1414: __cs, __cs + __declen); 1414: 1414: 1414: int __newlen = __p2 - __new; 1414: if (__p) 1414: { 1414: char_traits<_CharT>::copy(__p2, __p, __len - __declen); 1414: __newlen += __len - __declen; 1414: } 1414: __len = __newlen; 1414: } 1414: # 996 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.tcc" 3 1414: template 1414: template 1414: _OutIter 1414: num_put<_CharT, _OutIter>:: 1414: _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, 1414: _ValueT __v) const 1414: { 1414: typedef __numpunct_cache<_CharT> __cache_type; 1414: __use_cache<__cache_type> __uc; 1414: const locale& __loc = __io._M_getloc(); 1414: const __cache_type* __lc = __uc(__loc); 1414: 1414: 1414: const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); 1414: 1414: const int __max_digits = 1414: __gnu_cxx::__numeric_traits<_ValueT>::__digits10; 1414: 1414: 1414: int __len; 1414: 1414: char __fbuf[16]; 1414: __num_base::_S_format_float(__io, __fbuf, __mod); 1414: 1414: 1414: 1414: const bool __use_prec = 1414: (__io.flags() & ios_base::floatfield) != ios_base::floatfield; 1414: 1414: 1414: 1414: int __cs_size = __max_digits * 3; 1414: char* __cs = static_cast(__builtin_alloca(__cs_size)); 1414: if (__use_prec) 1414: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 1414: __fbuf, __prec, __v); 1414: else 1414: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 1414: __fbuf, __v); 1414: 1414: 1414: if (__len >= __cs_size) 1414: { 1414: __cs_size = __len + 1; 1414: __cs = static_cast(__builtin_alloca(__cs_size)); 1414: if (__use_prec) 1414: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 1414: __fbuf, __prec, __v); 1414: else 1414: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 1414: __fbuf, __v); 1414: } 1414: # 1069 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.tcc" 3 1414: const ctype<_CharT>& __ctype = use_facet >(__loc); 1414: 1414: _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1414: * __len)); 1414: __ctype.widen(__cs, __cs + __len, __ws); 1414: 1414: 1414: _CharT* __wp = 0; 1414: const char* __p = char_traits::find(__cs, __len, '.'); 1414: if (__p) 1414: { 1414: __wp = __ws + (__p - __cs); 1414: *__wp = __lc->_M_decimal_point; 1414: } 1414: 1414: 1414: 1414: 1414: if (__lc->_M_use_grouping 1414: && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' 1414: && __cs[1] >= '0' && __cs[2] >= '0'))) 1414: { 1414: 1414: 1414: _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1414: * __len * 2)); 1414: 1414: streamsize __off = 0; 1414: if (__cs[0] == '-' || __cs[0] == '+') 1414: { 1414: __off = 1; 1414: __ws2[0] = __ws[0]; 1414: __len -= 1; 1414: } 1414: 1414: _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, 1414: __lc->_M_thousands_sep, __wp, __ws2 + __off, 1414: __ws + __off, __len); 1414: __len += __off; 1414: 1414: __ws = __ws2; 1414: } 1414: 1414: 1414: const streamsize __w = __io.width(); 1414: if (__w > static_cast(__len)) 1414: { 1414: _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1414: * __w)); 1414: _M_pad(__fill, __w, __io, __ws3, __ws, __len); 1414: __ws = __ws3; 1414: } 1414: __io.width(0); 1414: 1414: 1414: 1414: return std::__write(__s, __ws, __len); 1414: } 1414: 1414: template 1414: _OutIter 1414: num_put<_CharT, _OutIter>:: 1414: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 1414: { 1414: const ios_base::fmtflags __flags = __io.flags(); 1414: if ((__flags & ios_base::boolalpha) == 0) 1414: { 1414: const long __l = __v; 1414: __s = _M_insert_int(__s, __io, __fill, __l); 1414: } 1414: else 1414: { 1414: typedef __numpunct_cache<_CharT> __cache_type; 1414: __use_cache<__cache_type> __uc; 1414: const locale& __loc = __io._M_getloc(); 1414: const __cache_type* __lc = __uc(__loc); 1414: 1414: const _CharT* __name = __v ? __lc->_M_truename 1414: : __lc->_M_falsename; 1414: int __len = __v ? __lc->_M_truename_size 1414: : __lc->_M_falsename_size; 1414: 1414: const streamsize __w = __io.width(); 1414: if (__w > static_cast(__len)) 1414: { 1414: const streamsize __plen = __w - __len; 1414: _CharT* __ps 1414: = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1414: * __plen)); 1414: 1414: char_traits<_CharT>::assign(__ps, __plen, __fill); 1414: __io.width(0); 1414: 1414: if ((__flags & ios_base::adjustfield) == ios_base::left) 1414: { 1414: __s = std::__write(__s, __name, __len); 1414: __s = std::__write(__s, __ps, __plen); 1414: } 1414: else 1414: { 1414: __s = std::__write(__s, __ps, __plen); 1414: __s = std::__write(__s, __name, __len); 1414: } 1414: return __s; 1414: } 1414: __io.width(0); 1414: __s = std::__write(__s, __name, __len); 1414: } 1414: return __s; 1414: } 1414: 1414: template 1414: _OutIter 1414: num_put<_CharT, _OutIter>:: 1414: do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 1414: { return _M_insert_float(__s, __io, __fill, char(), __v); } 1414: # 1194 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.tcc" 3 1414: template 1414: _OutIter 1414: num_put<_CharT, _OutIter>:: 1414: do_put(iter_type __s, ios_base& __io, char_type __fill, 1414: long double __v) const 1414: { return _M_insert_float(__s, __io, __fill, 'L', __v); } 1414: 1414: template 1414: _OutIter 1414: num_put<_CharT, _OutIter>:: 1414: do_put(iter_type __s, ios_base& __io, char_type __fill, 1414: const void* __v) const 1414: { 1414: const ios_base::fmtflags __flags = __io.flags(); 1414: const ios_base::fmtflags __fmt = ~(ios_base::basefield 1414: | ios_base::uppercase); 1414: __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: typedef __gnu_cxx::__conditional_type<(sizeof(const void*) 1414: <= sizeof(unsigned long)), 1414: unsigned long, unsigned long long>::__type _UIntPtrType; 1414: #pragma GCC diagnostic pop 1414: 1414: __s = _M_insert_int(__s, __io, __fill, 1414: reinterpret_cast<_UIntPtrType>(__v)); 1414: __io.flags(__flags); 1414: return __s; 1414: } 1414: # 1234 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.tcc" 3 1414: 1414: # 1243 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.tcc" 3 1414: template 1414: void 1414: __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, 1414: _CharT* __news, const _CharT* __olds, 1414: streamsize __newlen, streamsize __oldlen) 1414: { 1414: const size_t __plen = static_cast(__newlen - __oldlen); 1414: const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; 1414: 1414: 1414: if (__adjust == ios_base::left) 1414: { 1414: _Traits::copy(__news, __olds, __oldlen); 1414: _Traits::assign(__news + __oldlen, __plen, __fill); 1414: return; 1414: } 1414: 1414: size_t __mod = 0; 1414: if (__adjust == ios_base::internal) 1414: { 1414: 1414: 1414: 1414: const locale& __loc = __io._M_getloc(); 1414: const ctype<_CharT>& __ctype = use_facet >(__loc); 1414: 1414: if (__ctype.widen('-') == __olds[0] 1414: || __ctype.widen('+') == __olds[0]) 1414: { 1414: __news[0] = __olds[0]; 1414: __mod = 1; 1414: ++__news; 1414: } 1414: else if (__ctype.widen('0') == __olds[0] 1414: && __oldlen > 1 1414: && (__ctype.widen('x') == __olds[1] 1414: || __ctype.widen('X') == __olds[1])) 1414: { 1414: __news[0] = __olds[0]; 1414: __news[1] = __olds[1]; 1414: __mod = 2; 1414: __news += 2; 1414: } 1414: 1414: } 1414: _Traits::assign(__news, __plen, __fill); 1414: _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); 1414: } 1414: 1414: template 1414: _CharT* 1414: __add_grouping(_CharT* __s, _CharT __sep, 1414: const char* __gbeg, size_t __gsize, 1414: const _CharT* __first, const _CharT* __last) 1414: { 1414: size_t __idx = 0; 1414: size_t __ctr = 0; 1414: 1414: while (__last - __first > __gbeg[__idx] 1414: && static_cast(__gbeg[__idx]) > 0 1414: && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) 1414: { 1414: __last -= __gbeg[__idx]; 1414: __idx < __gsize - 1 ? ++__idx : ++__ctr; 1414: } 1414: 1414: while (__first != __last) 1414: *__s++ = *__first++; 1414: 1414: while (__ctr--) 1414: { 1414: *__s++ = __sep; 1414: for (char __i = __gbeg[__idx]; __i > 0; --__i) 1414: *__s++ = *__first++; 1414: } 1414: 1414: while (__idx--) 1414: { 1414: *__s++ = __sep; 1414: for (char __i = __gbeg[__idx]; __i > 0; --__i) 1414: *__s++ = *__first++; 1414: } 1414: 1414: return __s; 1414: } 1414: 1414: 1414: 1414: 1414: extern template class __cxx11:: numpunct; 1414: extern template class __cxx11:: numpunct_byname; 1414: extern template class num_get; 1414: extern template class num_put; 1414: extern template class ctype_byname; 1414: 1414: extern template 1414: const ctype* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const numpunct* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const num_put* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const num_get* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const ctype& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const numpunct& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const num_put& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const num_get& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: 1414: extern template class __cxx11:: numpunct; 1414: extern template class __cxx11:: numpunct_byname; 1414: extern template class num_get; 1414: extern template class num_put; 1414: extern template class ctype_byname; 1414: 1414: extern template 1414: const ctype* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const numpunct* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const num_put* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const num_get* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const ctype& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const numpunct& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const num_put& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const num_get& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 2702 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets.h" 2 3 1414: # 45 "/usr/arm-linux-gnueabihf/include/c++/16/locale" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/ctime" 1 3 1414: # 60 "/usr/arm-linux-gnueabihf/include/c++/16/ctime" 3 1414: namespace std 1414: { 1414: using ::clock_t; 1414: using ::time_t; 1414: using ::tm; 1414: 1414: using ::clock; 1414: using ::difftime; 1414: using ::mktime; 1414: using ::time; 1414: using ::asctime; 1414: using ::ctime; 1414: using ::gmtime; 1414: using ::localtime; 1414: using ::strftime; 1414: } 1414: 1414: 1414: 1414: namespace std 1414: { 1414: using ::timespec; 1414: using ::timespec_get; 1414: } 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 54 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: class time_base 1414: { 1414: public: 1414: enum dateorder { no_order, dmy, mdy, ymd, ydm }; 1414: }; 1414: 1414: template 1414: struct __timepunct_cache : public locale::facet 1414: { 1414: 1414: static const _CharT* _S_timezones[14]; 1414: 1414: const _CharT* _M_date_format; 1414: const _CharT* _M_date_era_format; 1414: const _CharT* _M_time_format; 1414: const _CharT* _M_time_era_format; 1414: const _CharT* _M_date_time_format; 1414: const _CharT* _M_date_time_era_format; 1414: const _CharT* _M_am; 1414: const _CharT* _M_pm; 1414: const _CharT* _M_am_pm_format; 1414: 1414: 1414: const _CharT* _M_day1; 1414: const _CharT* _M_day2; 1414: const _CharT* _M_day3; 1414: const _CharT* _M_day4; 1414: const _CharT* _M_day5; 1414: const _CharT* _M_day6; 1414: const _CharT* _M_day7; 1414: 1414: 1414: const _CharT* _M_aday1; 1414: const _CharT* _M_aday2; 1414: const _CharT* _M_aday3; 1414: const _CharT* _M_aday4; 1414: const _CharT* _M_aday5; 1414: const _CharT* _M_aday6; 1414: const _CharT* _M_aday7; 1414: 1414: 1414: const _CharT* _M_month01; 1414: const _CharT* _M_month02; 1414: const _CharT* _M_month03; 1414: const _CharT* _M_month04; 1414: const _CharT* _M_month05; 1414: const _CharT* _M_month06; 1414: const _CharT* _M_month07; 1414: const _CharT* _M_month08; 1414: const _CharT* _M_month09; 1414: const _CharT* _M_month10; 1414: const _CharT* _M_month11; 1414: const _CharT* _M_month12; 1414: 1414: 1414: const _CharT* _M_amonth01; 1414: const _CharT* _M_amonth02; 1414: const _CharT* _M_amonth03; 1414: const _CharT* _M_amonth04; 1414: const _CharT* _M_amonth05; 1414: const _CharT* _M_amonth06; 1414: const _CharT* _M_amonth07; 1414: const _CharT* _M_amonth08; 1414: const _CharT* _M_amonth09; 1414: const _CharT* _M_amonth10; 1414: const _CharT* _M_amonth11; 1414: const _CharT* _M_amonth12; 1414: 1414: bool _M_allocated; 1414: 1414: __timepunct_cache(size_t __refs = 0) : facet(__refs), 1414: _M_date_format(0), _M_date_era_format(0), _M_time_format(0), 1414: _M_time_era_format(0), _M_date_time_format(0), 1414: _M_date_time_era_format(0), _M_am(0), _M_pm(0), 1414: _M_am_pm_format(0), _M_day1(0), _M_day2(0), _M_day3(0), 1414: _M_day4(0), _M_day5(0), _M_day6(0), _M_day7(0), 1414: _M_aday1(0), _M_aday2(0), _M_aday3(0), _M_aday4(0), 1414: _M_aday5(0), _M_aday6(0), _M_aday7(0), _M_month01(0), 1414: _M_month02(0), _M_month03(0), _M_month04(0), _M_month05(0), 1414: _M_month06(0), _M_month07(0), _M_month08(0), _M_month09(0), 1414: _M_month10(0), _M_month11(0), _M_month12(0), _M_amonth01(0), 1414: _M_amonth02(0), _M_amonth03(0), _M_amonth04(0), 1414: _M_amonth05(0), _M_amonth06(0), _M_amonth07(0), 1414: _M_amonth08(0), _M_amonth09(0), _M_amonth10(0), 1414: _M_amonth11(0), _M_amonth12(0), _M_allocated(false) 1414: { } 1414: 1414: ~__timepunct_cache(); 1414: 1414: private: 1414: __timepunct_cache& 1414: operator=(const __timepunct_cache&); 1414: 1414: explicit 1414: __timepunct_cache(const __timepunct_cache&); 1414: }; 1414: 1414: template 1414: __timepunct_cache<_CharT>::~__timepunct_cache() 1414: { 1414: if (_M_allocated) 1414: { 1414: 1414: } 1414: } 1414: 1414: 1414: template<> 1414: const char* 1414: __timepunct_cache::_S_timezones[14]; 1414: 1414: 1414: template<> 1414: const wchar_t* 1414: __timepunct_cache::_S_timezones[14]; 1414: 1414: 1414: 1414: template 1414: const _CharT* __timepunct_cache<_CharT>::_S_timezones[14]; 1414: 1414: template 1414: class __timepunct : public locale::facet 1414: { 1414: public: 1414: 1414: typedef _CharT __char_type; 1414: typedef __timepunct_cache<_CharT> __cache_type; 1414: 1414: protected: 1414: __cache_type* _M_data; 1414: __c_locale _M_c_locale_timepunct; 1414: const char* _M_name_timepunct; 1414: 1414: public: 1414: 1414: static locale::id id; 1414: 1414: explicit 1414: __timepunct(size_t __refs = 0); 1414: 1414: explicit 1414: __timepunct(__cache_type* __cache, size_t __refs = 0); 1414: # 208 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: explicit 1414: __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0); 1414: 1414: 1414: 1414: void 1414: _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format, 1414: const tm* __tm) const throw (); 1414: 1414: void 1414: _M_date_formats(const _CharT** __date) const 1414: { 1414: 1414: __date[0] = _M_data->_M_date_format; 1414: __date[1] = _M_data->_M_date_era_format; 1414: } 1414: 1414: void 1414: _M_time_formats(const _CharT** __time) const 1414: { 1414: 1414: __time[0] = _M_data->_M_time_format; 1414: __time[1] = _M_data->_M_time_era_format; 1414: } 1414: 1414: void 1414: _M_date_time_formats(const _CharT** __dt) const 1414: { 1414: 1414: __dt[0] = _M_data->_M_date_time_format; 1414: __dt[1] = _M_data->_M_date_time_era_format; 1414: } 1414: 1414: 1414: void 1414: _M_am_pm_format(const _CharT*) const 1414: { } 1414: 1414: 1414: void 1414: _M_am_pm_format(const _CharT** __ampm_format) const 1414: { 1414: __ampm_format[0] = _M_data->_M_am_pm_format; 1414: } 1414: 1414: void 1414: _M_am_pm(const _CharT** __ampm) const 1414: { 1414: __ampm[0] = _M_data->_M_am; 1414: __ampm[1] = _M_data->_M_pm; 1414: } 1414: 1414: void 1414: _M_days(const _CharT** __days) const 1414: { 1414: __days[0] = _M_data->_M_day1; 1414: __days[1] = _M_data->_M_day2; 1414: __days[2] = _M_data->_M_day3; 1414: __days[3] = _M_data->_M_day4; 1414: __days[4] = _M_data->_M_day5; 1414: __days[5] = _M_data->_M_day6; 1414: __days[6] = _M_data->_M_day7; 1414: } 1414: 1414: void 1414: _M_days_abbreviated(const _CharT** __days) const 1414: { 1414: __days[0] = _M_data->_M_aday1; 1414: __days[1] = _M_data->_M_aday2; 1414: __days[2] = _M_data->_M_aday3; 1414: __days[3] = _M_data->_M_aday4; 1414: __days[4] = _M_data->_M_aday5; 1414: __days[5] = _M_data->_M_aday6; 1414: __days[6] = _M_data->_M_aday7; 1414: } 1414: 1414: void 1414: _M_months(const _CharT** __months) const 1414: { 1414: __months[0] = _M_data->_M_month01; 1414: __months[1] = _M_data->_M_month02; 1414: __months[2] = _M_data->_M_month03; 1414: __months[3] = _M_data->_M_month04; 1414: __months[4] = _M_data->_M_month05; 1414: __months[5] = _M_data->_M_month06; 1414: __months[6] = _M_data->_M_month07; 1414: __months[7] = _M_data->_M_month08; 1414: __months[8] = _M_data->_M_month09; 1414: __months[9] = _M_data->_M_month10; 1414: __months[10] = _M_data->_M_month11; 1414: __months[11] = _M_data->_M_month12; 1414: } 1414: 1414: void 1414: _M_months_abbreviated(const _CharT** __months) const 1414: { 1414: __months[0] = _M_data->_M_amonth01; 1414: __months[1] = _M_data->_M_amonth02; 1414: __months[2] = _M_data->_M_amonth03; 1414: __months[3] = _M_data->_M_amonth04; 1414: __months[4] = _M_data->_M_amonth05; 1414: __months[5] = _M_data->_M_amonth06; 1414: __months[6] = _M_data->_M_amonth07; 1414: __months[7] = _M_data->_M_amonth08; 1414: __months[8] = _M_data->_M_amonth09; 1414: __months[9] = _M_data->_M_amonth10; 1414: __months[10] = _M_data->_M_amonth11; 1414: __months[11] = _M_data->_M_amonth12; 1414: } 1414: 1414: protected: 1414: virtual 1414: ~__timepunct(); 1414: 1414: 1414: void 1414: _M_initialize_timepunct(__c_locale __cloc = 0); 1414: }; 1414: 1414: template 1414: locale::id __timepunct<_CharT>::id; 1414: 1414: 1414: template<> 1414: void 1414: __timepunct::_M_initialize_timepunct(__c_locale __cloc); 1414: 1414: template<> 1414: void 1414: __timepunct::_M_put(char*, size_t, const char*, const tm*) const throw (); 1414: 1414: 1414: template<> 1414: void 1414: __timepunct::_M_initialize_timepunct(__c_locale __cloc); 1414: 1414: template<> 1414: void 1414: __timepunct::_M_put(wchar_t*, size_t, const wchar_t*, 1414: const tm*) const throw (); 1414: 1414: 1414: 1414: } 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/time_members.h" 1 3 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/time_members.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: __timepunct<_CharT>::__timepunct(size_t __refs) 1414: : facet(__refs), _M_data(0), _M_c_locale_timepunct(0), 1414: _M_name_timepunct(_S_get_c_name()) 1414: { _M_initialize_timepunct(); } 1414: 1414: template 1414: __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) 1414: : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(0), 1414: _M_name_timepunct(_S_get_c_name()) 1414: { _M_initialize_timepunct(); } 1414: 1414: template 1414: __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, 1414: size_t __refs) 1414: : facet(__refs), _M_data(0), _M_c_locale_timepunct(0), 1414: _M_name_timepunct(0) 1414: { 1414: if (__builtin_strcmp(__s, _S_get_c_name()) != 0) 1414: { 1414: const size_t __len = __builtin_strlen(__s) + 1; 1414: char* __tmp = new char[__len]; 1414: __builtin_memcpy(__tmp, __s, __len); 1414: _M_name_timepunct = __tmp; 1414: } 1414: else 1414: _M_name_timepunct = _S_get_c_name(); 1414: 1414: try 1414: { _M_initialize_timepunct(__cloc); } 1414: catch(...) 1414: { 1414: if (_M_name_timepunct != _S_get_c_name()) 1414: delete [] _M_name_timepunct; 1414: throw; 1414: } 1414: } 1414: 1414: template 1414: __timepunct<_CharT>::~__timepunct() 1414: { 1414: if (_M_name_timepunct != _S_get_c_name()) 1414: delete [] _M_name_timepunct; 1414: delete _M_data; 1414: _S_destroy_c_locale(_M_c_locale_timepunct); 1414: } 1414: 1414: 1414: } 1414: # 355 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: struct __time_get_state 1414: { 1414: 1414: void 1414: _M_finalize_state(tm* __tm); 1414: 1414: unsigned int _M_have_I : 1; 1414: unsigned int _M_have_wday : 1; 1414: unsigned int _M_have_yday : 1; 1414: unsigned int _M_have_mon : 1; 1414: unsigned int _M_have_mday : 1; 1414: unsigned int _M_have_uweek : 1; 1414: unsigned int _M_have_wweek : 1; 1414: unsigned int _M_have_century : 1; 1414: unsigned int _M_is_pm : 1; 1414: unsigned int _M_want_century : 1; 1414: unsigned int _M_want_xday : 1; 1414: unsigned int _M_pad1 : 5; 1414: unsigned int _M_week_no : 6; 1414: unsigned int _M_pad2 : 10; 1414: int _M_century; 1414: int _M_pad3; 1414: }; 1414: 1414: namespace __cxx11 { 1414: # 399 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: template 1414: class time_get : public locale::facet, public time_base 1414: { 1414: public: 1414: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef _InIter iter_type; 1414: 1414: 1414: 1414: static locale::id id; 1414: # 420 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: explicit 1414: time_get(size_t __refs = 0) 1414: : facet (__refs) { } 1414: # 437 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: dateorder 1414: date_order() const 1414: { return this->do_date_order(); } 1414: # 461 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: iter_type 1414: get_time(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm) const 1414: { return this->do_get_time(__beg, __end, __io, __err, __tm); } 1414: # 486 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: iter_type 1414: get_date(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm) const 1414: { return this->do_get_date(__beg, __end, __io, __err, __tm); } 1414: # 514 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: iter_type 1414: get_weekday(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm) const 1414: { return this->do_get_weekday(__beg, __end, __io, __err, __tm); } 1414: # 543 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: iter_type 1414: get_monthname(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm) const 1414: { return this->do_get_monthname(__beg, __end, __io, __err, __tm); } 1414: # 569 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: iter_type 1414: get_year(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm) const 1414: { return this->do_get_year(__beg, __end, __io, __err, __tm); } 1414: # 590 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: inline 1414: iter_type get(iter_type __s, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm, char __format, 1414: char __modifier = 0) const 1414: { 1414: return this->do_get(__s, __end, __io, __err, __tm, __format, 1414: __modifier); 1414: } 1414: # 617 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: iter_type get(iter_type __s, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm, const char_type* __fmt, 1414: const char_type* __fmtend) const; 1414: 1414: 1414: protected: 1414: 1414: virtual 1414: ~time_get() { } 1414: # 637 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual dateorder 1414: do_date_order() const; 1414: # 655 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual iter_type 1414: do_get_time(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm) const; 1414: # 674 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual iter_type 1414: do_get_date(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm) const; 1414: # 693 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual iter_type 1414: do_get_weekday(iter_type __beg, iter_type __end, ios_base&, 1414: ios_base::iostate& __err, tm* __tm) const; 1414: # 712 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual iter_type 1414: do_get_monthname(iter_type __beg, iter_type __end, ios_base&, 1414: ios_base::iostate& __err, tm* __tm) const; 1414: # 731 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual iter_type 1414: do_get_year(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm) const; 1414: # 754 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual 1414: 1414: iter_type 1414: do_get(iter_type __s, iter_type __end, ios_base& __f, 1414: ios_base::iostate& __err, tm* __tm, 1414: char __format, char __modifier) const; 1414: 1414: 1414: 1414: iter_type 1414: _M_extract_num(iter_type __beg, iter_type __end, int& __member, 1414: int __min, int __max, size_t __len, 1414: ios_base& __io, ios_base::iostate& __err) const; 1414: 1414: 1414: iter_type 1414: _M_extract_name(iter_type __beg, iter_type __end, int& __member, 1414: const _CharT** __names, size_t __indexlen, 1414: ios_base& __io, ios_base::iostate& __err) const; 1414: 1414: 1414: iter_type 1414: _M_extract_wday_or_month(iter_type __beg, iter_type __end, int& __member, 1414: const _CharT** __names, size_t __indexlen, 1414: ios_base& __io, ios_base::iostate& __err) const; 1414: 1414: 1414: iter_type 1414: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm, 1414: const _CharT* __format) const; 1414: 1414: 1414: 1414: iter_type 1414: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm, 1414: const _CharT* __format, 1414: __time_get_state &__state) const; 1414: }; 1414: 1414: template 1414: locale::id time_get<_CharT, _InIter>::id; 1414: 1414: 1414: template 1414: class time_get_byname : public time_get<_CharT, _InIter> 1414: { 1414: public: 1414: 1414: typedef _CharT char_type; 1414: typedef _InIter iter_type; 1414: 1414: explicit 1414: time_get_byname(const char*, size_t __refs = 0) 1414: : time_get<_CharT, _InIter>(__refs) { } 1414: 1414: 1414: explicit 1414: time_get_byname(const string& __s, size_t __refs = 0) 1414: : time_get_byname(__s.c_str(), __refs) { } 1414: 1414: 1414: protected: 1414: virtual 1414: ~time_get_byname() { } 1414: }; 1414: 1414: } 1414: # 836 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: template 1414: class time_put : public locale::facet 1414: { 1414: public: 1414: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef _OutIter iter_type; 1414: 1414: 1414: 1414: static locale::id id; 1414: # 857 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: explicit 1414: time_put(size_t __refs = 0) 1414: : facet(__refs) { } 1414: # 876 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: iter_type 1414: put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 1414: const _CharT* __beg, const _CharT* __end) const; 1414: # 896 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: iter_type 1414: put(iter_type __s, ios_base& __io, char_type __fill, 1414: const tm* __tm, char __format, char __mod = 0) const 1414: { return this->do_put(__s, __io, __fill, __tm, __format, __mod); } 1414: 1414: protected: 1414: 1414: virtual 1414: ~time_put() 1414: { } 1414: # 923 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual iter_type 1414: do_put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 1414: char __format, char __mod) const; 1414: }; 1414: 1414: template 1414: locale::id time_put<_CharT, _OutIter>::id; 1414: 1414: 1414: template 1414: class time_put_byname : public time_put<_CharT, _OutIter> 1414: { 1414: public: 1414: 1414: typedef _CharT char_type; 1414: typedef _OutIter iter_type; 1414: 1414: explicit 1414: time_put_byname(const char*, size_t __refs = 0) 1414: : time_put<_CharT, _OutIter>(__refs) 1414: { } 1414: 1414: 1414: explicit 1414: time_put_byname(const string& __s, size_t __refs = 0) 1414: : time_put_byname(__s.c_str(), __refs) { } 1414: 1414: 1414: protected: 1414: virtual 1414: ~time_put_byname() { } 1414: }; 1414: # 968 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: class money_base 1414: { 1414: public: 1414: enum part { none, space, symbol, sign, value }; 1414: struct pattern { char field[4]; }; 1414: 1414: static const pattern _S_default_pattern; 1414: 1414: enum 1414: { 1414: _S_minus, 1414: _S_zero, 1414: _S_end = 11 1414: }; 1414: 1414: 1414: 1414: static const char* _S_atoms; 1414: 1414: 1414: 1414: __attribute__ ((__const__)) static pattern 1414: _S_construct_pattern(char __precedes, char __space, char __posn) throw (); 1414: }; 1414: 1414: template 1414: struct __moneypunct_cache : public locale::facet 1414: { 1414: const char* _M_grouping; 1414: size_t _M_grouping_size; 1414: bool _M_use_grouping; 1414: _CharT _M_decimal_point; 1414: _CharT _M_thousands_sep; 1414: const _CharT* _M_curr_symbol; 1414: size_t _M_curr_symbol_size; 1414: const _CharT* _M_positive_sign; 1414: size_t _M_positive_sign_size; 1414: const _CharT* _M_negative_sign; 1414: size_t _M_negative_sign_size; 1414: int _M_frac_digits; 1414: money_base::pattern _M_pos_format; 1414: money_base::pattern _M_neg_format; 1414: 1414: 1414: 1414: 1414: _CharT _M_atoms[money_base::_S_end]; 1414: 1414: bool _M_allocated; 1414: 1414: __moneypunct_cache(size_t __refs = 0) : facet(__refs), 1414: _M_grouping(0), _M_grouping_size(0), _M_use_grouping(false), 1414: _M_decimal_point(_CharT()), _M_thousands_sep(_CharT()), 1414: _M_curr_symbol(0), _M_curr_symbol_size(0), 1414: _M_positive_sign(0), _M_positive_sign_size(0), 1414: _M_negative_sign(0), _M_negative_sign_size(0), 1414: _M_frac_digits(0), 1414: _M_pos_format(money_base::pattern()), 1414: _M_neg_format(money_base::pattern()), _M_allocated(false) 1414: { } 1414: 1414: ~__moneypunct_cache(); 1414: 1414: void 1414: _M_cache(const locale& __loc); 1414: 1414: private: 1414: __moneypunct_cache& 1414: operator=(const __moneypunct_cache&); 1414: 1414: explicit 1414: __moneypunct_cache(const __moneypunct_cache&); 1414: }; 1414: 1414: template 1414: __moneypunct_cache<_CharT, _Intl>::~__moneypunct_cache() 1414: { 1414: if (_M_allocated) 1414: { 1414: delete [] _M_grouping; 1414: delete [] _M_curr_symbol; 1414: delete [] _M_positive_sign; 1414: delete [] _M_negative_sign; 1414: } 1414: } 1414: 1414: namespace __cxx11 { 1414: # 1063 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: template 1414: class moneypunct : public locale::facet, public money_base 1414: { 1414: public: 1414: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef basic_string<_CharT> string_type; 1414: 1414: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 1414: 1414: private: 1414: __cache_type* _M_data; 1414: 1414: public: 1414: 1414: 1414: static const bool intl = _Intl; 1414: 1414: static locale::id id; 1414: # 1092 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: explicit 1414: moneypunct(size_t __refs = 0) 1414: : facet(__refs), _M_data(0) 1414: { _M_initialize_moneypunct(); } 1414: # 1105 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: explicit 1414: moneypunct(__cache_type* __cache, size_t __refs = 0) 1414: : facet(__refs), _M_data(__cache) 1414: { _M_initialize_moneypunct(); } 1414: # 1120 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: explicit 1414: moneypunct(__c_locale __cloc, const char* __s, size_t __refs = 0) 1414: : facet(__refs), _M_data(0) 1414: { _M_initialize_moneypunct(__cloc, __s); } 1414: # 1134 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: char_type 1414: decimal_point() const 1414: { return this->do_decimal_point(); } 1414: # 1147 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: char_type 1414: thousands_sep() const 1414: { return this->do_thousands_sep(); } 1414: # 1177 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: string 1414: grouping() const 1414: { return this->do_grouping(); } 1414: # 1190 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: string_type 1414: curr_symbol() const 1414: { return this->do_curr_symbol(); } 1414: # 1207 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: string_type 1414: positive_sign() const 1414: { return this->do_positive_sign(); } 1414: # 1224 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: string_type 1414: negative_sign() const 1414: { return this->do_negative_sign(); } 1414: # 1240 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: int 1414: frac_digits() const 1414: { return this->do_frac_digits(); } 1414: # 1276 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: pattern 1414: pos_format() const 1414: { return this->do_pos_format(); } 1414: 1414: pattern 1414: neg_format() const 1414: { return this->do_neg_format(); } 1414: 1414: 1414: protected: 1414: 1414: virtual 1414: ~moneypunct(); 1414: # 1298 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual char_type 1414: do_decimal_point() const 1414: { return _M_data->_M_decimal_point; } 1414: # 1310 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual char_type 1414: do_thousands_sep() const 1414: { return _M_data->_M_thousands_sep; } 1414: # 1323 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual string 1414: do_grouping() const 1414: { return _M_data->_M_grouping; } 1414: # 1336 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual string_type 1414: do_curr_symbol() const 1414: { return _M_data->_M_curr_symbol; } 1414: # 1349 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual string_type 1414: do_positive_sign() const 1414: { return _M_data->_M_positive_sign; } 1414: # 1362 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual string_type 1414: do_negative_sign() const 1414: { return _M_data->_M_negative_sign; } 1414: # 1376 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual int 1414: do_frac_digits() const 1414: { return _M_data->_M_frac_digits; } 1414: # 1390 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual pattern 1414: do_pos_format() const 1414: { return _M_data->_M_pos_format; } 1414: # 1404 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual pattern 1414: do_neg_format() const 1414: { return _M_data->_M_neg_format; } 1414: 1414: 1414: void 1414: _M_initialize_moneypunct(__c_locale __cloc = 0, 1414: const char* __name = 0); 1414: }; 1414: 1414: template 1414: locale::id moneypunct<_CharT, _Intl>::id; 1414: 1414: template 1414: const bool moneypunct<_CharT, _Intl>::intl; 1414: 1414: template<> 1414: moneypunct::~moneypunct(); 1414: 1414: template<> 1414: moneypunct::~moneypunct(); 1414: 1414: template<> 1414: void 1414: moneypunct::_M_initialize_moneypunct(__c_locale, const char*); 1414: 1414: template<> 1414: void 1414: moneypunct::_M_initialize_moneypunct(__c_locale, const char*); 1414: 1414: 1414: template<> 1414: moneypunct::~moneypunct(); 1414: 1414: template<> 1414: moneypunct::~moneypunct(); 1414: 1414: template<> 1414: void 1414: moneypunct::_M_initialize_moneypunct(__c_locale, 1414: const char*); 1414: 1414: template<> 1414: void 1414: moneypunct::_M_initialize_moneypunct(__c_locale, 1414: const char*); 1414: 1414: 1414: 1414: template 1414: class moneypunct_byname : public moneypunct<_CharT, _Intl> 1414: { 1414: public: 1414: typedef _CharT char_type; 1414: typedef basic_string<_CharT> string_type; 1414: 1414: static const bool intl = _Intl; 1414: 1414: explicit 1414: moneypunct_byname(const char* __s, size_t __refs = 0) 1414: : moneypunct<_CharT, _Intl>(__refs) 1414: { 1414: if (__builtin_strcmp(__s, "C") != 0 1414: && __builtin_strcmp(__s, "POSIX") != 0) 1414: { 1414: __c_locale __tmp; 1414: this->_S_create_c_locale(__tmp, __s); 1414: this->_M_initialize_moneypunct(__tmp); 1414: this->_S_destroy_c_locale(__tmp); 1414: } 1414: } 1414: 1414: 1414: explicit 1414: moneypunct_byname(const string& __s, size_t __refs = 0) 1414: : moneypunct_byname(__s.c_str(), __refs) { } 1414: 1414: 1414: protected: 1414: virtual 1414: ~moneypunct_byname() { } 1414: }; 1414: 1414: template 1414: const bool moneypunct_byname<_CharT, _Intl>::intl; 1414: 1414: } 1414: 1414: namespace __cxx11 { 1414: # 1507 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: template 1414: class money_get : public locale::facet 1414: { 1414: public: 1414: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef _InIter iter_type; 1414: typedef basic_string<_CharT> string_type; 1414: 1414: 1414: 1414: static locale::id id; 1414: # 1529 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: explicit 1414: money_get(size_t __refs = 0) : facet(__refs) { } 1414: # 1559 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: iter_type 1414: get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 1414: ios_base::iostate& __err, long double& __units) const 1414: { return this->do_get(__s, __end, __intl, __io, __err, __units); } 1414: # 1590 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: iter_type 1414: get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 1414: ios_base::iostate& __err, string_type& __digits) const 1414: { return this->do_get(__s, __end, __intl, __io, __err, __digits); } 1414: 1414: protected: 1414: 1414: virtual 1414: ~money_get() { } 1414: # 1614 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual iter_type 1414: do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 1414: ios_base::iostate& __err, long double& __units) const; 1414: # 1626 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual iter_type 1414: do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 1414: ios_base::iostate& __err, string_type& __digits) const; 1414: # 1646 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: template 1414: iter_type 1414: _M_extract(iter_type __s, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, string& __digits) const; 1414: }; 1414: 1414: template 1414: locale::id money_get<_CharT, _InIter>::id; 1414: # 1668 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: template 1414: class money_put : public locale::facet 1414: { 1414: public: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef _OutIter iter_type; 1414: typedef basic_string<_CharT> string_type; 1414: 1414: 1414: 1414: static locale::id id; 1414: # 1689 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: explicit 1414: money_put(size_t __refs = 0) : facet(__refs) { } 1414: # 1709 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: iter_type 1414: put(iter_type __s, bool __intl, ios_base& __io, 1414: char_type __fill, long double __units) const 1414: { return this->do_put(__s, __intl, __io, __fill, __units); } 1414: # 1732 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: iter_type 1414: put(iter_type __s, bool __intl, ios_base& __io, 1414: char_type __fill, const string_type& __digits) const 1414: { return this->do_put(__s, __intl, __io, __fill, __digits); } 1414: 1414: protected: 1414: 1414: virtual 1414: ~money_put() { } 1414: # 1767 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual iter_type 1414: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 1414: long double __units) const; 1414: # 1791 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual iter_type 1414: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 1414: const string_type& __digits) const; 1414: # 1811 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: template 1414: iter_type 1414: _M_insert(iter_type __s, ios_base& __io, char_type __fill, 1414: const string_type& __digits) const; 1414: }; 1414: 1414: template 1414: locale::id money_put<_CharT, _OutIter>::id; 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: struct messages_base 1414: { 1414: typedef int catalog; 1414: }; 1414: 1414: namespace __cxx11 { 1414: # 1854 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: template 1414: class messages : public locale::facet, public messages_base 1414: { 1414: public: 1414: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef basic_string<_CharT> string_type; 1414: 1414: 1414: protected: 1414: 1414: 1414: __c_locale _M_c_locale_messages; 1414: const char* _M_name_messages; 1414: 1414: public: 1414: 1414: static locale::id id; 1414: # 1882 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: explicit 1414: messages(size_t __refs = 0); 1414: # 1896 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: explicit 1414: messages(__c_locale __cloc, const char* __s, size_t __refs = 0); 1414: # 1909 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: catalog 1414: open(const basic_string& __s, const locale& __loc) const 1414: { return this->do_open(__s, __loc); } 1414: # 1927 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: catalog 1414: open(const basic_string&, const locale&, const char*) const; 1414: # 1945 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: string_type 1414: get(catalog __c, int __set, int __msgid, const string_type& __s) const 1414: { return this->do_get(__c, __set, __msgid, __s); } 1414: # 1956 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: void 1414: close(catalog __c) const 1414: { return this->do_close(__c); } 1414: 1414: protected: 1414: 1414: virtual 1414: ~messages(); 1414: # 1976 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual catalog 1414: do_open(const basic_string&, const locale&) const; 1414: # 1995 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 3 1414: virtual string_type 1414: do_get(catalog, int, int, const string_type& __dfault) const; 1414: 1414: 1414: 1414: 1414: 1414: 1414: virtual void 1414: do_close(catalog) const; 1414: 1414: 1414: char* 1414: _M_convert_to_char(const string_type& __msg) const 1414: { 1414: 1414: return reinterpret_cast(const_cast<_CharT*>(__msg.c_str())); 1414: } 1414: 1414: 1414: string_type 1414: _M_convert_from_char(char*) const 1414: { 1414: 1414: return string_type(); 1414: } 1414: }; 1414: 1414: template 1414: locale::id messages<_CharT>::id; 1414: 1414: 1414: template<> 1414: string 1414: messages::do_get(catalog, int, int, const string&) const; 1414: 1414: 1414: template<> 1414: wstring 1414: messages::do_get(catalog, int, int, const wstring&) const; 1414: 1414: 1414: 1414: template 1414: class messages_byname : public messages<_CharT> 1414: { 1414: public: 1414: typedef _CharT char_type; 1414: typedef basic_string<_CharT> string_type; 1414: 1414: explicit 1414: messages_byname(const char* __s, size_t __refs = 0); 1414: 1414: 1414: explicit 1414: messages_byname(const string& __s, size_t __refs = 0) 1414: : messages_byname(__s.c_str(), __refs) { } 1414: 1414: 1414: protected: 1414: virtual 1414: ~messages_byname() 1414: { } 1414: }; 1414: 1414: } 1414: 1414: 1414: } 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/messages_members.h" 1 3 1414: # 36 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/messages_members.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/libintl.h" 1 3 1414: # 34 "/usr/arm-linux-gnueabihf/include/libintl.h" 3 1414: extern "C" { 1414: 1414: 1414: 1414: 1414: extern char *gettext (const char *__msgid) 1414: noexcept (true) __attribute__ ((__format_arg__ (1))); 1414: 1414: 1414: 1414: extern char *dgettext (const char *__domainname, const char *__msgid) 1414: noexcept (true) __attribute__ ((__format_arg__ (2))); 1414: extern char *__dgettext (const char *__domainname, const char *__msgid) 1414: noexcept (true) __attribute__ ((__format_arg__ (2))); 1414: 1414: 1414: 1414: extern char *dcgettext (const char *__domainname, 1414: const char *__msgid, int __category) 1414: noexcept (true) __attribute__ ((__format_arg__ (2))); 1414: extern char *__dcgettext (const char *__domainname, 1414: const char *__msgid, int __category) 1414: noexcept (true) __attribute__ ((__format_arg__ (2))); 1414: 1414: 1414: 1414: 1414: extern char *ngettext (const char *__msgid1, const char *__msgid2, 1414: unsigned long int __n) 1414: noexcept (true) __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2))); 1414: 1414: 1414: 1414: extern char *dngettext (const char *__domainname, const char *__msgid1, 1414: const char *__msgid2, unsigned long int __n) 1414: noexcept (true) __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); 1414: 1414: 1414: 1414: extern char *dcngettext (const char *__domainname, const char *__msgid1, 1414: const char *__msgid2, unsigned long int __n, 1414: int __category) 1414: noexcept (true) __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); 1414: 1414: 1414: 1414: 1414: 1414: extern char *textdomain (const char *__domainname) noexcept (true); 1414: 1414: 1414: 1414: extern char *bindtextdomain (const char *__domainname, 1414: const char *__dirname) noexcept (true); 1414: 1414: 1414: 1414: extern char *bind_textdomain_codeset (const char *__domainname, 1414: const char *__codeset) noexcept (true); 1414: # 121 "/usr/arm-linux-gnueabihf/include/libintl.h" 3 1414: } 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/arm-linux-gnueabihf/bits/messages_members.h" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: template 1414: messages<_CharT>::messages(size_t __refs) 1414: : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), 1414: _M_name_messages(_S_get_c_name()) 1414: { } 1414: 1414: template 1414: messages<_CharT>::messages(__c_locale __cloc, const char* __s, 1414: size_t __refs) 1414: : facet(__refs), _M_c_locale_messages(0), _M_name_messages(0) 1414: { 1414: if (__builtin_strcmp(__s, _S_get_c_name()) != 0) 1414: { 1414: const size_t __len = __builtin_strlen(__s) + 1; 1414: char* __tmp = new char[__len]; 1414: __builtin_memcpy(__tmp, __s, __len); 1414: _M_name_messages = __tmp; 1414: } 1414: else 1414: _M_name_messages = _S_get_c_name(); 1414: 1414: 1414: _M_c_locale_messages = _S_clone_c_locale(__cloc); 1414: } 1414: 1414: template 1414: typename messages<_CharT>::catalog 1414: messages<_CharT>::open(const basic_string& __s, const locale& __loc, 1414: const char* __dir) const 1414: { 1414: bindtextdomain(__s.c_str(), __dir); 1414: return this->do_open(__s, __loc); 1414: } 1414: 1414: 1414: template 1414: messages<_CharT>::~messages() 1414: { 1414: if (_M_name_messages != _S_get_c_name()) 1414: delete [] _M_name_messages; 1414: _S_destroy_c_locale(_M_c_locale_messages); 1414: } 1414: 1414: template 1414: typename messages<_CharT>::catalog 1414: messages<_CharT>::do_open(const basic_string& __s, 1414: const locale&) const 1414: { 1414: 1414: 1414: textdomain(__s.c_str()); 1414: return 0; 1414: } 1414: 1414: template 1414: void 1414: messages<_CharT>::do_close(catalog) const 1414: { } 1414: 1414: 1414: template 1414: messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) 1414: : messages<_CharT>(__refs) 1414: { 1414: if (this->_M_name_messages != locale::facet::_S_get_c_name()) 1414: { 1414: delete [] this->_M_name_messages; 1414: if (__builtin_strcmp(__s, locale::facet::_S_get_c_name()) != 0) 1414: { 1414: const size_t __len = __builtin_strlen(__s) + 1; 1414: char* __tmp = new char[__len]; 1414: __builtin_memcpy(__tmp, __s, __len); 1414: this->_M_name_messages = __tmp; 1414: } 1414: else 1414: this->_M_name_messages = locale::facet::_S_get_c_name(); 1414: } 1414: 1414: if (__builtin_strcmp(__s, "C") != 0 1414: && __builtin_strcmp(__s, "POSIX") != 0) 1414: { 1414: this->_S_destroy_c_locale(this->_M_c_locale_messages); 1414: this->_S_create_c_locale(this->_M_c_locale_messages, __s); 1414: } 1414: } 1414: 1414: 1414: template<> 1414: typename messages::catalog 1414: messages::do_open(const basic_string&, 1414: const locale&) const; 1414: 1414: template<> 1414: void 1414: messages::do_close(catalog) const; 1414: 1414: 1414: template<> 1414: typename messages::catalog 1414: messages::do_open(const basic_string&, 1414: const locale&) const; 1414: 1414: template<> 1414: void 1414: messages::do_close(catalog) const; 1414: 1414: 1414: 1414: } 1414: # 2067 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/codecvt.h" 1 3 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/bits/codecvt.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: class codecvt_base 1414: { 1414: public: 1414: enum result 1414: { 1414: ok, 1414: partial, 1414: error, 1414: noconv 1414: }; 1414: }; 1414: # 75 "/usr/arm-linux-gnueabihf/include/c++/16/bits/codecvt.h" 3 1414: template 1414: class __codecvt_abstract_base 1414: : public locale::facet, public codecvt_base 1414: { 1414: public: 1414: 1414: typedef codecvt_base::result result; 1414: typedef _InternT intern_type; 1414: typedef _ExternT extern_type; 1414: typedef _StateT state_type; 1414: # 123 "/usr/arm-linux-gnueabihf/include/c++/16/bits/codecvt.h" 3 1414: result 1414: out(state_type& __state, const intern_type* __from, 1414: const intern_type* __from_end, const intern_type*& __from_next, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const 1414: { 1414: return this->do_out(__state, __from, __from_end, __from_next, 1414: __to, __to_end, __to_next); 1414: } 1414: # 162 "/usr/arm-linux-gnueabihf/include/c++/16/bits/codecvt.h" 3 1414: result 1414: unshift(state_type& __state, extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const 1414: { return this->do_unshift(__state, __to,__to_end,__to_next); } 1414: # 203 "/usr/arm-linux-gnueabihf/include/c++/16/bits/codecvt.h" 3 1414: result 1414: in(state_type& __state, const extern_type* __from, 1414: const extern_type* __from_end, const extern_type*& __from_next, 1414: intern_type* __to, intern_type* __to_end, 1414: intern_type*& __to_next) const 1414: { 1414: return this->do_in(__state, __from, __from_end, __from_next, 1414: __to, __to_end, __to_next); 1414: } 1414: 1414: int 1414: encoding() const throw() 1414: { return this->do_encoding(); } 1414: 1414: bool 1414: always_noconv() const throw() 1414: { return this->do_always_noconv(); } 1414: 1414: int 1414: length(state_type& __state, const extern_type* __from, 1414: const extern_type* __end, size_t __max) const 1414: { return this->do_length(__state, __from, __end, __max); } 1414: 1414: int 1414: max_length() const throw() 1414: { return this->do_max_length(); } 1414: 1414: protected: 1414: explicit 1414: __codecvt_abstract_base(size_t __refs = 0) : locale::facet(__refs) { } 1414: 1414: virtual 1414: ~__codecvt_abstract_base() { } 1414: # 244 "/usr/arm-linux-gnueabihf/include/c++/16/bits/codecvt.h" 3 1414: virtual result 1414: do_out(state_type& __state, const intern_type* __from, 1414: const intern_type* __from_end, const intern_type*& __from_next, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const = 0; 1414: 1414: virtual result 1414: do_unshift(state_type& __state, extern_type* __to, 1414: extern_type* __to_end, extern_type*& __to_next) const = 0; 1414: 1414: virtual result 1414: do_in(state_type& __state, const extern_type* __from, 1414: const extern_type* __from_end, const extern_type*& __from_next, 1414: intern_type* __to, intern_type* __to_end, 1414: intern_type*& __to_next) const = 0; 1414: 1414: virtual int 1414: do_encoding() const throw() = 0; 1414: 1414: virtual bool 1414: do_always_noconv() const throw() = 0; 1414: 1414: virtual int 1414: do_length(state_type&, const extern_type* __from, 1414: const extern_type* __end, size_t __max) const = 0; 1414: 1414: virtual int 1414: do_max_length() const throw() = 0; 1414: }; 1414: # 281 "/usr/arm-linux-gnueabihf/include/c++/16/bits/codecvt.h" 3 1414: template 1414: class codecvt 1414: : public __codecvt_abstract_base<_InternT, _ExternT, _StateT> 1414: { 1414: public: 1414: 1414: typedef codecvt_base::result result; 1414: typedef _InternT intern_type; 1414: typedef _ExternT extern_type; 1414: typedef _StateT state_type; 1414: 1414: protected: 1414: __c_locale _M_c_locale_codecvt; 1414: 1414: public: 1414: static locale::id id; 1414: 1414: explicit 1414: codecvt(size_t __refs = 0) 1414: : __codecvt_abstract_base<_InternT, _ExternT, _StateT> (__refs), 1414: _M_c_locale_codecvt(0) 1414: { } 1414: 1414: explicit 1414: codecvt(__c_locale __cloc, size_t __refs = 0); 1414: 1414: protected: 1414: virtual 1414: ~codecvt() { } 1414: 1414: virtual result 1414: do_out(state_type& __state, const intern_type* __from, 1414: const intern_type* __from_end, const intern_type*& __from_next, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_unshift(state_type& __state, extern_type* __to, 1414: extern_type* __to_end, extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_in(state_type& __state, const extern_type* __from, 1414: const extern_type* __from_end, const extern_type*& __from_next, 1414: intern_type* __to, intern_type* __to_end, 1414: intern_type*& __to_next) const; 1414: 1414: virtual int 1414: do_encoding() const throw(); 1414: 1414: virtual bool 1414: do_always_noconv() const throw(); 1414: 1414: virtual int 1414: do_length(state_type&, const extern_type* __from, 1414: const extern_type* __end, size_t __max) const; 1414: 1414: virtual int 1414: do_max_length() const throw(); 1414: }; 1414: 1414: template 1414: locale::id codecvt<_InternT, _ExternT, _StateT>::id; 1414: 1414: 1414: template<> 1414: class codecvt 1414: : public __codecvt_abstract_base 1414: { 1414: friend class messages; 1414: 1414: public: 1414: 1414: typedef char intern_type; 1414: typedef char extern_type; 1414: typedef mbstate_t state_type; 1414: 1414: protected: 1414: __c_locale _M_c_locale_codecvt; 1414: 1414: public: 1414: static locale::id id; 1414: 1414: explicit 1414: codecvt(size_t __refs = 0); 1414: 1414: explicit 1414: codecvt(__c_locale __cloc, size_t __refs = 0); 1414: 1414: protected: 1414: virtual 1414: ~codecvt(); 1414: 1414: virtual result 1414: do_out(state_type& __state, const intern_type* __from, 1414: const intern_type* __from_end, const intern_type*& __from_next, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_unshift(state_type& __state, extern_type* __to, 1414: extern_type* __to_end, extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_in(state_type& __state, const extern_type* __from, 1414: const extern_type* __from_end, const extern_type*& __from_next, 1414: intern_type* __to, intern_type* __to_end, 1414: intern_type*& __to_next) const; 1414: 1414: virtual int 1414: do_encoding() const throw(); 1414: 1414: virtual bool 1414: do_always_noconv() const throw(); 1414: 1414: virtual int 1414: do_length(state_type&, const extern_type* __from, 1414: const extern_type* __end, size_t __max) const; 1414: 1414: virtual int 1414: do_max_length() const throw(); 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template<> 1414: class codecvt 1414: : public __codecvt_abstract_base 1414: { 1414: friend class messages; 1414: 1414: public: 1414: 1414: typedef wchar_t intern_type; 1414: typedef char extern_type; 1414: typedef mbstate_t state_type; 1414: 1414: protected: 1414: __c_locale _M_c_locale_codecvt; 1414: 1414: public: 1414: static locale::id id; 1414: 1414: explicit 1414: codecvt(size_t __refs = 0); 1414: 1414: explicit 1414: codecvt(__c_locale __cloc, size_t __refs = 0); 1414: 1414: protected: 1414: virtual 1414: ~codecvt(); 1414: 1414: virtual result 1414: do_out(state_type& __state, const intern_type* __from, 1414: const intern_type* __from_end, const intern_type*& __from_next, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_unshift(state_type& __state, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_in(state_type& __state, 1414: const extern_type* __from, const extern_type* __from_end, 1414: const extern_type*& __from_next, 1414: intern_type* __to, intern_type* __to_end, 1414: intern_type*& __to_next) const; 1414: 1414: virtual 1414: int do_encoding() const throw(); 1414: 1414: virtual 1414: bool do_always_noconv() const throw(); 1414: 1414: virtual 1414: int do_length(state_type&, const extern_type* __from, 1414: const extern_type* __end, size_t __max) const; 1414: 1414: virtual int 1414: do_max_length() const throw(); 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template<> 1414: class codecvt 1414: : public __codecvt_abstract_base 1414: { 1414: public: 1414: 1414: typedef char16_t intern_type; 1414: typedef char extern_type; 1414: typedef mbstate_t state_type; 1414: 1414: public: 1414: static locale::id id; 1414: 1414: explicit 1414: codecvt(size_t __refs = 0) 1414: : __codecvt_abstract_base(__refs) { } 1414: 1414: protected: 1414: virtual 1414: ~codecvt(); 1414: 1414: virtual result 1414: do_out(state_type& __state, const intern_type* __from, 1414: const intern_type* __from_end, const intern_type*& __from_next, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_unshift(state_type& __state, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_in(state_type& __state, 1414: const extern_type* __from, const extern_type* __from_end, 1414: const extern_type*& __from_next, 1414: intern_type* __to, intern_type* __to_end, 1414: intern_type*& __to_next) const; 1414: 1414: virtual 1414: int do_encoding() const throw(); 1414: 1414: virtual 1414: bool do_always_noconv() const throw(); 1414: 1414: virtual 1414: int do_length(state_type&, const extern_type* __from, 1414: const extern_type* __end, size_t __max) const; 1414: 1414: virtual int 1414: do_max_length() const throw(); 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template<> 1414: class codecvt 1414: : public __codecvt_abstract_base 1414: { 1414: public: 1414: 1414: typedef char32_t intern_type; 1414: typedef char extern_type; 1414: typedef mbstate_t state_type; 1414: 1414: public: 1414: static locale::id id; 1414: 1414: explicit 1414: codecvt(size_t __refs = 0) 1414: : __codecvt_abstract_base(__refs) { } 1414: 1414: protected: 1414: virtual 1414: ~codecvt(); 1414: 1414: virtual result 1414: do_out(state_type& __state, const intern_type* __from, 1414: const intern_type* __from_end, const intern_type*& __from_next, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_unshift(state_type& __state, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_in(state_type& __state, 1414: const extern_type* __from, const extern_type* __from_end, 1414: const extern_type*& __from_next, 1414: intern_type* __to, intern_type* __to_end, 1414: intern_type*& __to_next) const; 1414: 1414: virtual 1414: int do_encoding() const throw(); 1414: 1414: virtual 1414: bool do_always_noconv() const throw(); 1414: 1414: virtual 1414: int do_length(state_type&, const extern_type* __from, 1414: const extern_type* __end, size_t __max) const; 1414: 1414: virtual int 1414: do_max_length() const throw(); 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template<> 1414: class codecvt 1414: : public __codecvt_abstract_base 1414: { 1414: public: 1414: 1414: typedef char16_t intern_type; 1414: typedef char8_t extern_type; 1414: typedef mbstate_t state_type; 1414: 1414: public: 1414: static locale::id id; 1414: 1414: explicit 1414: codecvt(size_t __refs = 0) 1414: : __codecvt_abstract_base(__refs) { } 1414: 1414: protected: 1414: virtual 1414: ~codecvt(); 1414: 1414: virtual result 1414: do_out(state_type& __state, const intern_type* __from, 1414: const intern_type* __from_end, const intern_type*& __from_next, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_unshift(state_type& __state, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_in(state_type& __state, 1414: const extern_type* __from, const extern_type* __from_end, 1414: const extern_type*& __from_next, 1414: intern_type* __to, intern_type* __to_end, 1414: intern_type*& __to_next) const; 1414: 1414: virtual 1414: int do_encoding() const throw(); 1414: 1414: virtual 1414: bool do_always_noconv() const throw(); 1414: 1414: virtual 1414: int do_length(state_type&, const extern_type* __from, 1414: const extern_type* __end, size_t __max) const; 1414: 1414: virtual int 1414: do_max_length() const throw(); 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template<> 1414: class codecvt 1414: : public __codecvt_abstract_base 1414: { 1414: public: 1414: 1414: typedef char32_t intern_type; 1414: typedef char8_t extern_type; 1414: typedef mbstate_t state_type; 1414: 1414: public: 1414: static locale::id id; 1414: 1414: explicit 1414: codecvt(size_t __refs = 0) 1414: : __codecvt_abstract_base(__refs) { } 1414: 1414: protected: 1414: virtual 1414: ~codecvt(); 1414: 1414: virtual result 1414: do_out(state_type& __state, const intern_type* __from, 1414: const intern_type* __from_end, const intern_type*& __from_next, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_unshift(state_type& __state, 1414: extern_type* __to, extern_type* __to_end, 1414: extern_type*& __to_next) const; 1414: 1414: virtual result 1414: do_in(state_type& __state, 1414: const extern_type* __from, const extern_type* __from_end, 1414: const extern_type*& __from_next, 1414: intern_type* __to, intern_type* __to_end, 1414: intern_type*& __to_next) const; 1414: 1414: virtual 1414: int do_encoding() const throw(); 1414: 1414: virtual 1414: bool do_always_noconv() const throw(); 1414: 1414: virtual 1414: int do_length(state_type&, const extern_type* __from, 1414: const extern_type* __end, size_t __max) const; 1414: 1414: virtual int 1414: do_max_length() const throw(); 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT> 1414: { 1414: public: 1414: explicit 1414: codecvt_byname(const char* __s, size_t __refs = 0) 1414: : codecvt<_InternT, _ExternT, _StateT>(__refs) 1414: { 1414: if (__builtin_strcmp(__s, "C") != 0 1414: && __builtin_strcmp(__s, "POSIX") != 0) 1414: { 1414: this->_S_destroy_c_locale(this->_M_c_locale_codecvt); 1414: this->_S_create_c_locale(this->_M_c_locale_codecvt, __s); 1414: } 1414: } 1414: 1414: 1414: explicit 1414: codecvt_byname(const string& __s, size_t __refs = 0) 1414: : codecvt_byname(__s.c_str(), __refs) { } 1414: 1414: 1414: protected: 1414: virtual 1414: ~codecvt_byname() { } 1414: }; 1414: 1414: 1414: template<> 1414: class codecvt_byname 1414: : public codecvt 1414: { 1414: public: 1414: explicit 1414: codecvt_byname(const char*, size_t __refs = 0) 1414: : codecvt(__refs) { } 1414: 1414: explicit 1414: codecvt_byname(const string& __s, size_t __refs = 0) 1414: : codecvt_byname(__s.c_str(), __refs) { } 1414: 1414: protected: 1414: virtual 1414: ~codecvt_byname() { } 1414: }; 1414: 1414: template<> 1414: class codecvt_byname 1414: : public codecvt 1414: { 1414: public: 1414: explicit 1414: codecvt_byname(const char*, size_t __refs = 0) 1414: : codecvt(__refs) { } 1414: 1414: explicit 1414: codecvt_byname(const string& __s, size_t __refs = 0) 1414: : codecvt_byname(__s.c_str(), __refs) { } 1414: 1414: protected: 1414: virtual 1414: ~codecvt_byname() { } 1414: }; 1414: 1414: 1414: template<> 1414: class codecvt_byname 1414: : public codecvt 1414: { 1414: public: 1414: explicit 1414: codecvt_byname(const char*, size_t __refs = 0) 1414: : codecvt(__refs) { } 1414: 1414: explicit 1414: codecvt_byname(const string& __s, size_t __refs = 0) 1414: : codecvt_byname(__s.c_str(), __refs) { } 1414: 1414: protected: 1414: virtual 1414: ~codecvt_byname() { } 1414: }; 1414: 1414: template<> 1414: class codecvt_byname 1414: : public codecvt 1414: { 1414: public: 1414: explicit 1414: codecvt_byname(const char*, size_t __refs = 0) 1414: : codecvt(__refs) { } 1414: 1414: explicit 1414: codecvt_byname(const string& __s, size_t __refs = 0) 1414: : codecvt_byname(__s.c_str(), __refs) { } 1414: 1414: protected: 1414: virtual 1414: ~codecvt_byname() { } 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern template class codecvt_byname; 1414: 1414: extern template 1414: const codecvt& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: 1414: extern template class codecvt_byname; 1414: 1414: extern template 1414: const codecvt& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: 1414: 1414: extern template class codecvt_byname; 1414: extern template class codecvt_byname; 1414: 1414: 1414: extern template class codecvt_byname; 1414: extern template class codecvt_byname; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 2070 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.tcc" 1 3 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.tcc" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: struct __use_cache<__moneypunct_cache<_CharT, _Intl> > 1414: { 1414: const __moneypunct_cache<_CharT, _Intl>* 1414: operator() (const locale& __loc) const 1414: { 1414: const size_t __i = moneypunct<_CharT, _Intl>::id._M_id(); 1414: const locale::facet** __caches = __loc._M_impl->_M_caches; 1414: if (!__caches[__i]) 1414: { 1414: __moneypunct_cache<_CharT, _Intl>* __tmp = 0; 1414: try 1414: { 1414: __tmp = new __moneypunct_cache<_CharT, _Intl>; 1414: __tmp->_M_cache(__loc); 1414: } 1414: catch(...) 1414: { 1414: delete __tmp; 1414: throw; 1414: } 1414: __loc._M_impl->_M_install_cache(__tmp, __i); 1414: } 1414: return static_cast< 1414: const __moneypunct_cache<_CharT, _Intl>*>(__caches[__i]); 1414: } 1414: }; 1414: 1414: template 1414: void 1414: __moneypunct_cache<_CharT, _Intl>::_M_cache(const locale& __loc) 1414: { 1414: const moneypunct<_CharT, _Intl>& __mp = 1414: use_facet >(__loc); 1414: 1414: struct _Scoped_str 1414: { 1414: size_t _M_len; 1414: _CharT* _M_str; 1414: 1414: explicit 1414: _Scoped_str(const basic_string<_CharT>& __str) 1414: : _M_len(__str.size()), _M_str(new _CharT[_M_len]) 1414: { __str.copy(_M_str, _M_len); } 1414: 1414: ~_Scoped_str() { delete[] _M_str; } 1414: 1414: void 1414: _M_release(const _CharT*& __p, size_t& __n) 1414: { 1414: __p = _M_str; 1414: __n = _M_len; 1414: _M_str = 0; 1414: } 1414: }; 1414: 1414: _Scoped_str __curr_symbol(__mp.curr_symbol()); 1414: _Scoped_str __positive_sign(__mp.positive_sign()); 1414: _Scoped_str __negative_sign(__mp.negative_sign()); 1414: 1414: const string& __g = __mp.grouping(); 1414: const size_t __g_size = __g.size(); 1414: char* const __grouping = new char[__g_size]; 1414: __g.copy(__grouping, __g_size); 1414: 1414: 1414: 1414: _M_grouping = __grouping; 1414: _M_grouping_size = __g_size; 1414: _M_use_grouping = (__g_size 1414: && static_cast(__grouping[0]) > 0 1414: && (__grouping[0] 1414: != __gnu_cxx::__numeric_traits::__max)); 1414: 1414: _M_decimal_point = __mp.decimal_point(); 1414: _M_thousands_sep = __mp.thousands_sep(); 1414: 1414: __curr_symbol._M_release(_M_curr_symbol, _M_curr_symbol_size); 1414: __positive_sign._M_release(_M_positive_sign, _M_positive_sign_size); 1414: __negative_sign._M_release(_M_negative_sign, _M_negative_sign_size); 1414: 1414: _M_frac_digits = __mp.frac_digits(); 1414: _M_pos_format = __mp.pos_format(); 1414: _M_neg_format = __mp.neg_format(); 1414: 1414: const ctype<_CharT>& __ct = use_facet >(__loc); 1414: __ct.widen(money_base::_S_atoms, 1414: money_base::_S_atoms + money_base::_S_end, _M_atoms); 1414: 1414: _M_allocated = true; 1414: } 1414: 1414: namespace __cxx11 { 1414: 1414: template 1414: template 1414: _InIter 1414: money_get<_CharT, _InIter>:: 1414: _M_extract(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, string& __units) const 1414: { 1414: typedef char_traits<_CharT> __traits_type; 1414: typedef typename string_type::size_type size_type; 1414: typedef money_base::part part; 1414: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 1414: 1414: const locale& __loc = __io._M_getloc(); 1414: const ctype<_CharT>& __ctype = use_facet >(__loc); 1414: 1414: __use_cache<__cache_type> __uc; 1414: const __cache_type* __lc = __uc(__loc); 1414: const char_type* __lit = __lc->_M_atoms; 1414: 1414: 1414: bool __negative = false; 1414: 1414: size_type __sign_size = 0; 1414: 1414: const bool __mandatory_sign = (__lc->_M_positive_sign_size 1414: && __lc->_M_negative_sign_size); 1414: 1414: string __grouping_tmp; 1414: if (__lc->_M_use_grouping) 1414: __grouping_tmp.reserve(32); 1414: 1414: int __last_pos = 0; 1414: 1414: int __n = 0; 1414: 1414: bool __testvalid = true; 1414: 1414: bool __testdecfound = false; 1414: 1414: 1414: string __res; 1414: __res.reserve(32); 1414: 1414: const char_type* __lit_zero = __lit + money_base::_S_zero; 1414: const money_base::pattern __p = __lc->_M_neg_format; 1414: for (int __i = 0; __i < 4 && __testvalid; ++__i) 1414: { 1414: const part __which = static_cast(__p.field[__i]); 1414: switch (__which) 1414: { 1414: case money_base::symbol: 1414: 1414: 1414: 1414: 1414: if (__io.flags() & ios_base::showbase || __sign_size > 1 1414: || __i == 0 1414: || (__i == 1 && (__mandatory_sign 1414: || (static_cast(__p.field[0]) 1414: == money_base::sign) 1414: || (static_cast(__p.field[2]) 1414: == money_base::space))) 1414: || (__i == 2 && ((static_cast(__p.field[3]) 1414: == money_base::value) 1414: || (__mandatory_sign 1414: && (static_cast(__p.field[3]) 1414: == money_base::sign))))) 1414: { 1414: const size_type __len = __lc->_M_curr_symbol_size; 1414: size_type __j = 0; 1414: for (; __beg != __end && __j < __len 1414: && *__beg == __lc->_M_curr_symbol[__j]; 1414: ++__beg, (void)++__j); 1414: if (__j != __len 1414: && (__j || __io.flags() & ios_base::showbase)) 1414: __testvalid = false; 1414: } 1414: break; 1414: case money_base::sign: 1414: 1414: if (__lc->_M_positive_sign_size && __beg != __end 1414: && *__beg == __lc->_M_positive_sign[0]) 1414: { 1414: __sign_size = __lc->_M_positive_sign_size; 1414: ++__beg; 1414: } 1414: else if (__lc->_M_negative_sign_size && __beg != __end 1414: && *__beg == __lc->_M_negative_sign[0]) 1414: { 1414: __negative = true; 1414: __sign_size = __lc->_M_negative_sign_size; 1414: ++__beg; 1414: } 1414: else if (__lc->_M_positive_sign_size 1414: && !__lc->_M_negative_sign_size) 1414: 1414: 1414: __negative = true; 1414: else if (__mandatory_sign) 1414: __testvalid = false; 1414: break; 1414: case money_base::value: 1414: 1414: 1414: for (; __beg != __end; ++__beg) 1414: { 1414: const char_type __c = *__beg; 1414: const char_type* __q = __traits_type::find(__lit_zero, 1414: 10, __c); 1414: if (__q != 0) 1414: { 1414: __res += money_base::_S_atoms[__q - __lit]; 1414: ++__n; 1414: } 1414: else if (__c == __lc->_M_decimal_point 1414: && !__testdecfound) 1414: { 1414: if (__lc->_M_frac_digits <= 0) 1414: break; 1414: 1414: __last_pos = __n; 1414: __n = 0; 1414: __testdecfound = true; 1414: } 1414: else if (__lc->_M_use_grouping 1414: && __c == __lc->_M_thousands_sep 1414: && !__testdecfound) 1414: { 1414: if (__n) 1414: { 1414: 1414: __grouping_tmp += static_cast(__n); 1414: __n = 0; 1414: } 1414: else 1414: { 1414: __testvalid = false; 1414: break; 1414: } 1414: } 1414: else 1414: break; 1414: } 1414: if (__res.empty()) 1414: __testvalid = false; 1414: break; 1414: case money_base::space: 1414: 1414: if (__beg != __end && __ctype.is(ctype_base::space, *__beg)) 1414: ++__beg; 1414: else 1414: __testvalid = false; 1414: 1414: case money_base::none: 1414: 1414: if (__i != 3) 1414: for (; __beg != __end 1414: && __ctype.is(ctype_base::space, *__beg); ++__beg); 1414: break; 1414: } 1414: } 1414: 1414: 1414: if (__sign_size > 1 && __testvalid) 1414: { 1414: const char_type* __sign = __negative ? __lc->_M_negative_sign 1414: : __lc->_M_positive_sign; 1414: size_type __i = 1; 1414: for (; __beg != __end && __i < __sign_size 1414: && *__beg == __sign[__i]; ++__beg, (void)++__i); 1414: 1414: if (__i != __sign_size) 1414: __testvalid = false; 1414: } 1414: 1414: if (__testvalid) 1414: { 1414: 1414: if (__res.size() > 1) 1414: { 1414: const size_type __first = __res.find_first_not_of('0'); 1414: const bool __only_zeros = __first == string::npos; 1414: if (__first) 1414: __res.erase(0, __only_zeros ? __res.size() - 1 : __first); 1414: } 1414: 1414: 1414: if (__negative && __res[0] != '0') 1414: __res.insert(__res.begin(), '-'); 1414: 1414: 1414: if (__grouping_tmp.size()) 1414: { 1414: 1414: __grouping_tmp += static_cast(__testdecfound ? __last_pos 1414: : __n); 1414: if (!std::__verify_grouping(__lc->_M_grouping, 1414: __lc->_M_grouping_size, 1414: __grouping_tmp)) 1414: __err |= ios_base::failbit; 1414: } 1414: 1414: 1414: if (__testdecfound && __n != __lc->_M_frac_digits) 1414: __testvalid = false; 1414: } 1414: 1414: 1414: if (!__testvalid) 1414: __err |= ios_base::failbit; 1414: else 1414: __units.swap(__res); 1414: 1414: 1414: if (__beg == __end) 1414: __err |= ios_base::eofbit; 1414: return __beg; 1414: } 1414: # 370 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.tcc" 3 1414: template 1414: _InIter 1414: money_get<_CharT, _InIter>:: 1414: do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, 1414: ios_base::iostate& __err, long double& __units) const 1414: { 1414: string __str; 1414: __beg = __intl ? _M_extract(__beg, __end, __io, __err, __str) 1414: : _M_extract(__beg, __end, __io, __err, __str); 1414: std::__convert_to_v(__str.c_str(), __units, __err, _S_get_c_locale()); 1414: return __beg; 1414: } 1414: 1414: template 1414: _InIter 1414: money_get<_CharT, _InIter>:: 1414: do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, 1414: ios_base::iostate& __err, string_type& __digits) const 1414: { 1414: typedef typename string::size_type size_type; 1414: 1414: const locale& __loc = __io._M_getloc(); 1414: const ctype<_CharT>& __ctype = use_facet >(__loc); 1414: 1414: string __str; 1414: __beg = __intl ? _M_extract(__beg, __end, __io, __err, __str) 1414: : _M_extract(__beg, __end, __io, __err, __str); 1414: const size_type __len = __str.size(); 1414: if (__len) 1414: { 1414: __digits.resize(__len); 1414: __ctype.widen(__str.data(), __str.data() + __len, &__digits[0]); 1414: } 1414: return __beg; 1414: } 1414: # 422 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.tcc" 3 1414: template 1414: template 1414: _OutIter 1414: money_put<_CharT, _OutIter>:: 1414: _M_insert(iter_type __s, ios_base& __io, char_type __fill, 1414: const string_type& __digits) const 1414: { 1414: typedef typename string_type::size_type size_type; 1414: typedef money_base::part part; 1414: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 1414: 1414: const locale& __loc = __io._M_getloc(); 1414: const ctype<_CharT>& __ctype = use_facet >(__loc); 1414: 1414: __use_cache<__cache_type> __uc; 1414: const __cache_type* __lc = __uc(__loc); 1414: const char_type* __lit = __lc->_M_atoms; 1414: 1414: 1414: 1414: const char_type* __beg = __digits.data(); 1414: 1414: money_base::pattern __p; 1414: const char_type* __sign; 1414: size_type __sign_size; 1414: if (!(*__beg == __lit[money_base::_S_minus])) 1414: { 1414: __p = __lc->_M_pos_format; 1414: __sign = __lc->_M_positive_sign; 1414: __sign_size = __lc->_M_positive_sign_size; 1414: } 1414: else 1414: { 1414: __p = __lc->_M_neg_format; 1414: __sign = __lc->_M_negative_sign; 1414: __sign_size = __lc->_M_negative_sign_size; 1414: if (__digits.size()) 1414: ++__beg; 1414: } 1414: 1414: 1414: size_type __len = __ctype.scan_not(ctype_base::digit, __beg, 1414: __beg + __digits.size()) - __beg; 1414: if (__len) 1414: { 1414: 1414: 1414: 1414: string_type __value; 1414: __value.reserve(2 * __len); 1414: 1414: 1414: 1414: long __paddec = __len - __lc->_M_frac_digits; 1414: if (__paddec > 0) 1414: { 1414: if (__lc->_M_frac_digits < 0) 1414: __paddec = __len; 1414: if (__lc->_M_grouping_size) 1414: { 1414: __value.assign(2 * __paddec, char_type()); 1414: _CharT* __vend = 1414: std::__add_grouping(&__value[0], __lc->_M_thousands_sep, 1414: __lc->_M_grouping, 1414: __lc->_M_grouping_size, 1414: __beg, __beg + __paddec); 1414: __value.erase(__vend - &__value[0]); 1414: } 1414: else 1414: __value.assign(__beg, __paddec); 1414: } 1414: 1414: 1414: if (__lc->_M_frac_digits > 0) 1414: { 1414: __value += __lc->_M_decimal_point; 1414: if (__paddec >= 0) 1414: __value.append(__beg + __paddec, __lc->_M_frac_digits); 1414: else 1414: { 1414: 1414: __value.append(-__paddec, __lit[money_base::_S_zero]); 1414: __value.append(__beg, __len); 1414: } 1414: } 1414: 1414: 1414: const ios_base::fmtflags __f = __io.flags() 1414: & ios_base::adjustfield; 1414: __len = __value.size() + __sign_size; 1414: __len += ((__io.flags() & ios_base::showbase) 1414: ? __lc->_M_curr_symbol_size : 0); 1414: 1414: string_type __res; 1414: __res.reserve(2 * __len); 1414: 1414: const size_type __width = static_cast(__io.width()); 1414: const bool __testipad = (__f == ios_base::internal 1414: && __len < __width); 1414: 1414: for (int __i = 0; __i < 4; ++__i) 1414: { 1414: const part __which = static_cast(__p.field[__i]); 1414: switch (__which) 1414: { 1414: case money_base::symbol: 1414: if (__io.flags() & ios_base::showbase) 1414: __res.append(__lc->_M_curr_symbol, 1414: __lc->_M_curr_symbol_size); 1414: break; 1414: case money_base::sign: 1414: 1414: 1414: 1414: if (__sign_size) 1414: __res += __sign[0]; 1414: break; 1414: case money_base::value: 1414: __res += __value; 1414: break; 1414: case money_base::space: 1414: 1414: 1414: 1414: if (__testipad) 1414: __res.append(__width - __len, __fill); 1414: else 1414: __res += __fill; 1414: break; 1414: case money_base::none: 1414: if (__testipad) 1414: __res.append(__width - __len, __fill); 1414: break; 1414: } 1414: } 1414: 1414: 1414: if (__sign_size > 1) 1414: __res.append(__sign + 1, __sign_size - 1); 1414: 1414: 1414: __len = __res.size(); 1414: if (__width > __len) 1414: { 1414: if (__f == ios_base::left) 1414: 1414: __res.append(__width - __len, __fill); 1414: else 1414: 1414: __res.insert(0, __width - __len, __fill); 1414: __len = __width; 1414: } 1414: 1414: 1414: __s = std::__write(__s, __res.data(), __len); 1414: } 1414: __io.width(0); 1414: return __s; 1414: } 1414: # 592 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.tcc" 3 1414: template 1414: _OutIter 1414: money_put<_CharT, _OutIter>:: 1414: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 1414: long double __units) const 1414: { 1414: const locale __loc = __io.getloc(); 1414: const ctype<_CharT>& __ctype = use_facet >(__loc); 1414: 1414: 1414: int __cs_size = 64; 1414: char* __cs = static_cast(__builtin_alloca(__cs_size)); 1414: 1414: 1414: int __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 1414: "%.*Lf", 0, __units); 1414: 1414: if (__len >= __cs_size) 1414: { 1414: __cs_size = __len + 1; 1414: __cs = static_cast(__builtin_alloca(__cs_size)); 1414: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 1414: "%.*Lf", 0, __units); 1414: } 1414: # 624 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.tcc" 3 1414: string_type __digits(__len, char_type()); 1414: __ctype.widen(__cs, __cs + __len, &__digits[0]); 1414: return __intl ? _M_insert(__s, __io, __fill, __digits) 1414: : _M_insert(__s, __io, __fill, __digits); 1414: } 1414: 1414: template 1414: _OutIter 1414: money_put<_CharT, _OutIter>:: 1414: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 1414: const string_type& __digits) const 1414: { return __intl ? _M_insert(__s, __io, __fill, __digits) 1414: : _M_insert(__s, __io, __fill, __digits); } 1414: # 682 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.tcc" 3 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: time_base::dateorder 1414: time_get<_CharT, _InIter>::do_date_order() const 1414: { return time_base::no_order; } 1414: 1414: 1414: 1414: template 1414: _InIter 1414: time_get<_CharT, _InIter>:: 1414: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm, 1414: const _CharT* __format, 1414: __time_get_state &__state) const 1414: { 1414: const locale& __loc = __io._M_getloc(); 1414: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 1414: const ctype<_CharT>& __ctype = use_facet >(__loc); 1414: const size_t __len = char_traits<_CharT>::length(__format); 1414: 1414: ios_base::iostate __tmperr = ios_base::goodbit; 1414: size_t __i = 0; 1414: for (; __beg != __end && __i < __len && !__tmperr; ++__i) 1414: { 1414: if (__ctype.narrow(__format[__i], 0) == '%') 1414: { 1414: 1414: char __c = __ctype.narrow(__format[++__i], 0); 1414: int __mem = 0; 1414: if (__c == 'E' || __c == 'O') 1414: __c = __ctype.narrow(__format[++__i], 0); 1414: switch (__c) 1414: { 1414: const char* __cs; 1414: _CharT __wcs[10]; 1414: case 'a': 1414: case 'A': 1414: 1414: const char_type* __days[14]; 1414: __tp._M_days(&__days[0]); 1414: __tp._M_days_abbreviated(&__days[7]); 1414: __beg = _M_extract_name(__beg, __end, __mem, __days, 1414: 14, __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __tm->tm_wday = __mem % 7; 1414: __state._M_have_wday = 1; 1414: } 1414: break; 1414: case 'h': 1414: case 'b': 1414: case 'B': 1414: 1414: const char_type* __months[24]; 1414: __tp._M_months(&__months[0]); 1414: __tp._M_months_abbreviated(&__months[12]); 1414: __beg = _M_extract_name(__beg, __end, __mem, 1414: __months, 24, __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __tm->tm_mon = __mem % 12; 1414: __state._M_have_mon = 1; 1414: __state._M_want_xday = 1; 1414: } 1414: break; 1414: case 'c': 1414: 1414: const char_type* __dt[2]; 1414: __tp._M_date_time_formats(__dt); 1414: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1414: __tm, __dt[0], __state); 1414: if (!__tmperr) 1414: __state._M_want_xday = 1; 1414: break; 1414: case 'C': 1414: 1414: __beg = _M_extract_num(__beg, __end, __mem, 0, 99, 2, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __state._M_century = __mem; 1414: __state._M_have_century = 1; 1414: __state._M_want_xday = 1; 1414: } 1414: break; 1414: case 'd': 1414: case 'e': 1414: 1414: if (__ctype.is(ctype_base::space, *__beg)) 1414: ++__beg; 1414: __beg = _M_extract_num(__beg, __end, __mem, 1, 31, 2, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __tm->tm_mday = __mem; 1414: __state._M_have_mday = 1; 1414: __state._M_want_xday = 1; 1414: } 1414: break; 1414: case 'D': 1414: 1414: __cs = "%m/%d/%y"; 1414: __ctype.widen(__cs, __cs + 9, __wcs); 1414: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1414: __tm, __wcs, __state); 1414: if (!__tmperr) 1414: __state._M_want_xday = 1; 1414: break; 1414: case 'H': 1414: 1414: __beg = _M_extract_num(__beg, __end, __mem, 0, 23, 2, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __tm->tm_hour = __mem; 1414: __state._M_have_I = 0; 1414: } 1414: break; 1414: case 'I': 1414: 1414: __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __tm->tm_hour = __mem % 12; 1414: __state._M_have_I = 1; 1414: } 1414: break; 1414: case 'j': 1414: 1414: __beg = _M_extract_num(__beg, __end, __mem, 1, 366, 3, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __tm->tm_yday = __mem - 1; 1414: __state._M_have_yday = 1; 1414: } 1414: break; 1414: case 'm': 1414: 1414: __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __tm->tm_mon = __mem - 1; 1414: __state._M_have_mon = 1; 1414: } 1414: break; 1414: case 'M': 1414: 1414: __beg = _M_extract_num(__beg, __end, __mem, 0, 59, 2, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: __tm->tm_min = __mem; 1414: break; 1414: case 'n': 1414: case 't': 1414: while (__beg != __end 1414: && __ctype.is(ctype_base::space, *__beg)) 1414: ++__beg; 1414: break; 1414: case 'p': 1414: 1414: const char_type* __ampm[2]; 1414: __tp._M_am_pm(&__ampm[0]); 1414: if (!__ampm[0][0] || !__ampm[1][0]) 1414: break; 1414: __beg = _M_extract_name(__beg, __end, __mem, __ampm, 1414: 2, __io, __tmperr); 1414: if (!__tmperr && __mem) 1414: __state._M_is_pm = 1; 1414: break; 1414: case 'r': 1414: 1414: const char_type* __ampm_format; 1414: __tp._M_am_pm_format(&__ampm_format); 1414: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1414: __tm, __ampm_format, __state); 1414: break; 1414: case 'R': 1414: 1414: __cs = "%H:%M"; 1414: __ctype.widen(__cs, __cs + 6, __wcs); 1414: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1414: __tm, __wcs, __state); 1414: break; 1414: case 'S': 1414: 1414: 1414: 1414: __beg = _M_extract_num(__beg, __end, __mem, 0, 60, 2, 1414: 1414: 1414: 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: __tm->tm_sec = __mem; 1414: break; 1414: case 'T': 1414: 1414: __cs = "%H:%M:%S"; 1414: __ctype.widen(__cs, __cs + 9, __wcs); 1414: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1414: __tm, __wcs, __state); 1414: break; 1414: case 'U': 1414: 1414: __beg = _M_extract_num(__beg, __end, __mem, 0, 53, 2, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __state._M_week_no = __mem; 1414: __state._M_have_uweek = 1; 1414: } 1414: break; 1414: case 'w': 1414: 1414: __beg = _M_extract_num(__beg, __end, __mem, 0, 6, 1, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __tm->tm_wday = __mem; 1414: __state._M_have_wday = 1; 1414: } 1414: break; 1414: case 'W': 1414: 1414: __beg = _M_extract_num(__beg, __end, __mem, 0, 53, 2, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __state._M_week_no = __mem; 1414: __state._M_have_wweek = 1; 1414: } 1414: break; 1414: case 'x': 1414: 1414: const char_type* __dates[2]; 1414: __tp._M_date_formats(__dates); 1414: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1414: __tm, __dates[0], __state); 1414: break; 1414: case 'X': 1414: 1414: const char_type* __times[2]; 1414: __tp._M_time_formats(__times); 1414: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1414: __tm, __times[0], __state); 1414: break; 1414: case 'y': 1414: 1414: __beg = _M_extract_num(__beg, __end, __mem, 0, 99, 2, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __state._M_want_century = 1; 1414: __state._M_want_xday = 1; 1414: 1414: 1414: __c = 0; 1414: if (__beg != __end) 1414: __c = __ctype.narrow(*__beg, '*'); 1414: if (__c >= '0' && __c <= '9') 1414: { 1414: ++__beg; 1414: __mem = __mem * 10 + (__c - '0'); 1414: if (__beg != __end) 1414: { 1414: __c = __ctype.narrow(*__beg, '*'); 1414: if (__c >= '0' && __c <= '9') 1414: { 1414: ++__beg; 1414: __mem = __mem * 10 + (__c - '0'); 1414: } 1414: } 1414: __mem -= 1900; 1414: __state._M_want_century = 0; 1414: } 1414: 1414: 1414: else if (__mem < 69) 1414: __mem += 100; 1414: __tm->tm_year = __mem; 1414: } 1414: break; 1414: case 'Y': 1414: 1414: __beg = _M_extract_num(__beg, __end, __mem, 0, 9999, 4, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: __tm->tm_year = __mem - 1900; 1414: __state._M_want_century = 0; 1414: __state._M_want_xday = 1; 1414: } 1414: break; 1414: case 'Z': 1414: 1414: if (__ctype.is(ctype_base::upper, *__beg)) 1414: { 1414: int __tmp; 1414: __beg = _M_extract_name(__beg, __end, __tmp, 1414: __timepunct_cache<_CharT>::_S_timezones, 1414: 14, __io, __tmperr); 1414: 1414: 1414: if (__beg != __end && !__tmperr && __tmp == 0 1414: && (*__beg == __ctype.widen('-') 1414: || *__beg == __ctype.widen('+'))) 1414: { 1414: __beg = _M_extract_num(__beg, __end, __tmp, 0, 23, 2, 1414: __io, __tmperr); 1414: __beg = _M_extract_num(__beg, __end, __tmp, 0, 59, 2, 1414: __io, __tmperr); 1414: } 1414: } 1414: else 1414: __tmperr |= ios_base::failbit; 1414: break; 1414: case '%': 1414: if (*__beg == __ctype.widen('%')) 1414: ++__beg; 1414: else 1414: __tmperr |= ios_base::failbit; 1414: break; 1414: default: 1414: 1414: __tmperr |= ios_base::failbit; 1414: } 1414: } 1414: else if (__ctype.is(ctype_base::space, __format[__i])) 1414: { 1414: 1414: while (__beg != __end 1414: && __ctype.is(ctype_base::space, *__beg)) 1414: ++__beg; 1414: } 1414: else 1414: { 1414: 1414: 1414: if (__ctype.tolower(__format[__i]) == __ctype.tolower(*__beg) 1414: || __ctype.toupper(__format[__i]) == __ctype.toupper(*__beg)) 1414: ++__beg; 1414: else 1414: __tmperr |= ios_base::failbit; 1414: } 1414: } 1414: 1414: if (__tmperr || __i != __len) 1414: __err |= ios_base::failbit; 1414: 1414: return __beg; 1414: } 1414: 1414: template 1414: _InIter 1414: time_get<_CharT, _InIter>:: 1414: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm, 1414: const _CharT* __format) const 1414: { 1414: __time_get_state __state = __time_get_state(); 1414: return _M_extract_via_format(__beg, __end, __io, __err, __tm, 1414: __format, __state); 1414: } 1414: 1414: template 1414: _InIter 1414: time_get<_CharT, _InIter>:: 1414: _M_extract_num(iter_type __beg, iter_type __end, int& __member, 1414: int __min, int __max, size_t __len, 1414: ios_base& __io, ios_base::iostate& __err) const 1414: { 1414: const locale& __loc = __io._M_getloc(); 1414: const ctype<_CharT>& __ctype = use_facet >(__loc); 1414: 1414: size_t __i = 0; 1414: int __value = 0; 1414: for (; __beg != __end && __i < __len; ++__beg, (void)++__i) 1414: { 1414: const char __c = __ctype.narrow(*__beg, '*'); 1414: if (__c >= '0' && __c <= '9') 1414: { 1414: __value = __value * 10 + (__c - '0'); 1414: if (__value > __max) 1414: break; 1414: } 1414: else 1414: break; 1414: } 1414: if (__i && __value >= __min && __value <= __max) 1414: __member = __value; 1414: else 1414: __err |= ios_base::failbit; 1414: 1414: return __beg; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: _InIter 1414: time_get<_CharT, _InIter>:: 1414: _M_extract_name(iter_type __beg, iter_type __end, int& __member, 1414: const _CharT** __names, size_t __indexlen, 1414: ios_base& __io, ios_base::iostate& __err) const 1414: { 1414: typedef char_traits<_CharT> __traits_type; 1414: const locale& __loc = __io._M_getloc(); 1414: const ctype<_CharT>& __ctype = use_facet >(__loc); 1414: 1414: size_t* __matches 1414: = static_cast(__builtin_alloca(2 * sizeof(size_t) 1414: * __indexlen)); 1414: size_t* __lengths = __matches + __indexlen; 1414: size_t __nmatches = 0; 1414: size_t __pos = 0; 1414: bool __testvalid = true; 1414: const char_type* __name; 1414: bool __begupdated = false; 1414: 1414: 1414: if (__beg != __end) 1414: { 1414: const char_type __c = *__beg; 1414: 1414: const char_type __cl = __ctype.tolower(__c); 1414: const char_type __cu = __ctype.toupper(__c); 1414: for (size_t __i1 = 0; __i1 < __indexlen; ++__i1) 1414: if (__cl == __ctype.tolower(__names[__i1][0]) 1414: || __cu == __ctype.toupper(__names[__i1][0])) 1414: { 1414: __lengths[__nmatches] 1414: = __traits_type::length(__names[__i1]); 1414: __matches[__nmatches++] = __i1; 1414: } 1414: } 1414: 1414: while (__nmatches > 1) 1414: { 1414: 1414: size_t __minlen = __lengths[0]; 1414: for (size_t __i2 = 1; __i2 < __nmatches; ++__i2) 1414: __minlen = std::min(__minlen, __lengths[__i2]); 1414: ++__pos; 1414: ++__beg; 1414: if (__pos == __minlen) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: bool __match_longer = false; 1414: 1414: if (__beg != __end) 1414: { 1414: 1414: const char_type __cl = __ctype.tolower(*__beg); 1414: const char_type __cu = __ctype.toupper(*__beg); 1414: for (size_t __i3 = 0; __i3 < __nmatches; ++__i3) 1414: { 1414: __name = __names[__matches[__i3]]; 1414: if (__lengths[__i3] > __pos 1414: && (__ctype.tolower(__name[__pos]) == __cl 1414: || __ctype.toupper(__name[__pos]) == __cu)) 1414: { 1414: __match_longer = true; 1414: break; 1414: } 1414: } 1414: } 1414: for (size_t __i4 = 0; __i4 < __nmatches;) 1414: if (__match_longer == (__lengths[__i4] == __pos)) 1414: { 1414: __matches[__i4] = __matches[--__nmatches]; 1414: __lengths[__i4] = __lengths[__nmatches]; 1414: } 1414: else 1414: ++__i4; 1414: if (__match_longer) 1414: { 1414: __minlen = __lengths[0]; 1414: for (size_t __i5 = 1; __i5 < __nmatches; ++__i5) 1414: __minlen = std::min(__minlen, __lengths[__i5]); 1414: } 1414: else 1414: { 1414: 1414: 1414: if (__nmatches == 2 && (__indexlen & 1) == 0) 1414: { 1414: if (__matches[0] < __indexlen / 2) 1414: { 1414: if (__matches[1] == __matches[0] + __indexlen / 2) 1414: __nmatches = 1; 1414: } 1414: else if (__matches[1] == __matches[0] - __indexlen / 2) 1414: { 1414: __matches[0] = __matches[1]; 1414: __lengths[0] = __lengths[1]; 1414: __nmatches = 1; 1414: } 1414: } 1414: __begupdated = true; 1414: break; 1414: } 1414: } 1414: if (__pos < __minlen && __beg != __end) 1414: { 1414: 1414: const char_type __cl = __ctype.tolower(*__beg); 1414: const char_type __cu = __ctype.toupper(*__beg); 1414: for (size_t __i6 = 0; __i6 < __nmatches;) 1414: { 1414: __name = __names[__matches[__i6]]; 1414: if (__ctype.tolower(__name[__pos]) != __cl 1414: && __ctype.toupper(__name[__pos]) != __cu) 1414: { 1414: __matches[__i6] = __matches[--__nmatches]; 1414: __lengths[__i6] = __lengths[__nmatches]; 1414: } 1414: else 1414: ++__i6; 1414: } 1414: } 1414: else 1414: break; 1414: } 1414: 1414: if (__nmatches == 1) 1414: { 1414: 1414: if (!__begupdated) 1414: { 1414: ++__beg; 1414: ++__pos; 1414: } 1414: __name = __names[__matches[0]]; 1414: const size_t __len = __lengths[0]; 1414: while (__pos < __len 1414: && __beg != __end 1414: 1414: && (__ctype.tolower(__name[__pos]) == __ctype.tolower(*__beg) 1414: || (__ctype.toupper(__name[__pos]) 1414: == __ctype.toupper(*__beg)))) 1414: ++__beg, (void)++__pos; 1414: 1414: if (__len == __pos) 1414: __member = __matches[0]; 1414: else 1414: __testvalid = false; 1414: } 1414: else 1414: __testvalid = false; 1414: if (!__testvalid) 1414: __err |= ios_base::failbit; 1414: 1414: return __beg; 1414: } 1414: 1414: template 1414: _InIter 1414: time_get<_CharT, _InIter>:: 1414: _M_extract_wday_or_month(iter_type __beg, iter_type __end, int& __member, 1414: const _CharT** __names, size_t __indexlen, 1414: ios_base& __io, ios_base::iostate& __err) const 1414: { 1414: typedef char_traits<_CharT> __traits_type; 1414: const locale& __loc = __io._M_getloc(); 1414: const ctype<_CharT>& __ctype = use_facet >(__loc); 1414: 1414: int* __matches = static_cast(__builtin_alloca(2 * sizeof(int) 1414: * __indexlen)); 1414: size_t __nmatches = 0; 1414: size_t* __matches_lengths = 0; 1414: size_t __pos = 0; 1414: 1414: if (__beg != __end) 1414: { 1414: const char_type __c = *__beg; 1414: for (size_t __i = 0; __i < 2 * __indexlen; ++__i) 1414: if (__c == __names[__i][0] 1414: || __c == __ctype.toupper(__names[__i][0])) 1414: __matches[__nmatches++] = __i; 1414: } 1414: 1414: if (__nmatches) 1414: { 1414: ++__beg; 1414: ++__pos; 1414: 1414: __matches_lengths 1414: = static_cast(__builtin_alloca(sizeof(size_t) 1414: * __nmatches)); 1414: for (size_t __i = 0; __i < __nmatches; ++__i) 1414: __matches_lengths[__i] 1414: = __traits_type::length(__names[__matches[__i]]); 1414: } 1414: 1414: for (; __beg != __end; ++__beg, (void)++__pos) 1414: { 1414: size_t __nskipped = 0; 1414: const char_type __c = *__beg; 1414: for (size_t __i = 0; __i < __nmatches;) 1414: { 1414: const char_type* __name = __names[__matches[__i]]; 1414: if (__pos >= __matches_lengths[__i]) 1414: ++__nskipped, ++__i; 1414: else if (!(__name[__pos] == __c)) 1414: { 1414: --__nmatches; 1414: __matches[__i] = __matches[__nmatches]; 1414: __matches_lengths[__i] = __matches_lengths[__nmatches]; 1414: } 1414: else 1414: ++__i; 1414: } 1414: if (__nskipped == __nmatches) 1414: break; 1414: } 1414: 1414: if ((__nmatches == 1 && __matches_lengths[0] == __pos) 1414: || (__nmatches == 2 && (__matches_lengths[0] == __pos 1414: || __matches_lengths[1] == __pos))) 1414: __member = (__matches[0] >= (int)__indexlen 1414: ? __matches[0] - (int)__indexlen : __matches[0]); 1414: else 1414: __err |= ios_base::failbit; 1414: 1414: return __beg; 1414: } 1414: 1414: template 1414: _InIter 1414: time_get<_CharT, _InIter>:: 1414: do_get_time(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm) const 1414: { 1414: const locale& __loc = __io._M_getloc(); 1414: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 1414: const char_type* __times[2]; 1414: __tp._M_time_formats(__times); 1414: __time_get_state __state = __time_get_state(); 1414: __beg = _M_extract_via_format(__beg, __end, __io, __err, 1414: __tm, __times[0], __state); 1414: __state._M_finalize_state(__tm); 1414: if (__beg == __end) 1414: __err |= ios_base::eofbit; 1414: return __beg; 1414: } 1414: 1414: template 1414: _InIter 1414: time_get<_CharT, _InIter>:: 1414: do_get_date(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm) const 1414: { 1414: const locale& __loc = __io._M_getloc(); 1414: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 1414: const char_type* __dates[2]; 1414: __tp._M_date_formats(__dates); 1414: __time_get_state __state = __time_get_state(); 1414: __beg = _M_extract_via_format(__beg, __end, __io, __err, 1414: __tm, __dates[0], __state); 1414: __state._M_finalize_state(__tm); 1414: if (__beg == __end) 1414: __err |= ios_base::eofbit; 1414: return __beg; 1414: } 1414: 1414: template 1414: _InIter 1414: time_get<_CharT, _InIter>:: 1414: do_get_weekday(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm) const 1414: { 1414: const locale& __loc = __io._M_getloc(); 1414: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 1414: const char_type* __days[14]; 1414: __tp._M_days_abbreviated(__days); 1414: __tp._M_days(__days + 7); 1414: int __tmpwday; 1414: ios_base::iostate __tmperr = ios_base::goodbit; 1414: 1414: __beg = _M_extract_wday_or_month(__beg, __end, __tmpwday, __days, 7, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: __tm->tm_wday = __tmpwday; 1414: else 1414: __err |= ios_base::failbit; 1414: 1414: if (__beg == __end) 1414: __err |= ios_base::eofbit; 1414: return __beg; 1414: } 1414: 1414: template 1414: _InIter 1414: time_get<_CharT, _InIter>:: 1414: do_get_monthname(iter_type __beg, iter_type __end, 1414: ios_base& __io, ios_base::iostate& __err, tm* __tm) const 1414: { 1414: const locale& __loc = __io._M_getloc(); 1414: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 1414: const char_type* __months[24]; 1414: __tp._M_months_abbreviated(__months); 1414: __tp._M_months(__months + 12); 1414: int __tmpmon; 1414: ios_base::iostate __tmperr = ios_base::goodbit; 1414: 1414: __beg = _M_extract_wday_or_month(__beg, __end, __tmpmon, __months, 12, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: __tm->tm_mon = __tmpmon; 1414: else 1414: __err |= ios_base::failbit; 1414: 1414: if (__beg == __end) 1414: __err |= ios_base::eofbit; 1414: return __beg; 1414: } 1414: 1414: template 1414: _InIter 1414: time_get<_CharT, _InIter>:: 1414: do_get_year(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm) const 1414: { 1414: int __tmpyear; 1414: ios_base::iostate __tmperr = ios_base::goodbit; 1414: const locale& __loc = __io._M_getloc(); 1414: const ctype<_CharT>& __ctype = use_facet >(__loc); 1414: 1414: __beg = _M_extract_num(__beg, __end, __tmpyear, 0, 99, 2, 1414: __io, __tmperr); 1414: if (!__tmperr) 1414: { 1414: char __c = 0; 1414: if (__beg != __end) 1414: __c = __ctype.narrow(*__beg, '*'); 1414: 1414: 1414: 1414: if (__c >= '0' && __c <= '9') 1414: { 1414: ++__beg; 1414: __tmpyear = __tmpyear * 10 + (__c - '0'); 1414: if (__beg != __end) 1414: { 1414: __c = __ctype.narrow(*__beg, '*'); 1414: if (__c >= '0' && __c <= '9') 1414: { 1414: ++__beg; 1414: __tmpyear = __tmpyear * 10 + (__c - '0'); 1414: } 1414: } 1414: __tmpyear -= 1900; 1414: } 1414: else if (__tmpyear < 69) 1414: __tmpyear += 100; 1414: __tm->tm_year = __tmpyear; 1414: } 1414: else 1414: __err |= ios_base::failbit; 1414: 1414: if (__beg == __end) 1414: __err |= ios_base::eofbit; 1414: return __beg; 1414: } 1414: 1414: 1414: template 1414: inline 1414: _InIter 1414: time_get<_CharT, _InIter>:: 1414: get(iter_type __s, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm, const char_type* __fmt, 1414: const char_type* __fmtend) const 1414: { 1414: const locale& __loc = __io._M_getloc(); 1414: ctype<_CharT> const& __ctype = use_facet >(__loc); 1414: __err = ios_base::goodbit; 1414: bool __use_state = false; 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wpmf-conversions" 1414: 1414: 1414: 1414: 1414: 1414: 1414: if ((void*)(this->*(&time_get::do_get)) == (void*)(&time_get::do_get)) 1414: __use_state = true; 1414: #pragma GCC diagnostic pop 1414: 1414: __time_get_state __state = __time_get_state(); 1414: while (__fmt != __fmtend && 1414: __err == ios_base::goodbit) 1414: { 1414: if (__s == __end) 1414: { 1414: __err = ios_base::eofbit | ios_base::failbit; 1414: break; 1414: } 1414: else if (__ctype.narrow(*__fmt, 0) == '%') 1414: { 1414: const char_type* __fmt_start = __fmt; 1414: char __format; 1414: char __mod = 0; 1414: if (++__fmt == __fmtend) 1414: { 1414: __err = ios_base::failbit; 1414: break; 1414: } 1414: const char __c = __ctype.narrow(*__fmt, 0); 1414: if (__c != 'E' && __c != 'O') 1414: __format = __c; 1414: else if (++__fmt != __fmtend) 1414: { 1414: __mod = __c; 1414: __format = __ctype.narrow(*__fmt, 0); 1414: } 1414: else 1414: { 1414: __err = ios_base::failbit; 1414: break; 1414: } 1414: if (__use_state) 1414: { 1414: char_type __new_fmt[4]; 1414: __new_fmt[0] = __fmt_start[0]; 1414: __new_fmt[1] = __fmt_start[1]; 1414: if (__mod) 1414: { 1414: __new_fmt[2] = __fmt_start[2]; 1414: __new_fmt[3] = char_type(); 1414: } 1414: else 1414: __new_fmt[2] = char_type(); 1414: __s = _M_extract_via_format(__s, __end, __io, __err, __tm, 1414: __new_fmt, __state); 1414: if (__s == __end) 1414: __err |= ios_base::eofbit; 1414: } 1414: else 1414: __s = this->do_get(__s, __end, __io, __err, __tm, __format, 1414: __mod); 1414: ++__fmt; 1414: } 1414: else if (__ctype.is(ctype_base::space, *__fmt)) 1414: { 1414: ++__fmt; 1414: while (__fmt != __fmtend && 1414: __ctype.is(ctype_base::space, *__fmt)) 1414: ++__fmt; 1414: 1414: while (__s != __end && 1414: __ctype.is(ctype_base::space, *__s)) 1414: ++__s; 1414: } 1414: 1414: else if (__ctype.tolower(*__s) == __ctype.tolower(*__fmt) || 1414: __ctype.toupper(*__s) == __ctype.toupper(*__fmt)) 1414: { 1414: ++__s; 1414: ++__fmt; 1414: } 1414: else 1414: { 1414: __err = ios_base::failbit; 1414: break; 1414: } 1414: } 1414: if (__use_state) 1414: __state._M_finalize_state(__tm); 1414: return __s; 1414: } 1414: 1414: template 1414: inline 1414: _InIter 1414: time_get<_CharT, _InIter>:: 1414: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1414: ios_base::iostate& __err, tm* __tm, 1414: char __format, char __mod) const 1414: { 1414: const locale& __loc = __io._M_getloc(); 1414: ctype<_CharT> const& __ctype = use_facet >(__loc); 1414: __err = ios_base::goodbit; 1414: 1414: char_type __fmt[4]; 1414: __fmt[0] = __ctype.widen('%'); 1414: if (!__mod) 1414: { 1414: __fmt[1] = __format; 1414: __fmt[2] = char_type(); 1414: } 1414: else 1414: { 1414: __fmt[1] = __mod; 1414: __fmt[2] = __format; 1414: __fmt[3] = char_type(); 1414: } 1414: 1414: __time_get_state __state = __time_get_state(); 1414: __beg = _M_extract_via_format(__beg, __end, __io, __err, __tm, __fmt, 1414: __state); 1414: __state._M_finalize_state(__tm); 1414: if (__beg == __end) 1414: __err |= ios_base::eofbit; 1414: return __beg; 1414: } 1414: 1414: 1414: 1414: template 1414: _OutIter 1414: time_put<_CharT, _OutIter>:: 1414: put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 1414: const _CharT* __beg, const _CharT* __end) const 1414: { 1414: const locale& __loc = __io._M_getloc(); 1414: ctype<_CharT> const& __ctype = use_facet >(__loc); 1414: for (; __beg != __end; ++__beg) 1414: if (__ctype.narrow(*__beg, 0) != '%') 1414: { 1414: *__s = *__beg; 1414: ++__s; 1414: } 1414: else if (++__beg != __end) 1414: { 1414: char __format; 1414: char __mod = 0; 1414: const char __c = __ctype.narrow(*__beg, 0); 1414: if (__c != 'E' && __c != 'O') 1414: __format = __c; 1414: else if (++__beg != __end) 1414: { 1414: __mod = __c; 1414: __format = __ctype.narrow(*__beg, 0); 1414: } 1414: else 1414: break; 1414: __s = this->do_put(__s, __io, __fill, __tm, __format, __mod); 1414: } 1414: else 1414: break; 1414: return __s; 1414: } 1414: 1414: template 1414: _OutIter 1414: time_put<_CharT, _OutIter>:: 1414: do_put(iter_type __s, ios_base& __io, char_type, const tm* __tm, 1414: char __format, char __mod) const 1414: { 1414: const locale& __loc = __io._M_getloc(); 1414: ctype<_CharT> const& __ctype = use_facet >(__loc); 1414: __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc); 1414: 1414: 1414: 1414: const size_t __maxlen = 128; 1414: char_type __res[__maxlen]; 1414: 1414: 1414: 1414: 1414: 1414: 1414: char_type __fmt[4]; 1414: __fmt[0] = __ctype.widen('%'); 1414: if (!__mod) 1414: { 1414: __fmt[1] = __format; 1414: __fmt[2] = char_type(); 1414: } 1414: else 1414: { 1414: __fmt[1] = __mod; 1414: __fmt[2] = __format; 1414: __fmt[3] = char_type(); 1414: } 1414: 1414: __tp._M_put(__res, __maxlen, __fmt, __tm); 1414: 1414: 1414: return std::__write(__s, __res, char_traits::length(__res)); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: extern template class moneypunct; 1414: extern template class moneypunct; 1414: extern template class moneypunct_byname; 1414: extern template class moneypunct_byname; 1414: extern template class __cxx11:: money_get; 1414: extern template class __cxx11:: money_put; 1414: extern template class __timepunct; 1414: extern template class time_put; 1414: extern template class time_put_byname; 1414: extern template class time_get; 1414: extern template class time_get_byname; 1414: extern template class messages; 1414: extern template class messages_byname; 1414: 1414: extern template 1414: const moneypunct* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const moneypunct* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const money_put* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const money_get* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const __timepunct* 1414: __try_use_facet<__timepunct >(const locale&) noexcept; 1414: 1414: extern template 1414: const time_put* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const time_get* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const messages* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const moneypunct& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const moneypunct& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const money_put& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const money_get& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const __timepunct& 1414: use_facet<__timepunct >(const locale&); 1414: 1414: extern template 1414: const time_put& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const time_get& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const messages& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet<__timepunct >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: 1414: extern template class moneypunct; 1414: extern template class moneypunct; 1414: extern template class moneypunct_byname; 1414: extern template class moneypunct_byname; 1414: extern template class __cxx11:: money_get; 1414: extern template class __cxx11:: money_put; 1414: extern template class __timepunct; 1414: extern template class time_put; 1414: extern template class time_put_byname; 1414: extern template class time_get; 1414: extern template class time_get_byname; 1414: extern template class messages; 1414: extern template class messages_byname; 1414: 1414: extern template 1414: const moneypunct* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const moneypunct* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const money_put* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const money_get* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const __timepunct* 1414: __try_use_facet<__timepunct >(const locale&) noexcept; 1414: 1414: extern template 1414: const time_put* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const time_get* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const messages* 1414: __try_use_facet >(const locale&) noexcept; 1414: 1414: extern template 1414: const moneypunct& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const moneypunct& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const money_put& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const money_get& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const __timepunct& 1414: use_facet<__timepunct >(const locale&); 1414: 1414: extern template 1414: const time_put& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const time_get& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: const messages& 1414: use_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet<__timepunct >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: extern template 1414: bool 1414: has_facet >(const locale&); 1414: 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: } 1414: # 2072 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_facets_nonio.h" 2 3 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/locale" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_conv.h" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_conv.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: bool 1414: __do_str_codecvt(const _InChar* __first, const _InChar* __last, 1414: _OutStr& __outstr, const _Codecvt& __cvt, _State& __state, 1414: size_t& __count, _Fn __fn) 1414: { 1414: if (__first == __last) 1414: { 1414: __outstr.clear(); 1414: __count = 0; 1414: return true; 1414: } 1414: 1414: size_t __outchars = 0; 1414: auto __next = __first; 1414: const auto __maxlen = __cvt.max_length() + 1; 1414: 1414: codecvt_base::result __result; 1414: do 1414: { 1414: __outstr.resize(__outstr.size() + (__last - __next) * __maxlen); 1414: auto __outnext = &__outstr.front() + __outchars; 1414: auto const __outlast = &__outstr.back() + 1; 1414: __result = (__cvt.*__fn)(__state, __next, __last, __next, 1414: __outnext, __outlast, __outnext); 1414: __outchars = __outnext - &__outstr.front(); 1414: } 1414: while (__result == codecvt_base::partial && __next != __last 1414: && ptrdiff_t(__outstr.size() - __outchars) < __maxlen); 1414: 1414: if (__result == codecvt_base::error) 1414: { 1414: __count = __next - __first; 1414: return false; 1414: } 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: 1414: 1414: if constexpr (is_same::value) 1414: if (__result == codecvt_base::noconv) 1414: { 1414: __outstr.assign(__first, __last); 1414: __count = __last - __first; 1414: return true; 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: __outstr.resize(__outchars); 1414: __count = __next - __first; 1414: return true; 1414: } 1414: 1414: 1414: template 1414: inline bool 1414: __str_codecvt_in(const char* __first, const char* __last, 1414: basic_string<_CharT, _Traits, _Alloc>& __outstr, 1414: const codecvt<_CharT, char, _State>& __cvt, 1414: _State& __state, size_t& __count) 1414: { 1414: using _Codecvt = codecvt<_CharT, char, _State>; 1414: using _ConvFn 1414: = codecvt_base::result 1414: (_Codecvt::*)(_State&, const char*, const char*, const char*&, 1414: _CharT*, _CharT*, _CharT*&) const; 1414: _ConvFn __fn = &codecvt<_CharT, char, _State>::in; 1414: return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, 1414: __count, __fn); 1414: } 1414: 1414: 1414: template 1414: inline bool 1414: __str_codecvt_in(const char* __first, const char* __last, 1414: basic_string<_CharT, _Traits, _Alloc>& __outstr, 1414: const codecvt<_CharT, char, _State>& __cvt) 1414: { 1414: _State __state = {}; 1414: size_t __n; 1414: return __str_codecvt_in(__first, __last, __outstr, __cvt, __state, __n); 1414: } 1414: 1414: 1414: template 1414: inline bool 1414: __str_codecvt_in_all(const char* __first, const char* __last, 1414: basic_string<_CharT, _Traits, _Alloc>& __outstr, 1414: const codecvt<_CharT, char, _State>& __cvt) 1414: { 1414: _State __state = {}; 1414: size_t __n; 1414: return __str_codecvt_in(__first, __last, __outstr, __cvt, __state, __n) 1414: && (__n == size_t(__last - __first)); 1414: } 1414: 1414: 1414: template 1414: inline bool 1414: __str_codecvt_out(const _CharT* __first, const _CharT* __last, 1414: basic_string& __outstr, 1414: const codecvt<_CharT, char, _State>& __cvt, 1414: _State& __state, size_t& __count) 1414: { 1414: using _Codecvt = codecvt<_CharT, char, _State>; 1414: using _ConvFn 1414: = codecvt_base::result 1414: (_Codecvt::*)(_State&, const _CharT*, const _CharT*, const _CharT*&, 1414: char*, char*, char*&) const; 1414: _ConvFn __fn = &codecvt<_CharT, char, _State>::out; 1414: return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, 1414: __count, __fn); 1414: } 1414: 1414: 1414: template 1414: inline bool 1414: __str_codecvt_out(const _CharT* __first, const _CharT* __last, 1414: basic_string& __outstr, 1414: const codecvt<_CharT, char, _State>& __cvt) 1414: { 1414: _State __state = {}; 1414: size_t __n; 1414: return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n); 1414: } 1414: 1414: 1414: template 1414: inline bool 1414: __str_codecvt_out_all(const _CharT* __first, const _CharT* __last, 1414: basic_string& __outstr, 1414: const codecvt<_CharT, char, _State>& __cvt) 1414: { 1414: _State __state = {}; 1414: size_t __n; 1414: return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n) 1414: && (__n == size_t(__last - __first)); 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: inline bool 1414: __str_codecvt_out(const _CharT* __first, const _CharT* __last, 1414: basic_string& __outstr, 1414: const codecvt<_CharT, char8_t, _State>& __cvt, 1414: _State& __state, size_t& __count) 1414: { 1414: using _Codecvt = codecvt<_CharT, char8_t, _State>; 1414: using _ConvFn 1414: = codecvt_base::result 1414: (_Codecvt::*)(_State&, const _CharT*, const _CharT*, const _CharT*&, 1414: char8_t*, char8_t*, char8_t*&) const; 1414: _ConvFn __fn = &codecvt<_CharT, char8_t, _State>::out; 1414: return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, 1414: __count, __fn); 1414: } 1414: 1414: template 1414: inline bool 1414: __str_codecvt_out(const _CharT* __first, const _CharT* __last, 1414: basic_string& __outstr, 1414: const codecvt<_CharT, char8_t, _State>& __cvt) 1414: { 1414: _State __state = {}; 1414: size_t __n; 1414: return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n); 1414: } 1414: 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: struct _Scoped_ptr 1414: { 1414: __attribute__((__nonnull__(2))) 1414: explicit 1414: _Scoped_ptr(_Tp* __ptr) noexcept 1414: : _M_ptr(__ptr) 1414: { } 1414: 1414: _Scoped_ptr(_Tp* __ptr, const char* __msg) 1414: : _M_ptr(__ptr) 1414: { 1414: if (!__ptr) 1414: __throw_logic_error(__msg); 1414: } 1414: 1414: ~_Scoped_ptr() { delete _M_ptr; } 1414: 1414: _Scoped_ptr(const _Scoped_ptr&) = delete; 1414: _Scoped_ptr& operator=(const _Scoped_ptr&) = delete; 1414: 1414: __attribute__((__returns_nonnull__)) 1414: _Tp* operator->() const noexcept { return _M_ptr; } 1414: 1414: _Tp& operator*() const noexcept { return *_M_ptr; } 1414: 1414: private: 1414: _Tp* _M_ptr; 1414: }; 1414: } 1414: 1414: namespace __cxx11 { 1414: 1414: 1414: template, 1414: typename _Byte_alloc = allocator> 1414: class [[__deprecated__]] wstring_convert 1414: { 1414: public: 1414: typedef basic_string, _Byte_alloc> byte_string; 1414: typedef basic_string<_Elem, char_traits<_Elem>, _Wide_alloc> wide_string; 1414: typedef typename _Codecvt::state_type state_type; 1414: typedef typename wide_string::traits_type::int_type int_type; 1414: 1414: 1414: wstring_convert() : _M_cvt(new _Codecvt()) { } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: explicit 1414: wstring_convert(_Codecvt* __pcvt) : _M_cvt(__pcvt, "wstring_convert") 1414: { } 1414: # 294 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_conv.h" 3 1414: wstring_convert(_Codecvt* __pcvt, state_type __state) 1414: : _M_cvt(__pcvt, "std::wstring_convert"), 1414: _M_state(__state), _M_with_cvtstate(true) 1414: { } 1414: 1414: 1414: 1414: 1414: 1414: 1414: explicit 1414: wstring_convert(const byte_string& __byte_err, 1414: const wide_string& __wide_err = wide_string()) 1414: : _M_cvt(new _Codecvt), 1414: _M_byte_err_string(__byte_err), _M_wide_err_string(__wide_err), 1414: _M_with_strings(true) 1414: { } 1414: 1414: ~wstring_convert() = default; 1414: 1414: 1414: 1414: wstring_convert(const wstring_convert&) = delete; 1414: wstring_convert& operator=(const wstring_convert&) = delete; 1414: 1414: 1414: wide_string 1414: from_bytes(char __byte) 1414: { 1414: char __bytes[2] = { __byte }; 1414: return from_bytes(__bytes, __bytes+1); 1414: } 1414: 1414: wide_string 1414: from_bytes(const char* __ptr) 1414: { return from_bytes(__ptr, __ptr+char_traits::length(__ptr)); } 1414: 1414: wide_string 1414: from_bytes(const byte_string& __str) 1414: { 1414: auto __ptr = __str.data(); 1414: return from_bytes(__ptr, __ptr + __str.size()); 1414: } 1414: 1414: wide_string 1414: from_bytes(const char* __first, const char* __last) 1414: { 1414: if (!_M_with_cvtstate) 1414: _M_state = state_type(); 1414: wide_string __out{ _M_wide_err_string.get_allocator() }; 1414: if (__str_codecvt_in(__first, __last, __out, *_M_cvt, _M_state, 1414: _M_count)) 1414: return __out; 1414: if (_M_with_strings) 1414: return _M_wide_err_string; 1414: __throw_range_error("wstring_convert::from_bytes"); 1414: } 1414: 1414: 1414: 1414: byte_string 1414: to_bytes(_Elem __wchar) 1414: { 1414: _Elem __wchars[2] = { __wchar }; 1414: return to_bytes(__wchars, __wchars+1); 1414: } 1414: 1414: byte_string 1414: to_bytes(const _Elem* __ptr) 1414: { 1414: return to_bytes(__ptr, __ptr+wide_string::traits_type::length(__ptr)); 1414: } 1414: 1414: byte_string 1414: to_bytes(const wide_string& __wstr) 1414: { 1414: auto __ptr = __wstr.data(); 1414: return to_bytes(__ptr, __ptr + __wstr.size()); 1414: } 1414: 1414: byte_string 1414: to_bytes(const _Elem* __first, const _Elem* __last) 1414: { 1414: if (!_M_with_cvtstate) 1414: _M_state = state_type(); 1414: byte_string __out{ _M_byte_err_string.get_allocator() }; 1414: if (__str_codecvt_out(__first, __last, __out, *_M_cvt, _M_state, 1414: _M_count)) 1414: return __out; 1414: if (_M_with_strings) 1414: return _M_byte_err_string; 1414: __throw_range_error("wstring_convert::to_bytes"); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: size_t converted() const noexcept { return _M_count; } 1414: 1414: 1414: state_type state() const { return _M_state; } 1414: 1414: private: 1414: __detail::_Scoped_ptr<_Codecvt> _M_cvt; 1414: byte_string _M_byte_err_string; 1414: wide_string _M_wide_err_string; 1414: state_type _M_state = state_type(); 1414: size_t _M_count = 0; 1414: bool _M_with_cvtstate = false; 1414: bool _M_with_strings = false; 1414: }; 1414: 1414: } 1414: 1414: 1414: template> 1414: class [[__deprecated__]] wbuffer_convert 1414: : public basic_streambuf<_Elem, _Tr> 1414: { 1414: typedef basic_streambuf<_Elem, _Tr> _Wide_streambuf; 1414: 1414: public: 1414: typedef typename _Codecvt::state_type state_type; 1414: 1414: 1414: wbuffer_convert() : wbuffer_convert(nullptr) { } 1414: # 431 "/usr/arm-linux-gnueabihf/include/c++/16/bits/locale_conv.h" 3 1414: explicit 1414: wbuffer_convert(streambuf* __bytebuf, _Codecvt* __pcvt = new _Codecvt, 1414: state_type __state = state_type()) 1414: : _M_buf(__bytebuf), _M_cvt(__pcvt, "std::wbuffer_convert"), 1414: _M_state(__state), _M_always_noconv(_M_cvt->always_noconv()) 1414: { 1414: if (_M_buf) 1414: { 1414: this->setp(_M_put_area, _M_put_area + _S_buffer_length); 1414: this->setg(_M_get_area + _S_putback_length, 1414: _M_get_area + _S_putback_length, 1414: _M_get_area + _S_putback_length); 1414: } 1414: } 1414: 1414: ~wbuffer_convert() = default; 1414: 1414: 1414: 1414: wbuffer_convert(const wbuffer_convert&) = delete; 1414: wbuffer_convert& operator=(const wbuffer_convert&) = delete; 1414: 1414: streambuf* rdbuf() const noexcept { return _M_buf; } 1414: 1414: streambuf* 1414: rdbuf(streambuf *__bytebuf) noexcept 1414: { 1414: auto __prev = _M_buf; 1414: _M_buf = __bytebuf; 1414: return __prev; 1414: } 1414: 1414: 1414: state_type state() const noexcept { return _M_state; } 1414: 1414: protected: 1414: int 1414: sync() 1414: { return _M_buf && _M_conv_put() && !_M_buf->pubsync() ? 0 : -1; } 1414: 1414: typename _Wide_streambuf::int_type 1414: overflow(typename _Wide_streambuf::int_type __out) 1414: { 1414: if (!_M_buf || !_M_conv_put()) 1414: return _Tr::eof(); 1414: else if (!_Tr::eq_int_type(__out, _Tr::eof())) 1414: return this->sputc(__out); 1414: return _Tr::not_eof(__out); 1414: } 1414: 1414: typename _Wide_streambuf::int_type 1414: underflow() 1414: { 1414: if (!_M_buf) 1414: return _Tr::eof(); 1414: 1414: if (this->gptr() < this->egptr() || (_M_buf && _M_conv_get())) 1414: return _Tr::to_int_type(*this->gptr()); 1414: else 1414: return _Tr::eof(); 1414: } 1414: 1414: streamsize 1414: xsputn(const typename _Wide_streambuf::char_type* __s, streamsize __n) 1414: { 1414: if (!_M_buf || __n == 0) 1414: return 0; 1414: streamsize __done = 0; 1414: do 1414: { 1414: auto __nn = std::min(this->epptr() - this->pptr(), 1414: __n - __done); 1414: _Tr::copy(this->pptr(), __s + __done, __nn); 1414: this->pbump(__nn); 1414: __done += __nn; 1414: } while (__done < __n && _M_conv_put()); 1414: return __done; 1414: } 1414: 1414: private: 1414: 1414: bool 1414: _M_conv_get() 1414: { 1414: const streamsize __pb1 = this->gptr() - this->eback(); 1414: const streamsize __pb2 = _S_putback_length; 1414: const streamsize __npb = std::min(__pb1, __pb2); 1414: 1414: _Tr::move(_M_get_area + _S_putback_length - __npb, 1414: this->gptr() - __npb, __npb); 1414: 1414: streamsize __nbytes = sizeof(_M_get_buf) - _M_unconv; 1414: __nbytes = std::min(__nbytes, _M_buf->in_avail()); 1414: if (__nbytes < 1) 1414: __nbytes = 1; 1414: __nbytes = _M_buf->sgetn(_M_get_buf + _M_unconv, __nbytes); 1414: if (__nbytes < 1) 1414: return false; 1414: __nbytes += _M_unconv; 1414: 1414: 1414: 1414: _Elem* __outbuf = _M_get_area + _S_putback_length; 1414: _Elem* __outnext = __outbuf; 1414: const char* __bnext = _M_get_buf; 1414: 1414: codecvt_base::result __result; 1414: if (_M_always_noconv) 1414: __result = codecvt_base::noconv; 1414: else 1414: { 1414: _Elem* __outend = _M_get_area + _S_buffer_length; 1414: 1414: __result = _M_cvt->in(_M_state, 1414: __bnext, __bnext + __nbytes, __bnext, 1414: __outbuf, __outend, __outnext); 1414: } 1414: 1414: if (__result == codecvt_base::noconv) 1414: { 1414: 1414: auto __get_buf = reinterpret_cast(_M_get_buf); 1414: _Tr::copy(__outbuf, __get_buf, __nbytes); 1414: _M_unconv = 0; 1414: return true; 1414: } 1414: 1414: if ((_M_unconv = _M_get_buf + __nbytes - __bnext)) 1414: char_traits::move(_M_get_buf, __bnext, _M_unconv); 1414: 1414: this->setg(__outbuf, __outbuf, __outnext); 1414: 1414: return __result != codecvt_base::error; 1414: } 1414: 1414: 1414: bool 1414: _M_put(...) 1414: { return false; } 1414: 1414: bool 1414: _M_put(const char* __p, streamsize __n) 1414: { 1414: if (_M_buf->sputn(__p, __n) < __n) 1414: return false; 1414: return true; 1414: } 1414: 1414: 1414: bool 1414: _M_conv_put() 1414: { 1414: _Elem* const __first = this->pbase(); 1414: const _Elem* const __last = this->pptr(); 1414: const streamsize __pending = __last - __first; 1414: 1414: if (_M_always_noconv) 1414: return _M_put(__first, __pending); 1414: 1414: char __outbuf[2 * _S_buffer_length]; 1414: 1414: const _Elem* __next = __first; 1414: const _Elem* __start; 1414: do 1414: { 1414: __start = __next; 1414: char* __outnext = __outbuf; 1414: char* const __outlast = __outbuf + sizeof(__outbuf); 1414: auto __result = _M_cvt->out(_M_state, __next, __last, __next, 1414: __outnext, __outlast, __outnext); 1414: if (__result == codecvt_base::error) 1414: return false; 1414: else if (__result == codecvt_base::noconv) 1414: return _M_put(__next, __pending); 1414: 1414: if (!_M_put(__outbuf, __outnext - __outbuf)) 1414: return false; 1414: } 1414: while (__next != __last && __next != __start); 1414: 1414: if (__next != __last) 1414: _Tr::move(__first, __next, __last - __next); 1414: 1414: this->pbump(__first - __next); 1414: return __next != __first; 1414: } 1414: 1414: streambuf* _M_buf; 1414: __detail::_Scoped_ptr<_Codecvt> _M_cvt; 1414: state_type _M_state; 1414: 1414: static const streamsize _S_buffer_length = 32; 1414: static const streamsize _S_putback_length = 3; 1414: _Elem _M_put_area[_S_buffer_length]; 1414: _Elem _M_get_area[_S_buffer_length]; 1414: streamsize _M_unconv = 0; 1414: char _M_get_buf[_S_buffer_length-_S_putback_length]; 1414: bool _M_always_noconv; 1414: }; 1414: 1414: 1414: 1414: 1414: } 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/locale" 2 3 1414: # 12 "build/include/internal/botan/internal/fmt.h" 2 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/ios" 1 3 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/ios" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 1 3 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: inline const _Facet& 1414: __check_facet(const _Facet* __f) 1414: { 1414: if (!__f) 1414: __throw_bad_cast(); 1414: return *__f; 1414: } 1414: # 69 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: template 1414: class basic_ios : public ios_base 1414: { 1414: 1414: static_assert(is_same_v<_CharT, typename _Traits::char_type>); 1414: 1414: 1414: public: 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef typename _Traits::int_type int_type; 1414: typedef typename _Traits::pos_type pos_type; 1414: typedef typename _Traits::off_type off_type; 1414: typedef _Traits traits_type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: typedef ctype<_CharT> __ctype_type; 1414: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 1414: __num_put_type; 1414: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 1414: __num_get_type; 1414: 1414: 1414: 1414: protected: 1414: basic_ostream<_CharT, _Traits>* _M_tie; 1414: mutable char_type _M_fill; 1414: mutable bool _M_fill_init; 1414: basic_streambuf<_CharT, _Traits>* _M_streambuf; 1414: 1414: 1414: const __ctype_type* _M_ctype; 1414: 1414: const __num_put_type* _M_num_put; 1414: 1414: const __num_get_type* _M_num_get; 1414: 1414: public: 1414: # 124 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: [[__nodiscard__]] 1414: explicit operator bool() const 1414: { return !this->fail(); } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: bool 1414: operator!() const 1414: { return this->fail(); } 1414: # 145 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: [[__nodiscard__]] 1414: iostate 1414: rdstate() const 1414: { return _M_streambuf_state; } 1414: # 157 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: void 1414: clear(iostate __state = goodbit); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: void 1414: setstate(iostate __state) 1414: { this->clear(this->rdstate() | __state); } 1414: 1414: 1414: 1414: 1414: void 1414: _M_setstate(iostate __state) 1414: { 1414: 1414: 1414: _M_streambuf_state |= __state; 1414: if (this->exceptions() & __state) 1414: { throw; } 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: bool 1414: good() const 1414: { return this->rdstate() == 0; } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: bool 1414: eof() const 1414: { return (this->rdstate() & eofbit) != 0; } 1414: # 212 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: [[__nodiscard__]] 1414: bool 1414: fail() const 1414: { return (this->rdstate() & (badbit | failbit)) != 0; } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: bool 1414: bad() const 1414: { return (this->rdstate() & badbit) != 0; } 1414: # 235 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: [[__nodiscard__]] 1414: iostate 1414: exceptions() const 1414: { return _M_exception; } 1414: # 271 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: void 1414: exceptions(iostate __except) 1414: { 1414: _M_exception = __except; 1414: this->clear(_M_streambuf_state); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: explicit 1414: basic_ios(basic_streambuf<_CharT, _Traits>* __sb) 1414: : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), 1414: _M_ctype(0), _M_num_put(0), _M_num_get(0) 1414: { this->init(__sb); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: virtual 1414: ~basic_ios() { } 1414: # 309 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: [[__nodiscard__]] 1414: basic_ostream<_CharT, _Traits>* 1414: tie() const 1414: { return _M_tie; } 1414: # 322 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: basic_ostream<_CharT, _Traits>* 1414: tie(basic_ostream<_CharT, _Traits>* __tiestr) 1414: { 1414: basic_ostream<_CharT, _Traits>* __old = _M_tie; 1414: _M_tie = __tiestr; 1414: return __old; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: basic_streambuf<_CharT, _Traits>* 1414: rdbuf() const 1414: { return _M_streambuf; } 1414: # 363 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: basic_streambuf<_CharT, _Traits>* 1414: rdbuf(basic_streambuf<_CharT, _Traits>* __sb); 1414: # 377 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: basic_ios& 1414: copyfmt(const basic_ios& __rhs); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: char_type 1414: fill() const 1414: { 1414: if (__builtin_expect(!_M_fill_init, false)) 1414: return this->widen(' '); 1414: return _M_fill; 1414: } 1414: # 404 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: char_type 1414: fill(char_type __ch) 1414: { 1414: char_type __old = _M_fill; 1414: _M_fill = __ch; 1414: _M_fill_init = true; 1414: return __old; 1414: } 1414: # 425 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: locale 1414: imbue(const locale& __loc); 1414: # 445 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: char 1414: narrow(char_type __c, char __dfault) const 1414: { return __check_facet(_M_ctype).narrow(__c, __dfault); } 1414: # 464 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 3 1414: char_type 1414: widen(char __c) const 1414: { return __check_facet(_M_ctype).widen(__c); } 1414: 1414: protected: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: basic_ios() 1414: : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), 1414: _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) 1414: { } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: void 1414: init(basic_streambuf<_CharT, _Traits>* __sb); 1414: 1414: 1414: basic_ios(const basic_ios&) = delete; 1414: basic_ios& operator=(const basic_ios&) = delete; 1414: 1414: void 1414: move(basic_ios& __rhs) 1414: { 1414: ios_base::_M_move(__rhs); 1414: _M_cache_locale(_M_ios_locale); 1414: this->tie(__rhs.tie(nullptr)); 1414: _M_fill = __rhs._M_fill; 1414: _M_fill_init = __rhs._M_fill_init; 1414: _M_streambuf = nullptr; 1414: } 1414: 1414: void 1414: move(basic_ios&& __rhs) 1414: { this->move(__rhs); } 1414: 1414: void 1414: swap(basic_ios& __rhs) noexcept 1414: { 1414: ios_base::_M_swap(__rhs); 1414: _M_cache_locale(_M_ios_locale); 1414: __rhs._M_cache_locale(__rhs._M_ios_locale); 1414: std::swap(_M_tie, __rhs._M_tie); 1414: std::swap(_M_fill, __rhs._M_fill); 1414: std::swap(_M_fill_init, __rhs._M_fill_init); 1414: } 1414: 1414: void 1414: set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 1414: { _M_streambuf = __sb; } 1414: 1414: 1414: void 1414: _M_cache_locale(const locale& __loc); 1414: }; 1414: 1414: 1414: } 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.tcc" 1 3 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.tcc" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: void 1414: basic_ios<_CharT, _Traits>::clear(iostate __state) 1414: { 1414: if (this->rdbuf()) 1414: _M_streambuf_state = __state; 1414: else 1414: _M_streambuf_state = __state | badbit; 1414: if (this->exceptions() & this->rdstate()) 1414: __throw_ios_failure(("basic_ios::clear")); 1414: } 1414: 1414: template 1414: basic_streambuf<_CharT, _Traits>* 1414: basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 1414: { 1414: basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; 1414: _M_streambuf = __sb; 1414: this->clear(); 1414: return __old; 1414: } 1414: 1414: template 1414: basic_ios<_CharT, _Traits>& 1414: basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) 1414: { 1414: 1414: 1414: if (this != std::__addressof(__rhs)) 1414: { 1414: 1414: 1414: 1414: 1414: _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? 1414: _M_local_word : new _Words[__rhs._M_word_size]; 1414: 1414: 1414: _Callback_list* __cb = __rhs._M_callbacks; 1414: if (__cb) 1414: __cb->_M_add_reference(); 1414: _M_call_callbacks(erase_event); 1414: if (_M_word != _M_local_word) 1414: { 1414: delete [] _M_word; 1414: _M_word = 0; 1414: } 1414: _M_dispose_callbacks(); 1414: 1414: 1414: _M_callbacks = __cb; 1414: for (int __i = 0; __i < __rhs._M_word_size; ++__i) 1414: __words[__i] = __rhs._M_word[__i]; 1414: _M_word = __words; 1414: _M_word_size = __rhs._M_word_size; 1414: 1414: this->flags(__rhs.flags()); 1414: this->width(__rhs.width()); 1414: this->precision(__rhs.precision()); 1414: this->tie(__rhs.tie()); 1414: this->fill(__rhs.fill()); 1414: _M_ios_locale = __rhs.getloc(); 1414: _M_cache_locale(_M_ios_locale); 1414: 1414: _M_call_callbacks(copyfmt_event); 1414: 1414: 1414: this->exceptions(__rhs.exceptions()); 1414: } 1414: return *this; 1414: } 1414: 1414: 1414: template 1414: locale 1414: basic_ios<_CharT, _Traits>::imbue(const locale& __loc) 1414: { 1414: locale __old(this->getloc()); 1414: ios_base::imbue(__loc); 1414: _M_cache_locale(__loc); 1414: if (this->rdbuf() != 0) 1414: this->rdbuf()->pubimbue(__loc); 1414: return __old; 1414: } 1414: 1414: template 1414: void 1414: basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) 1414: { 1414: 1414: ios_base::_M_init(); 1414: 1414: 1414: _M_cache_locale(_M_ios_locale); 1414: # 153 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.tcc" 3 1414: if (_M_ctype) 1414: { 1414: _M_fill = _M_ctype->widen(' '); 1414: _M_fill_init = true; 1414: } 1414: else 1414: _M_fill_init = false; 1414: 1414: _M_tie = 0; 1414: _M_exception = goodbit; 1414: _M_streambuf = __sb; 1414: _M_streambuf_state = __sb ? goodbit : badbit; 1414: } 1414: 1414: template 1414: void 1414: basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) 1414: { 1414: _M_ctype = std::__try_use_facet<__ctype_type>(__loc); 1414: _M_num_put = std::__try_use_facet<__num_put_type>(__loc); 1414: _M_num_get = std::__try_use_facet<__num_get_type>(__loc); 1414: } 1414: 1414: 1414: 1414: 1414: extern template class basic_ios; 1414: 1414: 1414: extern template class basic_ios; 1414: 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 533 "/usr/arm-linux-gnueabihf/include/c++/16/bits/basic_ios.h" 2 3 1414: # 49 "/usr/arm-linux-gnueabihf/include/c++/16/ios" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 52 "/usr/arm-linux-gnueabihf/include/c++/16/ios" 2 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/ostream" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/ostream" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 1 3 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 65 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: template 1414: class basic_ostream : virtual public basic_ios<_CharT, _Traits> 1414: { 1414: public: 1414: 1414: typedef _CharT char_type; 1414: typedef typename _Traits::int_type int_type; 1414: typedef typename _Traits::pos_type pos_type; 1414: typedef typename _Traits::off_type off_type; 1414: typedef _Traits traits_type; 1414: 1414: 1414: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 1414: typedef basic_ios<_CharT, _Traits> __ios_type; 1414: typedef basic_ostream<_CharT, _Traits> __ostream_type; 1414: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 1414: __num_put_type; 1414: typedef ctype<_CharT> __ctype_type; 1414: # 91 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: explicit 1414: basic_ostream(__streambuf_type* __sb) 1414: { this->init(__sb); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: virtual 1414: ~basic_ostream() { } 1414: 1414: 1414: class sentry; 1414: friend class sentry; 1414: # 115 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: __ostream_type& 1414: operator<<(__ostream_type& (*__pf)(__ostream_type&)) 1414: { 1414: 1414: 1414: 1414: return __pf(*this); 1414: } 1414: 1414: __ostream_type& 1414: operator<<(__ios_type& (*__pf)(__ios_type&)) 1414: { 1414: 1414: 1414: 1414: __pf(*this); 1414: return *this; 1414: } 1414: 1414: __ostream_type& 1414: operator<<(ios_base& (*__pf) (ios_base&)) 1414: { 1414: 1414: 1414: 1414: __pf(*this); 1414: return *this; 1414: } 1414: # 173 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: __ostream_type& 1414: operator<<(long __n) 1414: { return _M_insert(__n); } 1414: 1414: __ostream_type& 1414: operator<<(unsigned long __n) 1414: { return _M_insert(__n); } 1414: 1414: __ostream_type& 1414: operator<<(bool __n) 1414: { return _M_insert(__n); } 1414: 1414: __ostream_type& 1414: operator<<(short __n); 1414: 1414: __ostream_type& 1414: operator<<(unsigned short __n) 1414: { 1414: 1414: 1414: return _M_insert(static_cast(__n)); 1414: } 1414: 1414: __ostream_type& 1414: operator<<(int __n); 1414: 1414: __ostream_type& 1414: operator<<(unsigned int __n) 1414: { 1414: 1414: 1414: return _M_insert(static_cast(__n)); 1414: } 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: __ostream_type& 1414: operator<<(long long __n) 1414: { return _M_insert(__n); } 1414: 1414: __ostream_type& 1414: operator<<(unsigned long long __n) 1414: { return _M_insert(__n); } 1414: #pragma GCC diagnostic pop 1414: # 230 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: __ostream_type& 1414: operator<<(double __f) 1414: { return _M_insert(__f); } 1414: 1414: __ostream_type& 1414: operator<<(float __f) 1414: { 1414: 1414: 1414: return _M_insert(_S_cast_flt(__f)); 1414: } 1414: 1414: __ostream_type& 1414: operator<<(long double __f) 1414: { return _M_insert(__f); } 1414: # 300 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: __ostream_type& 1414: operator<<(const void* __p) 1414: { return _M_insert(__p); } 1414: 1414: 1414: __ostream_type& 1414: operator<<(nullptr_t) 1414: { return *this << "nullptr"; } 1414: # 338 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: __ostream_type& 1414: operator<<(__streambuf_type* __sb); 1414: # 371 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: __ostream_type& 1414: put(char_type __c); 1414: # 390 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: __ostream_type& 1414: write(const char_type* __s, streamsize __n); 1414: # 403 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: __ostream_type& 1414: flush(); 1414: # 413 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: pos_type 1414: tellp(); 1414: # 424 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: __ostream_type& 1414: seekp(pos_type); 1414: # 436 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: __ostream_type& 1414: seekp(off_type, ios_base::seekdir); 1414: 1414: protected: 1414: basic_ostream() 1414: { this->init(0); } 1414: 1414: 1414: 1414: basic_ostream(basic_iostream<_CharT, _Traits>&) { } 1414: 1414: basic_ostream(const basic_ostream&) = delete; 1414: 1414: basic_ostream(basic_ostream&& __rhs) 1414: : __ios_type() 1414: { __ios_type::move(__rhs); } 1414: 1414: 1414: 1414: basic_ostream& operator=(const basic_ostream&) = delete; 1414: 1414: basic_ostream& 1414: operator=(basic_ostream&& __rhs) 1414: { 1414: swap(__rhs); 1414: return *this; 1414: } 1414: 1414: void 1414: swap(basic_ostream& __rhs) 1414: { __ios_type::swap(__rhs); } 1414: 1414: 1414: template 1414: __ostream_type& 1414: _M_insert(_ValueT __v); 1414: 1414: private: 1414: 1414: void 1414: _M_write(const char_type* __s, streamsize __n) 1414: { std::__ostream_insert(*this, __s, __n); } 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: template 1414: static _To 1414: _S_cast_flt(_From __f) 1414: { 1414: _To __d = static_cast<_To>(__f); 1414: # 507 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: return __d; 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: struct _Disable_exceptions 1414: { 1414: _Disable_exceptions(basic_ostream& __os) 1414: : _M_os(__os), _M_exception(_M_os._M_exception) 1414: { _M_os._M_exception = ios_base::goodbit; } 1414: 1414: ~_Disable_exceptions() 1414: { _M_os._M_exception = _M_exception; } 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: _Disable_exceptions(const _Disable_exceptions&) = delete; 1414: _Disable_exceptions& operator=(const _Disable_exceptions&) = delete; 1414: #pragma GCC diagnostic pop 1414: 1414: private: 1414: basic_ostream& _M_os; 1414: const ios_base::iostate _M_exception; 1414: }; 1414: }; 1414: # 540 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: template 1414: class basic_ostream<_CharT, _Traits>::sentry 1414: { 1414: 1414: bool _M_ok; 1414: basic_ostream<_CharT, _Traits>& _M_os; 1414: 1414: public: 1414: # 559 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: explicit 1414: sentry(basic_ostream<_CharT, _Traits>& __os); 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: ~sentry() 1414: { 1414: 1414: 1414: 1414: 1414: if (bool(_M_os.flags() & ios_base::unitbuf) && _M_os.good() 1414: && !uncaught_exception()) 1414: { 1414: _Disable_exceptions __noex(_M_os); 1414: try 1414: { 1414: 1414: 1414: if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) 1414: _M_os.setstate(ios_base::badbit); 1414: } 1414: catch(...) 1414: { _M_os.setstate(ios_base::badbit); } 1414: } 1414: } 1414: #pragma GCC diagnostic pop 1414: # 602 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: explicit 1414: 1414: operator bool() const 1414: { return _M_ok; } 1414: }; 1414: # 624 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: template 1414: inline basic_ostream<_CharT, _Traits>& 1414: operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) 1414: { 1414: if (__out.width() != 0) 1414: return __ostream_insert(__out, &__c, 1); 1414: __out.put(__c); 1414: return __out; 1414: } 1414: 1414: template 1414: inline basic_ostream<_CharT, _Traits>& 1414: operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) 1414: { return (__out << __out.widen(__c)); } 1414: 1414: 1414: template 1414: inline basic_ostream& 1414: operator<<(basic_ostream& __out, char __c) 1414: { 1414: if (__out.width() != 0) 1414: return __ostream_insert(__out, &__c, 1); 1414: __out.put(__c); 1414: return __out; 1414: } 1414: 1414: 1414: template 1414: inline basic_ostream& 1414: operator<<(basic_ostream& __out, signed char __c) 1414: { return (__out << static_cast(__c)); } 1414: 1414: template 1414: inline basic_ostream& 1414: operator<<(basic_ostream& __out, unsigned char __c) 1414: { return (__out << static_cast(__c)); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, wchar_t) = delete; 1414: 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, char8_t) = delete; 1414: 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, char16_t) = delete; 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, char32_t) = delete; 1414: 1414: 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, char8_t) = delete; 1414: 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, char16_t) = delete; 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, char32_t) = delete; 1414: # 715 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: template 1414: inline basic_ostream<_CharT, _Traits>& 1414: operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) 1414: { 1414: if (!__s) 1414: __out.setstate(ios_base::badbit); 1414: else 1414: __ostream_insert(__out, __s, 1414: static_cast(_Traits::length(__s))); 1414: return __out; 1414: } 1414: 1414: template 1414: basic_ostream<_CharT, _Traits> & 1414: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); 1414: 1414: 1414: template 1414: inline basic_ostream& 1414: operator<<(basic_ostream& __out, const char* __s) 1414: { 1414: if (!__s) 1414: __out.setstate(ios_base::badbit); 1414: else 1414: __ostream_insert(__out, __s, 1414: static_cast(_Traits::length(__s))); 1414: return __out; 1414: } 1414: 1414: 1414: template 1414: inline basic_ostream& 1414: operator<<(basic_ostream& __out, const signed char* __s) 1414: { return (__out << reinterpret_cast(__s)); } 1414: 1414: template 1414: inline basic_ostream & 1414: operator<<(basic_ostream& __out, const unsigned char* __s) 1414: { return (__out << reinterpret_cast(__s)); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, const wchar_t*) = delete; 1414: 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, const char8_t*) = delete; 1414: 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, const char16_t*) = delete; 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, const char32_t*) = delete; 1414: 1414: 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, const char8_t*) = delete; 1414: 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, const char16_t*) = delete; 1414: 1414: template 1414: basic_ostream& 1414: operator<<(basic_ostream&, const char32_t*) = delete; 1414: # 802 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: template 1414: concept __derived_from_ios_base = is_class_v<_Tp> 1414: && (!is_same_v<_Tp, ios_base>) 1414: && requires (_Tp* __t, ios_base* __b) { __b = __t; }; 1414: 1414: template 1414: requires __derived_from_ios_base<_Os> 1414: && requires (_Os& __os, const _Tp& __t) { __os << __t; } 1414: using __rvalue_stream_insertion_t = _Os&&; 1414: # 834 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.h" 3 1414: template 1414: inline __rvalue_stream_insertion_t<_Ostream, _Tp> 1414: operator<<(_Ostream&& __os, const _Tp& __x) 1414: { 1414: __os << __x; 1414: return std::move(__os); 1414: } 1414: 1414: 1414: 1414: } 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/ostream" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream_print.h" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream_print.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream_print.h" 2 3 1414: # 50 "/usr/arm-linux-gnueabihf/include/c++/16/ostream" 2 3 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 54 "/usr/arm-linux-gnueabihf/include/c++/16/ostream" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 69 "/usr/arm-linux-gnueabihf/include/c++/16/ostream" 3 1414: template 1414: inline basic_ostream<_CharT, _Traits>& 1414: endl(basic_ostream<_CharT, _Traits>& __os) 1414: { return flush(__os.put(__os.widen('\n'))); } 1414: # 81 "/usr/arm-linux-gnueabihf/include/c++/16/ostream" 3 1414: template 1414: inline basic_ostream<_CharT, _Traits>& 1414: ends(basic_ostream<_CharT, _Traits>& __os) 1414: { return __os.put(_CharT()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline basic_ostream<_CharT, _Traits>& 1414: flush(basic_ostream<_CharT, _Traits>& __os) 1414: { return __os.flush(); } 1414: 1414: 1414: template 1414: class __syncbuf_base : public basic_streambuf<_CharT, _Traits> 1414: { 1414: public: 1414: static bool* 1414: _S_get(basic_streambuf<_CharT, _Traits>* __buf [[maybe_unused]]) noexcept 1414: { 1414: 1414: if (auto __p = dynamic_cast<__syncbuf_base*>(__buf)) 1414: return &__p->_M_emit_on_sync; 1414: 1414: return nullptr; 1414: } 1414: 1414: protected: 1414: __syncbuf_base(basic_streambuf<_CharT, _Traits>* __w = nullptr) 1414: : _M_wrapped(__w) 1414: { } 1414: 1414: basic_streambuf<_CharT, _Traits>* _M_wrapped = nullptr; 1414: bool _M_emit_on_sync = false; 1414: bool _M_needs_sync = false; 1414: }; 1414: 1414: template 1414: inline basic_ostream<_CharT, _Traits>& 1414: emit_on_flush(basic_ostream<_CharT, _Traits>& __os) 1414: { 1414: if (bool* __flag = __syncbuf_base<_CharT, _Traits>::_S_get(__os.rdbuf())) 1414: *__flag = true; 1414: return __os; 1414: } 1414: 1414: template 1414: inline basic_ostream<_CharT, _Traits>& 1414: noemit_on_flush(basic_ostream<_CharT, _Traits>& __os) 1414: { 1414: if (bool* __flag = __syncbuf_base<_CharT, _Traits>::_S_get(__os.rdbuf())) 1414: *__flag = false; 1414: return __os; 1414: } 1414: 1414: template 1414: inline basic_ostream<_CharT, _Traits>& 1414: flush_emit(basic_ostream<_CharT, _Traits>& __os) 1414: { 1414: struct _Restore 1414: { 1414: ~_Restore() { *_M_flag = _M_prev; } 1414: 1414: bool _M_prev = false; 1414: bool* _M_flag = &_M_prev; 1414: } __restore; 1414: 1414: if (bool* __flag = __syncbuf_base<_CharT, _Traits>::_S_get(__os.rdbuf())) 1414: { 1414: __restore._M_prev = *__flag; 1414: __restore._M_flag = __flag; 1414: *__flag = true; 1414: } 1414: 1414: __os.flush(); 1414: return __os; 1414: } 1414: # 212 "/usr/arm-linux-gnueabihf/include/c++/16/ostream" 3 1414: 1414: } 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.tcc" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/bits/ostream.tcc" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: basic_ostream<_CharT, _Traits>::sentry:: 1414: sentry(basic_ostream<_CharT, _Traits>& __os) 1414: : _M_ok(false), _M_os(__os) 1414: { 1414: 1414: if (__os.tie() && __os.good()) 1414: __os.tie()->flush(); 1414: 1414: if (__os.good()) 1414: _M_ok = true; 1414: else if (__os.bad()) 1414: __os.setstate(ios_base::failbit); 1414: } 1414: 1414: template 1414: template 1414: basic_ostream<_CharT, _Traits>& 1414: basic_ostream<_CharT, _Traits>:: 1414: _M_insert(_ValueT __v) 1414: { 1414: sentry __cerb(*this); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: 1414: const __num_put_type& __np = __check_facet(this->_M_num_put); 1414: 1414: 1414: 1414: 1414: if (__np.put(*this, *this, this->fill(), __v).failed()) 1414: __err |= ios_base::badbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: basic_ostream<_CharT, _Traits>& 1414: basic_ostream<_CharT, _Traits>:: 1414: operator<<(short __n) 1414: { 1414: 1414: 1414: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 1414: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 1414: return _M_insert(static_cast(static_cast(__n))); 1414: else 1414: return _M_insert(static_cast(__n)); 1414: } 1414: 1414: template 1414: basic_ostream<_CharT, _Traits>& 1414: basic_ostream<_CharT, _Traits>:: 1414: operator<<(int __n) 1414: { 1414: 1414: 1414: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 1414: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 1414: return _M_insert(static_cast(static_cast(__n))); 1414: else 1414: return _M_insert(static_cast(__n)); 1414: } 1414: 1414: template 1414: basic_ostream<_CharT, _Traits>& 1414: basic_ostream<_CharT, _Traits>:: 1414: operator<<(__streambuf_type* __sbin) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: sentry __cerb(*this); 1414: if (__cerb && __sbin) 1414: { 1414: try 1414: { 1414: if (!__copy_streambufs(__sbin, this->rdbuf())) 1414: __err |= ios_base::failbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::failbit); } 1414: } 1414: else if (!__sbin) 1414: __err |= ios_base::badbit; 1414: if (__err) 1414: this->setstate(__err); 1414: return *this; 1414: } 1414: 1414: template 1414: basic_ostream<_CharT, _Traits>& 1414: basic_ostream<_CharT, _Traits>:: 1414: put(char_type __c) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: sentry __cerb(*this); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: const int_type __put = this->rdbuf()->sputc(__c); 1414: if (traits_type::eq_int_type(__put, traits_type::eof())) 1414: __err |= ios_base::badbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: basic_ostream<_CharT, _Traits>& 1414: basic_ostream<_CharT, _Traits>:: 1414: write(const _CharT* __s, streamsize __n) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: sentry __cerb(*this); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: if (this->rdbuf()->sputn(__s, __n) != __n) 1414: __err = ios_base::badbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(ios_base::badbit); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: basic_ostream<_CharT, _Traits>& 1414: basic_ostream<_CharT, _Traits>:: 1414: flush() 1414: { 1414: 1414: 1414: 1414: 1414: 1414: if (__streambuf_type* __buf = this->rdbuf()) 1414: { 1414: sentry __cerb(*this); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: if (this->rdbuf()->pubsync() == -1) 1414: __err |= ios_base::badbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: typename basic_ostream<_CharT, _Traits>::pos_type 1414: basic_ostream<_CharT, _Traits>:: 1414: tellp() 1414: { 1414: sentry __cerb(*this); 1414: pos_type __ret = pos_type(-1); 1414: if (!this->fail()) 1414: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); 1414: return __ret; 1414: } 1414: 1414: template 1414: basic_ostream<_CharT, _Traits>& 1414: basic_ostream<_CharT, _Traits>:: 1414: seekp(pos_type __pos) 1414: { 1414: sentry __cerb(*this); 1414: if (!this->fail()) 1414: { 1414: 1414: 1414: const pos_type __p = this->rdbuf()->pubseekpos(__pos, ios_base::out); 1414: 1414: 1414: if (__p == pos_type(off_type(-1))) 1414: this->setstate(ios_base::failbit); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: basic_ostream<_CharT, _Traits>& 1414: basic_ostream<_CharT, _Traits>:: 1414: seekp(off_type __off, ios_base::seekdir __dir) 1414: { 1414: sentry __cerb(*this); 1414: if (!this->fail()) 1414: { 1414: 1414: 1414: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 1414: ios_base::out); 1414: 1414: 1414: if (__p == pos_type(off_type(-1))) 1414: this->setstate(ios_base::failbit); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: basic_ostream<_CharT, _Traits>& 1414: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) 1414: { 1414: if (!__s) 1414: __out.setstate(ios_base::badbit); 1414: else 1414: { 1414: 1414: 1414: const size_t __clen = char_traits::length(__s); 1414: try 1414: { 1414: struct __ptr_guard 1414: { 1414: _CharT *__p; 1414: __ptr_guard (_CharT *__ip): __p(__ip) { } 1414: ~__ptr_guard() { delete[] __p; } 1414: _CharT* __get() { return __p; } 1414: } __pg (new _CharT[__clen]); 1414: 1414: _CharT *__ws = __pg.__get(); 1414: for (size_t __i = 0; __i < __clen; ++__i) 1414: __ws[__i] = __out.widen(__s[__i]); 1414: __ostream_insert(__out, __ws, __clen); 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: __out._M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { __out._M_setstate(ios_base::badbit); } 1414: } 1414: return __out; 1414: } 1414: 1414: 1414: 1414: 1414: extern template class basic_ostream; 1414: extern template ostream& endl(ostream&); 1414: extern template ostream& ends(ostream&); 1414: extern template ostream& flush(ostream&); 1414: extern template ostream& operator<<(ostream&, char); 1414: extern template ostream& operator<<(ostream&, unsigned char); 1414: extern template ostream& operator<<(ostream&, signed char); 1414: extern template ostream& operator<<(ostream&, const char*); 1414: extern template ostream& operator<<(ostream&, const unsigned char*); 1414: extern template ostream& operator<<(ostream&, const signed char*); 1414: 1414: extern template ostream& ostream::_M_insert(long); 1414: extern template ostream& ostream::_M_insert(unsigned long); 1414: extern template ostream& ostream::_M_insert(bool); 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: extern template ostream& ostream::_M_insert(long long); 1414: extern template ostream& ostream::_M_insert(unsigned long long); 1414: #pragma GCC diagnostic pop 1414: 1414: extern template ostream& ostream::_M_insert(double); 1414: extern template ostream& ostream::_M_insert(long double); 1414: extern template ostream& ostream::_M_insert(const void*); 1414: 1414: 1414: extern template class basic_ostream; 1414: extern template wostream& endl(wostream&); 1414: extern template wostream& ends(wostream&); 1414: extern template wostream& flush(wostream&); 1414: extern template wostream& operator<<(wostream&, wchar_t); 1414: extern template wostream& operator<<(wostream&, char); 1414: extern template wostream& operator<<(wostream&, const wchar_t*); 1414: extern template wostream& operator<<(wostream&, const char*); 1414: 1414: extern template wostream& wostream::_M_insert(long); 1414: extern template wostream& wostream::_M_insert(unsigned long); 1414: extern template wostream& wostream::_M_insert(bool); 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: extern template wostream& wostream::_M_insert(long long); 1414: extern template wostream& wostream::_M_insert(unsigned long long); 1414: #pragma GCC diagnostic pop 1414: 1414: extern template wostream& wostream::_M_insert(double); 1414: extern template wostream& wostream::_M_insert(long double); 1414: extern template wostream& wostream::_M_insert(const void*); 1414: 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 216 "/usr/arm-linux-gnueabihf/include/c++/16/ostream" 2 3 1414: # 44 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 2 3 1414: 1414: 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 65 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: template 1414: class basic_istream : virtual public basic_ios<_CharT, _Traits> 1414: { 1414: public: 1414: 1414: typedef _CharT char_type; 1414: typedef typename _Traits::int_type int_type; 1414: typedef typename _Traits::pos_type pos_type; 1414: typedef typename _Traits::off_type off_type; 1414: typedef _Traits traits_type; 1414: 1414: 1414: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 1414: typedef basic_ios<_CharT, _Traits> __ios_type; 1414: typedef basic_istream<_CharT, _Traits> __istream_type; 1414: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 1414: __num_get_type; 1414: typedef ctype<_CharT> __ctype_type; 1414: 1414: protected: 1414: 1414: 1414: 1414: 1414: 1414: streamsize _M_gcount; 1414: 1414: public: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: explicit 1414: basic_istream(__streambuf_type* __sb) 1414: : _M_gcount(streamsize(0)) 1414: { this->init(__sb); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: virtual 1414: ~basic_istream() 1414: { _M_gcount = streamsize(0); } 1414: 1414: 1414: class sentry; 1414: friend class sentry; 1414: # 127 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: operator>>(__istream_type& (*__pf)(__istream_type&)) 1414: { return __pf(*this); } 1414: 1414: __istream_type& 1414: operator>>(__ios_type& (*__pf)(__ios_type&)) 1414: { 1414: __pf(*this); 1414: return *this; 1414: } 1414: 1414: __istream_type& 1414: operator>>(ios_base& (*__pf)(ios_base&)) 1414: { 1414: __pf(*this); 1414: return *this; 1414: } 1414: # 175 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: operator>>(bool& __n) 1414: { return _M_extract(__n); } 1414: 1414: __istream_type& 1414: operator>>(short& __n); 1414: 1414: __istream_type& 1414: operator>>(unsigned short& __n) 1414: { return _M_extract(__n); } 1414: 1414: __istream_type& 1414: operator>>(int& __n); 1414: 1414: __istream_type& 1414: operator>>(unsigned int& __n) 1414: { return _M_extract(__n); } 1414: 1414: __istream_type& 1414: operator>>(long& __n) 1414: { return _M_extract(__n); } 1414: 1414: __istream_type& 1414: operator>>(unsigned long& __n) 1414: { return _M_extract(__n); } 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: __istream_type& 1414: operator>>(long long& __n) 1414: { return _M_extract(__n); } 1414: 1414: __istream_type& 1414: operator>>(unsigned long long& __n) 1414: { return _M_extract(__n); } 1414: #pragma GCC diagnostic pop 1414: # 224 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: operator>>(float& __f) 1414: { return _M_extract(__f); } 1414: 1414: __istream_type& 1414: operator>>(double& __f) 1414: { return _M_extract(__f); } 1414: 1414: __istream_type& 1414: operator>>(long double& __f) 1414: { return _M_extract(__f); } 1414: # 333 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: operator>>(void*& __p) 1414: { return _M_extract(__p); } 1414: # 357 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: operator>>(__streambuf_type* __sb); 1414: # 367 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: streamsize 1414: gcount() const 1414: { return _M_gcount; } 1414: # 400 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: int_type 1414: get(); 1414: # 414 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: get(char_type& __c); 1414: # 441 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: get(char_type* __s, streamsize __n, char_type __delim); 1414: # 452 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: get(char_type* __s, streamsize __n) 1414: { return this->get(__s, __n, this->widen('\n')); } 1414: # 475 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: get(__streambuf_type& __sb, char_type __delim); 1414: # 485 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: get(__streambuf_type& __sb) 1414: { return this->get(__sb, this->widen('\n')); } 1414: # 514 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: getline(char_type* __s, streamsize __n, char_type __delim); 1414: # 525 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: getline(char_type* __s, streamsize __n) 1414: { return this->getline(__s, __n, this->widen('\n')); } 1414: # 549 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: ignore(streamsize __n, int_type __delim); 1414: 1414: __istream_type& 1414: ignore(streamsize __n); 1414: 1414: __istream_type& 1414: ignore(); 1414: # 573 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: int_type 1414: peek(); 1414: # 591 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: read(char_type* __s, streamsize __n); 1414: # 610 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: streamsize 1414: readsome(char_type* __s, streamsize __n); 1414: # 627 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: putback(char_type __c); 1414: # 643 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: unget(); 1414: # 661 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: int 1414: sync(); 1414: # 676 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: pos_type 1414: tellg(); 1414: # 691 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: seekg(pos_type); 1414: # 707 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: __istream_type& 1414: seekg(off_type, ios_base::seekdir); 1414: 1414: 1414: protected: 1414: basic_istream() 1414: : _M_gcount(streamsize(0)) 1414: { this->init(0); } 1414: 1414: 1414: basic_istream(const basic_istream&) = delete; 1414: 1414: basic_istream(basic_istream&& __rhs) 1414: : __ios_type(), _M_gcount(__rhs._M_gcount) 1414: { 1414: __ios_type::move(__rhs); 1414: __rhs._M_gcount = 0; 1414: } 1414: 1414: 1414: 1414: basic_istream& operator=(const basic_istream&) = delete; 1414: 1414: basic_istream& 1414: operator=(basic_istream&& __rhs) 1414: { 1414: swap(__rhs); 1414: return *this; 1414: } 1414: 1414: void 1414: swap(basic_istream& __rhs) 1414: { 1414: __ios_type::swap(__rhs); 1414: std::swap(_M_gcount, __rhs._M_gcount); 1414: } 1414: 1414: 1414: template 1414: __istream_type& 1414: _M_extract(_ValueT& __v); 1414: }; 1414: 1414: 1414: template<> 1414: basic_istream& 1414: basic_istream:: 1414: getline(char_type* __s, streamsize __n, char_type __delim); 1414: 1414: template<> 1414: basic_istream& 1414: basic_istream:: 1414: ignore(streamsize __n); 1414: 1414: template<> 1414: basic_istream& 1414: basic_istream:: 1414: ignore(streamsize __n, int_type __delim); 1414: 1414: 1414: template<> 1414: basic_istream& 1414: basic_istream:: 1414: getline(char_type* __s, streamsize __n, char_type __delim); 1414: 1414: template<> 1414: basic_istream& 1414: basic_istream:: 1414: ignore(streamsize __n); 1414: 1414: template<> 1414: basic_istream& 1414: basic_istream:: 1414: ignore(streamsize __n, int_type __delim); 1414: # 791 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: template 1414: class basic_istream<_CharT, _Traits>::sentry 1414: { 1414: 1414: bool _M_ok; 1414: 1414: public: 1414: 1414: typedef _Traits traits_type; 1414: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 1414: typedef basic_istream<_CharT, _Traits> __istream_type; 1414: typedef typename __istream_type::__ctype_type __ctype_type; 1414: typedef typename _Traits::int_type __int_type; 1414: # 827 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: explicit 1414: sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); 1414: # 838 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: explicit 1414: 1414: operator bool() const 1414: { return _M_ok; } 1414: }; 1414: # 856 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); 1414: 1414: template 1414: inline basic_istream& 1414: operator>>(basic_istream& __in, unsigned char& __c) 1414: { return (__in >> reinterpret_cast(__c)); } 1414: 1414: template 1414: inline basic_istream& 1414: operator>>(basic_istream& __in, signed char& __c) 1414: { return (__in >> reinterpret_cast(__c)); } 1414: 1414: 1414: 1414: template 1414: void 1414: __istream_extract(basic_istream<_CharT, _Traits>&, _CharT*, streamsize); 1414: 1414: void __istream_extract(istream&, char*, streamsize); 1414: # 963 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: template 1414: inline basic_istream<_CharT, _Traits>& 1414: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT (&__s)[_Num]) 1414: { 1414: static_assert(_Num <= __gnu_cxx::__numeric_traits::__max); 1414: std::__istream_extract(__in, __s, _Num); 1414: return __in; 1414: } 1414: 1414: template 1414: inline basic_istream& 1414: operator>>(basic_istream& __in, unsigned char (&__s)[_Num]) 1414: { return __in >> reinterpret_cast(__s); } 1414: 1414: template 1414: inline basic_istream& 1414: operator>>(basic_istream& __in, signed char (&__s)[_Num]) 1414: { return __in >> reinterpret_cast(__s); } 1414: # 995 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: template 1414: class basic_iostream 1414: : public basic_istream<_CharT, _Traits>, 1414: public basic_ostream<_CharT, _Traits> 1414: { 1414: public: 1414: 1414: 1414: 1414: typedef _CharT char_type; 1414: typedef typename _Traits::int_type int_type; 1414: typedef typename _Traits::pos_type pos_type; 1414: typedef typename _Traits::off_type off_type; 1414: typedef _Traits traits_type; 1414: 1414: 1414: typedef basic_istream<_CharT, _Traits> __istream_type; 1414: typedef basic_ostream<_CharT, _Traits> __ostream_type; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: explicit 1414: basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) 1414: : __istream_type(__sb), __ostream_type(__sb) { } 1414: 1414: 1414: 1414: 1414: virtual 1414: ~basic_iostream() { } 1414: 1414: protected: 1414: basic_iostream() 1414: : __istream_type(), __ostream_type() { } 1414: 1414: 1414: basic_iostream(const basic_iostream&) = delete; 1414: 1414: basic_iostream(basic_iostream&& __rhs) 1414: : __istream_type(std::move(__rhs)), __ostream_type(*this) 1414: { } 1414: 1414: 1414: 1414: basic_iostream& operator=(const basic_iostream&) = delete; 1414: 1414: basic_iostream& 1414: operator=(basic_iostream&& __rhs) 1414: { 1414: swap(__rhs); 1414: return *this; 1414: } 1414: 1414: void 1414: swap(basic_iostream& __rhs) 1414: { __istream_type::swap(__rhs); } 1414: 1414: }; 1414: # 1078 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: ws(basic_istream<_CharT, _Traits>& __is); 1414: # 1089 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: template 1414: requires __derived_from_ios_base<_Is> 1414: && requires (_Is& __is, _Tp&& __t) { __is >> std::forward<_Tp>(__t); } 1414: using __rvalue_stream_extraction_t = _Is&&; 1414: # 1110 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 3 1414: template 1414: inline __rvalue_stream_extraction_t<_Istream, _Tp> 1414: operator>>(_Istream&& __is, _Tp&& __x) 1414: { 1414: __is >> std::forward<_Tp>(__x); 1414: return std::move(__is); 1414: } 1414: 1414: 1414: 1414: } 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/istream.tcc" 1 3 1414: # 41 "/usr/arm-linux-gnueabihf/include/c++/16/bits/istream.tcc" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: basic_istream<_CharT, _Traits>::sentry:: 1414: sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: if (__in.good()) 1414: { 1414: try 1414: { 1414: if (__in.tie()) 1414: __in.tie()->flush(); 1414: if (!__noskip && bool(__in.flags() & ios_base::skipws)) 1414: { 1414: const __int_type __eof = traits_type::eof(); 1414: __streambuf_type* __sb = __in.rdbuf(); 1414: __int_type __c = __sb->sgetc(); 1414: 1414: const __ctype_type& __ct = __check_facet(__in._M_ctype); 1414: while (!traits_type::eq_int_type(__c, __eof) 1414: && __ct.is(ctype_base::space, 1414: traits_type::to_char_type(__c))) 1414: __c = __sb->snextc(); 1414: 1414: 1414: 1414: 1414: if (traits_type::eq_int_type(__c, __eof)) 1414: __err |= ios_base::eofbit; 1414: } 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: __in._M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { __in._M_setstate(ios_base::badbit); } 1414: } 1414: 1414: if (__in.good() && __err == ios_base::goodbit) 1414: _M_ok = true; 1414: else 1414: { 1414: __err |= ios_base::failbit; 1414: __in.setstate(__err); 1414: } 1414: } 1414: 1414: template 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: _M_extract(_ValueT& __v) 1414: { 1414: sentry __cerb(*this, false); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: 1414: const __num_get_type& __ng = __check_facet(this->_M_num_get); 1414: 1414: 1414: 1414: 1414: __ng.get(*this, 0, *this, __err, __v); 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: operator>>(short& __n) 1414: { 1414: 1414: 1414: sentry __cerb(*this, false); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: long __l; 1414: 1414: const __num_get_type& __ng = __check_facet(this->_M_num_get); 1414: 1414: 1414: 1414: 1414: __ng.get(*this, 0, *this, __err, __l); 1414: 1414: 1414: 1414: if (__l < __gnu_cxx::__numeric_traits::__min) 1414: { 1414: __err |= ios_base::failbit; 1414: __n = __gnu_cxx::__numeric_traits::__min; 1414: } 1414: else if (__l > __gnu_cxx::__numeric_traits::__max) 1414: { 1414: __err |= ios_base::failbit; 1414: __n = __gnu_cxx::__numeric_traits::__max; 1414: } 1414: else 1414: __n = short(__l); 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: operator>>(int& __n) 1414: { 1414: 1414: 1414: sentry __cerb(*this, false); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: long __l; 1414: 1414: const __num_get_type& __ng = __check_facet(this->_M_num_get); 1414: 1414: 1414: 1414: 1414: __ng.get(*this, 0, *this, __err, __l); 1414: 1414: 1414: 1414: if (__l < __gnu_cxx::__numeric_traits::__min) 1414: { 1414: __err |= ios_base::failbit; 1414: __n = __gnu_cxx::__numeric_traits::__min; 1414: } 1414: else if (__l > __gnu_cxx::__numeric_traits::__max) 1414: { 1414: __err |= ios_base::failbit; 1414: __n = __gnu_cxx::__numeric_traits::__max; 1414: } 1414: else 1414: __n = int(__l); 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: operator>>(__streambuf_type* __sbout) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: sentry __cerb(*this, false); 1414: if (__cerb && __sbout) 1414: { 1414: try 1414: { 1414: bool __ineof; 1414: if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) 1414: __err |= ios_base::failbit; 1414: if (__ineof) 1414: __err |= ios_base::eofbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::failbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::failbit); } 1414: } 1414: else if (!__sbout) 1414: __err |= ios_base::failbit; 1414: if (__err) 1414: this->setstate(__err); 1414: return *this; 1414: } 1414: 1414: template 1414: typename basic_istream<_CharT, _Traits>::int_type 1414: basic_istream<_CharT, _Traits>:: 1414: get(void) 1414: { 1414: const int_type __eof = traits_type::eof(); 1414: int_type __c = __eof; 1414: _M_gcount = 0; 1414: ios_base::iostate __err = ios_base::goodbit; 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: try 1414: { 1414: __c = this->rdbuf()->sbumpc(); 1414: 1414: if (!traits_type::eq_int_type(__c, __eof)) 1414: _M_gcount = 1; 1414: else 1414: __err |= ios_base::eofbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: } 1414: if (!_M_gcount) 1414: __err |= ios_base::failbit; 1414: if (__err) 1414: this->setstate(__err); 1414: return __c; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: get(char_type& __c) 1414: { 1414: _M_gcount = 0; 1414: ios_base::iostate __err = ios_base::goodbit; 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: try 1414: { 1414: const int_type __cb = this->rdbuf()->sbumpc(); 1414: 1414: if (!traits_type::eq_int_type(__cb, traits_type::eof())) 1414: { 1414: _M_gcount = 1; 1414: __c = traits_type::to_char_type(__cb); 1414: } 1414: else 1414: __err |= ios_base::eofbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: } 1414: if (!_M_gcount) 1414: __err |= ios_base::failbit; 1414: if (__err) 1414: this->setstate(__err); 1414: return *this; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: get(char_type* __s, streamsize __n, char_type __delim) 1414: { 1414: _M_gcount = 0; 1414: ios_base::iostate __err = ios_base::goodbit; 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: try 1414: { 1414: const int_type __idelim = traits_type::to_int_type(__delim); 1414: const int_type __eof = traits_type::eof(); 1414: __streambuf_type* __sb = this->rdbuf(); 1414: int_type __c = __sb->sgetc(); 1414: 1414: while (_M_gcount + 1 < __n 1414: && !traits_type::eq_int_type(__c, __eof) 1414: && !traits_type::eq_int_type(__c, __idelim)) 1414: { 1414: *__s++ = traits_type::to_char_type(__c); 1414: ++_M_gcount; 1414: __c = __sb->snextc(); 1414: } 1414: if (traits_type::eq_int_type(__c, __eof)) 1414: __err |= ios_base::eofbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: } 1414: 1414: 1414: if (__n > 0) 1414: *__s = char_type(); 1414: if (!_M_gcount) 1414: __err |= ios_base::failbit; 1414: if (__err) 1414: this->setstate(__err); 1414: return *this; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: get(__streambuf_type& __sb, char_type __delim) 1414: { 1414: _M_gcount = 0; 1414: ios_base::iostate __err = ios_base::goodbit; 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: try 1414: { 1414: const int_type __idelim = traits_type::to_int_type(__delim); 1414: const int_type __eof = traits_type::eof(); 1414: __streambuf_type* __this_sb = this->rdbuf(); 1414: int_type __c = __this_sb->sgetc(); 1414: char_type __c2 = traits_type::to_char_type(__c); 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: unsigned long long __gcount = 0; 1414: #pragma GCC diagnostic pop 1414: 1414: while (!traits_type::eq_int_type(__c, __eof) 1414: && !traits_type::eq_int_type(__c, __idelim) 1414: && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) 1414: { 1414: ++__gcount; 1414: __c = __this_sb->snextc(); 1414: __c2 = traits_type::to_char_type(__c); 1414: } 1414: if (traits_type::eq_int_type(__c, __eof)) 1414: __err |= ios_base::eofbit; 1414: 1414: 1414: if (__gcount <= __gnu_cxx::__numeric_traits::__max) 1414: _M_gcount = __gcount; 1414: else 1414: _M_gcount = __gnu_cxx::__numeric_traits::__max; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: } 1414: if (!_M_gcount) 1414: __err |= ios_base::failbit; 1414: if (__err) 1414: this->setstate(__err); 1414: return *this; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: getline(char_type* __s, streamsize __n, char_type __delim) 1414: { 1414: _M_gcount = 0; 1414: ios_base::iostate __err = ios_base::goodbit; 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: try 1414: { 1414: const int_type __idelim = traits_type::to_int_type(__delim); 1414: const int_type __eof = traits_type::eof(); 1414: __streambuf_type* __sb = this->rdbuf(); 1414: int_type __c = __sb->sgetc(); 1414: 1414: while (_M_gcount + 1 < __n 1414: && !traits_type::eq_int_type(__c, __eof) 1414: && !traits_type::eq_int_type(__c, __idelim)) 1414: { 1414: *__s++ = traits_type::to_char_type(__c); 1414: __c = __sb->snextc(); 1414: ++_M_gcount; 1414: } 1414: if (traits_type::eq_int_type(__c, __eof)) 1414: __err |= ios_base::eofbit; 1414: else 1414: { 1414: if (traits_type::eq_int_type(__c, __idelim)) 1414: { 1414: __sb->sbumpc(); 1414: ++_M_gcount; 1414: } 1414: else 1414: __err |= ios_base::failbit; 1414: } 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: } 1414: 1414: 1414: if (__n > 0) 1414: *__s = char_type(); 1414: if (!_M_gcount) 1414: __err |= ios_base::failbit; 1414: if (__err) 1414: this->setstate(__err); 1414: return *this; 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: ignore(void) 1414: { 1414: _M_gcount = 0; 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: const int_type __eof = traits_type::eof(); 1414: __streambuf_type* __sb = this->rdbuf(); 1414: 1414: if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) 1414: __err |= ios_base::eofbit; 1414: else 1414: _M_gcount = 1; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: ignore(streamsize __n) 1414: { 1414: _M_gcount = 0; 1414: sentry __cerb(*this, true); 1414: if (__cerb && __n > 0) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: const int_type __eof = traits_type::eof(); 1414: __streambuf_type* __sb = this->rdbuf(); 1414: int_type __c = __sb->sgetc(); 1414: # 553 "/usr/arm-linux-gnueabihf/include/c++/16/bits/istream.tcc" 3 1414: bool __large_ignore = false; 1414: while (true) 1414: { 1414: while (_M_gcount < __n 1414: && !traits_type::eq_int_type(__c, __eof)) 1414: { 1414: ++_M_gcount; 1414: __c = __sb->snextc(); 1414: } 1414: if (__n == __gnu_cxx::__numeric_traits::__max 1414: && !traits_type::eq_int_type(__c, __eof)) 1414: { 1414: _M_gcount = 1414: __gnu_cxx::__numeric_traits::__min; 1414: __large_ignore = true; 1414: } 1414: else 1414: break; 1414: } 1414: 1414: if (__n == __gnu_cxx::__numeric_traits::__max) 1414: { 1414: if (__large_ignore) 1414: _M_gcount = __gnu_cxx::__numeric_traits::__max; 1414: 1414: if (traits_type::eq_int_type(__c, __eof)) 1414: __err |= ios_base::eofbit; 1414: } 1414: else if (_M_gcount < __n) 1414: { 1414: if (traits_type::eq_int_type(__c, __eof)) 1414: __err |= ios_base::eofbit; 1414: } 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: ignore(streamsize __n, int_type __delim) 1414: { 1414: _M_gcount = 0; 1414: sentry __cerb(*this, true); 1414: if (__cerb && __n > 0) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: const int_type __eof = traits_type::eof(); 1414: __streambuf_type* __sb = this->rdbuf(); 1414: int_type __c = __sb->sgetc(); 1414: 1414: 1414: bool __large_ignore = false; 1414: while (true) 1414: { 1414: while (_M_gcount < __n 1414: && !traits_type::eq_int_type(__c, __eof) 1414: && !traits_type::eq_int_type(__c, __delim)) 1414: { 1414: ++_M_gcount; 1414: __c = __sb->snextc(); 1414: } 1414: if (__n == __gnu_cxx::__numeric_traits::__max 1414: && !traits_type::eq_int_type(__c, __eof) 1414: && !traits_type::eq_int_type(__c, __delim)) 1414: { 1414: _M_gcount = 1414: __gnu_cxx::__numeric_traits::__min; 1414: __large_ignore = true; 1414: } 1414: else 1414: break; 1414: } 1414: 1414: if (__n == __gnu_cxx::__numeric_traits::__max) 1414: { 1414: if (__large_ignore) 1414: _M_gcount = __gnu_cxx::__numeric_traits::__max; 1414: 1414: if (traits_type::eq_int_type(__c, __eof)) 1414: __err |= ios_base::eofbit; 1414: else 1414: { 1414: if (_M_gcount != __n) 1414: ++_M_gcount; 1414: __sb->sbumpc(); 1414: } 1414: } 1414: else if (_M_gcount < __n) 1414: { 1414: if (traits_type::eq_int_type(__c, __eof)) 1414: __err |= ios_base::eofbit; 1414: else 1414: { 1414: ++_M_gcount; 1414: __sb->sbumpc(); 1414: } 1414: } 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: typename basic_istream<_CharT, _Traits>::int_type 1414: basic_istream<_CharT, _Traits>:: 1414: peek(void) 1414: { 1414: int_type __c = traits_type::eof(); 1414: _M_gcount = 0; 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: __c = this->rdbuf()->sgetc(); 1414: if (traits_type::eq_int_type(__c, traits_type::eof())) 1414: __err |= ios_base::eofbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return __c; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: read(char_type* __s, streamsize __n) 1414: { 1414: _M_gcount = 0; 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: _M_gcount = this->rdbuf()->sgetn(__s, __n); 1414: if (_M_gcount != __n) 1414: __err |= (ios_base::eofbit | ios_base::failbit); 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: streamsize 1414: basic_istream<_CharT, _Traits>:: 1414: readsome(char_type* __s, streamsize __n) 1414: { 1414: _M_gcount = 0; 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: 1414: const streamsize __num = this->rdbuf()->in_avail(); 1414: if (__num > 0) 1414: _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); 1414: else if (__num == -1) 1414: __err |= ios_base::eofbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return _M_gcount; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: putback(char_type __c) 1414: { 1414: 1414: 1414: _M_gcount = 0; 1414: 1414: this->clear(this->rdstate() & ~ios_base::eofbit); 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: const int_type __eof = traits_type::eof(); 1414: __streambuf_type* __sb = this->rdbuf(); 1414: if (!__sb 1414: || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) 1414: __err |= ios_base::badbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: unget(void) 1414: { 1414: 1414: 1414: _M_gcount = 0; 1414: 1414: this->clear(this->rdstate() & ~ios_base::eofbit); 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: const int_type __eof = traits_type::eof(); 1414: __streambuf_type* __sb = this->rdbuf(); 1414: if (!__sb 1414: || traits_type::eq_int_type(__sb->sungetc(), __eof)) 1414: __err |= ios_base::badbit; 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: int 1414: basic_istream<_CharT, _Traits>:: 1414: sync(void) 1414: { 1414: 1414: 1414: int __ret = -1; 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: __streambuf_type* __sb = this->rdbuf(); 1414: if (__sb) 1414: { 1414: if (__sb->pubsync() == -1) 1414: __err |= ios_base::badbit; 1414: else 1414: __ret = 0; 1414: } 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return __ret; 1414: } 1414: 1414: template 1414: typename basic_istream<_CharT, _Traits>::pos_type 1414: basic_istream<_CharT, _Traits>:: 1414: tellg(void) 1414: { 1414: 1414: 1414: pos_type __ret = pos_type(-1); 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: try 1414: { 1414: if (!this->fail()) 1414: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, 1414: ios_base::in); 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: } 1414: return __ret; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: seekg(pos_type __pos) 1414: { 1414: 1414: 1414: 1414: this->clear(this->rdstate() & ~ios_base::eofbit); 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: if (!this->fail()) 1414: { 1414: 1414: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 1414: ios_base::in); 1414: 1414: 1414: if (__p == pos_type(off_type(-1))) 1414: __err |= ios_base::failbit; 1414: } 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: basic_istream<_CharT, _Traits>:: 1414: seekg(off_type __off, ios_base::seekdir __dir) 1414: { 1414: 1414: 1414: 1414: this->clear(this->rdstate() & ~ios_base::eofbit); 1414: sentry __cerb(*this, true); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: if (!this->fail()) 1414: { 1414: 1414: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 1414: ios_base::in); 1414: 1414: 1414: if (__p == pos_type(off_type(-1))) 1414: __err |= ios_base::failbit; 1414: } 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: this->_M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { this->_M_setstate(ios_base::badbit); } 1414: if (__err) 1414: this->setstate(__err); 1414: } 1414: return *this; 1414: } 1414: 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) 1414: { 1414: typedef basic_istream<_CharT, _Traits> __istream_type; 1414: typedef typename __istream_type::int_type __int_type; 1414: 1414: typename __istream_type::sentry __cerb(__in, false); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: const __int_type __cb = __in.rdbuf()->sbumpc(); 1414: if (!_Traits::eq_int_type(__cb, _Traits::eof())) 1414: __c = _Traits::to_char_type(__cb); 1414: else 1414: __err |= (ios_base::eofbit | ios_base::failbit); 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: __in._M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { __in._M_setstate(ios_base::badbit); } 1414: if (__err) 1414: __in.setstate(__err); 1414: } 1414: return __in; 1414: } 1414: 1414: template 1414: void 1414: __istream_extract(basic_istream<_CharT, _Traits>& __in, _CharT* __s, 1414: streamsize __num) 1414: { 1414: typedef basic_istream<_CharT, _Traits> __istream_type; 1414: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 1414: typedef typename _Traits::int_type int_type; 1414: typedef _CharT char_type; 1414: typedef ctype<_CharT> __ctype_type; 1414: 1414: streamsize __extracted = 0; 1414: ios_base::iostate __err = ios_base::goodbit; 1414: typename __istream_type::sentry __cerb(__in, false); 1414: if (__cerb) 1414: { 1414: try 1414: { 1414: 1414: streamsize __width = __in.width(); 1414: if (0 < __width && __width < __num) 1414: __num = __width; 1414: 1414: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 1414: 1414: const int_type __eof = _Traits::eof(); 1414: __streambuf_type* __sb = __in.rdbuf(); 1414: int_type __c = __sb->sgetc(); 1414: 1414: while (__extracted < __num - 1 1414: && !_Traits::eq_int_type(__c, __eof) 1414: && !__ct.is(ctype_base::space, 1414: _Traits::to_char_type(__c))) 1414: { 1414: *__s++ = _Traits::to_char_type(__c); 1414: ++__extracted; 1414: __c = __sb->snextc(); 1414: } 1414: 1414: if (__extracted < __num - 1 1414: && _Traits::eq_int_type(__c, __eof)) 1414: __err |= ios_base::eofbit; 1414: 1414: 1414: 1414: *__s = char_type(); 1414: __in.width(0); 1414: } 1414: catch(__cxxabiv1::__forced_unwind&) 1414: { 1414: __in._M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { __in._M_setstate(ios_base::badbit); } 1414: } 1414: if (!__extracted) 1414: __err |= ios_base::failbit; 1414: if (__err) 1414: __in.setstate(__err); 1414: } 1414: 1414: 1414: template 1414: basic_istream<_CharT, _Traits>& 1414: ws(basic_istream<_CharT, _Traits>& __in) 1414: { 1414: typedef basic_istream<_CharT, _Traits> __istream_type; 1414: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 1414: typedef typename __istream_type::int_type __int_type; 1414: typedef ctype<_CharT> __ctype_type; 1414: 1414: 1414: 1414: typename __istream_type::sentry __cerb(__in, true); 1414: if (__cerb) 1414: { 1414: ios_base::iostate __err = ios_base::goodbit; 1414: try 1414: { 1414: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 1414: const __int_type __eof = _Traits::eof(); 1414: __streambuf_type* __sb = __in.rdbuf(); 1414: __int_type __c = __sb->sgetc(); 1414: 1414: while (true) 1414: { 1414: if (_Traits::eq_int_type(__c, __eof)) 1414: { 1414: __err = ios_base::eofbit; 1414: break; 1414: } 1414: if (!__ct.is(ctype_base::space, _Traits::to_char_type(__c))) 1414: break; 1414: __c = __sb->snextc(); 1414: } 1414: } 1414: catch(const __cxxabiv1::__forced_unwind&) 1414: { 1414: __in._M_setstate(ios_base::badbit); 1414: throw; 1414: } 1414: catch(...) 1414: { 1414: __in._M_setstate(ios_base::badbit); 1414: } 1414: if (__err) 1414: __in.setstate(__err); 1414: } 1414: return __in; 1414: } 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: extern template class basic_istream; 1414: extern template istream& ws(istream&); 1414: extern template istream& operator>>(istream&, char&); 1414: extern template istream& operator>>(istream&, unsigned char&); 1414: extern template istream& operator>>(istream&, signed char&); 1414: 1414: extern template istream& istream::_M_extract(unsigned short&); 1414: extern template istream& istream::_M_extract(unsigned int&); 1414: extern template istream& istream::_M_extract(long&); 1414: extern template istream& istream::_M_extract(unsigned long&); 1414: extern template istream& istream::_M_extract(bool&); 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wlong-long" 1414: extern template istream& istream::_M_extract(long long&); 1414: extern template istream& istream::_M_extract(unsigned long long&); 1414: #pragma GCC diagnostic pop 1414: 1414: extern template istream& istream::_M_extract(float&); 1414: extern template istream& istream::_M_extract(double&); 1414: extern template istream& istream::_M_extract(long double&); 1414: extern template istream& istream::_M_extract(void*&); 1414: 1414: extern template class basic_iostream; 1414: 1414: 1414: extern template class basic_istream; 1414: extern template wistream& ws(wistream&); 1414: extern template wistream& operator>>(wistream&, wchar_t&); 1414: extern template void __istream_extract(wistream&, wchar_t*, streamsize); 1414: 1414: extern template wistream& wistream::_M_extract(unsigned short&); 1414: extern template wistream& wistream::_M_extract(unsigned int&); 1414: extern template wistream& wistream::_M_extract(long&); 1414: extern template wistream& wistream::_M_extract(unsigned long&); 1414: extern template wistream& wistream::_M_extract(bool&); 1414: 1414: extern template wistream& wistream::_M_extract(long long&); 1414: extern template wistream& wistream::_M_extract(unsigned long long&); 1414: 1414: extern template wistream& wistream::_M_extract(float&); 1414: extern template wistream& wistream::_M_extract(double&); 1414: extern template wistream& wistream::_M_extract(long double&); 1414: extern template wistream& wistream::_M_extract(void*&); 1414: 1414: extern template class basic_iostream; 1414: 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 1123 "/usr/arm-linux-gnueabihf/include/c++/16/istream" 2 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 2 3 1414: 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 49 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 2 3 1414: # 63 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: namespace __cxx11 { 1414: # 86 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: template 1414: class basic_stringbuf : public basic_streambuf<_CharT, _Traits> 1414: { 1414: struct __xfer_bufptrs; 1414: 1414: 1414: using allocator_traits = std::allocator_traits<_Alloc>; 1414: using _Noexcept_swap 1414: = __or_; 1414: 1414: 1414: public: 1414: 1414: typedef _CharT char_type; 1414: typedef _Traits traits_type; 1414: 1414: 1414: typedef _Alloc allocator_type; 1414: typedef typename traits_type::int_type int_type; 1414: typedef typename traits_type::pos_type pos_type; 1414: typedef typename traits_type::off_type off_type; 1414: 1414: typedef basic_streambuf __streambuf_type; 1414: typedef basic_string __string_type; 1414: typedef typename __string_type::size_type __size_type; 1414: 1414: protected: 1414: 1414: ios_base::openmode _M_mode; 1414: 1414: 1414: __string_type _M_string; 1414: 1414: public: 1414: # 129 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: basic_stringbuf() 1414: : __streambuf_type(), _M_mode(ios_base::in | ios_base::out), _M_string() 1414: { } 1414: # 140 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: explicit 1414: basic_stringbuf(ios_base::openmode __mode) 1414: : __streambuf_type(), _M_mode(__mode), _M_string() 1414: { } 1414: # 153 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: explicit 1414: basic_stringbuf(const __string_type& __str, 1414: ios_base::openmode __mode = ios_base::in | ios_base::out) 1414: : __streambuf_type(), _M_mode(), 1414: _M_string(__str.data(), __str.size(), __str.get_allocator()) 1414: { _M_stringbuf_init(__mode); } 1414: 1414: 1414: basic_stringbuf(const basic_stringbuf&) = delete; 1414: 1414: basic_stringbuf(basic_stringbuf&& __rhs) 1414: : basic_stringbuf(std::move(__rhs), __xfer_bufptrs(__rhs, this)) 1414: { __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); } 1414: 1414: 1414: 1414: explicit 1414: basic_stringbuf(const allocator_type& __a) 1414: : basic_stringbuf(ios_base::in | std::ios_base::out, __a) 1414: { } 1414: 1414: basic_stringbuf(ios_base::openmode __mode, 1414: const allocator_type& __a) 1414: : __streambuf_type(), _M_mode(__mode), _M_string(__a) 1414: { } 1414: 1414: explicit 1414: basic_stringbuf(__string_type&& __s, 1414: ios_base::openmode __mode = ios_base::in 1414: | ios_base::out) 1414: : __streambuf_type(), _M_mode(__mode), _M_string(std::move(__s)) 1414: { _M_stringbuf_init(__mode); } 1414: 1414: template 1414: basic_stringbuf(const basic_string<_CharT, _Traits, _SAlloc>& __s, 1414: const allocator_type& __a) 1414: : basic_stringbuf(__s, ios_base::in | std::ios_base::out, __a) 1414: { } 1414: 1414: template 1414: basic_stringbuf(const basic_string<_CharT, _Traits, _SAlloc>& __s, 1414: ios_base::openmode __mode, 1414: const allocator_type& __a) 1414: : __streambuf_type(), _M_mode(__mode), 1414: _M_string(__s.data(), __s.size(), __a) 1414: { _M_stringbuf_init(__mode); } 1414: 1414: template 1414: explicit 1414: basic_stringbuf(const basic_string<_CharT, _Traits, _SAlloc>& __s, 1414: ios_base::openmode __mode = ios_base::in 1414: | ios_base::out) 1414: : basic_stringbuf(__s, __mode, allocator_type{}) 1414: { } 1414: # 237 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: basic_stringbuf(basic_stringbuf&& __rhs, const allocator_type& __a) 1414: : basic_stringbuf(std::move(__rhs), __a, __xfer_bufptrs(__rhs, this)) 1414: { __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); } 1414: 1414: allocator_type get_allocator() const noexcept 1414: { return _M_string.get_allocator(); } 1414: 1414: 1414: 1414: 1414: basic_stringbuf& 1414: operator=(const basic_stringbuf&) = delete; 1414: 1414: basic_stringbuf& 1414: operator=(basic_stringbuf&& __rhs) 1414: { 1414: __xfer_bufptrs __st{__rhs, this}; 1414: const __streambuf_type& __base = __rhs; 1414: __streambuf_type::operator=(__base); 1414: this->pubimbue(__rhs.getloc()); 1414: _M_mode = __rhs._M_mode; 1414: _M_string = std::move(__rhs._M_string); 1414: __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); 1414: return *this; 1414: } 1414: 1414: void 1414: swap(basic_stringbuf& __rhs) noexcept(_Noexcept_swap::value) 1414: { 1414: __xfer_bufptrs __l_st{*this, std::__addressof(__rhs)}; 1414: __xfer_bufptrs __r_st{__rhs, this}; 1414: __streambuf_type& __base = __rhs; 1414: __streambuf_type::swap(__base); 1414: __rhs.pubimbue(this->pubimbue(__rhs.getloc())); 1414: std::swap(_M_mode, __rhs._M_mode); 1414: std::swap(_M_string, __rhs._M_string); 1414: } 1414: # 286 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: [[__nodiscard__]] 1414: __string_type 1414: str() const & 1414: { 1414: __string_type __ret(_M_string.get_allocator()); 1414: if (char_type* __hi = _M_high_mark()) 1414: __ret.assign(this->pbase(), __hi); 1414: else 1414: __ret = _M_string; 1414: return __ret; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template<__allocator_like _SAlloc> 1414: [[__nodiscard__]] 1414: basic_string<_CharT, _Traits, _SAlloc> 1414: str(const _SAlloc& __sa) const 1414: { 1414: auto __sv = view(); 1414: return { __sv.data(), __sv.size(), __sa }; 1414: } 1414: 1414: 1414: [[__nodiscard__]] 1414: __string_type 1414: str() && 1414: { 1414: if (char_type* __hi = _M_high_mark()) 1414: { 1414: if (_M_string.data() == this->pbase()) [[likely]] 1414: 1414: _M_string._M_set_length(__hi - this->pbase()); 1414: else 1414: _M_string.assign(this->pbase(), __hi); 1414: } 1414: auto __str = std::move(_M_string); 1414: _M_string.clear(); 1414: _M_sync(_M_string.data(), 0, 0); 1414: return __str; 1414: } 1414: 1414: 1414: 1414: basic_string_view 1414: view() const noexcept 1414: { 1414: if (char_type* __hi = _M_high_mark()) 1414: return { this->pbase(), __hi }; 1414: else 1414: return _M_string; 1414: } 1414: # 349 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: void 1414: str(const __string_type& __s) 1414: { 1414: 1414: 1414: _M_string.assign(__s.data(), __s.size()); 1414: _M_stringbuf_init(_M_mode); 1414: } 1414: 1414: 1414: 1414: 1414: template<__allocator_like _SAlloc> 1414: requires (!is_same_v<_SAlloc, _Alloc>) 1414: void 1414: str(const basic_string<_CharT, _Traits, _SAlloc>& __s) 1414: { 1414: _M_string.assign(__s.data(), __s.size()); 1414: _M_stringbuf_init(_M_mode); 1414: } 1414: 1414: 1414: void 1414: str(__string_type&& __s) 1414: { 1414: _M_string = std::move(__s); 1414: _M_stringbuf_init(_M_mode); 1414: } 1414: # 392 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: protected: 1414: 1414: void 1414: _M_stringbuf_init(ios_base::openmode __mode) 1414: { 1414: _M_mode = __mode; 1414: __size_type __len = 0; 1414: if (_M_mode & (ios_base::ate | ios_base::app)) 1414: __len = _M_string.size(); 1414: _M_sync(const_cast(_M_string.data()), 0, __len); 1414: } 1414: 1414: virtual streamsize 1414: showmanyc() 1414: { 1414: streamsize __ret = -1; 1414: if (_M_mode & ios_base::in) 1414: { 1414: _M_update_egptr(); 1414: __ret = this->egptr() - this->gptr(); 1414: } 1414: return __ret; 1414: } 1414: 1414: virtual int_type 1414: underflow(); 1414: 1414: virtual int_type 1414: pbackfail(int_type __c = traits_type::eof()); 1414: 1414: virtual int_type 1414: overflow(int_type __c = traits_type::eof()); 1414: # 436 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: virtual __streambuf_type* 1414: setbuf(char_type* __s, streamsize __n) 1414: { 1414: if (__s && __n >= 0) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: _M_string.clear(); 1414: 1414: 1414: _M_sync(__s, __n, 0); 1414: } 1414: return this; 1414: } 1414: 1414: virtual pos_type 1414: seekoff(off_type __off, ios_base::seekdir __way, 1414: ios_base::openmode __mode = ios_base::in | ios_base::out); 1414: 1414: virtual pos_type 1414: seekpos(pos_type __sp, 1414: ios_base::openmode __mode = ios_base::in | ios_base::out); 1414: 1414: 1414: 1414: 1414: void 1414: _M_sync(char_type* __base, __size_type __i, __size_type __o); 1414: 1414: 1414: 1414: void 1414: _M_update_egptr() 1414: { 1414: if (char_type* __pptr = this->pptr()) 1414: { 1414: char_type* __egptr = this->egptr(); 1414: if (!__egptr || __pptr > __egptr) 1414: { 1414: if (_M_mode & ios_base::in) 1414: this->setg(this->eback(), this->gptr(), __pptr); 1414: else 1414: this->setg(__pptr, __pptr, __pptr); 1414: } 1414: } 1414: } 1414: 1414: 1414: 1414: void 1414: _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off); 1414: 1414: private: 1414: 1414: 1414: 1414: 1414: __attribute__((__always_inline__)) 1414: char_type* 1414: _M_high_mark() const noexcept 1414: { 1414: if (char_type* __pptr = this->pptr()) 1414: { 1414: char_type* __egptr = this->egptr(); 1414: if (!__egptr || __pptr > __egptr) 1414: return __pptr; 1414: else 1414: return __egptr; 1414: } 1414: return 0; 1414: } 1414: 1414: 1414: 1414: 1414: 1414: struct __xfer_bufptrs 1414: { 1414: __xfer_bufptrs(const basic_stringbuf& __from, basic_stringbuf* __to) 1414: : _M_to{__to}, _M_goff{-1, -1, -1}, _M_poff{-1, -1, -1} 1414: { 1414: const _CharT* const __str = __from._M_string.data(); 1414: const _CharT* __end = nullptr; 1414: if (__from.eback()) 1414: { 1414: _M_goff[0] = __from.eback() - __str; 1414: _M_goff[1] = __from.gptr() - __str; 1414: _M_goff[2] = __from.egptr() - __str; 1414: __end = __from.egptr(); 1414: } 1414: if (__from.pbase()) 1414: { 1414: _M_poff[0] = __from.pbase() - __str; 1414: _M_poff[1] = __from.pptr() - __from.pbase(); 1414: _M_poff[2] = __from.epptr() - __str; 1414: if (!__end || __from.pptr() > __end) 1414: __end = __from.pptr(); 1414: } 1414: 1414: 1414: if (__end) 1414: { 1414: 1414: 1414: auto& __mut_from = const_cast(__from); 1414: __mut_from._M_string._M_length(__end - __str); 1414: } 1414: } 1414: 1414: ~__xfer_bufptrs() 1414: { 1414: char_type* __str = const_cast(_M_to->_M_string.data()); 1414: if (_M_goff[0] != -1) 1414: _M_to->setg(__str+_M_goff[0], __str+_M_goff[1], __str+_M_goff[2]); 1414: if (_M_poff[0] != -1) 1414: _M_to->_M_pbump(__str+_M_poff[0], __str+_M_poff[2], _M_poff[1]); 1414: } 1414: 1414: basic_stringbuf* _M_to; 1414: off_type _M_goff[3]; 1414: off_type _M_poff[3]; 1414: }; 1414: # 572 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: basic_stringbuf(basic_stringbuf&& __rhs, __xfer_bufptrs&&) 1414: : __streambuf_type(static_cast(__rhs)), 1414: _M_mode(__rhs._M_mode), _M_string(std::move(__rhs._M_string)) 1414: { } 1414: 1414: 1414: 1414: 1414: 1414: 1414: basic_stringbuf(basic_stringbuf&& __rhs, const allocator_type& __a, 1414: __xfer_bufptrs&&) 1414: : __streambuf_type(static_cast(__rhs)), 1414: _M_mode(__rhs._M_mode), _M_string(std::move(__rhs._M_string), __a) 1414: { } 1414: 1414: 1414: }; 1414: # 607 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: template 1414: class basic_istringstream : public basic_istream<_CharT, _Traits> 1414: { 1414: public: 1414: 1414: typedef _CharT char_type; 1414: typedef _Traits traits_type; 1414: 1414: 1414: typedef _Alloc allocator_type; 1414: typedef typename traits_type::int_type int_type; 1414: typedef typename traits_type::pos_type pos_type; 1414: typedef typename traits_type::off_type off_type; 1414: 1414: 1414: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1414: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 1414: typedef basic_istream __istream_type; 1414: 1414: private: 1414: __stringbuf_type _M_stringbuf; 1414: 1414: public: 1414: # 641 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: basic_istringstream() 1414: : __istream_type(), _M_stringbuf(ios_base::in) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: # 657 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: explicit 1414: basic_istringstream(ios_base::openmode __mode) 1414: : __istream_type(), _M_stringbuf(__mode | ios_base::in) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: # 675 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: explicit 1414: basic_istringstream(const __string_type& __str, 1414: ios_base::openmode __mode = ios_base::in) 1414: : __istream_type(), _M_stringbuf(__str, __mode | ios_base::in) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: ~basic_istringstream() 1414: { } 1414: 1414: 1414: basic_istringstream(const basic_istringstream&) = delete; 1414: 1414: basic_istringstream(basic_istringstream&& __rhs) 1414: : __istream_type(std::move(__rhs)), 1414: _M_stringbuf(std::move(__rhs._M_stringbuf)) 1414: { __istream_type::set_rdbuf(std::__addressof(_M_stringbuf)); } 1414: 1414: 1414: 1414: basic_istringstream(ios_base::openmode __mode, const allocator_type& __a) 1414: : __istream_type(), _M_stringbuf(__mode | ios_base::in, __a) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: 1414: explicit 1414: basic_istringstream(__string_type&& __str, 1414: ios_base::openmode __mode = ios_base::in) 1414: : __istream_type(), _M_stringbuf(std::move(__str), __mode | ios_base::in) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: 1414: template 1414: basic_istringstream(const basic_string<_CharT, _Traits, _SAlloc>& __str, 1414: const allocator_type& __a) 1414: : basic_istringstream(__str, ios_base::in, __a) 1414: { } 1414: 1414: template 1414: basic_istringstream(const basic_string<_CharT, _Traits, _SAlloc>& __str, 1414: ios_base::openmode __mode, 1414: const allocator_type& __a) 1414: : __istream_type(), _M_stringbuf(__str, __mode | ios_base::in, __a) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: 1414: template 1414: explicit 1414: basic_istringstream(const basic_string<_CharT, _Traits, _SAlloc>& __str, 1414: ios_base::openmode __mode = ios_base::in) 1414: : basic_istringstream(__str, __mode, allocator_type()) 1414: { } 1414: # 759 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: basic_istringstream& 1414: operator=(const basic_istringstream&) = delete; 1414: 1414: basic_istringstream& 1414: operator=(basic_istringstream&& __rhs) 1414: { 1414: __istream_type::operator=(std::move(__rhs)); 1414: _M_stringbuf = std::move(__rhs._M_stringbuf); 1414: return *this; 1414: } 1414: 1414: void 1414: swap(basic_istringstream& __rhs) 1414: { 1414: __istream_type::swap(__rhs); 1414: _M_stringbuf.swap(__rhs._M_stringbuf); 1414: } 1414: # 785 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: [[__nodiscard__]] 1414: __stringbuf_type* 1414: rdbuf() const 1414: { return const_cast<__stringbuf_type*>(std::__addressof(_M_stringbuf)); } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: __string_type 1414: str() const & 1414: { return _M_stringbuf.str(); } 1414: 1414: 1414: 1414: 1414: 1414: template<__allocator_like _SAlloc> 1414: [[__nodiscard__]] 1414: basic_string<_CharT, _Traits, _SAlloc> 1414: str(const _SAlloc& __sa) const 1414: { return _M_stringbuf.str(__sa); } 1414: 1414: 1414: [[__nodiscard__]] 1414: __string_type 1414: str() && 1414: { return std::move(_M_stringbuf).str(); } 1414: 1414: 1414: 1414: basic_string_view 1414: view() const noexcept 1414: { return _M_stringbuf.view(); } 1414: # 828 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: void 1414: str(const __string_type& __s) 1414: { _M_stringbuf.str(__s); } 1414: 1414: 1414: 1414: 1414: template<__allocator_like _SAlloc> 1414: requires (!is_same_v<_SAlloc, _Alloc>) 1414: void 1414: str(const basic_string<_CharT, _Traits, _SAlloc>& __s) 1414: { _M_stringbuf.str(__s); } 1414: 1414: 1414: void 1414: str(__string_type&& __s) 1414: { _M_stringbuf.str(std::move(__s)); } 1414: # 855 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: }; 1414: # 873 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: template 1414: class basic_ostringstream : public basic_ostream<_CharT, _Traits> 1414: { 1414: public: 1414: 1414: typedef _CharT char_type; 1414: typedef _Traits traits_type; 1414: 1414: 1414: typedef _Alloc allocator_type; 1414: typedef typename traits_type::int_type int_type; 1414: typedef typename traits_type::pos_type pos_type; 1414: typedef typename traits_type::off_type off_type; 1414: 1414: 1414: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1414: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 1414: typedef basic_ostream __ostream_type; 1414: 1414: private: 1414: __stringbuf_type _M_stringbuf; 1414: 1414: public: 1414: # 907 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: basic_ostringstream() 1414: : __ostream_type(), _M_stringbuf(ios_base::out) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: # 923 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: explicit 1414: basic_ostringstream(ios_base::openmode __mode) 1414: : __ostream_type(), _M_stringbuf(__mode | ios_base::out) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: # 941 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: explicit 1414: basic_ostringstream(const __string_type& __str, 1414: ios_base::openmode __mode = ios_base::out) 1414: : __ostream_type(), _M_stringbuf(__str, __mode | ios_base::out) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: ~basic_ostringstream() 1414: { } 1414: 1414: 1414: basic_ostringstream(const basic_ostringstream&) = delete; 1414: 1414: basic_ostringstream(basic_ostringstream&& __rhs) 1414: : __ostream_type(std::move(__rhs)), 1414: _M_stringbuf(std::move(__rhs._M_stringbuf)) 1414: { __ostream_type::set_rdbuf(std::__addressof(_M_stringbuf)); } 1414: 1414: 1414: 1414: basic_ostringstream(ios_base::openmode __mode, const allocator_type& __a) 1414: : __ostream_type(), _M_stringbuf(__mode | ios_base::out, __a) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: 1414: explicit 1414: basic_ostringstream(__string_type&& __str, 1414: ios_base::openmode __mode = ios_base::out) 1414: : __ostream_type(), _M_stringbuf(std::move(__str), __mode | ios_base::out) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: 1414: template 1414: basic_ostringstream(const basic_string<_CharT, _Traits, _SAlloc>& __str, 1414: const allocator_type& __a) 1414: : basic_ostringstream(__str, ios_base::out, __a) 1414: { } 1414: 1414: template 1414: basic_ostringstream(const basic_string<_CharT, _Traits, _SAlloc>& __str, 1414: ios_base::openmode __mode, 1414: const allocator_type& __a) 1414: : __ostream_type(), _M_stringbuf(__str, __mode | ios_base::out, __a) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: 1414: template 1414: explicit 1414: basic_ostringstream(const basic_string<_CharT, _Traits, _SAlloc>& __str, 1414: ios_base::openmode __mode = ios_base::out) 1414: : basic_ostringstream(__str, __mode, allocator_type()) 1414: { } 1414: # 1025 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: basic_ostringstream& 1414: operator=(const basic_ostringstream&) = delete; 1414: 1414: basic_ostringstream& 1414: operator=(basic_ostringstream&& __rhs) 1414: { 1414: __ostream_type::operator=(std::move(__rhs)); 1414: _M_stringbuf = std::move(__rhs._M_stringbuf); 1414: return *this; 1414: } 1414: 1414: void 1414: swap(basic_ostringstream& __rhs) 1414: { 1414: __ostream_type::swap(__rhs); 1414: _M_stringbuf.swap(__rhs._M_stringbuf); 1414: } 1414: # 1051 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: [[__nodiscard__]] 1414: __stringbuf_type* 1414: rdbuf() const 1414: { return const_cast<__stringbuf_type*>(std::__addressof(_M_stringbuf)); } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: __string_type 1414: str() const & 1414: { return _M_stringbuf.str(); } 1414: 1414: 1414: 1414: 1414: 1414: template<__allocator_like _SAlloc> 1414: [[__nodiscard__]] 1414: basic_string<_CharT, _Traits, _SAlloc> 1414: str(const _SAlloc& __sa) const 1414: { return _M_stringbuf.str(__sa); } 1414: 1414: 1414: [[__nodiscard__]] 1414: __string_type 1414: str() && 1414: { return std::move(_M_stringbuf).str(); } 1414: 1414: 1414: 1414: basic_string_view 1414: view() const noexcept 1414: { return _M_stringbuf.view(); } 1414: # 1094 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: void 1414: str(const __string_type& __s) 1414: { _M_stringbuf.str(__s); } 1414: 1414: 1414: 1414: 1414: template<__allocator_like _SAlloc> 1414: requires (!is_same_v<_SAlloc, _Alloc>) 1414: void 1414: str(const basic_string<_CharT, _Traits, _SAlloc>& __s) 1414: { _M_stringbuf.str(__s); } 1414: 1414: 1414: void 1414: str(__string_type&& __s) 1414: { _M_stringbuf.str(std::move(__s)); } 1414: # 1121 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: }; 1414: # 1139 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: template 1414: class basic_stringstream : public basic_iostream<_CharT, _Traits> 1414: { 1414: public: 1414: 1414: typedef _CharT char_type; 1414: typedef _Traits traits_type; 1414: 1414: 1414: typedef _Alloc allocator_type; 1414: typedef typename traits_type::int_type int_type; 1414: typedef typename traits_type::pos_type pos_type; 1414: typedef typename traits_type::off_type off_type; 1414: 1414: 1414: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1414: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 1414: typedef basic_iostream __iostream_type; 1414: 1414: private: 1414: __stringbuf_type _M_stringbuf; 1414: 1414: public: 1414: # 1173 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: basic_stringstream() 1414: : __iostream_type(), _M_stringbuf(ios_base::out | ios_base::in) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: # 1187 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: explicit 1414: basic_stringstream(ios_base::openmode __m) 1414: : __iostream_type(), _M_stringbuf(__m) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: # 1203 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: explicit 1414: basic_stringstream(const __string_type& __str, 1414: ios_base::openmode __m = ios_base::out | ios_base::in) 1414: : __iostream_type(), _M_stringbuf(__str, __m) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: ~basic_stringstream() 1414: { } 1414: 1414: 1414: basic_stringstream(const basic_stringstream&) = delete; 1414: 1414: basic_stringstream(basic_stringstream&& __rhs) 1414: : __iostream_type(std::move(__rhs)), 1414: _M_stringbuf(std::move(__rhs._M_stringbuf)) 1414: { __iostream_type::set_rdbuf(std::__addressof(_M_stringbuf)); } 1414: 1414: 1414: 1414: basic_stringstream(ios_base::openmode __mode, const allocator_type& __a) 1414: : __iostream_type(), _M_stringbuf(__mode, __a) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: 1414: explicit 1414: basic_stringstream(__string_type&& __str, 1414: ios_base::openmode __mode = ios_base::in 1414: | ios_base::out) 1414: : __iostream_type(), _M_stringbuf(std::move(__str), __mode) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: 1414: template 1414: basic_stringstream(const basic_string<_CharT, _Traits, _SAlloc>& __str, 1414: const allocator_type& __a) 1414: : basic_stringstream(__str, ios_base::in | ios_base::out, __a) 1414: { } 1414: 1414: template 1414: basic_stringstream(const basic_string<_CharT, _Traits, _SAlloc>& __str, 1414: ios_base::openmode __mode, 1414: const allocator_type& __a) 1414: : __iostream_type(), _M_stringbuf(__str, __mode, __a) 1414: { this->init(std::__addressof(_M_stringbuf)); } 1414: 1414: template 1414: explicit 1414: basic_stringstream(const basic_string<_CharT, _Traits, _SAlloc>& __str, 1414: ios_base::openmode __mode = ios_base::in 1414: | ios_base::out) 1414: : basic_stringstream(__str, __mode, allocator_type()) 1414: { } 1414: # 1288 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: basic_stringstream& 1414: operator=(const basic_stringstream&) = delete; 1414: 1414: basic_stringstream& 1414: operator=(basic_stringstream&& __rhs) 1414: { 1414: __iostream_type::operator=(std::move(__rhs)); 1414: _M_stringbuf = std::move(__rhs._M_stringbuf); 1414: return *this; 1414: } 1414: 1414: void 1414: swap(basic_stringstream& __rhs) 1414: { 1414: __iostream_type::swap(__rhs); 1414: _M_stringbuf.swap(__rhs._M_stringbuf); 1414: } 1414: # 1314 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: [[__nodiscard__]] 1414: __stringbuf_type* 1414: rdbuf() const 1414: { return const_cast<__stringbuf_type*>(std::__addressof(_M_stringbuf)); } 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: __string_type 1414: str() const & 1414: { return _M_stringbuf.str(); } 1414: 1414: 1414: 1414: 1414: 1414: template<__allocator_like _SAlloc> 1414: [[__nodiscard__]] 1414: basic_string<_CharT, _Traits, _SAlloc> 1414: str(const _SAlloc& __sa) const 1414: { return _M_stringbuf.str(__sa); } 1414: 1414: 1414: [[__nodiscard__]] 1414: __string_type 1414: str() && 1414: { return std::move(_M_stringbuf).str(); } 1414: 1414: 1414: 1414: basic_string_view 1414: view() const noexcept 1414: { return _M_stringbuf.view(); } 1414: # 1357 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: void 1414: str(const __string_type& __s) 1414: { _M_stringbuf.str(__s); } 1414: 1414: 1414: 1414: 1414: template<__allocator_like _SAlloc> 1414: requires (!is_same_v<_SAlloc, _Alloc>) 1414: void 1414: str(const basic_string<_CharT, _Traits, _SAlloc>& __s) 1414: { _M_stringbuf.str(__s); } 1414: 1414: 1414: void 1414: str(__string_type&& __s) 1414: { _M_stringbuf.str(std::move(__s)); } 1414: # 1384 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 3 1414: }; 1414: 1414: 1414: 1414: template 1414: inline void 1414: swap(basic_stringbuf<_CharT, _Traits, _Allocator>& __x, 1414: basic_stringbuf<_CharT, _Traits, _Allocator>& __y) 1414: noexcept(noexcept(__x.swap(__y))) 1414: { __x.swap(__y); } 1414: 1414: 1414: template 1414: inline void 1414: swap(basic_istringstream<_CharT, _Traits, _Allocator>& __x, 1414: basic_istringstream<_CharT, _Traits, _Allocator>& __y) 1414: { __x.swap(__y); } 1414: 1414: 1414: template 1414: inline void 1414: swap(basic_ostringstream<_CharT, _Traits, _Allocator>& __x, 1414: basic_ostringstream<_CharT, _Traits, _Allocator>& __y) 1414: { __x.swap(__y); } 1414: 1414: 1414: template 1414: inline void 1414: swap(basic_stringstream<_CharT, _Traits, _Allocator>& __x, 1414: basic_stringstream<_CharT, _Traits, _Allocator>& __y) 1414: { __x.swap(__y); } 1414: 1414: 1414: } 1414: 1414: } 1414: 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/sstream.tcc" 1 3 1414: # 40 "/usr/arm-linux-gnueabihf/include/c++/16/bits/sstream.tcc" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++11-extensions" 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 1414: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1414: pbackfail(int_type __c) 1414: { 1414: int_type __ret = traits_type::eof(); 1414: if (this->eback() < this->gptr()) 1414: { 1414: 1414: 1414: const bool __testeof = traits_type::eq_int_type(__c, __ret); 1414: if (!__testeof) 1414: { 1414: const bool __testeq = traits_type::eq(traits_type:: 1414: to_char_type(__c), 1414: this->gptr()[-1]); 1414: const bool __testout = this->_M_mode & ios_base::out; 1414: if (__testeq || __testout) 1414: { 1414: this->gbump(-1); 1414: if (!__testeq) 1414: *this->gptr() = traits_type::to_char_type(__c); 1414: __ret = __c; 1414: } 1414: } 1414: else 1414: { 1414: this->gbump(-1); 1414: __ret = traits_type::not_eof(__c); 1414: } 1414: } 1414: return __ret; 1414: } 1414: 1414: template 1414: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 1414: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1414: overflow(int_type __c) 1414: { 1414: const bool __testout = this->_M_mode & ios_base::out; 1414: if (__builtin_expect(!__testout, false)) 1414: return traits_type::eof(); 1414: 1414: const bool __testeof = traits_type::eq_int_type(__c, traits_type::eof()); 1414: if (__builtin_expect(__testeof, false)) 1414: return traits_type::not_eof(__c); 1414: 1414: const __size_type __capacity = _M_string.capacity(); 1414: 1414: 1414: if (size_t(this->epptr() - this->pbase()) < __capacity) 1414: { 1414: 1414: char_type* __base = const_cast(_M_string.data()); 1414: _M_pbump(__base, __base + __capacity, this->pptr() - this->pbase()); 1414: if (_M_mode & ios_base::in) 1414: { 1414: const __size_type __nget = this->gptr() - this->eback(); 1414: const __size_type __eget = this->egptr() - this->eback(); 1414: this->setg(__base, __base + __nget, __base + __eget + 1); 1414: } 1414: *this->pptr() = traits_type::to_char_type(__c); 1414: this->pbump(1); 1414: return __c; 1414: } 1414: 1414: 1414: const __size_type __max_size = _M_string.max_size(); 1414: const bool __testput = this->pptr() < this->epptr(); 1414: if (__builtin_expect(!__testput && __capacity == __max_size, false)) 1414: return traits_type::eof(); 1414: 1414: 1414: 1414: const char_type __conv = traits_type::to_char_type(__c); 1414: if (!__testput) 1414: { 1414: # 133 "/usr/arm-linux-gnueabihf/include/c++/16/bits/sstream.tcc" 3 1414: const __size_type __opt_len = std::max(__size_type(2 * __capacity), 1414: __size_type(512)); 1414: const __size_type __len = std::min(__opt_len, __max_size); 1414: __string_type __tmp(_M_string.get_allocator()); 1414: __tmp.reserve(__len); 1414: if (this->pbase()) 1414: __tmp.assign(this->pbase(), this->epptr() - this->pbase()); 1414: __tmp.push_back(__conv); 1414: _M_string.swap(__tmp); 1414: _M_sync(const_cast(_M_string.data()), 1414: this->gptr() - this->eback(), this->pptr() - this->pbase()); 1414: } 1414: else 1414: *this->pptr() = __conv; 1414: this->pbump(1); 1414: return __c; 1414: } 1414: 1414: template 1414: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 1414: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1414: underflow() 1414: { 1414: int_type __ret = traits_type::eof(); 1414: const bool __testin = this->_M_mode & ios_base::in; 1414: if (__testin) 1414: { 1414: 1414: _M_update_egptr(); 1414: 1414: if (this->gptr() < this->egptr()) 1414: __ret = traits_type::to_int_type(*this->gptr()); 1414: } 1414: return __ret; 1414: } 1414: 1414: template 1414: typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type 1414: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1414: seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode) 1414: { 1414: pos_type __ret = pos_type(off_type(-1)); 1414: bool __testin = (ios_base::in & this->_M_mode & __mode) != 0; 1414: bool __testout = (ios_base::out & this->_M_mode & __mode) != 0; 1414: const bool __testboth = __testin && __testout && __way != ios_base::cur; 1414: __testin &= !(__mode & ios_base::out); 1414: __testout &= !(__mode & ios_base::in); 1414: 1414: 1414: 1414: const char_type* __beg = __testin ? this->eback() : this->pbase(); 1414: if ((__beg || !__off) && (__testin || __testout || __testboth)) 1414: { 1414: _M_update_egptr(); 1414: 1414: off_type __newoffi = __off; 1414: off_type __newoffo = __newoffi; 1414: if (__way == ios_base::cur) 1414: { 1414: __newoffi += this->gptr() - __beg; 1414: __newoffo += this->pptr() - __beg; 1414: } 1414: else if (__way == ios_base::end) 1414: __newoffo = __newoffi += this->egptr() - __beg; 1414: 1414: if ((__testin || __testboth) 1414: && __newoffi >= 0 1414: && this->egptr() - __beg >= __newoffi) 1414: { 1414: this->setg(this->eback(), this->eback() + __newoffi, 1414: this->egptr()); 1414: __ret = pos_type(__newoffi); 1414: } 1414: if ((__testout || __testboth) 1414: && __newoffo >= 0 1414: && this->egptr() - __beg >= __newoffo) 1414: { 1414: _M_pbump(this->pbase(), this->epptr(), __newoffo); 1414: __ret = pos_type(__newoffo); 1414: } 1414: } 1414: return __ret; 1414: } 1414: 1414: template 1414: typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type 1414: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1414: seekpos(pos_type __sp, ios_base::openmode __mode) 1414: { 1414: pos_type __ret = pos_type(off_type(-1)); 1414: const bool __testin = (ios_base::in & this->_M_mode & __mode) != 0; 1414: const bool __testout = (ios_base::out & this->_M_mode & __mode) != 0; 1414: 1414: const char_type* __beg = __testin ? this->eback() : this->pbase(); 1414: if ((__beg || !off_type(__sp)) && (__testin || __testout)) 1414: { 1414: _M_update_egptr(); 1414: 1414: const off_type __pos(__sp); 1414: const bool __testpos = (0 <= __pos 1414: && __pos <= this->egptr() - __beg); 1414: if (__testpos) 1414: { 1414: if (__testin) 1414: this->setg(this->eback(), this->eback() + __pos, 1414: this->egptr()); 1414: if (__testout) 1414: _M_pbump(this->pbase(), this->epptr(), __pos); 1414: __ret = __sp; 1414: } 1414: } 1414: return __ret; 1414: } 1414: 1414: template 1414: void 1414: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1414: _M_sync(char_type* __base, __size_type __i, __size_type __o) 1414: { 1414: const bool __testin = _M_mode & ios_base::in; 1414: const bool __testout = _M_mode & ios_base::out; 1414: char_type* __endg = __base + _M_string.size(); 1414: char_type* __endp = __base + _M_string.capacity(); 1414: 1414: if (__base != _M_string.data()) 1414: { 1414: 1414: __endg += __i; 1414: __i = 0; 1414: __endp = __endg; 1414: } 1414: 1414: if (__testin) 1414: this->setg(__base, __base + __i, __endg); 1414: if (__testout) 1414: { 1414: _M_pbump(__base, __endp, __o); 1414: 1414: 1414: 1414: if (!__testin) 1414: this->setg(__endg, __endg, __endg); 1414: } 1414: } 1414: 1414: template 1414: void 1414: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1414: _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off) 1414: { 1414: this->setp(__pbeg, __pend); 1414: while (__off > __gnu_cxx::__numeric_traits::__max) 1414: { 1414: this->pbump(__gnu_cxx::__numeric_traits::__max); 1414: __off -= __gnu_cxx::__numeric_traits::__max; 1414: } 1414: this->pbump(__off); 1414: } 1414: 1414: 1414: 1414: 1414: extern template class basic_stringbuf; 1414: extern template class basic_istringstream; 1414: extern template class basic_ostringstream; 1414: extern template class basic_stringstream; 1414: 1414: 1414: extern template class basic_stringbuf; 1414: extern template class basic_istringstream; 1414: extern template class basic_ostringstream; 1414: extern template class basic_stringstream; 1414: 1414: 1414: 1414: 1414: } 1414: 1414: #pragma GCC diagnostic pop 1414: # 1425 "/usr/arm-linux-gnueabihf/include/c++/16/sstream" 2 3 1414: # 13 "build/include/internal/botan/internal/fmt.h" 2 1414: 1414: 1414: 1414: 1414: # 16 "build/include/internal/botan/internal/fmt.h" 1414: namespace Botan { 1414: 1414: namespace fmt_detail { 1414: 1414: inline void do_fmt(std::ostringstream& oss, std::string_view format) { 1414: oss << format; 1414: } 1414: 1414: template 1414: void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) { 1414: size_t i = 0; 1414: 1414: while(i < format.size()) { 1414: if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') { 1414: oss << val; 1414: return do_fmt(oss, format.substr(i + 2), rest...); 1414: } else { 1414: oss << format[i]; 1414: } 1414: 1414: i += 1; 1414: } 1414: } 1414: 1414: } 1414: # 52 "build/include/internal/botan/internal/fmt.h" 1414: template 1414: std::string fmt(std::string_view format, const T&... args) { 1414: std::ostringstream oss; 1414: oss.imbue(std::locale::classic()); 1414: fmt_detail::do_fmt(oss, format, args...); 1414: return oss.str(); 1414: } 1414: 1414: } 1414: # 11 "/build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ip_address/ipv6_address.cpp" 2 1414: # 1 "build/include/internal/botan/internal/loadstor.h" 1 1414: # 13 "build/include/internal/botan/internal/loadstor.h" 1414: # 1 "build/include/public/botan/mem_ops.h" 1 1414: # 11 "build/include/public/botan/mem_ops.h" 1414: # 1 "build/include/public/botan/assert.h" 1 1414: # 14 "build/include/public/botan/assert.h" 1414: 1414: 1414: namespace Botan { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[noreturn]] void __attribute__((visibility("default"))) 1414: assertion_failure(const char* expr_str, const char* assertion_made, const char* func, const char* file, int line); 1414: 1414: 1414: 1414: 1414: 1414: [[noreturn]] void __attribute__((visibility("default"))) throw_invalid_argument(const char* message, const char* func, const char* file); 1414: # 47 "build/include/public/botan/assert.h" 1414: [[noreturn]] void __attribute__((visibility("default"))) throw_invalid_state(const char* message, const char* func, const char* file); 1414: # 141 "build/include/public/botan/assert.h" 1414: template 1414: constexpr void ignore_params([[maybe_unused]] const T&... args) {} 1414: # 161 "build/include/public/botan/assert.h" 1414: [[noreturn]] void __attribute__((visibility("default"))) assert_unreachable(const char* file, int line); 1414: 1414: 1414: 1414: 1414: 1414: } 1414: # 12 "build/include/public/botan/mem_ops.h" 2 1414: # 1 "build/include/public/botan/range_concepts.h" 1 1414: # 13 "build/include/public/botan/range_concepts.h" 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 1 3 1414: # 45 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/iterator" 1 3 1414: # 67 "/usr/arm-linux-gnueabihf/include/c++/16/iterator" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stream_iterator.h" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stream_iterator.h" 3 1414: 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stream_iterator.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: # 52 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stream_iterator.h" 3 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: 1414: 1414: template, typename _Dist = ptrdiff_t> 1414: class istream_iterator 1414: : public iterator 1414: { 1414: public: 1414: typedef _CharT char_type; 1414: typedef _Traits traits_type; 1414: typedef basic_istream<_CharT, _Traits> istream_type; 1414: 1414: private: 1414: istream_type* _M_stream; 1414: _Tp _M_value; 1414: 1414: 1414: 1414: bool _M_ok; 1414: 1414: public: 1414: 1414: constexpr istream_iterator() 1414: noexcept(is_nothrow_default_constructible<_Tp>::value) 1414: : _M_stream(0), _M_value(), _M_ok(false) {} 1414: 1414: 1414: istream_iterator(istream_type& __s) 1414: : _M_stream(std::__addressof(__s)), _M_ok(true) 1414: { _M_read(); } 1414: 1414: constexpr 1414: istream_iterator(const istream_iterator& __obj) 1414: noexcept(is_nothrow_copy_constructible<_Tp>::value) 1414: : _M_stream(__obj._M_stream), _M_value(__obj._M_value), 1414: _M_ok(__obj._M_ok) 1414: { } 1414: 1414: 1414: constexpr 1414: istream_iterator(default_sentinel_t) 1414: noexcept(is_nothrow_default_constructible_v<_Tp>) 1414: : istream_iterator() { } 1414: 1414: 1414: 1414: istream_iterator& operator=(const istream_iterator&) = default; 1414: ~istream_iterator() = default; 1414: 1414: 1414: [[__nodiscard__]] 1414: const _Tp& 1414: operator*() const noexcept 1414: { 1414: 1414: 1414: ; 1414: return _M_value; 1414: } 1414: 1414: [[__nodiscard__]] 1414: const _Tp* 1414: operator->() const noexcept 1414: { return std::__addressof((operator*())); } 1414: 1414: istream_iterator& 1414: operator++() 1414: { 1414: 1414: 1414: ; 1414: _M_read(); 1414: return *this; 1414: } 1414: 1414: istream_iterator 1414: operator++(int) 1414: { 1414: 1414: 1414: ; 1414: istream_iterator __tmp = *this; 1414: _M_read(); 1414: return __tmp; 1414: } 1414: 1414: private: 1414: bool 1414: _M_equal(const istream_iterator& __x) const noexcept 1414: { 1414: 1414: 1414: return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); 1414: } 1414: 1414: void 1414: _M_read() 1414: { 1414: if (_M_stream && !(*_M_stream >> _M_value)) 1414: { 1414: _M_stream = 0; 1414: _M_ok = false; 1414: } 1414: } 1414: 1414: 1414: 1414: [[__nodiscard__]] 1414: friend bool 1414: operator==(const istream_iterator& __x, const istream_iterator& __y) 1414: noexcept 1414: { return __x._M_equal(__y); } 1414: # 178 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stream_iterator.h" 3 1414: [[nodiscard]] 1414: friend bool 1414: operator==(const istream_iterator& __i, default_sentinel_t) noexcept 1414: { return !__i._M_stream; } 1414: 1414: }; 1414: # 196 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stream_iterator.h" 3 1414: template > 1414: class ostream_iterator 1414: : public iterator 1414: { 1414: public: 1414: 1414: 1414: 1414: using difference_type = ptrdiff_t; 1414: 1414: typedef _CharT char_type; 1414: typedef _Traits traits_type; 1414: typedef basic_ostream<_CharT, _Traits> ostream_type; 1414: 1414: 1414: private: 1414: ostream_type* _M_stream; 1414: const _CharT* _M_string; 1414: 1414: public: 1414: 1414: ostream_iterator(ostream_type& __s) noexcept 1414: : _M_stream(std::__addressof(__s)), _M_string(0) {} 1414: # 231 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stream_iterator.h" 3 1414: ostream_iterator(ostream_type& __s, const _CharT* __c) noexcept 1414: : _M_stream(std::__addressof(__s)), _M_string(__c) { } 1414: 1414: 1414: ostream_iterator(const ostream_iterator& __obj) noexcept 1414: : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } 1414: 1414: 1414: ostream_iterator& operator=(const ostream_iterator&) = default; 1414: 1414: 1414: 1414: 1414: ostream_iterator& 1414: operator=(const _Tp& __value) 1414: { 1414: 1414: 1414: ; 1414: *_M_stream << __value; 1414: if (_M_string) 1414: *_M_stream << _M_string; 1414: return *this; 1414: } 1414: 1414: [[__nodiscard__]] 1414: ostream_iterator& 1414: operator*() noexcept 1414: { return *this; } 1414: 1414: ostream_iterator& 1414: operator++() noexcept 1414: { return *this; } 1414: 1414: ostream_iterator& 1414: operator++(int) noexcept 1414: { return *this; } 1414: }; 1414: #pragma GCC diagnostic pop 1414: 1414: 1414: 1414: 1414: } 1414: # 68 "/usr/arm-linux-gnueabihf/include/c++/16/iterator" 2 3 1414: # 80 "/usr/arm-linux-gnueabihf/include/c++/16/iterator" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 81 "/usr/arm-linux-gnueabihf/include/c++/16/iterator" 2 3 1414: # 46 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 2 3 1414: # 54 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/binders.h" 1 3 1414: # 43 "/usr/arm-linux-gnueabihf/include/c++/16/bits/binders.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: struct _Indexed_bound_arg 1414: { 1414: [[no_unique_address]] _Tp _M_val; 1414: }; 1414: 1414: template 1414: struct _Bound_arg_storage : _IndexedArgs... 1414: { 1414: template 1414: static constexpr 1414: decltype(auto) 1414: _S_apply(_Fd&& __fd, _Self&& __self, _CallArgs&&... __call_args) 1414: { 1414: if constexpr (_Back) 1414: return std::__invoke(std::forward<_Fd>(__fd), 1414: std::forward<_CallArgs>(__call_args)..., 1414: __like_t<_Self, _IndexedArgs>(__self)._M_val...); 1414: else 1414: return std::__invoke(std::forward<_Fd>(__fd), 1414: __like_t<_Self, _IndexedArgs>(__self)._M_val..., 1414: std::forward<_CallArgs>(__call_args)...); 1414: } 1414: }; 1414: 1414: template 1414: constexpr auto 1414: __make_bound_args(_Args&&... __args) 1414: { 1414: if constexpr (sizeof...(_BoundArgs) == 1) 1414: 1414: return (_BoundArgs(std::forward<_Args>(__args)), ...); 1414: else 1414: { 1414: auto __impl = [&](index_sequence<_Inds...>) 1414: { 1414: return _Bound_arg_storage<_Indexed_bound_arg<_Inds, _BoundArgs>...> 1414: { {_BoundArgs(std::forward<_Args>(__args))}... }; 1414: }; 1414: return __impl(index_sequence_for<_BoundArgs...>()); 1414: } 1414: } 1414: 1414: template 1414: class _Binder 1414: { 1414: template 1414: using _Result_t = __conditional_t< 1414: _Back, 1414: invoke_result<__like_t<_Self, _Fd>, 1414: _CallArgs..., __like_t<_Self, _BoundArgs>...>, 1414: invoke_result<__like_t<_Self, _Fd>, 1414: __like_t<_Self, _BoundArgs>..., _CallArgs...>>::type; 1414: 1414: template 1414: static consteval bool 1414: _S_noexcept_invocable() 1414: { 1414: if constexpr (_Back) 1414: return is_nothrow_invocable_v< __like_t<_Self, _Fd>, 1414: _CallArgs..., __like_t<_Self, _BoundArgs>...>; 1414: else 1414: return is_nothrow_invocable_v<__like_t<_Self, _Fd>, 1414: __like_t<_Self, _BoundArgs>..., _CallArgs...>; 1414: } 1414: 1414: public: 1414: static_assert(is_move_constructible_v<_Fd>); 1414: static_assert((is_move_constructible_v<_BoundArgs> && ...)); 1414: 1414: 1414: 1414: template 1414: explicit constexpr 1414: _Binder(int, _Fn&& __fn, _Args&&... __args) 1414: noexcept(__and_, 1414: is_nothrow_constructible<_BoundArgs, _Args>...>::value) 1414: : _M_fd(std::forward<_Fn>(__fn)), 1414: _M_bound_args(__make_bound_args<_BoundArgs...>(std::forward<_Args>(__args)...)) 1414: { static_assert(sizeof...(_Args) == sizeof...(_BoundArgs)); } 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++23-extensions" 1414: template 1414: constexpr _Result_t<_Self, _CallArgs...> 1414: operator()(this _Self&& __self, _CallArgs&&... __call_args) 1414: noexcept(_S_noexcept_invocable<_Self, _CallArgs...>()) 1414: { 1414: return _S_call(__like_t<_Self, _Binder>(__self), 1414: std::forward<_CallArgs>(__call_args)...); 1414: } 1414: #pragma GCC diagnostic pop 1414: # 192 "/usr/arm-linux-gnueabihf/include/c++/16/bits/binders.h" 3 1414: template 1414: static constexpr 1414: decltype(auto) 1414: _S_call(_Tp&& __g, _CallArgs&&... __call_args) 1414: { 1414: if constexpr (sizeof...(_BoundArgs) > 1) 1414: return _BoundArgsStorage::template _S_apply<_Back>( 1414: std::forward<_Tp>(__g)._M_fd, 1414: std::forward<_Tp>(__g)._M_bound_args, 1414: std::forward<_CallArgs>(__call_args)...); 1414: else if constexpr (sizeof...(_BoundArgs) == 0) 1414: return std::__invoke(std::forward<_Tp>(__g)._M_fd, 1414: std::forward<_CallArgs>(__call_args)...); 1414: else if constexpr (_Back) 1414: return std::__invoke(std::forward<_Tp>(__g)._M_fd, 1414: std::forward<_CallArgs>(__call_args)..., 1414: std::forward<_Tp>(__g)._M_bound_args); 1414: else 1414: return std::__invoke(std::forward<_Tp>(__g)._M_fd, 1414: std::forward<_Tp>(__g)._M_bound_args, 1414: std::forward<_CallArgs>(__call_args)...); 1414: } 1414: 1414: private: 1414: using _BoundArgsStorage 1414: 1414: = decltype(__make_bound_args<_BoundArgs...>(std::declval<_BoundArgs>()...)); 1414: 1414: [[no_unique_address]] _Fd _M_fd; 1414: [[no_unique_address]] _BoundArgsStorage _M_bound_args; 1414: }; 1414: 1414: template 1414: using _Bind_front_t = _Binder, decay_t<_Args>...>; 1414: 1414: 1414: 1414: template 1414: using _Bind_back_t 1414: = _Binder<(sizeof...(_Args) > 0), decay_t<_Fn>, decay_t<_Args>...>; 1414: 1414: 1414: } 1414: # 55 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 2 3 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/refwrap.h" 1 3 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/bits/refwrap.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 58 "/usr/arm-linux-gnueabihf/include/c++/16/bits/refwrap.h" 3 1414: template 1414: struct _Maybe_unary_or_binary_function { }; 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: 1414: 1414: template 1414: struct _Maybe_unary_or_binary_function<_Res, _T1> 1414: : std::unary_function<_T1, _Res> { }; 1414: 1414: 1414: template 1414: struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> 1414: : std::binary_function<_T1, _T2, _Res> { }; 1414: 1414: #pragma GCC diagnostic pop 1414: 1414: template 1414: struct _Mem_fn_traits; 1414: 1414: template 1414: struct _Mem_fn_traits_base 1414: { 1414: using __result_type = _Res; 1414: using __maybe_type 1414: = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>; 1414: using __arity = integral_constant; 1414: }; 1414: # 109 "/usr/arm-linux-gnueabihf/include/c++/16/bits/refwrap.h" 3 1414: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) > : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) > : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const > : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const > : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile > : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) volatile > : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile > : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const volatile > : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 1414: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) &> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) &> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const &> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const &> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile &> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) volatile &> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile &> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const volatile &> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 1414: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) &&> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) &&> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const &&> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const &&> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile &&> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) volatile &&> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile &&> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const volatile &&> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 1414: 1414: 1414: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) noexcept> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) noexcept> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const noexcept> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const noexcept> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile noexcept> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) volatile noexcept> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile noexcept> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const volatile noexcept> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 1414: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) & noexcept> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) & noexcept> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const & noexcept> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const & noexcept> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile & noexcept> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) volatile & noexcept> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile & noexcept> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const volatile & noexcept> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 1414: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) && noexcept> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) && noexcept> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const && noexcept> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const && noexcept> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile && noexcept> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) volatile && noexcept> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile && noexcept> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) const volatile && noexcept> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template> 1414: struct _Maybe_get_result_type 1414: { }; 1414: 1414: template 1414: struct _Maybe_get_result_type<_Functor, 1414: __void_t> 1414: { typedef typename _Functor::result_type result_type; }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct _Weak_result_type_impl 1414: : _Maybe_get_result_type<_Functor> 1414: { }; 1414: 1414: 1414: template 1414: struct _Weak_result_type_impl<_Res(_ArgTypes...) noexcept (_NE)> 1414: { typedef _Res result_type; }; 1414: 1414: 1414: template 1414: struct _Weak_result_type_impl<_Res(_ArgTypes..., 1414: ...) noexcept (_NE)> 1414: { typedef _Res result_type; }; 1414: 1414: 1414: template 1414: struct _Weak_result_type_impl<_Res(*)(_ArgTypes...) noexcept (_NE)> 1414: { typedef _Res result_type; }; 1414: 1414: 1414: template 1414: struct 1414: _Weak_result_type_impl<_Res(*)(_ArgTypes..., ...) noexcept (_NE)> 1414: { typedef _Res result_type; }; 1414: 1414: 1414: template::value> 1414: struct _Weak_result_type_memfun 1414: : _Weak_result_type_impl<_Functor> 1414: { }; 1414: 1414: 1414: template 1414: struct _Weak_result_type_memfun<_MemFunPtr, true> 1414: { 1414: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 1414: }; 1414: 1414: 1414: template 1414: struct _Weak_result_type_memfun<_Func _Class::*, false> 1414: { }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct _Weak_result_type 1414: : _Weak_result_type_memfun::type> 1414: { }; 1414: # 309 "/usr/arm-linux-gnueabihf/include/c++/16/bits/refwrap.h" 3 1414: template 1414: class reference_wrapper 1414: 1414: 1414: 1414: 1414: 1414: { 1414: _Tp* _M_data; 1414: 1414: constexpr 1414: static _Tp* _S_fun(_Tp& __r) noexcept { return std::__addressof(__r); } 1414: 1414: static void _S_fun(_Tp&&) = delete; 1414: 1414: template> 1414: using __not_same 1414: = typename enable_if::value>::type; 1414: 1414: public: 1414: typedef _Tp type; 1414: 1414: 1414: 1414: 1414: template, typename 1414: = decltype(reference_wrapper::_S_fun(std::declval<_Up>()))> 1414: constexpr 1414: reference_wrapper(_Up&& __uref) 1414: noexcept(noexcept(reference_wrapper::_S_fun(std::declval<_Up>()))) 1414: : _M_data(reference_wrapper::_S_fun(std::forward<_Up>(__uref))) 1414: { } 1414: 1414: reference_wrapper(const reference_wrapper&) = default; 1414: 1414: reference_wrapper& 1414: operator=(const reference_wrapper&) = default; 1414: 1414: constexpr 1414: operator _Tp&() const noexcept 1414: { return this->get(); } 1414: 1414: constexpr 1414: _Tp& 1414: get() const noexcept 1414: { return *_M_data; } 1414: 1414: template 1414: constexpr 1414: typename __invoke_result<_Tp&, _Args...>::type 1414: operator()(_Args&&... __args) const 1414: noexcept(__is_nothrow_invocable<_Tp&, _Args...>::value) 1414: { 1414: 1414: if constexpr (is_object_v) 1414: static_assert(sizeof(type), "type must be complete"); 1414: 1414: return std::__invoke(get(), std::forward<_Args>(__args)...); 1414: } 1414: # 415 "/usr/arm-linux-gnueabihf/include/c++/16/bits/refwrap.h" 3 1414: }; 1414: 1414: 1414: template 1414: reference_wrapper(_Tp&) -> reference_wrapper<_Tp>; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: constexpr 1414: inline reference_wrapper<_Tp> 1414: ref(_Tp& __t) noexcept 1414: { return reference_wrapper<_Tp>(__t); } 1414: 1414: 1414: template 1414: constexpr 1414: inline reference_wrapper 1414: cref(const _Tp& __t) noexcept 1414: { return reference_wrapper(__t); } 1414: 1414: template 1414: void ref(const _Tp&&) = delete; 1414: 1414: template 1414: void cref(const _Tp&&) = delete; 1414: 1414: 1414: template 1414: constexpr 1414: inline reference_wrapper<_Tp> 1414: ref(reference_wrapper<_Tp> __t) noexcept 1414: { return __t; } 1414: 1414: 1414: template 1414: constexpr 1414: inline reference_wrapper 1414: cref(reference_wrapper<_Tp> __t) noexcept 1414: { return { __t.get() }; } 1414: 1414: 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: constexpr bool __is_ref_wrapper = false; 1414: 1414: template 1414: constexpr bool __is_ref_wrapper> = true; 1414: 1414: template 1414: concept __ref_wrap_common_reference_exists_with = __is_ref_wrapper<_Rp> 1414: && requires { typename common_reference_t; } 1414: && convertible_to<_RQual, common_reference_t>; 1414: } 1414: 1414: template class _RQual, template class _TQual> 1414: requires __detail::__ref_wrap_common_reference_exists_with<_Rp, _Tp, 1414: _RQual<_Rp>, _TQual<_Tp>> 1414: && (!__detail::__ref_wrap_common_reference_exists_with<_Tp, _Rp, 1414: _TQual<_Tp>, _RQual<_Rp>>) 1414: struct basic_common_reference<_Rp, _Tp, _RQual, _TQual> 1414: { using type = common_reference_t>; }; 1414: 1414: template class _TQual, template class _RQual> 1414: requires __detail::__ref_wrap_common_reference_exists_with<_Rp, _Tp, 1414: _RQual<_Rp>, _TQual<_Tp>> 1414: && (!__detail::__ref_wrap_common_reference_exists_with<_Tp, _Rp, 1414: _TQual<_Tp>, _RQual<_Rp>>) 1414: struct basic_common_reference<_Tp, _Rp, _TQual, _RQual> 1414: { using type = common_reference_t>; }; 1414: 1414: 1414: 1414: } 1414: # 57 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 2 3 1414: # 77 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 78 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 2 3 1414: # 89 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: namespace ranges 1414: { 1414: # 106 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 3 1414: template requires is_object_v<_Tp> 1414: class empty_view 1414: : public view_interface> 1414: { 1414: public: 1414: static constexpr _Tp* begin() noexcept { return nullptr; } 1414: static constexpr _Tp* end() noexcept { return nullptr; } 1414: static constexpr _Tp* data() noexcept { return nullptr; } 1414: static constexpr size_t size() noexcept { return 0; } 1414: static constexpr bool empty() noexcept { return true; } 1414: }; 1414: 1414: template 1414: inline constexpr bool enable_borrowed_range> = true; 1414: 1414: namespace __detail 1414: { 1414: 1414: 1414: 1414: 1414: 1414: template 1414: concept __boxable = copy_constructible<_Tp> && is_object_v<_Tp>; 1414: 1414: 1414: template<__boxable _Tp> 1414: struct __box : std::optional<_Tp> 1414: { 1414: using std::optional<_Tp>::optional; 1414: 1414: constexpr 1414: __box() 1414: noexcept(is_nothrow_default_constructible_v<_Tp>) 1414: requires default_initializable<_Tp> 1414: : std::optional<_Tp>{std::in_place} 1414: { } 1414: 1414: __box(const __box&) = default; 1414: __box(__box&&) = default; 1414: 1414: using std::optional<_Tp>::operator=; 1414: 1414: 1414: 1414: 1414: constexpr __box& 1414: operator=(const __box& __that) 1414: noexcept(is_nothrow_copy_constructible_v<_Tp>) 1414: requires (!copyable<_Tp>) && copy_constructible<_Tp> 1414: { 1414: if (this != std::__addressof(__that)) 1414: { 1414: if ((bool)__that) 1414: this->emplace(*__that); 1414: else 1414: this->reset(); 1414: } 1414: return *this; 1414: } 1414: 1414: constexpr __box& 1414: operator=(__box&& __that) 1414: noexcept(is_nothrow_move_constructible_v<_Tp>) 1414: requires (!movable<_Tp>) 1414: { 1414: if (this != std::__addressof(__that)) 1414: { 1414: if ((bool)__that) 1414: this->emplace(std::move(*__that)); 1414: else 1414: this->reset(); 1414: } 1414: return *this; 1414: } 1414: }; 1414: 1414: template 1414: concept __boxable_copyable 1414: = copy_constructible<_Tp> 1414: && (copyable<_Tp> || (is_nothrow_move_constructible_v<_Tp> 1414: && is_nothrow_copy_constructible_v<_Tp>)); 1414: template 1414: concept __boxable_movable 1414: = (!copy_constructible<_Tp>) 1414: && (movable<_Tp> || is_nothrow_move_constructible_v<_Tp>); 1414: 1414: 1414: 1414: 1414: 1414: template<__boxable _Tp> 1414: requires __boxable_copyable<_Tp> || __boxable_movable<_Tp> 1414: struct __box<_Tp> 1414: { 1414: private: 1414: [[no_unique_address]] _Tp _M_value = _Tp(); 1414: 1414: public: 1414: __box() requires default_initializable<_Tp> = default; 1414: 1414: constexpr explicit 1414: __box(const _Tp& __t) 1414: noexcept(is_nothrow_copy_constructible_v<_Tp>) 1414: requires copy_constructible<_Tp> 1414: : _M_value(__t) 1414: { } 1414: 1414: constexpr explicit 1414: __box(_Tp&& __t) 1414: noexcept(is_nothrow_move_constructible_v<_Tp>) 1414: : _M_value(std::move(__t)) 1414: { } 1414: 1414: template 1414: requires constructible_from<_Tp, _Args...> 1414: constexpr explicit 1414: __box(in_place_t, _Args&&... __args) 1414: noexcept(is_nothrow_constructible_v<_Tp, _Args...>) 1414: : _M_value(std::forward<_Args>(__args)...) 1414: { } 1414: 1414: __box(const __box&) = default; 1414: __box(__box&&) = default; 1414: __box& operator=(const __box&) requires copyable<_Tp> = default; 1414: __box& operator=(__box&&) requires movable<_Tp> = default; 1414: 1414: 1414: 1414: constexpr __box& 1414: operator=(const __box& __that) noexcept 1414: requires (!copyable<_Tp>) && copy_constructible<_Tp> 1414: { 1414: static_assert(is_nothrow_copy_constructible_v<_Tp>); 1414: if (this != std::__addressof(__that)) 1414: { 1414: _M_value.~_Tp(); 1414: std::construct_at(std::__addressof(_M_value), *__that); 1414: } 1414: return *this; 1414: } 1414: 1414: 1414: constexpr __box& 1414: operator=(__box&& __that) noexcept 1414: requires (!movable<_Tp>) 1414: { 1414: static_assert(is_nothrow_move_constructible_v<_Tp>); 1414: if (this != std::__addressof(__that)) 1414: { 1414: _M_value.~_Tp(); 1414: std::construct_at(std::__addressof(_M_value), std::move(*__that)); 1414: } 1414: return *this; 1414: } 1414: 1414: constexpr bool 1414: has_value() const noexcept 1414: { return true; }; 1414: 1414: constexpr _Tp& 1414: operator*() & noexcept 1414: { return _M_value; } 1414: 1414: constexpr const _Tp& 1414: operator*() const & noexcept 1414: { return _M_value; } 1414: 1414: constexpr _Tp&& 1414: operator*() && noexcept 1414: { return std::move(_M_value); } 1414: 1414: constexpr const _Tp&& 1414: operator*() const && noexcept 1414: { return std::move(_M_value); } 1414: 1414: constexpr _Tp* 1414: operator->() noexcept 1414: { return std::__addressof(_M_value); } 1414: 1414: constexpr const _Tp* 1414: operator->() const noexcept 1414: { return std::__addressof(_M_value); } 1414: }; 1414: 1414: namespace __func_handle 1414: { 1414: template 1414: struct _Inplace 1414: { 1414: _Inplace() = default; 1414: 1414: constexpr explicit 1414: _Inplace(_Fn __func) noexcept 1414: : _M_fn(__func) 1414: { } 1414: 1414: template 1414: constexpr decltype(auto) 1414: _M_call_deref(const _Iters&... __iters) const 1414: noexcept(noexcept(_M_fn(*__iters...))) 1414: { return _M_fn(*__iters...); } 1414: 1414: template 1414: constexpr decltype(auto) 1414: _M_call_subscript(const _DistType __n, const _Iters&... __iters) const 1414: noexcept(noexcept(_M_fn(__iters[iter_difference_t<_Iters>(__n)]...))) 1414: { return _M_fn(__iters[iter_difference_t<_Iters>(__n)]...); } 1414: 1414: private: 1414: [[no_unique_address]] _Fn _M_fn = _Fn(); 1414: }; 1414: 1414: template 1414: struct _InplaceMemPtr 1414: { 1414: _InplaceMemPtr() = default; 1414: 1414: constexpr explicit 1414: _InplaceMemPtr(_Fn __func) noexcept 1414: : _M_ptr(__func) 1414: {} 1414: 1414: template 1414: constexpr decltype(auto) 1414: _M_call_deref(const _Iters&... __iters) const 1414: noexcept(noexcept(std::__invoke(_M_ptr, *__iters...))) 1414: { return std::__invoke(_M_ptr, *__iters...); } 1414: 1414: template 1414: constexpr decltype(auto) 1414: _M_call_subscript(const _DistType __n, const _Iters&... __iters) const 1414: noexcept(noexcept(std::__invoke(_M_ptr, __iters[iter_difference_t<_Iters>(__n)]...))) 1414: { return std::__invoke(_M_ptr, __iters[iter_difference_t<_Iters>(__n)]...); } 1414: 1414: private: 1414: _Fn _M_ptr = nullptr; 1414: }; 1414: 1414: template 1414: struct _ViaPointer 1414: { 1414: _ViaPointer() = default; 1414: 1414: constexpr explicit 1414: _ViaPointer(_Fn& __func) noexcept 1414: : _M_ptr(std::addressof(__func)) 1414: { } 1414: 1414: template 1414: requires (!is_const_v<_Un>) && is_same_v 1414: constexpr 1414: _ViaPointer(_ViaPointer<_Un> __other) noexcept 1414: : _M_ptr(__other._M_ptr) 1414: { } 1414: 1414: template 1414: constexpr decltype(auto) 1414: _M_call_deref(const _Iters&... __iters) const 1414: noexcept(noexcept((*_M_ptr)(*__iters...))) 1414: { return (*_M_ptr)(*__iters...); } 1414: 1414: template 1414: constexpr decltype(auto) 1414: _M_call_subscript(const _DistType __n, const _Iters&... __iters) const 1414: noexcept(noexcept((*_M_ptr)(__iters[iter_difference_t<_Iters>(__n)]...))) 1414: { return (*_M_ptr)(__iters[iter_difference_t<_Iters>(__n)]...); } 1414: 1414: private: 1414: _Fn* _M_ptr = nullptr; 1414: 1414: template 1414: friend struct _ViaPointer; 1414: }; 1414: 1414: template 1414: struct _StaticCall 1414: { 1414: _StaticCall() = default; 1414: 1414: constexpr explicit 1414: _StaticCall(const _Fn&) noexcept 1414: {} 1414: 1414: template 1414: static constexpr decltype(auto) 1414: _M_call_deref(const _Iters&... __iters) 1414: noexcept(noexcept(_Fn::operator()(*__iters...))) 1414: { return _Fn::operator()(*__iters...); } 1414: 1414: template 1414: static constexpr decltype(auto) 1414: _M_call_subscript(_DistType __n, const _Iters&... __iters) 1414: noexcept(noexcept(_Fn::operator()(__iters[iter_difference_t<_Iters>(__n)]...))) 1414: { return _Fn::operator()(__iters[iter_difference_t<_Iters>(__n)]...); } 1414: }; 1414: 1414: template 1414: consteval auto 1414: __select() 1414: { 1414: using _Fd = remove_cv_t<_Fn>; 1414: if constexpr (is_member_pointer_v<_Fd>) 1414: return __func_handle::_InplaceMemPtr<_Fd>(); 1414: else if constexpr (is_function_v>) 1414: return __func_handle::_Inplace<_Fd>(); 1414: else if constexpr (__is_std_op_wrapper<_Fd>) 1414: return __func_handle::_Inplace<_Fd>(); 1414: else if constexpr (requires (const _Iters&... __iters) 1414: { _Fd::operator()(*__iters...); }) 1414: return __func_handle::_StaticCall<_Fd>(); 1414: else 1414: return __func_handle::_ViaPointer<_Fn>(); 1414: }; 1414: } 1414: 1414: template 1414: using __func_handle_t = decltype(__func_handle::__select<_Fn, _Iters...>()); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: 1414: requires is_object_v<_Tp> 1414: class single_view : public view_interface> 1414: { 1414: public: 1414: single_view() requires default_initializable<_Tp> = default; 1414: 1414: constexpr explicit 1414: single_view(const _Tp& __t) 1414: noexcept(is_nothrow_copy_constructible_v<_Tp>) 1414: requires copy_constructible<_Tp> 1414: : _M_value(__t) 1414: { } 1414: 1414: constexpr explicit 1414: single_view(_Tp&& __t) 1414: noexcept(is_nothrow_move_constructible_v<_Tp>) 1414: : _M_value(std::move(__t)) 1414: { } 1414: 1414: 1414: 1414: template 1414: requires constructible_from<_Tp, _Args...> 1414: constexpr explicit 1414: single_view(in_place_t, _Args&&... __args) 1414: noexcept(is_nothrow_constructible_v<_Tp, _Args...>) 1414: : _M_value{in_place, std::forward<_Args>(__args)...} 1414: { } 1414: 1414: constexpr _Tp* 1414: begin() noexcept 1414: { return data(); } 1414: 1414: constexpr const _Tp* 1414: begin() const noexcept 1414: { return data(); } 1414: 1414: constexpr _Tp* 1414: end() noexcept 1414: { return data() + 1; } 1414: 1414: constexpr const _Tp* 1414: end() const noexcept 1414: { return data() + 1; } 1414: 1414: 1414: 1414: static constexpr bool 1414: empty() noexcept 1414: { return false; } 1414: 1414: static constexpr size_t 1414: size() noexcept 1414: { return 1; } 1414: 1414: constexpr _Tp* 1414: data() noexcept 1414: { return _M_value.operator->(); } 1414: 1414: constexpr const _Tp* 1414: data() const noexcept 1414: { return _M_value.operator->(); } 1414: 1414: private: 1414: [[no_unique_address]] __detail::__box<_Tp> _M_value; 1414: }; 1414: 1414: template 1414: single_view(_Tp) -> single_view<_Tp>; 1414: 1414: namespace __detail 1414: { 1414: template 1414: constexpr auto __to_signed_like(_Wp __w) noexcept 1414: { 1414: if constexpr (!integral<_Wp>) 1414: return iter_difference_t<_Wp>(); 1414: else if constexpr (sizeof(iter_difference_t<_Wp>) > sizeof(_Wp)) 1414: return iter_difference_t<_Wp>(__w); 1414: else if constexpr (sizeof(ptrdiff_t) > sizeof(_Wp)) 1414: return ptrdiff_t(__w); 1414: else if constexpr (sizeof(long long) > sizeof(_Wp)) 1414: return (long long)(__w); 1414: 1414: 1414: 1414: 1414: else 1414: return __max_diff_type(__w); 1414: } 1414: 1414: template 1414: using __iota_diff_t = decltype(__to_signed_like(std::declval<_Wp>())); 1414: 1414: template 1414: concept __decrementable = incrementable<_It> 1414: && requires(_It __i) 1414: { 1414: { --__i } -> same_as<_It&>; 1414: { __i-- } -> same_as<_It>; 1414: }; 1414: 1414: template 1414: concept __advanceable = __decrementable<_It> && totally_ordered<_It> 1414: && requires( _It __i, const _It __j, const __iota_diff_t<_It> __n) 1414: { 1414: { __i += __n } -> same_as<_It&>; 1414: { __i -= __n } -> same_as<_It&>; 1414: _It(__j + __n); 1414: _It(__n + __j); 1414: _It(__j - __n); 1414: { __j - __j } -> convertible_to<__iota_diff_t<_It>>; 1414: }; 1414: 1414: template 1414: struct __iota_view_iter_cat 1414: { }; 1414: 1414: template 1414: struct __iota_view_iter_cat<_Winc> 1414: { using iterator_category = input_iterator_tag; }; 1414: } 1414: 1414: template 1414: requires std::__detail::__weakly_eq_cmp_with<_Winc, _Bound> 1414: && copyable<_Winc> 1414: class iota_view : public view_interface> 1414: { 1414: private: 1414: struct _Sentinel; 1414: 1414: struct _Iterator : __detail::__iota_view_iter_cat<_Winc> 1414: { 1414: private: 1414: static auto 1414: _S_iter_concept() 1414: { 1414: using namespace __detail; 1414: if constexpr (__advanceable<_Winc>) 1414: return random_access_iterator_tag{}; 1414: else if constexpr (__decrementable<_Winc>) 1414: return bidirectional_iterator_tag{}; 1414: else if constexpr (incrementable<_Winc>) 1414: return forward_iterator_tag{}; 1414: else 1414: return input_iterator_tag{}; 1414: } 1414: 1414: public: 1414: using iterator_concept = decltype(_S_iter_concept()); 1414: 1414: using value_type = _Winc; 1414: using difference_type = __detail::__iota_diff_t<_Winc>; 1414: 1414: _Iterator() requires default_initializable<_Winc> = default; 1414: 1414: constexpr explicit 1414: _Iterator(_Winc __value) 1414: : _M_value(__value) { } 1414: 1414: constexpr _Winc 1414: operator*() const noexcept(is_nothrow_copy_constructible_v<_Winc>) 1414: { return _M_value; } 1414: 1414: constexpr _Iterator& 1414: operator++() 1414: { 1414: ++_M_value; 1414: return *this; 1414: } 1414: 1414: constexpr void 1414: operator++(int) 1414: { ++*this; } 1414: 1414: constexpr _Iterator 1414: operator++(int) requires incrementable<_Winc> 1414: { 1414: auto __tmp = *this; 1414: ++*this; 1414: return __tmp; 1414: } 1414: 1414: constexpr _Iterator& 1414: operator--() requires __detail::__decrementable<_Winc> 1414: { 1414: --_M_value; 1414: return *this; 1414: } 1414: 1414: constexpr _Iterator 1414: operator--(int) requires __detail::__decrementable<_Winc> 1414: { 1414: auto __tmp = *this; 1414: --*this; 1414: return __tmp; 1414: } 1414: 1414: constexpr _Iterator& 1414: operator+=(difference_type __n) requires __detail::__advanceable<_Winc> 1414: { 1414: using __detail::__is_integer_like; 1414: using __detail::__is_signed_integer_like; 1414: if constexpr (__is_integer_like<_Winc> 1414: && !__is_signed_integer_like<_Winc>) 1414: { 1414: if (__n >= difference_type(0)) 1414: _M_value += static_cast<_Winc>(__n); 1414: else 1414: _M_value -= static_cast<_Winc>(-__n); 1414: } 1414: else 1414: _M_value += __n; 1414: return *this; 1414: } 1414: 1414: constexpr _Iterator& 1414: operator-=(difference_type __n) requires __detail::__advanceable<_Winc> 1414: { 1414: using __detail::__is_integer_like; 1414: using __detail::__is_signed_integer_like; 1414: if constexpr (__is_integer_like<_Winc> 1414: && !__is_signed_integer_like<_Winc>) 1414: { 1414: if (__n >= difference_type(0)) 1414: _M_value -= static_cast<_Winc>(__n); 1414: else 1414: _M_value += static_cast<_Winc>(-__n); 1414: } 1414: else 1414: _M_value -= __n; 1414: return *this; 1414: } 1414: 1414: constexpr _Winc 1414: operator[](difference_type __n) const 1414: requires __detail::__advanceable<_Winc> 1414: { return _Winc(_M_value + __n); } 1414: 1414: friend constexpr bool 1414: operator==(const _Iterator& __x, const _Iterator& __y) 1414: requires equality_comparable<_Winc> 1414: { return __x._M_value == __y._M_value; } 1414: 1414: friend constexpr bool 1414: operator<(const _Iterator& __x, const _Iterator& __y) 1414: requires totally_ordered<_Winc> 1414: { return __x._M_value < __y._M_value; } 1414: 1414: friend constexpr bool 1414: operator>(const _Iterator& __x, const _Iterator& __y) 1414: requires totally_ordered<_Winc> 1414: { return __y < __x; } 1414: 1414: friend constexpr bool 1414: operator<=(const _Iterator& __x, const _Iterator& __y) 1414: requires totally_ordered<_Winc> 1414: { return !(__y < __x); } 1414: 1414: friend constexpr bool 1414: operator>=(const _Iterator& __x, const _Iterator& __y) 1414: requires totally_ordered<_Winc> 1414: { return !(__x < __y); } 1414: 1414: 1414: friend constexpr auto 1414: operator<=>(const _Iterator& __x, const _Iterator& __y) 1414: requires totally_ordered<_Winc> && three_way_comparable<_Winc> 1414: { return __x._M_value <=> __y._M_value; } 1414: 1414: 1414: friend constexpr _Iterator 1414: operator+(_Iterator __i, difference_type __n) 1414: requires __detail::__advanceable<_Winc> 1414: { 1414: __i += __n; 1414: return __i; 1414: } 1414: 1414: friend constexpr _Iterator 1414: operator+(difference_type __n, _Iterator __i) 1414: requires __detail::__advanceable<_Winc> 1414: { return __i += __n; } 1414: 1414: friend constexpr _Iterator 1414: operator-(_Iterator __i, difference_type __n) 1414: requires __detail::__advanceable<_Winc> 1414: { 1414: __i -= __n; 1414: return __i; 1414: } 1414: 1414: friend constexpr difference_type 1414: operator-(const _Iterator& __x, const _Iterator& __y) 1414: requires __detail::__advanceable<_Winc> 1414: { 1414: using __detail::__is_integer_like; 1414: using __detail::__is_signed_integer_like; 1414: using _Dt = difference_type; 1414: if constexpr (__is_integer_like<_Winc>) 1414: { 1414: if constexpr (__is_signed_integer_like<_Winc>) 1414: return _Dt(_Dt(__x._M_value) - _Dt(__y._M_value)); 1414: else 1414: return (__y._M_value > __x._M_value) 1414: ? _Dt(-_Dt(__y._M_value - __x._M_value)) 1414: : _Dt(__x._M_value - __y._M_value); 1414: } 1414: else 1414: return __x._M_value - __y._M_value; 1414: } 1414: 1414: private: 1414: _Winc _M_value = _Winc(); 1414: 1414: friend iota_view; 1414: friend _Sentinel; 1414: }; 1414: 1414: struct _Sentinel 1414: { 1414: private: 1414: _Bound _M_bound = _Bound(); 1414: 1414: public: 1414: _Sentinel() = default; 1414: 1414: constexpr explicit 1414: _Sentinel(_Bound __bound) 1414: : _M_bound(__bound) { } 1414: 1414: friend constexpr bool 1414: operator==(const _Iterator& __x, const _Sentinel& __y) 1414: { return __x._M_value == __y._M_bound; } 1414: 1414: friend constexpr iter_difference_t<_Winc> 1414: operator-(const _Iterator& __x, const _Sentinel& __y) 1414: requires sized_sentinel_for<_Bound, _Winc> 1414: { return -(__y._M_bound - __x._M_value); } 1414: 1414: friend constexpr iter_difference_t<_Winc> 1414: operator-(const _Sentinel& __x, const _Iterator& __y) 1414: requires sized_sentinel_for<_Bound, _Winc> 1414: { return __x._M_bound - __y._M_value; } 1414: 1414: friend iota_view; 1414: }; 1414: 1414: _Winc _M_value = _Winc(); 1414: [[no_unique_address]] _Bound _M_bound = _Bound(); 1414: 1414: public: 1414: iota_view() requires default_initializable<_Winc> = default; 1414: 1414: constexpr explicit 1414: iota_view(_Winc __value) 1414: : _M_value(__value) 1414: { } 1414: 1414: constexpr explicit 1414: iota_view(type_identity_t<_Winc> __value, 1414: type_identity_t<_Bound> __bound) 1414: : _M_value(__value), _M_bound(__bound) 1414: { 1414: if constexpr (totally_ordered_with<_Winc, _Bound>) 1414: do { if (std::__is_constant_evaluated() && !bool(bool(__value <= __bound))) std::__glibcxx_assert_fail(); } while (false); 1414: } 1414: 1414: constexpr explicit 1414: iota_view(_Iterator __first, _Iterator __last) 1414: requires same_as<_Winc, _Bound> 1414: : iota_view(__first._M_value, __last._M_value) 1414: { } 1414: 1414: constexpr explicit 1414: iota_view(_Iterator __first, unreachable_sentinel_t __last) 1414: requires same_as<_Bound, unreachable_sentinel_t> 1414: : iota_view(__first._M_value, __last) 1414: { } 1414: 1414: constexpr explicit 1414: iota_view(_Iterator __first, _Sentinel __last) 1414: requires (!same_as<_Winc, _Bound>) && (!same_as<_Bound, unreachable_sentinel_t>) 1414: : iota_view(__first._M_value, __last._M_bound) 1414: { } 1414: 1414: constexpr _Iterator 1414: begin() const { return _Iterator{_M_value}; } 1414: 1414: constexpr auto 1414: end() const 1414: { 1414: if constexpr (same_as<_Bound, unreachable_sentinel_t>) 1414: return unreachable_sentinel; 1414: else 1414: return _Sentinel{_M_bound}; 1414: } 1414: 1414: constexpr _Iterator 1414: end() const requires same_as<_Winc, _Bound> 1414: { return _Iterator{_M_bound}; } 1414: 1414: 1414: 1414: constexpr bool 1414: empty() const 1414: { return _M_value == _M_bound; } 1414: 1414: constexpr auto 1414: size() const 1414: requires (same_as<_Winc, _Bound> && __detail::__advanceable<_Winc>) 1414: || (integral<_Winc> && integral<_Bound>) 1414: || sized_sentinel_for<_Bound, _Winc> 1414: { 1414: using __detail::__is_integer_like; 1414: using __detail::__to_unsigned_like; 1414: if constexpr (integral<_Winc> && integral<_Bound>) 1414: { 1414: using _Up = make_unsigned_t; 1414: return _Up(_M_bound) - _Up(_M_value); 1414: } 1414: else if constexpr (__is_integer_like<_Winc>) 1414: return __to_unsigned_like(_M_bound) - __to_unsigned_like(_M_value); 1414: else 1414: return __to_unsigned_like(_M_bound - _M_value); 1414: } 1414: }; 1414: 1414: template 1414: requires (!__detail::__is_integer_like<_Winc> 1414: || !__detail::__is_integer_like<_Bound> 1414: || (__detail::__is_signed_integer_like<_Winc> 1414: == __detail::__is_signed_integer_like<_Bound>)) 1414: iota_view(_Winc, _Bound) -> iota_view<_Winc, _Bound>; 1414: 1414: template 1414: inline constexpr bool 1414: enable_borrowed_range> = true; 1414: 1414: namespace views 1414: { 1414: template 1414: inline constexpr empty_view<_Tp> empty{}; 1414: 1414: namespace __detail 1414: { 1414: template 1414: concept __can_single_view 1414: = requires { single_view>(std::declval<_Tp>()); }; 1414: } 1414: 1414: struct _Single 1414: { 1414: template<__detail::__can_single_view _Tp> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Tp&& __e) const 1414: noexcept(noexcept(single_view>(std::forward<_Tp>(__e)))) 1414: { return single_view>(std::forward<_Tp>(__e)); } 1414: }; 1414: 1414: inline constexpr _Single single{}; 1414: 1414: namespace __detail 1414: { 1414: template 1414: concept __can_iota_view = requires { iota_view(std::declval<_Args>()...); }; 1414: } 1414: 1414: struct _Iota 1414: { 1414: template<__detail::__can_iota_view _Tp> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Tp&& __e) const 1414: { return iota_view(std::forward<_Tp>(__e)); } 1414: 1414: template 1414: requires __detail::__can_iota_view<_Tp, _Up> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Tp&& __e, _Up&& __f) const 1414: { return iota_view(std::forward<_Tp>(__e), std::forward<_Up>(__f)); } 1414: }; 1414: 1414: inline constexpr _Iota iota{}; 1414: # 929 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 3 1414: } 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: concept __stream_extractable 1414: = requires(basic_istream<_CharT, _Traits>& is, _Val& t) { is >> t; }; 1414: } 1414: 1414: template> 1414: requires default_initializable<_Val> 1414: && __detail::__stream_extractable<_Val, _CharT, _Traits> 1414: class basic_istream_view 1414: : public view_interface> 1414: { 1414: public: 1414: constexpr explicit 1414: basic_istream_view(basic_istream<_CharT, _Traits>& __stream) 1414: : _M_stream(std::__addressof(__stream)) 1414: { } 1414: 1414: constexpr auto 1414: begin() 1414: { 1414: *_M_stream >> _M_object; 1414: return _Iterator{this}; 1414: } 1414: 1414: constexpr default_sentinel_t 1414: end() const noexcept 1414: { return default_sentinel; } 1414: 1414: private: 1414: basic_istream<_CharT, _Traits>* _M_stream; 1414: _Val _M_object = _Val(); 1414: 1414: struct _Iterator 1414: { 1414: public: 1414: using iterator_concept = input_iterator_tag; 1414: using difference_type = ptrdiff_t; 1414: using value_type = _Val; 1414: 1414: constexpr explicit 1414: _Iterator(basic_istream_view* __parent) noexcept 1414: : _M_parent(__parent) 1414: { } 1414: 1414: _Iterator(const _Iterator&) = delete; 1414: _Iterator(_Iterator&&) = default; 1414: _Iterator& operator=(const _Iterator&) = delete; 1414: _Iterator& operator=(_Iterator&&) = default; 1414: 1414: _Iterator& 1414: operator++() 1414: { 1414: *_M_parent->_M_stream >> _M_parent->_M_object; 1414: return *this; 1414: } 1414: 1414: void 1414: operator++(int) 1414: { ++*this; } 1414: 1414: _Val& 1414: operator*() const 1414: { return _M_parent->_M_object; } 1414: 1414: friend bool 1414: operator==(const _Iterator& __x, default_sentinel_t) 1414: { return !*__x._M_parent->_M_stream; } 1414: 1414: private: 1414: basic_istream_view* _M_parent; 1414: }; 1414: 1414: friend _Iterator; 1414: }; 1414: 1414: template 1414: using istream_view = basic_istream_view<_Val, char>; 1414: 1414: template 1414: using wistream_view = basic_istream_view<_Val, wchar_t>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: concept __can_istream_view = requires (_Up __e) { 1414: basic_istream_view<_Tp, typename _Up::char_type, typename _Up::traits_type>(__e); 1414: }; 1414: } 1414: 1414: template 1414: struct _Istream 1414: { 1414: template 1414: constexpr auto 1414: operator() [[nodiscard]] (basic_istream<_CharT, _Traits>& __e) const 1414: requires __detail::__can_istream_view<_Tp, remove_reference_t> 1414: { return basic_istream_view<_Tp, _CharT, _Traits>(__e); } 1414: }; 1414: 1414: template 1414: inline constexpr _Istream<_Tp> istream; 1414: } 1414: 1414: 1414: 1414: 1414: namespace __detail 1414: { 1414: template 1414: struct _Absent { }; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: using __maybe_present_t = __conditional_t<_Present, _Tp, _Absent<_Tp, _Disc>>; 1414: 1414: 1414: template 1414: using __maybe_const_t = __conditional_t<_Const, const _Tp, _Tp>; 1414: 1414: } 1414: 1414: 1414: using __detail::__maybe_const_t; 1414: 1414: namespace views::__adaptor 1414: { 1414: 1414: template 1414: concept __adaptor_invocable 1414: = requires { std::declval<_Adaptor>()(declval<_Args>()...); }; 1414: 1414: 1414: 1414: template 1414: concept __adaptor_partial_app_viable = (_Adaptor::_S_arity > 1) 1414: && (sizeof...(_Args) == _Adaptor::_S_arity - 1) 1414: && (constructible_from, _Args> && ...); 1414: 1414: template 1414: struct _Partial; 1414: 1414: template 1414: struct _Pipe; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct _RangeAdaptorClosure; 1414: 1414: template 1414: requires (!same_as<_Tp, _RangeAdaptorClosure<_Up>>) 1414: void __is_range_adaptor_closure_fn 1414: (const _Tp&, const _RangeAdaptorClosure<_Up>&); 1414: 1414: template 1414: concept __is_range_adaptor_closure 1414: = requires (_Tp __t) { __adaptor::__is_range_adaptor_closure_fn(__t, __t); }; 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdangling-reference" 1414: 1414: template 1414: requires __is_range_adaptor_closure<_Self> 1414: && __adaptor_invocable<_Self, _Range> 1414: constexpr auto 1414: operator|(_Range&& __r, _Self&& __self) 1414: { return std::forward<_Self>(__self)(std::forward<_Range>(__r)); } 1414: 1414: 1414: 1414: template 1414: requires __is_range_adaptor_closure<_Lhs> 1414: && __is_range_adaptor_closure<_Rhs> 1414: constexpr auto 1414: operator|(_Lhs&& __lhs, _Rhs&& __rhs) 1414: { 1414: return _Pipe, decay_t<_Rhs>>{std::forward<_Lhs>(__lhs), 1414: std::forward<_Rhs>(__rhs)}; 1414: } 1414: #pragma GCC diagnostic pop 1414: 1414: template 1414: struct _RangeAdaptorClosure 1414: { 1414: 1414: 1414: 1414: 1414: template 1414: requires __is_range_adaptor_closure<_Self> 1414: && __adaptor_invocable<_Self, _Range> 1414: friend constexpr auto 1414: operator|(_Range&& __r, _Self&& __self); 1414: 1414: template 1414: requires __is_range_adaptor_closure<_Lhs> 1414: && __is_range_adaptor_closure<_Rhs> 1414: friend constexpr auto 1414: operator|(_Lhs&& __lhs, _Rhs&& __rhs); 1414: }; 1414: # 1157 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 3 1414: template 1414: struct _RangeAdaptor 1414: { 1414: 1414: 1414: template 1414: requires __adaptor_partial_app_viable<_Derived, _Args...> 1414: constexpr auto 1414: operator()(_Args&&... __args) const 1414: { 1414: return _Partial<_Derived, decay_t<_Args>...>{0, std::forward<_Args>(__args)...}; 1414: } 1414: }; 1414: 1414: 1414: 1414: 1414: template 1414: concept __closure_has_simple_call_op = _Adaptor::_S_has_simple_call_op; 1414: 1414: 1414: 1414: template 1414: concept __adaptor_has_simple_extra_args = _Adaptor::_S_has_simple_extra_args 1414: || _Adaptor::template _S_has_simple_extra_args<_Args...>; 1414: 1414: 1414: 1414: template 1414: struct _Partial : _RangeAdaptorClosure<_Partial<_Adaptor, _Args...>> 1414: { 1414: using _Binder = _Bind_back_t<_Adaptor, _Args...>; 1414: [[no_unique_address]] _Binder _M_binder; 1414: 1414: 1414: 1414: template 1414: constexpr 1414: _Partial(int, _Ts&&... __args) 1414: : _M_binder(0, _Adaptor(), std::forward<_Ts>(__args)...) 1414: { } 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++23-extensions" 1414: template 1414: requires __adaptor_invocable<_Adaptor, _Range, __like_t<_Self, _Args>...> 1414: constexpr auto 1414: operator()(this _Self&& __self, _Range&& __r) 1414: { 1414: return _Binder::_S_call(__like_t<_Self, _Partial>(__self)._M_binder, 1414: std::forward<_Range>(__r)); 1414: } 1414: #pragma GCC diagnostic pop 1414: # 1230 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 3 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: requires __adaptor_has_simple_extra_args<_Adaptor, _Args...> 1414: && (is_trivially_copy_constructible_v<_Args> && ...) 1414: struct _Partial<_Adaptor, _Args...> : _RangeAdaptorClosure<_Partial<_Adaptor, _Args...>> 1414: { 1414: using _Binder = _Bind_back_t<_Adaptor, _Args...>; 1414: [[no_unique_address]] _Binder _M_binder; 1414: 1414: template 1414: constexpr 1414: _Partial(int, _Ts&&... __args) 1414: : _M_binder(0, _Adaptor(), std::forward<_Ts>(__args)...) 1414: { } 1414: 1414: 1414: 1414: template 1414: requires __adaptor_invocable<_Adaptor, _Range, const _Args&...> 1414: constexpr auto 1414: operator()(_Range&& __r) const 1414: { return _Binder::_S_call(_M_binder, std::forward<_Range>(__r)); } 1414: 1414: static constexpr bool _S_has_simple_call_op = true; 1414: }; 1414: 1414: template 1414: concept __pipe_invocable 1414: = requires { std::declval<_Rhs>()(std::declval<_Lhs>()(std::declval<_Range>())); }; 1414: 1414: 1414: 1414: template 1414: struct _Pipe : _RangeAdaptorClosure<_Pipe<_Lhs, _Rhs>> 1414: { 1414: [[no_unique_address]] _Lhs _M_lhs; 1414: [[no_unique_address]] _Rhs _M_rhs; 1414: 1414: template 1414: constexpr 1414: _Pipe(_Tp&& __lhs, _Up&& __rhs) 1414: : _M_lhs(std::forward<_Tp>(__lhs)), _M_rhs(std::forward<_Up>(__rhs)) 1414: { } 1414: 1414: 1414: 1414: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++23-extensions" 1414: template 1414: requires __pipe_invocable<__like_t<_Self, _Lhs>, __like_t<_Self, _Rhs>, _Range> 1414: constexpr auto 1414: operator()(this _Self&& __self, _Range&& __r) 1414: { 1414: return (__like_t<_Self, _Pipe>(__self)._M_rhs 1414: (__like_t<_Self, _Pipe>(__self)._M_lhs 1414: (std::forward<_Range>(__r)))); 1414: } 1414: #pragma GCC diagnostic pop 1414: # 1311 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 3 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: requires __closure_has_simple_call_op<_Lhs> 1414: && __closure_has_simple_call_op<_Rhs> 1414: struct _Pipe<_Lhs, _Rhs> : _RangeAdaptorClosure<_Pipe<_Lhs, _Rhs>> 1414: { 1414: [[no_unique_address]] _Lhs _M_lhs; 1414: [[no_unique_address]] _Rhs _M_rhs; 1414: 1414: template 1414: constexpr 1414: _Pipe(_Tp&& __lhs, _Up&& __rhs) 1414: : _M_lhs(std::forward<_Tp>(__lhs)), _M_rhs(std::forward<_Up>(__rhs)) 1414: { } 1414: 1414: template 1414: requires __pipe_invocable 1414: constexpr auto 1414: operator()(_Range&& __r) const 1414: { return _M_rhs(_M_lhs(std::forward<_Range>(__r))); } 1414: 1414: static constexpr bool _S_has_simple_call_op = true; 1414: }; 1414: } 1414: # 1350 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 3 1414: template requires is_object_v<_Range> 1414: class ref_view : public view_interface> 1414: { 1414: private: 1414: _Range* _M_r; 1414: 1414: static void _S_fun(_Range&); 1414: static void _S_fun(_Range&&) = delete; 1414: 1414: public: 1414: template<__detail::__different_from _Tp> 1414: requires convertible_to<_Tp, _Range&> 1414: && requires { _S_fun(declval<_Tp>()); } 1414: constexpr 1414: ref_view(_Tp&& __t) 1414: noexcept(noexcept(static_cast<_Range&>(std::declval<_Tp>()))) 1414: : _M_r(std::__addressof(static_cast<_Range&>(std::forward<_Tp>(__t)))) 1414: { } 1414: 1414: constexpr _Range& 1414: base() const 1414: { return *_M_r; } 1414: 1414: constexpr iterator_t<_Range> 1414: begin() const 1414: { return ranges::begin(*_M_r); } 1414: 1414: constexpr sentinel_t<_Range> 1414: end() const 1414: { return ranges::end(*_M_r); } 1414: 1414: constexpr bool 1414: empty() const requires requires { ranges::empty(*_M_r); } 1414: { return ranges::empty(*_M_r); } 1414: 1414: constexpr auto 1414: size() const requires sized_range<_Range> 1414: { return ranges::size(*_M_r); } 1414: 1414: constexpr auto 1414: data() const requires contiguous_range<_Range> 1414: { return ranges::data(*_M_r); } 1414: }; 1414: 1414: template 1414: ref_view(_Range&) -> ref_view<_Range>; 1414: 1414: template 1414: inline constexpr bool enable_borrowed_range> = true; 1414: 1414: template 1414: requires movable<_Range> 1414: && (!__detail::__is_initializer_list>) 1414: class owning_view : public view_interface> 1414: { 1414: private: 1414: _Range _M_r = _Range(); 1414: 1414: public: 1414: owning_view() requires default_initializable<_Range> = default; 1414: 1414: constexpr 1414: owning_view(_Range&& __t) 1414: noexcept(is_nothrow_move_constructible_v<_Range>) 1414: : _M_r(std::move(__t)) 1414: { } 1414: 1414: owning_view(owning_view&&) = default; 1414: owning_view& operator=(owning_view&&) = default; 1414: 1414: constexpr _Range& 1414: base() & noexcept 1414: { return _M_r; } 1414: 1414: constexpr const _Range& 1414: base() const& noexcept 1414: { return _M_r; } 1414: 1414: constexpr _Range&& 1414: base() && noexcept 1414: { return std::move(_M_r); } 1414: 1414: constexpr const _Range&& 1414: base() const&& noexcept 1414: { return std::move(_M_r); } 1414: 1414: constexpr iterator_t<_Range> 1414: begin() 1414: { return ranges::begin(_M_r); } 1414: 1414: constexpr sentinel_t<_Range> 1414: end() 1414: { return ranges::end(_M_r); } 1414: 1414: constexpr auto 1414: begin() const requires range 1414: { return ranges::begin(_M_r); } 1414: 1414: constexpr auto 1414: end() const requires range 1414: { return ranges::end(_M_r); } 1414: 1414: constexpr bool 1414: empty() requires requires { ranges::empty(_M_r); } 1414: { return ranges::empty(_M_r); } 1414: 1414: constexpr bool 1414: empty() const requires requires { ranges::empty(_M_r); } 1414: { return ranges::empty(_M_r); } 1414: 1414: constexpr auto 1414: size() requires sized_range<_Range> 1414: { return ranges::size(_M_r); } 1414: 1414: constexpr auto 1414: size() const requires sized_range 1414: { return ranges::size(_M_r); } 1414: 1414: constexpr auto 1414: data() requires contiguous_range<_Range> 1414: { return ranges::data(_M_r); } 1414: 1414: constexpr auto 1414: data() const requires contiguous_range 1414: { return ranges::data(_M_r); } 1414: }; 1414: 1414: template 1414: inline constexpr bool enable_borrowed_range> 1414: = enable_borrowed_range<_Tp>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: concept __can_ref_view = requires { ref_view{std::declval<_Range>()}; }; 1414: 1414: template 1414: concept __can_owning_view = requires { owning_view{std::declval<_Range>()}; }; 1414: } 1414: 1414: struct _All : __adaptor::_RangeAdaptorClosure<_All> 1414: { 1414: template 1414: static constexpr bool 1414: _S_noexcept() 1414: { 1414: if constexpr (view>) 1414: return is_nothrow_constructible_v, _Range>; 1414: else if constexpr (__detail::__can_ref_view<_Range>) 1414: return true; 1414: else 1414: return noexcept(owning_view{std::declval<_Range>()}); 1414: } 1414: 1414: template 1414: requires view> 1414: || __detail::__can_ref_view<_Range> 1414: || __detail::__can_owning_view<_Range> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r) const 1414: noexcept(_S_noexcept<_Range>()) 1414: { 1414: if constexpr (view>) 1414: return std::forward<_Range>(__r); 1414: else if constexpr (__detail::__can_ref_view<_Range>) 1414: return ref_view{std::forward<_Range>(__r)}; 1414: else 1414: return owning_view{std::forward<_Range>(__r)}; 1414: } 1414: 1414: static constexpr bool _S_has_simple_call_op = true; 1414: }; 1414: 1414: inline constexpr _All all; 1414: 1414: template 1414: using all_t = decltype(all(std::declval<_Range>())); 1414: } 1414: 1414: namespace __detail 1414: { 1414: template 1414: struct __non_propagating_cache 1414: { 1414: 1414: 1414: 1414: 1414: }; 1414: 1414: template 1414: requires is_object_v<_Tp> 1414: struct __non_propagating_cache<_Tp> 1414: : protected _Optional_base<_Tp> 1414: { 1414: __non_propagating_cache() = default; 1414: 1414: constexpr 1414: __non_propagating_cache(const __non_propagating_cache&) noexcept 1414: { } 1414: 1414: constexpr 1414: __non_propagating_cache(__non_propagating_cache&& __other) noexcept 1414: { __other._M_reset(); } 1414: 1414: constexpr __non_propagating_cache& 1414: operator=(const __non_propagating_cache& __other) noexcept 1414: { 1414: if (std::__addressof(__other) != this) 1414: this->_M_reset(); 1414: return *this; 1414: } 1414: 1414: constexpr __non_propagating_cache& 1414: operator=(__non_propagating_cache&& __other) noexcept 1414: { 1414: this->_M_reset(); 1414: __other._M_reset(); 1414: return *this; 1414: } 1414: 1414: constexpr __non_propagating_cache& 1414: operator=(_Tp __val) 1414: { 1414: this->_M_reset(); 1414: this->_M_payload._M_construct(std::move(__val)); 1414: return *this; 1414: } 1414: 1414: constexpr explicit 1414: operator bool() const noexcept 1414: { return this->_M_is_engaged(); } 1414: 1414: constexpr _Tp& 1414: operator*() noexcept 1414: { return this->_M_get(); } 1414: 1414: constexpr const _Tp& 1414: operator*() const noexcept 1414: { return this->_M_get(); } 1414: 1414: template 1414: constexpr _Tp& 1414: _M_emplace_deref(const _Iter& __i) 1414: { 1414: this->_M_reset(); 1414: auto __f = [] (auto& __x) { return *__x; }; 1414: this->_M_payload._M_apply(_Optional_func{__f}, __i); 1414: return this->_M_get(); 1414: } 1414: 1414: using _Optional_base<_Tp>::_M_reset; 1414: }; 1414: 1414: template 1414: struct _CachedPosition 1414: { 1414: constexpr bool 1414: _M_has_value() const 1414: { return false; } 1414: 1414: constexpr iterator_t<_Range> 1414: _M_get(const _Range&) const 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(false)) std::__glibcxx_assert_fail(); } while (false); 1414: __builtin_unreachable(); 1414: } 1414: 1414: constexpr void 1414: _M_set(const _Range&, const iterator_t<_Range>&) const 1414: { } 1414: }; 1414: 1414: template 1414: struct _CachedPosition<_Range> 1414: : protected __non_propagating_cache> 1414: { 1414: constexpr bool 1414: _M_has_value() const 1414: { return this->_M_is_engaged(); } 1414: 1414: constexpr iterator_t<_Range> 1414: _M_get(const _Range&) const 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: return **this; 1414: } 1414: 1414: constexpr void 1414: _M_set(const _Range&, const iterator_t<_Range>& __it) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!_M_has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: std::construct_at(std::__addressof(this->_M_payload._M_payload), 1414: in_place, __it); 1414: this->_M_payload._M_engaged = true; 1414: } 1414: }; 1414: 1414: template 1414: struct _CachedPosition<_Range> 1414: { 1414: private: 1414: range_difference_t<_Range> _M_offset = -1; 1414: 1414: public: 1414: _CachedPosition() = default; 1414: 1414: constexpr 1414: _CachedPosition(const _CachedPosition&) = default; 1414: 1414: constexpr 1414: _CachedPosition(_CachedPosition&& __other) noexcept 1414: { *this = std::move(__other); } 1414: 1414: constexpr _CachedPosition& 1414: operator=(const _CachedPosition&) = default; 1414: 1414: constexpr _CachedPosition& 1414: operator=(_CachedPosition&& __other) noexcept 1414: { 1414: 1414: _M_offset = __other._M_offset; 1414: __other._M_offset = -1; 1414: return *this; 1414: } 1414: 1414: constexpr bool 1414: _M_has_value() const 1414: { return _M_offset >= 0; } 1414: 1414: constexpr iterator_t<_Range> 1414: _M_get(_Range& __r) const 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: return ranges::begin(__r) + _M_offset; 1414: } 1414: 1414: constexpr void 1414: _M_set(_Range& __r, const iterator_t<_Range>& __it) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!_M_has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: _M_offset = __it - ranges::begin(__r); 1414: } 1414: }; 1414: } 1414: 1414: namespace __detail 1414: { 1414: template 1414: struct __filter_view_iter_cat 1414: { }; 1414: 1414: template 1414: struct __filter_view_iter_cat<_Base> 1414: { 1414: private: 1414: static auto 1414: _S_iter_cat() 1414: { 1414: using _Cat = typename iterator_traits>::iterator_category; 1414: if constexpr (derived_from<_Cat, bidirectional_iterator_tag>) 1414: return bidirectional_iterator_tag{}; 1414: else if constexpr (derived_from<_Cat, forward_iterator_tag>) 1414: return forward_iterator_tag{}; 1414: else 1414: return _Cat{}; 1414: } 1414: public: 1414: using iterator_category = decltype(_S_iter_cat()); 1414: }; 1414: } 1414: 1414: template> _Pred> 1414: requires view<_Vp> && is_object_v<_Pred> 1414: class filter_view : public view_interface> 1414: { 1414: private: 1414: template 1414: struct _Sentinel; 1414: 1414: template 1414: struct _Iterator : __detail::__filter_view_iter_cat<_Vp> 1414: { 1414: private: 1414: static constexpr auto 1414: _S_iter_concept() 1414: { 1414: if constexpr (_Const) 1414: return input_iterator_tag{}; 1414: else if constexpr (bidirectional_range<_Vp>) 1414: return bidirectional_iterator_tag{}; 1414: else if constexpr (forward_range<_Vp>) 1414: return forward_iterator_tag{}; 1414: else 1414: return input_iterator_tag{}; 1414: } 1414: 1414: friend filter_view; 1414: friend _Iterator; 1414: 1414: using _Parent = __maybe_const_t<_Const, filter_view>; 1414: using _Base = __maybe_const_t<_Const, _Vp>; 1414: using _Base_iter = iterator_t<_Base>; 1414: 1414: _Base_iter _M_current = _Base_iter(); 1414: _Parent* _M_parent = nullptr; 1414: 1414: public: 1414: using iterator_concept = decltype(_S_iter_concept()); 1414: 1414: using value_type = range_value_t<_Base>; 1414: using difference_type = range_difference_t<_Base>; 1414: 1414: _Iterator() requires default_initializable<_Base_iter> = default; 1414: 1414: constexpr 1414: _Iterator(_Parent* __parent, _Base_iter __current) 1414: : _M_current(std::move(__current)), 1414: _M_parent(__parent) 1414: { } 1414: 1414: constexpr 1414: _Iterator(_Iterator __i) 1414: requires _Const && convertible_to, iterator_t<_Base>> 1414: : _M_current(std::move(__i._M_current)), 1414: _M_parent(std::move(__i._M_parent)) 1414: { } 1414: 1414: constexpr const _Base_iter& 1414: base() const & noexcept 1414: { return _M_current; } 1414: 1414: constexpr _Base_iter 1414: base() && 1414: { return std::move(_M_current); } 1414: 1414: constexpr range_reference_t<_Base> 1414: operator*() const 1414: { return *_M_current; } 1414: 1414: constexpr _Base_iter 1414: operator->() const 1414: requires __detail::__has_arrow<_Base_iter> 1414: && copyable<_Base_iter> 1414: { return _M_current; } 1414: 1414: constexpr _Iterator& 1414: operator++() 1414: { 1414: _M_current = ranges::find_if(std::move(++_M_current), 1414: ranges::end(_M_parent->_M_base), 1414: std::ref(*_M_parent->_M_pred)); 1414: return *this; 1414: } 1414: 1414: constexpr void 1414: operator++(int) 1414: { ++*this; } 1414: 1414: constexpr _Iterator 1414: operator++(int) requires forward_range<_Base> 1414: { 1414: auto __tmp = *this; 1414: ++*this; 1414: return __tmp; 1414: } 1414: 1414: constexpr _Iterator& 1414: operator--() requires bidirectional_range<_Base> 1414: { 1414: do 1414: --_M_current; 1414: while (!std::__invoke(*_M_parent->_M_pred, *_M_current)); 1414: return *this; 1414: } 1414: 1414: constexpr _Iterator 1414: operator--(int) requires bidirectional_range<_Base> 1414: { 1414: auto __tmp = *this; 1414: --*this; 1414: return __tmp; 1414: } 1414: 1414: friend constexpr bool 1414: operator==(const _Iterator& __x, const _Iterator& __y) 1414: requires equality_comparable<_Base_iter> 1414: { return __x._M_current == __y._M_current; } 1414: 1414: friend constexpr range_rvalue_reference_t<_Base> 1414: iter_move(const _Iterator& __i) 1414: noexcept(noexcept(ranges::iter_move(__i._M_current))) 1414: { return ranges::iter_move(__i._M_current); } 1414: 1414: friend constexpr void 1414: iter_swap(const _Iterator& __x, const _Iterator& __y) 1414: noexcept(noexcept(ranges::iter_swap(__x._M_current, __y._M_current))) 1414: requires indirectly_swappable<_Base_iter> 1414: { ranges::iter_swap(__x._M_current, __y._M_current); } 1414: }; 1414: 1414: template 1414: struct _Sentinel 1414: { 1414: private: 1414: using _Parent = __maybe_const_t<_Const, filter_view>; 1414: using _Base = __maybe_const_t<_Const, _Vp>; 1414: sentinel_t<_Base> _M_end = sentinel_t<_Base>(); 1414: 1414: friend _Sentinel; 1414: 1414: public: 1414: _Sentinel() = default; 1414: 1414: constexpr explicit 1414: _Sentinel(_Parent* __parent) 1414: : _M_end(ranges::end(__parent->_M_base)) 1414: { } 1414: 1414: constexpr 1414: _Sentinel(_Sentinel __i) 1414: requires _Const && convertible_to, sentinel_t<_Base>> 1414: : _M_end(std::move(__i._M_end)) 1414: { } 1414: 1414: constexpr sentinel_t<_Base> 1414: base() const 1414: { return _M_end; } 1414: 1414: template 1414: requires sentinel_for, 1414: iterator_t<__maybe_const_t<_Const2, _Vp>>> 1414: friend constexpr bool 1414: operator==(const _Iterator<_Const2>& __x, const _Sentinel& __y) 1414: { return __x._M_current == __y._M_end; } 1414: }; 1414: 1414: _Vp _M_base = _Vp(); 1414: [[no_unique_address]] __detail::__box<_Pred> _M_pred; 1414: [[no_unique_address]] __detail::_CachedPosition<_Vp> _M_cached_begin; 1414: 1414: public: 1414: filter_view() requires (default_initializable<_Vp> 1414: && default_initializable<_Pred>) 1414: = default; 1414: 1414: constexpr explicit 1414: filter_view(_Vp __base, _Pred __pred) 1414: : _M_base(std::move(__base)), _M_pred(std::move(__pred)) 1414: { } 1414: 1414: constexpr _Vp 1414: base() const& requires copy_constructible<_Vp> 1414: { return _M_base; } 1414: 1414: constexpr _Vp 1414: base() && 1414: { return std::move(_M_base); } 1414: 1414: constexpr const _Pred& 1414: pred() const 1414: { return *_M_pred; } 1414: 1414: constexpr _Iterator 1414: begin() 1414: { 1414: if (_M_cached_begin._M_has_value()) 1414: return {this, _M_cached_begin._M_get(_M_base)}; 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(_M_pred.has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: auto __it = ranges::find_if(ranges::begin(_M_base), 1414: ranges::end(_M_base), 1414: std::ref(*_M_pred)); 1414: _M_cached_begin._M_set(_M_base, __it); 1414: return {this, std::move(__it)}; 1414: } 1414: 1414: constexpr _Iterator 1414: begin() const 1414: requires (input_range && !forward_range 1414: && indirect_unary_predicate>) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_pred.has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: auto __it = ranges::find_if(ranges::begin(_M_base), 1414: ranges::end(_M_base), 1414: std::ref(*_M_pred)); 1414: return {this, std::move(__it)}; 1414: } 1414: 1414: constexpr auto 1414: end() 1414: { 1414: if constexpr (common_range<_Vp>) 1414: return _Iterator{this, ranges::end(_M_base)}; 1414: else 1414: return _Sentinel{this}; 1414: } 1414: 1414: constexpr _Sentinel 1414: end() const 1414: requires (input_range && !forward_range 1414: && indirect_unary_predicate>) 1414: { return _Sentinel{this}; } 1414: }; 1414: 1414: template 1414: filter_view(_Range&&, _Pred) -> filter_view, _Pred>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: concept __can_filter_view 1414: = requires { filter_view(std::declval<_Range>(), std::declval<_Pred>()); }; 1414: } 1414: 1414: struct _Filter : __adaptor::_RangeAdaptor<_Filter> 1414: { 1414: template 1414: requires __detail::__can_filter_view<_Range, _Pred> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r, _Pred&& __p) const 1414: { 1414: return filter_view(std::forward<_Range>(__r), std::forward<_Pred>(__p)); 1414: } 1414: 1414: using _RangeAdaptor<_Filter>::operator(); 1414: static constexpr int _S_arity = 2; 1414: static constexpr bool _S_has_simple_extra_args = true; 1414: }; 1414: 1414: inline constexpr _Filter filter; 1414: } 1414: 1414: 1414: 1414: 1414: template 1414: 1414: requires view<_Vp> && is_object_v<_Fp> 1414: && regular_invocable<_Fp&, range_reference_t<_Vp>> 1414: && std::__detail::__can_reference>> 1414: class transform_view : public view_interface> 1414: { 1414: private: 1414: template 1414: using _Base = __detail::__maybe_const_t<_Const, _Vp>; 1414: 1414: template 1414: struct __iter_cat 1414: { }; 1414: 1414: template 1414: requires forward_range<_Base<_Const>> 1414: struct __iter_cat<_Const> 1414: { 1414: private: 1414: static auto 1414: _S_iter_cat() 1414: { 1414: 1414: 1414: 1414: using _Base = transform_view::_Base<_Const>; 1414: using _Res = invoke_result_t<__maybe_const_t<_Const, _Fp>&, 1414: range_reference_t<_Base>>; 1414: 1414: 1414: if constexpr (is_reference_v<_Res>) 1414: { 1414: using _Cat 1414: = typename iterator_traits>::iterator_category; 1414: if constexpr (derived_from<_Cat, contiguous_iterator_tag>) 1414: return random_access_iterator_tag{}; 1414: else 1414: return _Cat{}; 1414: } 1414: else 1414: return input_iterator_tag{}; 1414: } 1414: public: 1414: using iterator_category = decltype(_S_iter_cat()); 1414: }; 1414: 1414: template 1414: struct _Sentinel; 1414: 1414: template 1414: struct _Iterator : __iter_cat<_Const> 1414: { 1414: private: 1414: using _Parent = __detail::__maybe_const_t<_Const, transform_view>; 1414: using _Base = transform_view::_Base<_Const>; 1414: using _Base_iter = iterator_t<_Base>; 1414: using _Func_handle = __detail::__func_handle_t< 1414: __detail::__maybe_const_t<_Const, _Fp>, 1414: _Base_iter>; 1414: 1414: static auto 1414: _S_iter_concept() 1414: { 1414: if constexpr (random_access_range<_Base>) 1414: return random_access_iterator_tag{}; 1414: else if constexpr (bidirectional_range<_Base>) 1414: return bidirectional_iterator_tag{}; 1414: else if constexpr (forward_range<_Base>) 1414: return forward_iterator_tag{}; 1414: else 1414: return input_iterator_tag{}; 1414: } 1414: 1414: _Base_iter _M_current = _Base_iter(); 1414: [[no_unique_address]] _Func_handle _M_fun; 1414: 1414: public: 1414: using iterator_concept = decltype(_S_iter_concept()); 1414: 1414: using value_type 1414: = remove_cvref_t&, 1414: range_reference_t<_Base>>>; 1414: using difference_type = range_difference_t<_Base>; 1414: 1414: _Iterator() requires default_initializable<_Base_iter> = default; 1414: 1414: constexpr 1414: _Iterator(_Func_handle __fun, _Base_iter __current) 1414: : _M_current(std::move(__current)), _M_fun(__fun) 1414: { } 1414: 1414: constexpr 1414: _Iterator(_Parent* __parent, _Base_iter __current) 1414: : _M_current(std::move(__current)), _M_fun(*__parent->_M_fun) 1414: {} 1414: 1414: constexpr 1414: _Iterator(_Iterator __i) 1414: requires _Const 1414: && convertible_to, _Base_iter> 1414: : _M_current(std::move(__i._M_current)), _M_fun(__i._M_fun) 1414: { } 1414: 1414: constexpr const _Base_iter& 1414: base() const & noexcept 1414: { return _M_current; } 1414: 1414: constexpr _Base_iter 1414: base() && 1414: { return std::move(_M_current); } 1414: 1414: constexpr decltype(auto) 1414: operator*() const 1414: noexcept(noexcept(_M_fun._M_call_deref(_M_current))) 1414: { return _M_fun._M_call_deref(_M_current); } 1414: 1414: constexpr _Iterator& 1414: operator++() 1414: { 1414: ++_M_current; 1414: return *this; 1414: } 1414: 1414: constexpr void 1414: operator++(int) 1414: { ++_M_current; } 1414: 1414: constexpr _Iterator 1414: operator++(int) requires forward_range<_Base> 1414: { 1414: auto __tmp = *this; 1414: ++*this; 1414: return __tmp; 1414: } 1414: 1414: constexpr _Iterator& 1414: operator--() requires bidirectional_range<_Base> 1414: { 1414: --_M_current; 1414: return *this; 1414: } 1414: 1414: constexpr _Iterator 1414: operator--(int) requires bidirectional_range<_Base> 1414: { 1414: auto __tmp = *this; 1414: --*this; 1414: return __tmp; 1414: } 1414: 1414: constexpr _Iterator& 1414: operator+=(difference_type __n) requires random_access_range<_Base> 1414: { 1414: _M_current += __n; 1414: return *this; 1414: } 1414: 1414: constexpr _Iterator& 1414: operator-=(difference_type __n) requires random_access_range<_Base> 1414: { 1414: _M_current -= __n; 1414: return *this; 1414: } 1414: 1414: constexpr decltype(auto) 1414: operator[](difference_type __n) const 1414: requires random_access_range<_Base> 1414: { return _M_fun._M_call_subscript(__n, _M_current); } 1414: 1414: friend constexpr bool 1414: operator==(const _Iterator& __x, const _Iterator& __y) 1414: requires equality_comparable<_Base_iter> 1414: { return __x._M_current == __y._M_current; } 1414: 1414: friend constexpr bool 1414: operator<(const _Iterator& __x, const _Iterator& __y) 1414: requires random_access_range<_Base> 1414: { return __x._M_current < __y._M_current; } 1414: 1414: friend constexpr bool 1414: operator>(const _Iterator& __x, const _Iterator& __y) 1414: requires random_access_range<_Base> 1414: { return __y < __x; } 1414: 1414: friend constexpr bool 1414: operator<=(const _Iterator& __x, const _Iterator& __y) 1414: requires random_access_range<_Base> 1414: { return !(__y < __x); } 1414: 1414: friend constexpr bool 1414: operator>=(const _Iterator& __x, const _Iterator& __y) 1414: requires random_access_range<_Base> 1414: { return !(__x < __y); } 1414: 1414: 1414: friend constexpr auto 1414: operator<=>(const _Iterator& __x, const _Iterator& __y) 1414: requires random_access_range<_Base> 1414: && three_way_comparable<_Base_iter> 1414: { return __x._M_current <=> __y._M_current; } 1414: 1414: 1414: friend constexpr _Iterator 1414: operator+(_Iterator __i, difference_type __n) 1414: requires random_access_range<_Base> 1414: { return {__i._M_fun, __i._M_current + __n}; } 1414: 1414: friend constexpr _Iterator 1414: operator+(difference_type __n, _Iterator __i) 1414: requires random_access_range<_Base> 1414: { return {__i._M_fun, __i._M_current + __n}; } 1414: 1414: friend constexpr _Iterator 1414: operator-(_Iterator __i, difference_type __n) 1414: requires random_access_range<_Base> 1414: { return {__i._M_fun, __i._M_current - __n}; } 1414: 1414: 1414: 1414: friend constexpr difference_type 1414: operator-(const _Iterator& __x, const _Iterator& __y) 1414: requires sized_sentinel_for, iterator_t<_Base>> 1414: { return __x._M_current - __y._M_current; } 1414: 1414: friend constexpr decltype(auto) 1414: iter_move(const _Iterator& __i) noexcept(noexcept(*__i)) 1414: { 1414: if constexpr (is_lvalue_reference_v) 1414: return std::move(*__i); 1414: else 1414: return *__i; 1414: } 1414: 1414: friend _Iterator; 1414: template friend struct _Sentinel; 1414: }; 1414: 1414: template 1414: struct _Sentinel 1414: { 1414: private: 1414: using _Parent = __detail::__maybe_const_t<_Const, transform_view>; 1414: using _Base = transform_view::_Base<_Const>; 1414: 1414: sentinel_t<_Base> _M_end = sentinel_t<_Base>(); 1414: 1414: public: 1414: _Sentinel() = default; 1414: 1414: constexpr explicit 1414: _Sentinel(sentinel_t<_Base> __end) 1414: : _M_end(__end) 1414: { } 1414: 1414: constexpr 1414: _Sentinel(_Sentinel __i) 1414: requires _Const 1414: && convertible_to, sentinel_t<_Base>> 1414: : _M_end(std::move(__i._M_end)) 1414: { } 1414: 1414: constexpr sentinel_t<_Base> 1414: base() const 1414: { return _M_end; } 1414: 1414: template 1414: requires sentinel_for, 1414: iterator_t<__detail::__maybe_const_t<_Const2, _Vp>>> 1414: friend constexpr bool 1414: operator==(const _Iterator<_Const2>& __x, const _Sentinel& __y) 1414: { return __x._M_current == __y._M_end; } 1414: 1414: template> 1414: requires sized_sentinel_for, iterator_t<_Base2>> 1414: friend constexpr range_difference_t<_Base2> 1414: operator-(const _Iterator<_Const2>& __x, const _Sentinel& __y) 1414: { return -(__y._M_end - __x._M_current); } 1414: 1414: template> 1414: requires sized_sentinel_for, iterator_t<_Base2>> 1414: friend constexpr range_difference_t<_Base2> 1414: operator-(const _Sentinel& __y, const _Iterator<_Const2>& __x) 1414: { return __y._M_end - __x._M_current; } 1414: 1414: friend _Sentinel; 1414: }; 1414: 1414: _Vp _M_base = _Vp(); 1414: [[no_unique_address]] __detail::__box<_Fp> _M_fun; 1414: 1414: public: 1414: transform_view() requires (default_initializable<_Vp> 1414: && default_initializable<_Fp>) 1414: = default; 1414: 1414: constexpr explicit 1414: transform_view(_Vp __base, _Fp __fun) 1414: : _M_base(std::move(__base)), _M_fun(std::move(__fun)) 1414: { } 1414: 1414: constexpr _Vp 1414: base() const& requires copy_constructible<_Vp> 1414: { return _M_base ; } 1414: 1414: constexpr _Vp 1414: base() && 1414: { return std::move(_M_base); } 1414: 1414: constexpr _Iterator 1414: begin() 1414: { return _Iterator{this, ranges::begin(_M_base)}; } 1414: 1414: constexpr _Iterator 1414: begin() const 1414: requires range 1414: && regular_invocable> 1414: { return _Iterator{this, ranges::begin(_M_base)}; } 1414: 1414: constexpr _Sentinel 1414: end() 1414: { return _Sentinel{ranges::end(_M_base)}; } 1414: 1414: constexpr _Iterator 1414: end() requires common_range<_Vp> 1414: { return _Iterator{this, ranges::end(_M_base)}; } 1414: 1414: constexpr _Sentinel 1414: end() const 1414: requires range 1414: && regular_invocable> 1414: { return _Sentinel{ranges::end(_M_base)}; } 1414: 1414: constexpr _Iterator 1414: end() const 1414: requires common_range 1414: && regular_invocable> 1414: { return _Iterator{this, ranges::end(_M_base)}; } 1414: 1414: constexpr auto 1414: size() requires sized_range<_Vp> 1414: { return ranges::size(_M_base); } 1414: 1414: constexpr auto 1414: size() const requires sized_range 1414: { return ranges::size(_M_base); } 1414: }; 1414: 1414: template 1414: transform_view(_Range&&, _Fp) -> transform_view, _Fp>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: concept __can_transform_view 1414: = requires { transform_view(std::declval<_Range>(), std::declval<_Fp>()); }; 1414: } 1414: 1414: struct _Transform : __adaptor::_RangeAdaptor<_Transform> 1414: { 1414: template 1414: requires __detail::__can_transform_view<_Range, _Fp> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r, _Fp&& __f) const 1414: { 1414: return transform_view(std::forward<_Range>(__r), std::forward<_Fp>(__f)); 1414: } 1414: 1414: using _RangeAdaptor<_Transform>::operator(); 1414: static constexpr int _S_arity = 2; 1414: static constexpr bool _S_has_simple_extra_args = true; 1414: }; 1414: 1414: inline constexpr _Transform transform; 1414: } 1414: 1414: template 1414: class take_view : public view_interface> 1414: { 1414: private: 1414: template 1414: using _CI = counted_iterator< 1414: iterator_t<__detail::__maybe_const_t<_Const, _Vp>>>; 1414: 1414: template 1414: struct _Sentinel 1414: { 1414: private: 1414: using _Base = __detail::__maybe_const_t<_Const, _Vp>; 1414: sentinel_t<_Base> _M_end = sentinel_t<_Base>(); 1414: 1414: public: 1414: _Sentinel() = default; 1414: 1414: constexpr explicit 1414: _Sentinel(sentinel_t<_Base> __end) 1414: : _M_end(__end) 1414: { } 1414: 1414: constexpr 1414: _Sentinel(_Sentinel __s) 1414: requires _Const && convertible_to, sentinel_t<_Base>> 1414: : _M_end(std::move(__s._M_end)) 1414: { } 1414: 1414: constexpr sentinel_t<_Base> 1414: base() const 1414: { return _M_end; } 1414: 1414: friend constexpr bool 1414: operator==(const _CI<_Const>& __y, const _Sentinel& __x) 1414: { return __y.count() == 0 || __y.base() == __x._M_end; } 1414: 1414: template> 1414: requires sentinel_for, iterator_t<_Base2>> 1414: friend constexpr bool 1414: operator==(const _CI<_OtherConst>& __y, const _Sentinel& __x) 1414: { return __y.count() == 0 || __y.base() == __x._M_end; } 1414: 1414: friend _Sentinel; 1414: }; 1414: 1414: _Vp _M_base = _Vp(); 1414: range_difference_t<_Vp> _M_count = 0; 1414: 1414: public: 1414: take_view() requires default_initializable<_Vp> = default; 1414: 1414: constexpr explicit 1414: take_view(_Vp __base, range_difference_t<_Vp> __count) 1414: : _M_base(std::move(__base)), _M_count(std::move(__count)) 1414: { } 1414: 1414: constexpr _Vp 1414: base() const& requires copy_constructible<_Vp> 1414: { return _M_base; } 1414: 1414: constexpr _Vp 1414: base() && 1414: { return std::move(_M_base); } 1414: 1414: constexpr auto 1414: begin() requires (!__detail::__simple_view<_Vp>) 1414: { 1414: if constexpr (sized_range<_Vp>) 1414: { 1414: if constexpr (random_access_range<_Vp>) 1414: return ranges::begin(_M_base); 1414: else 1414: { 1414: auto __sz = size(); 1414: return counted_iterator(ranges::begin(_M_base), __sz); 1414: } 1414: } 1414: else 1414: return counted_iterator(ranges::begin(_M_base), _M_count); 1414: } 1414: 1414: constexpr auto 1414: begin() const requires range 1414: { 1414: if constexpr (sized_range) 1414: { 1414: if constexpr (random_access_range) 1414: return ranges::begin(_M_base); 1414: else 1414: { 1414: auto __sz = size(); 1414: return counted_iterator(ranges::begin(_M_base), __sz); 1414: } 1414: } 1414: else 1414: return counted_iterator(ranges::begin(_M_base), _M_count); 1414: } 1414: 1414: constexpr auto 1414: end() requires (!__detail::__simple_view<_Vp>) 1414: { 1414: if constexpr (sized_range<_Vp>) 1414: { 1414: if constexpr (random_access_range<_Vp>) 1414: return ranges::begin(_M_base) + size(); 1414: else 1414: return default_sentinel; 1414: } 1414: else 1414: return _Sentinel{ranges::end(_M_base)}; 1414: } 1414: 1414: constexpr auto 1414: end() const requires range 1414: { 1414: if constexpr (sized_range) 1414: { 1414: if constexpr (random_access_range) 1414: return ranges::begin(_M_base) + size(); 1414: else 1414: return default_sentinel; 1414: } 1414: else 1414: return _Sentinel{ranges::end(_M_base)}; 1414: } 1414: 1414: constexpr auto 1414: size() requires sized_range<_Vp> 1414: { 1414: auto __n = ranges::size(_M_base); 1414: return std::min(__n, static_cast(_M_count)); 1414: } 1414: 1414: constexpr auto 1414: size() const requires sized_range 1414: { 1414: auto __n = ranges::size(_M_base); 1414: return std::min(__n, static_cast(_M_count)); 1414: } 1414: }; 1414: 1414: 1414: 1414: 1414: template 1414: take_view(_Range&&, range_difference_t<_Range>) 1414: -> take_view>; 1414: 1414: template 1414: inline constexpr bool enable_borrowed_range> 1414: = enable_borrowed_range<_Tp>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: inline constexpr bool __is_empty_view = false; 1414: 1414: template 1414: inline constexpr bool __is_empty_view> = true; 1414: 1414: template 1414: inline constexpr bool __is_basic_string_view = false; 1414: 1414: template 1414: inline constexpr bool __is_basic_string_view> 1414: = true; 1414: 1414: using ranges::__detail::__is_subrange; 1414: 1414: template 1414: inline constexpr bool __is_iota_view = false; 1414: 1414: template 1414: inline constexpr bool __is_iota_view> = true; 1414: 1414: template 1414: inline constexpr bool __is_repeat_view = false; 1414: 1414: template 1414: constexpr auto 1414: __take_of_repeat_view(_Range&&, range_difference_t<_Range>); 1414: 1414: template 1414: concept __can_take_view 1414: = requires { take_view(std::declval<_Range>(), std::declval<_Dp>()); }; 1414: } 1414: 1414: struct _Take : __adaptor::_RangeAdaptor<_Take> 1414: { 1414: template> 1414: requires __detail::__can_take_view<_Range, _Dp> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r, type_identity_t<_Dp> __n) const 1414: { 1414: using _Tp = remove_cvref_t<_Range>; 1414: if constexpr (__detail::__is_empty_view<_Tp>) 1414: return _Tp(); 1414: 1414: 1414: 1414: 1414: else if constexpr (random_access_range<_Tp> 1414: && sized_range<_Tp> 1414: && (std::__detail::__is_span<_Tp> 1414: || __detail::__is_basic_string_view<_Tp> 1414: || __detail::__is_subrange<_Tp> 1414: || __detail::__is_iota_view<_Tp>)) 1414: { 1414: __n = std::min<_Dp>(ranges::distance(__r), __n); 1414: auto __begin = ranges::begin(__r); 1414: auto __end = __begin + __n; 1414: if constexpr (std::__detail::__is_span<_Tp>) 1414: return span(__begin, __end); 1414: else if constexpr (__detail::__is_basic_string_view<_Tp>) 1414: return _Tp(__begin, __end); 1414: else if constexpr (__detail::__is_subrange<_Tp>) 1414: return subrange>(__begin, __end); 1414: else 1414: return iota_view(*__begin, *__end); 1414: } 1414: else if constexpr (__detail::__is_repeat_view<_Tp>) 1414: return __detail::__take_of_repeat_view(std::forward<_Range>(__r), __n); 1414: else 1414: return take_view(std::forward<_Range>(__r), __n); 1414: } 1414: 1414: using _RangeAdaptor<_Take>::operator(); 1414: static constexpr int _S_arity = 2; 1414: 1414: 1414: 1414: template 1414: static constexpr bool _S_has_simple_extra_args 1414: = ranges::__detail::__is_integer_like<_Tp>; 1414: }; 1414: 1414: inline constexpr _Take take; 1414: } 1414: 1414: template 1414: requires input_range<_Vp> && is_object_v<_Pred> 1414: && indirect_unary_predicate> 1414: class take_while_view : public view_interface> 1414: { 1414: template 1414: struct _Sentinel 1414: { 1414: private: 1414: using _Base = __detail::__maybe_const_t<_Const, _Vp>; 1414: 1414: sentinel_t<_Base> _M_end = sentinel_t<_Base>(); 1414: const _Pred* _M_pred = nullptr; 1414: 1414: public: 1414: _Sentinel() = default; 1414: 1414: constexpr explicit 1414: _Sentinel(sentinel_t<_Base> __end, const _Pred* __pred) 1414: : _M_end(__end), _M_pred(__pred) 1414: { } 1414: 1414: constexpr 1414: _Sentinel(_Sentinel __s) 1414: requires _Const && convertible_to, sentinel_t<_Base>> 1414: : _M_end(__s._M_end), _M_pred(__s._M_pred) 1414: { } 1414: 1414: constexpr sentinel_t<_Base> 1414: base() const { return _M_end; } 1414: 1414: friend constexpr bool 1414: operator==(const iterator_t<_Base>& __x, const _Sentinel& __y) 1414: { return __y._M_end == __x || !std::__invoke(*__y._M_pred, *__x); } 1414: 1414: template> 1414: requires sentinel_for, iterator_t<_Base2>> 1414: friend constexpr bool 1414: operator==(const iterator_t<_Base2>& __x, const _Sentinel& __y) 1414: { return __y._M_end == __x || !std::__invoke(*__y._M_pred, *__x); } 1414: 1414: friend _Sentinel; 1414: }; 1414: 1414: _Vp _M_base = _Vp(); 1414: [[no_unique_address]] __detail::__box<_Pred> _M_pred; 1414: 1414: public: 1414: take_while_view() requires (default_initializable<_Vp> 1414: && default_initializable<_Pred>) 1414: = default; 1414: 1414: constexpr explicit 1414: take_while_view(_Vp __base, _Pred __pred) 1414: : _M_base(std::move(__base)), _M_pred(std::move(__pred)) 1414: { } 1414: 1414: constexpr _Vp 1414: base() const& requires copy_constructible<_Vp> 1414: { return _M_base; } 1414: 1414: constexpr _Vp 1414: base() && 1414: { return std::move(_M_base); } 1414: 1414: constexpr const _Pred& 1414: pred() const 1414: { return *_M_pred; } 1414: 1414: constexpr auto 1414: begin() requires (!__detail::__simple_view<_Vp>) 1414: { return ranges::begin(_M_base); } 1414: 1414: constexpr auto 1414: begin() const requires range 1414: && indirect_unary_predicate> 1414: { return ranges::begin(_M_base); } 1414: 1414: constexpr auto 1414: end() requires (!__detail::__simple_view<_Vp>) 1414: { return _Sentinel(ranges::end(_M_base), 1414: std::__addressof(*_M_pred)); } 1414: 1414: constexpr auto 1414: end() const requires range 1414: && indirect_unary_predicate> 1414: { return _Sentinel(ranges::end(_M_base), 1414: std::__addressof(*_M_pred)); } 1414: }; 1414: 1414: template 1414: take_while_view(_Range&&, _Pred) 1414: -> take_while_view, _Pred>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: concept __can_take_while_view 1414: = requires { take_while_view(std::declval<_Range>(), std::declval<_Pred>()); }; 1414: } 1414: 1414: struct _TakeWhile : __adaptor::_RangeAdaptor<_TakeWhile> 1414: { 1414: template 1414: requires __detail::__can_take_while_view<_Range, _Pred> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r, _Pred&& __p) const 1414: { 1414: return take_while_view(std::forward<_Range>(__r), std::forward<_Pred>(__p)); 1414: } 1414: 1414: using _RangeAdaptor<_TakeWhile>::operator(); 1414: static constexpr int _S_arity = 2; 1414: static constexpr bool _S_has_simple_extra_args = true; 1414: }; 1414: 1414: inline constexpr _TakeWhile take_while; 1414: } 1414: 1414: template 1414: class drop_view : public view_interface> 1414: { 1414: private: 1414: _Vp _M_base = _Vp(); 1414: range_difference_t<_Vp> _M_count = 0; 1414: 1414: 1414: 1414: static constexpr bool _S_needs_cached_begin 1414: = !(random_access_range && sized_range); 1414: [[no_unique_address]] 1414: __detail::__maybe_present_t<_S_needs_cached_begin, 1414: __detail::_CachedPosition<_Vp>> 1414: _M_cached_begin; 1414: 1414: public: 1414: drop_view() requires default_initializable<_Vp> = default; 1414: 1414: constexpr explicit 1414: drop_view(_Vp __base, range_difference_t<_Vp> __count) 1414: : _M_base(std::move(__base)), _M_count(__count) 1414: { do { if (std::__is_constant_evaluated() && !bool(__count >= 0)) std::__glibcxx_assert_fail(); } while (false); } 1414: 1414: constexpr _Vp 1414: base() const& requires copy_constructible<_Vp> 1414: { return _M_base; } 1414: 1414: constexpr _Vp 1414: base() && 1414: { return std::move(_M_base); } 1414: 1414: 1414: constexpr auto 1414: begin() 1414: requires (!(__detail::__simple_view<_Vp> 1414: && random_access_range 1414: && sized_range)) 1414: { 1414: if constexpr (_S_needs_cached_begin) 1414: if (_M_cached_begin._M_has_value()) 1414: return _M_cached_begin._M_get(_M_base); 1414: 1414: auto __it = ranges::next(ranges::begin(_M_base), 1414: _M_count, ranges::end(_M_base)); 1414: if constexpr (_S_needs_cached_begin) 1414: _M_cached_begin._M_set(_M_base, __it); 1414: return __it; 1414: } 1414: 1414: 1414: 1414: constexpr auto 1414: begin() const 1414: requires random_access_range && sized_range 1414: { 1414: return ranges::begin(_M_base) + ranges::min(ranges::distance(_M_base), 1414: _M_count); 1414: } 1414: 1414: constexpr auto 1414: end() requires (!__detail::__simple_view<_Vp>) 1414: { return ranges::end(_M_base); } 1414: 1414: constexpr auto 1414: end() const requires range 1414: { return ranges::end(_M_base); } 1414: 1414: constexpr auto 1414: size() requires sized_range<_Vp> 1414: { 1414: const auto __s = ranges::size(_M_base); 1414: const auto __c = static_cast(_M_count); 1414: return __s < __c ? 0 : __s - __c; 1414: } 1414: 1414: constexpr auto 1414: size() const requires sized_range 1414: { 1414: const auto __s = ranges::size(_M_base); 1414: const auto __c = static_cast(_M_count); 1414: return __s < __c ? 0 : __s - __c; 1414: } 1414: }; 1414: 1414: template 1414: drop_view(_Range&&, range_difference_t<_Range>) 1414: -> drop_view>; 1414: 1414: template 1414: inline constexpr bool enable_borrowed_range> 1414: = enable_borrowed_range<_Tp>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: constexpr auto 1414: __drop_of_repeat_view(_Range&&, range_difference_t<_Range>); 1414: 1414: template 1414: concept __can_drop_view 1414: = requires { drop_view(std::declval<_Range>(), std::declval<_Dp>()); }; 1414: } 1414: 1414: struct _Drop : __adaptor::_RangeAdaptor<_Drop> 1414: { 1414: template> 1414: requires __detail::__can_drop_view<_Range, _Dp> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r, type_identity_t<_Dp> __n) const 1414: { 1414: using _Tp = remove_cvref_t<_Range>; 1414: if constexpr (__detail::__is_empty_view<_Tp>) 1414: return _Tp(); 1414: 1414: 1414: 1414: 1414: else if constexpr (random_access_range<_Tp> 1414: && sized_range<_Tp> 1414: && (std::__detail::__is_span<_Tp> 1414: || __detail::__is_basic_string_view<_Tp> 1414: || __detail::__is_iota_view<_Tp> 1414: || __detail::__is_subrange<_Tp>)) 1414: { 1414: __n = std::min<_Dp>(ranges::distance(__r), __n); 1414: auto __begin = ranges::begin(__r) + __n; 1414: auto __end = ranges::end(__r); 1414: if constexpr (std::__detail::__is_span<_Tp>) 1414: return span(__begin, __end); 1414: else if constexpr (__detail::__is_subrange<_Tp>) 1414: { 1414: if constexpr (_Tp::_S_store_size) 1414: { 1414: using ranges::__detail::__to_unsigned_like; 1414: auto __m = ranges::distance(__r) - __n; 1414: return _Tp(__begin, __end, __to_unsigned_like(__m)); 1414: } 1414: else 1414: return _Tp(__begin, __end); 1414: } 1414: else 1414: return _Tp(__begin, __end); 1414: } 1414: else if constexpr (__detail::__is_repeat_view<_Tp>) 1414: return __detail::__drop_of_repeat_view(std::forward<_Range>(__r), __n); 1414: else 1414: return drop_view(std::forward<_Range>(__r), __n); 1414: } 1414: 1414: using _RangeAdaptor<_Drop>::operator(); 1414: static constexpr int _S_arity = 2; 1414: template 1414: static constexpr bool _S_has_simple_extra_args 1414: = _Take::_S_has_simple_extra_args<_Tp>; 1414: }; 1414: 1414: inline constexpr _Drop drop; 1414: } 1414: 1414: template 1414: requires input_range<_Vp> && is_object_v<_Pred> 1414: && indirect_unary_predicate> 1414: class drop_while_view : public view_interface> 1414: { 1414: private: 1414: _Vp _M_base = _Vp(); 1414: [[no_unique_address]] __detail::__box<_Pred> _M_pred; 1414: [[no_unique_address]] __detail::_CachedPosition<_Vp> _M_cached_begin; 1414: 1414: public: 1414: drop_while_view() requires (default_initializable<_Vp> 1414: && default_initializable<_Pred>) 1414: = default; 1414: 1414: constexpr explicit 1414: drop_while_view(_Vp __base, _Pred __pred) 1414: : _M_base(std::move(__base)), _M_pred(std::move(__pred)) 1414: { } 1414: 1414: constexpr _Vp 1414: base() const& requires copy_constructible<_Vp> 1414: { return _M_base; } 1414: 1414: constexpr _Vp 1414: base() && 1414: { return std::move(_M_base); } 1414: 1414: constexpr const _Pred& 1414: pred() const 1414: { return *_M_pred; } 1414: 1414: constexpr auto 1414: begin() 1414: { 1414: if (_M_cached_begin._M_has_value()) 1414: return _M_cached_begin._M_get(_M_base); 1414: 1414: do { if (std::__is_constant_evaluated() && !bool(_M_pred.has_value())) std::__glibcxx_assert_fail(); } while (false); 1414: auto __it = ranges::find_if_not(ranges::begin(_M_base), 1414: ranges::end(_M_base), 1414: std::cref(*_M_pred)); 1414: _M_cached_begin._M_set(_M_base, __it); 1414: return __it; 1414: } 1414: 1414: constexpr auto 1414: end() 1414: { return ranges::end(_M_base); } 1414: }; 1414: 1414: template 1414: drop_while_view(_Range&&, _Pred) 1414: -> drop_while_view, _Pred>; 1414: 1414: template 1414: inline constexpr bool enable_borrowed_range> 1414: = enable_borrowed_range<_Tp>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: concept __can_drop_while_view 1414: = requires { drop_while_view(std::declval<_Range>(), std::declval<_Pred>()); }; 1414: } 1414: 1414: struct _DropWhile : __adaptor::_RangeAdaptor<_DropWhile> 1414: { 1414: template 1414: requires __detail::__can_drop_while_view<_Range, _Pred> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r, _Pred&& __p) const 1414: { 1414: return drop_while_view(std::forward<_Range>(__r), 1414: std::forward<_Pred>(__p)); 1414: } 1414: 1414: using _RangeAdaptor<_DropWhile>::operator(); 1414: static constexpr int _S_arity = 2; 1414: static constexpr bool _S_has_simple_extra_args = true; 1414: }; 1414: 1414: inline constexpr _DropWhile drop_while; 1414: } 1414: 1414: namespace __detail 1414: { 1414: template 1414: constexpr _Tp& 1414: __as_lvalue(_Tp&& __t) 1414: { return static_cast<_Tp&>(__t); } 1414: } 1414: 1414: template 1414: requires view<_Vp> && input_range> 1414: class join_view : public view_interface> 1414: { 1414: private: 1414: using _InnerRange = range_reference_t<_Vp>; 1414: 1414: template 1414: using _Base = __detail::__maybe_const_t<_Const, _Vp>; 1414: 1414: template 1414: using _Outer_iter = iterator_t<_Base<_Const>>; 1414: 1414: template 1414: using _Inner_iter = iterator_t>>; 1414: 1414: template 1414: static constexpr bool _S_ref_is_glvalue 1414: = is_reference_v>>; 1414: 1414: template 1414: struct __iter_cat 1414: { }; 1414: 1414: template 1414: requires _S_ref_is_glvalue<_Const> 1414: && forward_range<_Base<_Const>> 1414: && forward_range>> 1414: struct __iter_cat<_Const> 1414: { 1414: private: 1414: static constexpr auto 1414: _S_iter_cat() 1414: { 1414: using _Outer_iter = join_view::_Outer_iter<_Const>; 1414: using _Inner_iter = join_view::_Inner_iter<_Const>; 1414: using _OuterCat = typename iterator_traits<_Outer_iter>::iterator_category; 1414: using _InnerCat = typename iterator_traits<_Inner_iter>::iterator_category; 1414: if constexpr (derived_from<_OuterCat, bidirectional_iterator_tag> 1414: && derived_from<_InnerCat, bidirectional_iterator_tag> 1414: && common_range>>) 1414: return bidirectional_iterator_tag{}; 1414: else if constexpr (derived_from<_OuterCat, forward_iterator_tag> 1414: && derived_from<_InnerCat, forward_iterator_tag>) 1414: return forward_iterator_tag{}; 1414: else 1414: return input_iterator_tag{}; 1414: } 1414: public: 1414: using iterator_category = decltype(_S_iter_cat()); 1414: }; 1414: 1414: template 1414: struct _Sentinel; 1414: 1414: template 1414: struct _Iterator : __iter_cat<_Const> 1414: { 1414: private: 1414: using _Parent = __detail::__maybe_const_t<_Const, join_view>; 1414: using _Base = join_view::_Base<_Const>; 1414: 1414: friend join_view; 1414: 1414: static constexpr bool _S_ref_is_glvalue 1414: = join_view::_S_ref_is_glvalue<_Const>; 1414: 1414: constexpr void 1414: _M_satisfy() 1414: { 1414: auto __update_inner = [this] (const iterator_t<_Base>& __x) -> auto&& { 1414: if constexpr (_S_ref_is_glvalue) 1414: return *__x; 1414: else 1414: return _M_parent->_M_inner._M_emplace_deref(__x); 1414: }; 1414: 1414: _Outer_iter& __outer = _M_get_outer(); 1414: for (; __outer != ranges::end(_M_parent->_M_base); ++__outer) 1414: { 1414: auto&& __inner = __update_inner(__outer); 1414: _M_inner = ranges::begin(__inner); 1414: if (_M_inner != ranges::end(__inner)) 1414: return; 1414: } 1414: 1414: if constexpr (_S_ref_is_glvalue) 1414: { 1414: if constexpr (forward_iterator<_Inner_iter>) 1414: _M_inner = _Inner_iter(); 1414: else 1414: _M_inner.reset(); 1414: } 1414: } 1414: 1414: static constexpr auto 1414: _S_iter_concept() 1414: { 1414: if constexpr (_S_ref_is_glvalue 1414: && bidirectional_range<_Base> 1414: && bidirectional_range> 1414: && common_range>) 1414: return bidirectional_iterator_tag{}; 1414: else if constexpr (_S_ref_is_glvalue 1414: && forward_range<_Base> 1414: && forward_range>) 1414: return forward_iterator_tag{}; 1414: else 1414: return input_iterator_tag{}; 1414: } 1414: 1414: using _Outer_iter = join_view::_Outer_iter<_Const>; 1414: using _Inner_iter = join_view::_Inner_iter<_Const>; 1414: 1414: constexpr _Outer_iter& 1414: _M_get_outer() 1414: { 1414: if constexpr (forward_range<_Base>) 1414: return _M_outer; 1414: else 1414: return *_M_parent->_M_outer; 1414: } 1414: 1414: constexpr const _Outer_iter& 1414: _M_get_outer() const 1414: { 1414: if constexpr (forward_range<_Base>) 1414: return _M_outer; 1414: else 1414: return *_M_parent->_M_outer; 1414: } 1414: 1414: constexpr _Inner_iter& 1414: _M_get_inner() noexcept 1414: { 1414: if constexpr (forward_iterator<_Inner_iter>) 1414: return _M_inner; 1414: else 1414: return *_M_inner; 1414: } 1414: 1414: constexpr const _Inner_iter& 1414: _M_get_inner() const noexcept 1414: { 1414: if constexpr (forward_iterator<_Inner_iter>) 1414: return _M_inner; 1414: else 1414: return *_M_inner; 1414: } 1414: 1414: constexpr 1414: _Iterator(_Parent* __parent, _Outer_iter __outer) requires forward_range<_Base> 1414: : _M_outer(std::move(__outer)), _M_parent(__parent) 1414: { _M_satisfy(); } 1414: 1414: constexpr explicit 1414: _Iterator(_Parent* __parent) requires (!forward_range<_Base>) 1414: : _M_parent(__parent) 1414: { _M_satisfy(); } 1414: 1414: [[no_unique_address]] 1414: __detail::__maybe_present_t, _Outer_iter> _M_outer 1414: = decltype(_M_outer)(); 1414: __conditional_t, 1414: _Inner_iter, optional<_Inner_iter>> _M_inner 1414: = decltype(_M_inner)(); 1414: _Parent* _M_parent = nullptr; 1414: 1414: public: 1414: using iterator_concept = decltype(_S_iter_concept()); 1414: 1414: using value_type = range_value_t>; 1414: using difference_type 1414: = common_type_t, 1414: range_difference_t>>; 1414: 1414: _Iterator() = default; 1414: 1414: constexpr 1414: _Iterator(_Iterator __i) 1414: requires _Const 1414: && convertible_to, _Outer_iter> 1414: && convertible_to, _Inner_iter> 1414: : _M_outer(std::move(__i._M_outer)), _M_inner(std::move(__i._M_inner)), 1414: _M_parent(__i._M_parent) 1414: { } 1414: 1414: constexpr decltype(auto) 1414: operator*() const 1414: { return *_M_get_inner(); } 1414: 1414: 1414: 1414: constexpr _Inner_iter 1414: operator->() const 1414: requires __detail::__has_arrow<_Inner_iter> 1414: && copyable<_Inner_iter> 1414: { return _M_get_inner(); } 1414: 1414: constexpr _Iterator& 1414: operator++() 1414: { 1414: auto&& __inner_range = [this] () -> auto&& { 1414: if constexpr (_S_ref_is_glvalue) 1414: return *_M_get_outer(); 1414: else 1414: return *_M_parent->_M_inner; 1414: }(); 1414: if (++_M_get_inner() == ranges::end(__inner_range)) 1414: { 1414: ++_M_get_outer(); 1414: _M_satisfy(); 1414: } 1414: return *this; 1414: } 1414: 1414: constexpr void 1414: operator++(int) 1414: { ++*this; } 1414: 1414: constexpr _Iterator 1414: operator++(int) 1414: requires _S_ref_is_glvalue && forward_range<_Base> 1414: && forward_range> 1414: { 1414: auto __tmp = *this; 1414: ++*this; 1414: return __tmp; 1414: } 1414: 1414: constexpr _Iterator& 1414: operator--() 1414: requires _S_ref_is_glvalue && bidirectional_range<_Base> 1414: && bidirectional_range> 1414: && common_range> 1414: { 1414: if (_M_outer == ranges::end(_M_parent->_M_base)) 1414: _M_inner = ranges::end(__detail::__as_lvalue(*--_M_outer)); 1414: while (_M_get_inner() == ranges::begin(__detail::__as_lvalue(*_M_outer))) 1414: _M_get_inner() = ranges::end(__detail::__as_lvalue(*--_M_outer)); 1414: --_M_get_inner(); 1414: return *this; 1414: } 1414: 1414: constexpr _Iterator 1414: operator--(int) 1414: requires _S_ref_is_glvalue && bidirectional_range<_Base> 1414: && bidirectional_range> 1414: && common_range> 1414: { 1414: auto __tmp = *this; 1414: --*this; 1414: return __tmp; 1414: } 1414: 1414: friend constexpr bool 1414: operator==(const _Iterator& __x, const _Iterator& __y) 1414: requires _S_ref_is_glvalue 1414: && forward_range<_Base> 1414: && equality_comparable<_Inner_iter> 1414: { 1414: return (__x._M_outer == __y._M_outer 1414: && __x._M_inner == __y._M_inner); 1414: } 1414: 1414: friend constexpr decltype(auto) 1414: iter_move(const _Iterator& __i) 1414: noexcept(noexcept(ranges::iter_move(__i._M_get_inner()))) 1414: { return ranges::iter_move(__i._M_get_inner()); } 1414: 1414: friend constexpr void 1414: iter_swap(const _Iterator& __x, const _Iterator& __y) 1414: noexcept(noexcept(ranges::iter_swap(__x._M_get_inner(), __y._M_get_inner()))) 1414: requires indirectly_swappable<_Inner_iter> 1414: { return ranges::iter_swap(__x._M_get_inner(), __y._M_get_inner()); } 1414: 1414: friend _Iterator; 1414: template friend struct _Sentinel; 1414: }; 1414: 1414: template 1414: struct _Sentinel 1414: { 1414: private: 1414: using _Parent = __detail::__maybe_const_t<_Const, join_view>; 1414: using _Base = join_view::_Base<_Const>; 1414: 1414: sentinel_t<_Base> _M_end = sentinel_t<_Base>(); 1414: 1414: public: 1414: _Sentinel() = default; 1414: 1414: constexpr explicit 1414: _Sentinel(_Parent* __parent) 1414: : _M_end(ranges::end(__parent->_M_base)) 1414: { } 1414: 1414: constexpr 1414: _Sentinel(_Sentinel __s) 1414: requires _Const && convertible_to, sentinel_t<_Base>> 1414: : _M_end(std::move(__s._M_end)) 1414: { } 1414: 1414: template 1414: requires sentinel_for, 1414: iterator_t<__detail::__maybe_const_t<_Const2, _Vp>>> 1414: friend constexpr bool 1414: operator==(const _Iterator<_Const2>& __x, const _Sentinel& __y) 1414: { return __x._M_get_outer() == __y._M_end; } 1414: 1414: friend _Sentinel; 1414: }; 1414: 1414: _Vp _M_base = _Vp(); 1414: [[no_unique_address]] 1414: __detail::__maybe_present_t, 1414: __detail::__non_propagating_cache>> _M_outer; 1414: [[no_unique_address]] 1414: __detail::__non_propagating_cache> _M_inner; 1414: 1414: public: 1414: join_view() requires default_initializable<_Vp> = default; 1414: 1414: constexpr explicit 1414: join_view(_Vp __base) 1414: : _M_base(std::move(__base)) 1414: { } 1414: 1414: constexpr _Vp 1414: base() const& requires copy_constructible<_Vp> 1414: { return _M_base; } 1414: 1414: constexpr _Vp 1414: base() && 1414: { return std::move(_M_base); } 1414: 1414: constexpr auto 1414: begin() 1414: { 1414: if constexpr (forward_range<_Vp>) 1414: { 1414: constexpr bool __use_const 1414: = (__detail::__simple_view<_Vp> 1414: && is_reference_v>); 1414: return _Iterator<__use_const>{this, ranges::begin(_M_base)}; 1414: } 1414: else 1414: { 1414: _M_outer = ranges::begin(_M_base); 1414: return _Iterator{this}; 1414: } 1414: } 1414: 1414: constexpr auto 1414: begin() const 1414: requires forward_range 1414: && is_reference_v> 1414: && input_range> 1414: { 1414: return _Iterator{this, ranges::begin(_M_base)}; 1414: } 1414: 1414: constexpr auto 1414: end() 1414: { 1414: if constexpr (forward_range<_Vp> && is_reference_v<_InnerRange> 1414: && forward_range<_InnerRange> 1414: && common_range<_Vp> && common_range<_InnerRange>) 1414: return _Iterator<__detail::__simple_view<_Vp>>{this, 1414: ranges::end(_M_base)}; 1414: else 1414: return _Sentinel<__detail::__simple_view<_Vp>>{this}; 1414: } 1414: 1414: constexpr auto 1414: end() const 1414: requires forward_range 1414: && is_reference_v> 1414: && input_range> 1414: { 1414: if constexpr (is_reference_v> 1414: && forward_range> 1414: && common_range 1414: && common_range>) 1414: return _Iterator{this, ranges::end(_M_base)}; 1414: else 1414: return _Sentinel{this}; 1414: } 1414: }; 1414: 1414: template 1414: explicit join_view(_Range&&) -> join_view>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: concept __can_join_view 1414: = requires { join_view>{std::declval<_Range>()}; }; 1414: } 1414: 1414: struct _Join : __adaptor::_RangeAdaptorClosure<_Join> 1414: { 1414: template 1414: requires __detail::__can_join_view<_Range> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r) const 1414: { 1414: 1414: 1414: return join_view>{std::forward<_Range>(__r)}; 1414: } 1414: 1414: static constexpr bool _S_has_simple_call_op = true; 1414: }; 1414: 1414: inline constexpr _Join join; 1414: } 1414: 1414: namespace __detail 1414: { 1414: template 1414: struct __require_constant; 1414: 1414: template 1414: concept __tiny_range = sized_range<_Range> 1414: && requires 1414: { typename __require_constant::size()>; } 1414: && (remove_reference_t<_Range>::size() <= 1); 1414: 1414: template 1414: struct __lazy_split_view_outer_iter_cat 1414: { }; 1414: 1414: template 1414: struct __lazy_split_view_outer_iter_cat<_Base> 1414: { using iterator_category = input_iterator_tag; }; 1414: 1414: template 1414: struct __lazy_split_view_inner_iter_cat 1414: { }; 1414: 1414: template 1414: struct __lazy_split_view_inner_iter_cat<_Base> 1414: { 1414: private: 1414: static constexpr auto 1414: _S_iter_cat() 1414: { 1414: using _Cat = typename iterator_traits>::iterator_category; 1414: if constexpr (derived_from<_Cat, forward_iterator_tag>) 1414: return forward_iterator_tag{}; 1414: else 1414: return _Cat{}; 1414: } 1414: public: 1414: using iterator_category = decltype(_S_iter_cat()); 1414: }; 1414: } 1414: 1414: template 1414: requires view<_Vp> && view<_Pattern> 1414: && indirectly_comparable, iterator_t<_Pattern>, 1414: ranges::equal_to> 1414: && (forward_range<_Vp> || __detail::__tiny_range<_Pattern>) 1414: class lazy_split_view : public view_interface> 1414: { 1414: private: 1414: template 1414: using _Base = __detail::__maybe_const_t<_Const, _Vp>; 1414: 1414: template 1414: struct _InnerIter; 1414: 1414: template 1414: struct _OuterIter 1414: : __detail::__lazy_split_view_outer_iter_cat<_Base<_Const>> 1414: { 1414: private: 1414: using _Parent = __detail::__maybe_const_t<_Const, lazy_split_view>; 1414: using _Base = lazy_split_view::_Base<_Const>; 1414: 1414: 1414: 1414: 1414: 1414: constexpr auto& 1414: __current() noexcept 1414: { 1414: if constexpr (forward_range<_Vp>) 1414: return _M_current; 1414: else 1414: return *_M_parent->_M_current; 1414: } 1414: 1414: constexpr auto& 1414: __current() const noexcept 1414: { 1414: if constexpr (forward_range<_Vp>) 1414: return _M_current; 1414: else 1414: return *_M_parent->_M_current; 1414: } 1414: 1414: _Parent* _M_parent = nullptr; 1414: 1414: [[no_unique_address]] 1414: __detail::__maybe_present_t, 1414: iterator_t<_Base>> _M_current 1414: = decltype(_M_current)(); 1414: bool _M_trailing_empty = false; 1414: 1414: public: 1414: using iterator_concept = __conditional_t, 1414: forward_iterator_tag, 1414: input_iterator_tag>; 1414: 1414: using difference_type = range_difference_t<_Base>; 1414: 1414: struct value_type : view_interface 1414: { 1414: private: 1414: _OuterIter _M_i = _OuterIter(); 1414: 1414: 1414: 1414: 1414: constexpr explicit 1414: value_type(_OuterIter __i) 1414: : _M_i(std::move(__i)) 1414: { } 1414: 1414: friend _OuterIter; 1414: 1414: public: 1414: constexpr _InnerIter<_Const> 1414: begin() const 1414: { return _InnerIter<_Const>{_M_i}; } 1414: 1414: constexpr default_sentinel_t 1414: end() const noexcept 1414: { return default_sentinel; } 1414: }; 1414: 1414: _OuterIter() = default; 1414: 1414: constexpr explicit 1414: _OuterIter(_Parent* __parent) requires (!forward_range<_Base>) 1414: : _M_parent(__parent) 1414: { } 1414: 1414: constexpr 1414: _OuterIter(_Parent* __parent, iterator_t<_Base> __current) 1414: requires forward_range<_Base> 1414: : _M_parent(__parent), 1414: _M_current(std::move(__current)) 1414: { } 1414: 1414: constexpr 1414: _OuterIter(_OuterIter __i) 1414: requires _Const 1414: && convertible_to, iterator_t<_Base>> 1414: : _M_parent(__i._M_parent), _M_current(std::move(__i._M_current)), 1414: _M_trailing_empty(__i._M_trailing_empty) 1414: { } 1414: 1414: constexpr value_type 1414: operator*() const 1414: { return value_type{*this}; } 1414: 1414: constexpr _OuterIter& 1414: operator++() 1414: { 1414: 1414: 1414: const auto __end = ranges::end(_M_parent->_M_base); 1414: if (__current() == __end) 1414: { 1414: _M_trailing_empty = false; 1414: return *this; 1414: } 1414: const auto [__pbegin, __pend] = subrange{_M_parent->_M_pattern}; 1414: if (__pbegin == __pend) 1414: ++__current(); 1414: else if constexpr (__detail::__tiny_range<_Pattern>) 1414: { 1414: __current() = ranges::find(std::move(__current()), __end, 1414: *__pbegin); 1414: if (__current() != __end) 1414: { 1414: ++__current(); 1414: if (__current() == __end) 1414: _M_trailing_empty = true; 1414: } 1414: } 1414: else 1414: do 1414: { 1414: auto [__b, __p] 1414: = ranges::mismatch(__current(), __end, __pbegin, __pend); 1414: if (__p == __pend) 1414: { 1414: __current() = __b; 1414: if (__current() == __end) 1414: _M_trailing_empty = true; 1414: break; 1414: } 1414: } while (++__current() != __end); 1414: return *this; 1414: } 1414: 1414: constexpr decltype(auto) 1414: operator++(int) 1414: { 1414: if constexpr (forward_range<_Base>) 1414: { 1414: auto __tmp = *this; 1414: ++*this; 1414: return __tmp; 1414: } 1414: else 1414: ++*this; 1414: } 1414: 1414: friend constexpr bool 1414: operator==(const _OuterIter& __x, const _OuterIter& __y) 1414: requires forward_range<_Base> 1414: { 1414: return __x._M_current == __y._M_current 1414: && __x._M_trailing_empty == __y._M_trailing_empty; 1414: } 1414: 1414: friend constexpr bool 1414: operator==(const _OuterIter& __x, default_sentinel_t) 1414: { 1414: return __x.__current() == ranges::end(__x._M_parent->_M_base) 1414: && !__x._M_trailing_empty; 1414: } 1414: 1414: friend _OuterIter; 1414: friend _InnerIter<_Const>; 1414: }; 1414: 1414: template 1414: struct _InnerIter 1414: : __detail::__lazy_split_view_inner_iter_cat<_Base<_Const>> 1414: { 1414: private: 1414: using _Base = lazy_split_view::_Base<_Const>; 1414: 1414: constexpr bool 1414: __at_end() const 1414: { 1414: auto [__pcur, __pend] = subrange{_M_i._M_parent->_M_pattern}; 1414: auto __end = ranges::end(_M_i._M_parent->_M_base); 1414: if constexpr (__detail::__tiny_range<_Pattern>) 1414: { 1414: const auto& __cur = _M_i_current(); 1414: if (__cur == __end) 1414: return true; 1414: if (__pcur == __pend) 1414: return _M_incremented; 1414: return *__cur == *__pcur; 1414: } 1414: else 1414: { 1414: auto __cur = _M_i_current(); 1414: if (__cur == __end) 1414: return true; 1414: if (__pcur == __pend) 1414: return _M_incremented; 1414: do 1414: { 1414: if (*__cur != *__pcur) 1414: return false; 1414: if (++__pcur == __pend) 1414: return true; 1414: } while (++__cur != __end); 1414: return false; 1414: } 1414: } 1414: 1414: constexpr auto& 1414: _M_i_current() noexcept 1414: { return _M_i.__current(); } 1414: 1414: constexpr auto& 1414: _M_i_current() const noexcept 1414: { return _M_i.__current(); } 1414: 1414: _OuterIter<_Const> _M_i = _OuterIter<_Const>(); 1414: bool _M_incremented = false; 1414: 1414: public: 1414: using iterator_concept 1414: = typename _OuterIter<_Const>::iterator_concept; 1414: 1414: using value_type = range_value_t<_Base>; 1414: using difference_type = range_difference_t<_Base>; 1414: 1414: _InnerIter() = default; 1414: 1414: constexpr explicit 1414: _InnerIter(_OuterIter<_Const> __i) 1414: : _M_i(std::move(__i)) 1414: { } 1414: 1414: constexpr const iterator_t<_Base>& 1414: base() const& noexcept 1414: { return _M_i_current(); } 1414: 1414: constexpr iterator_t<_Base> 1414: base() && requires forward_range<_Vp> 1414: { return std::move(_M_i_current()); } 1414: 1414: constexpr decltype(auto) 1414: operator*() const 1414: { return *_M_i_current(); } 1414: 1414: constexpr _InnerIter& 1414: operator++() 1414: { 1414: _M_incremented = true; 1414: if constexpr (!forward_range<_Base>) 1414: if constexpr (_Pattern::size() == 0) 1414: return *this; 1414: ++_M_i_current(); 1414: return *this; 1414: } 1414: 1414: constexpr decltype(auto) 1414: operator++(int) 1414: { 1414: if constexpr (forward_range<_Base>) 1414: { 1414: auto __tmp = *this; 1414: ++*this; 1414: return __tmp; 1414: } 1414: else 1414: ++*this; 1414: } 1414: 1414: friend constexpr bool 1414: operator==(const _InnerIter& __x, const _InnerIter& __y) 1414: requires forward_range<_Base> 1414: { return __x._M_i == __y._M_i; } 1414: 1414: friend constexpr bool 1414: operator==(const _InnerIter& __x, default_sentinel_t) 1414: { return __x.__at_end(); } 1414: 1414: friend constexpr decltype(auto) 1414: iter_move(const _InnerIter& __i) 1414: noexcept(noexcept(ranges::iter_move(__i._M_i_current()))) 1414: { return ranges::iter_move(__i._M_i_current()); } 1414: 1414: friend constexpr void 1414: iter_swap(const _InnerIter& __x, const _InnerIter& __y) 1414: noexcept(noexcept(ranges::iter_swap(__x._M_i_current(), 1414: __y._M_i_current()))) 1414: requires indirectly_swappable> 1414: { ranges::iter_swap(__x._M_i_current(), __y._M_i_current()); } 1414: }; 1414: 1414: _Vp _M_base = _Vp(); 1414: _Pattern _M_pattern = _Pattern(); 1414: [[no_unique_address]] 1414: __detail::__maybe_present_t, 1414: __detail::__non_propagating_cache>> _M_current; 1414: 1414: 1414: public: 1414: lazy_split_view() requires (default_initializable<_Vp> 1414: && default_initializable<_Pattern>) 1414: = default; 1414: 1414: constexpr explicit 1414: lazy_split_view(_Vp __base, _Pattern __pattern) 1414: : _M_base(std::move(__base)), _M_pattern(std::move(__pattern)) 1414: { } 1414: 1414: template 1414: requires constructible_from<_Vp, views::all_t<_Range>> 1414: && constructible_from<_Pattern, single_view>> 1414: constexpr explicit 1414: lazy_split_view(_Range&& __r, range_value_t<_Range> __e) 1414: : _M_base(views::all(std::forward<_Range>(__r))), 1414: _M_pattern(views::single(std::move(__e))) 1414: { } 1414: 1414: constexpr _Vp 1414: base() const& requires copy_constructible<_Vp> 1414: { return _M_base; } 1414: 1414: constexpr _Vp 1414: base() && 1414: { return std::move(_M_base); } 1414: 1414: constexpr auto 1414: begin() 1414: { 1414: if constexpr (forward_range<_Vp>) 1414: { 1414: constexpr bool __simple 1414: = __detail::__simple_view<_Vp> && __detail::__simple_view<_Pattern>; 1414: return _OuterIter<__simple>{this, ranges::begin(_M_base)}; 1414: } 1414: else 1414: { 1414: _M_current = ranges::begin(_M_base); 1414: return _OuterIter{this}; 1414: } 1414: } 1414: 1414: 1414: 1414: 1414: constexpr auto 1414: begin() const requires forward_range<_Vp> && forward_range 1414: && forward_range 1414: { 1414: return _OuterIter{this, ranges::begin(_M_base)}; 1414: } 1414: 1414: constexpr auto 1414: end() requires forward_range<_Vp> && common_range<_Vp> 1414: { 1414: constexpr bool __simple 1414: = __detail::__simple_view<_Vp> && __detail::__simple_view<_Pattern>; 1414: return _OuterIter<__simple>{this, ranges::end(_M_base)}; 1414: } 1414: 1414: constexpr auto 1414: end() const 1414: { 1414: if constexpr (forward_range<_Vp> 1414: && forward_range 1414: && common_range 1414: && forward_range) 1414: return _OuterIter{this, ranges::end(_M_base)}; 1414: else 1414: return default_sentinel; 1414: } 1414: }; 1414: 1414: template 1414: lazy_split_view(_Range&&, _Pattern&&) 1414: -> lazy_split_view, views::all_t<_Pattern>>; 1414: 1414: template 1414: lazy_split_view(_Range&&, range_value_t<_Range>) 1414: -> lazy_split_view, single_view>>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: concept __can_lazy_split_view 1414: = requires { lazy_split_view(std::declval<_Range>(), std::declval<_Pattern>()); }; 1414: } 1414: 1414: struct _LazySplit : __adaptor::_RangeAdaptor<_LazySplit> 1414: { 1414: template 1414: requires __detail::__can_lazy_split_view<_Range, _Pattern> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r, _Pattern&& __f) const 1414: { 1414: return lazy_split_view(std::forward<_Range>(__r), std::forward<_Pattern>(__f)); 1414: } 1414: 1414: using _RangeAdaptor<_LazySplit>::operator(); 1414: static constexpr int _S_arity = 2; 1414: 1414: 1414: 1414: 1414: template 1414: static constexpr bool _S_has_simple_extra_args 1414: = is_scalar_v<_Pattern> || (view<_Pattern> 1414: && copy_constructible<_Pattern>); 1414: }; 1414: 1414: inline constexpr _LazySplit lazy_split; 1414: } 1414: 1414: template 1414: requires view<_Vp> && view<_Pattern> 1414: && indirectly_comparable, iterator_t<_Pattern>, 1414: ranges::equal_to> 1414: class split_view : public view_interface> 1414: { 1414: private: 1414: _Vp _M_base = _Vp(); 1414: _Pattern _M_pattern = _Pattern(); 1414: __detail::__non_propagating_cache>> _M_cached_begin; 1414: 1414: struct _Iterator; 1414: struct _Sentinel; 1414: 1414: public: 1414: split_view() requires (default_initializable<_Vp> 1414: && default_initializable<_Pattern>) 1414: = default; 1414: 1414: constexpr explicit 1414: split_view(_Vp __base, _Pattern __pattern) 1414: : _M_base(std::move(__base)), _M_pattern(std::move(__pattern)) 1414: { } 1414: 1414: template 1414: requires constructible_from<_Vp, views::all_t<_Range>> 1414: && constructible_from<_Pattern, single_view>> 1414: constexpr explicit 1414: split_view(_Range&& __r, range_value_t<_Range> __e) 1414: : _M_base(views::all(std::forward<_Range>(__r))), 1414: _M_pattern(views::single(std::move(__e))) 1414: { } 1414: 1414: constexpr _Vp 1414: base() const& requires copy_constructible<_Vp> 1414: { return _M_base; } 1414: 1414: constexpr _Vp 1414: base() && 1414: { return std::move(_M_base); } 1414: 1414: constexpr _Iterator 1414: begin() 1414: { 1414: if (!_M_cached_begin) 1414: _M_cached_begin = _M_find_next(ranges::begin(_M_base)); 1414: return {this, ranges::begin(_M_base), *_M_cached_begin}; 1414: } 1414: 1414: constexpr auto 1414: end() 1414: { 1414: if constexpr (common_range<_Vp>) 1414: return _Iterator{this, ranges::end(_M_base), {}}; 1414: else 1414: return _Sentinel{this}; 1414: } 1414: 1414: constexpr subrange> 1414: _M_find_next(iterator_t<_Vp> __it) 1414: { 1414: auto [__b, __e] = ranges::search(subrange(__it, ranges::end(_M_base)), _M_pattern); 1414: if (__b != ranges::end(_M_base) && ranges::empty(_M_pattern)) 1414: { 1414: ++__b; 1414: ++__e; 1414: } 1414: return {__b, __e}; 1414: } 1414: 1414: private: 1414: struct _Iterator 1414: { 1414: private: 1414: split_view* _M_parent = nullptr; 1414: iterator_t<_Vp> _M_cur = iterator_t<_Vp>(); 1414: subrange> _M_next = subrange>(); 1414: bool _M_trailing_empty = false; 1414: 1414: friend struct _Sentinel; 1414: 1414: public: 1414: using iterator_concept = forward_iterator_tag; 1414: using iterator_category = input_iterator_tag; 1414: using value_type = subrange>; 1414: using difference_type = range_difference_t<_Vp>; 1414: 1414: _Iterator() = default; 1414: 1414: constexpr 1414: _Iterator(split_view* __parent, 1414: iterator_t<_Vp> __current, 1414: subrange> __next) 1414: : _M_parent(__parent), 1414: _M_cur(std::move(__current)), 1414: _M_next(std::move(__next)) 1414: { } 1414: 1414: constexpr iterator_t<_Vp> 1414: base() const 1414: { return _M_cur; } 1414: 1414: constexpr value_type 1414: operator*() const 1414: { return {_M_cur, _M_next.begin()}; } 1414: 1414: constexpr _Iterator& 1414: operator++() 1414: { 1414: _M_cur = _M_next.begin(); 1414: if (_M_cur != ranges::end(_M_parent->_M_base)) 1414: { 1414: _M_cur = _M_next.end(); 1414: if (_M_cur == ranges::end(_M_parent->_M_base)) 1414: { 1414: _M_trailing_empty = true; 1414: _M_next = {_M_cur, _M_cur}; 1414: } 1414: else 1414: _M_next = _M_parent->_M_find_next(_M_cur); 1414: } 1414: else 1414: _M_trailing_empty = false; 1414: return *this; 1414: } 1414: 1414: constexpr _Iterator 1414: operator++(int) 1414: { 1414: auto __tmp = *this; 1414: ++*this; 1414: return __tmp; 1414: } 1414: 1414: friend constexpr bool 1414: operator==(const _Iterator& __x, const _Iterator& __y) 1414: { 1414: return __x._M_cur == __y._M_cur 1414: && __x._M_trailing_empty == __y._M_trailing_empty; 1414: } 1414: }; 1414: 1414: struct _Sentinel 1414: { 1414: private: 1414: sentinel_t<_Vp> _M_end = sentinel_t<_Vp>(); 1414: 1414: public: 1414: _Sentinel() = default; 1414: 1414: constexpr explicit 1414: _Sentinel(split_view* __parent) 1414: : _M_end(ranges::end(__parent->_M_base)) 1414: { } 1414: 1414: friend constexpr bool 1414: operator==(const _Iterator& __x, const _Sentinel& __y) 1414: { return __x._M_cur == __y._M_end && !__x._M_trailing_empty; } 1414: }; 1414: }; 1414: 1414: template 1414: split_view(_Range&&, _Pattern&&) 1414: -> split_view, views::all_t<_Pattern>>; 1414: 1414: template 1414: split_view(_Range&&, range_value_t<_Range>) 1414: -> split_view, single_view>>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: concept __can_split_view 1414: = requires { split_view(std::declval<_Range>(), std::declval<_Pattern>()); }; 1414: } 1414: 1414: struct _Split : __adaptor::_RangeAdaptor<_Split> 1414: { 1414: template 1414: requires __detail::__can_split_view<_Range, _Pattern> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r, _Pattern&& __f) const 1414: { 1414: return split_view(std::forward<_Range>(__r), std::forward<_Pattern>(__f)); 1414: } 1414: 1414: using _RangeAdaptor<_Split>::operator(); 1414: static constexpr int _S_arity = 2; 1414: template 1414: static constexpr bool _S_has_simple_extra_args 1414: = _LazySplit::_S_has_simple_extra_args<_Pattern>; 1414: }; 1414: 1414: inline constexpr _Split split; 1414: } 1414: 1414: namespace views 1414: { 1414: struct _Counted 1414: { 1414: template 1414: constexpr auto 1414: operator() [[nodiscard]] (_Iter __i, iter_difference_t<_Iter> __n) const 1414: { 1414: if constexpr (contiguous_iterator<_Iter>) 1414: return span(std::to_address(__i), __n); 1414: else if constexpr (random_access_iterator<_Iter>) 1414: return subrange(__i, __i + __n); 1414: else 1414: return subrange(counted_iterator(std::move(__i), __n), 1414: default_sentinel); 1414: } 1414: }; 1414: 1414: inline constexpr _Counted counted{}; 1414: } 1414: 1414: template 1414: requires (!common_range<_Vp>) && copyable> 1414: class common_view : public view_interface> 1414: { 1414: private: 1414: _Vp _M_base = _Vp(); 1414: 1414: public: 1414: common_view() requires default_initializable<_Vp> = default; 1414: 1414: constexpr explicit 1414: common_view(_Vp __r) 1414: : _M_base(std::move(__r)) 1414: { } 1414: 1414: constexpr _Vp 1414: base() const& requires copy_constructible<_Vp> 1414: { return _M_base; } 1414: 1414: constexpr _Vp 1414: base() && 1414: { return std::move(_M_base); } 1414: 1414: 1414: 1414: constexpr auto 1414: begin() requires (!__detail::__simple_view<_Vp>) 1414: { 1414: if constexpr (random_access_range<_Vp> && sized_range<_Vp>) 1414: return ranges::begin(_M_base); 1414: else 1414: return common_iterator, sentinel_t<_Vp>> 1414: (ranges::begin(_M_base)); 1414: } 1414: 1414: constexpr auto 1414: begin() const requires range 1414: { 1414: if constexpr (random_access_range && sized_range) 1414: return ranges::begin(_M_base); 1414: else 1414: return common_iterator, sentinel_t> 1414: (ranges::begin(_M_base)); 1414: } 1414: 1414: constexpr auto 1414: end() requires (!__detail::__simple_view<_Vp>) 1414: { 1414: if constexpr (random_access_range<_Vp> && sized_range<_Vp>) 1414: return ranges::begin(_M_base) + ranges::size(_M_base); 1414: else 1414: return common_iterator, sentinel_t<_Vp>> 1414: (ranges::end(_M_base)); 1414: } 1414: 1414: constexpr auto 1414: end() const requires range 1414: { 1414: if constexpr (random_access_range && sized_range) 1414: return ranges::begin(_M_base) + ranges::size(_M_base); 1414: else 1414: return common_iterator, sentinel_t> 1414: (ranges::end(_M_base)); 1414: } 1414: 1414: constexpr auto 1414: size() requires sized_range<_Vp> 1414: { return ranges::size(_M_base); } 1414: 1414: constexpr auto 1414: size() const requires sized_range 1414: { return ranges::size(_M_base); } 1414: }; 1414: 1414: template 1414: common_view(_Range&&) -> common_view>; 1414: 1414: template 1414: inline constexpr bool enable_borrowed_range> 1414: = enable_borrowed_range<_Tp>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: concept __already_common = common_range<_Range> 1414: && requires { views::all(std::declval<_Range>()); }; 1414: 1414: template 1414: concept __can_common_view 1414: = requires { common_view{std::declval<_Range>()}; }; 1414: } 1414: 1414: struct _Common : __adaptor::_RangeAdaptorClosure<_Common> 1414: { 1414: template 1414: requires __detail::__already_common<_Range> 1414: || __detail::__can_common_view<_Range> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r) const 1414: { 1414: if constexpr (__detail::__already_common<_Range>) 1414: return views::all(std::forward<_Range>(__r)); 1414: else 1414: return common_view{std::forward<_Range>(__r)}; 1414: } 1414: 1414: static constexpr bool _S_has_simple_call_op = true; 1414: }; 1414: 1414: inline constexpr _Common common; 1414: } 1414: 1414: template 1414: requires bidirectional_range<_Vp> 1414: class reverse_view : public view_interface> 1414: { 1414: private: 1414: static constexpr bool _S_needs_cached_begin 1414: = !common_range<_Vp> && !(random_access_range<_Vp> 1414: && sized_sentinel_for, 1414: iterator_t<_Vp>>); 1414: 1414: _Vp _M_base = _Vp(); 1414: [[no_unique_address]] 1414: __detail::__maybe_present_t<_S_needs_cached_begin, 1414: __detail::_CachedPosition<_Vp>> 1414: _M_cached_begin; 1414: 1414: public: 1414: reverse_view() requires default_initializable<_Vp> = default; 1414: 1414: constexpr explicit 1414: reverse_view(_Vp __r) 1414: : _M_base(std::move(__r)) 1414: { } 1414: 1414: constexpr _Vp 1414: base() const& requires copy_constructible<_Vp> 1414: { return _M_base; } 1414: 1414: constexpr _Vp 1414: base() && 1414: { return std::move(_M_base); } 1414: 1414: constexpr reverse_iterator> 1414: begin() 1414: { 1414: if constexpr (_S_needs_cached_begin) 1414: if (_M_cached_begin._M_has_value()) 1414: return std::make_reverse_iterator(_M_cached_begin._M_get(_M_base)); 1414: 1414: auto __it = ranges::next(ranges::begin(_M_base), ranges::end(_M_base)); 1414: if constexpr (_S_needs_cached_begin) 1414: _M_cached_begin._M_set(_M_base, __it); 1414: return std::make_reverse_iterator(std::move(__it)); 1414: } 1414: 1414: constexpr auto 1414: begin() requires common_range<_Vp> 1414: { return std::make_reverse_iterator(ranges::end(_M_base)); } 1414: 1414: constexpr auto 1414: begin() const requires common_range 1414: { return std::make_reverse_iterator(ranges::end(_M_base)); } 1414: 1414: constexpr reverse_iterator> 1414: end() 1414: { return std::make_reverse_iterator(ranges::begin(_M_base)); } 1414: 1414: constexpr auto 1414: end() const requires common_range 1414: { return std::make_reverse_iterator(ranges::begin(_M_base)); } 1414: 1414: constexpr auto 1414: size() requires sized_range<_Vp> 1414: { return ranges::size(_M_base); } 1414: 1414: constexpr auto 1414: size() const requires sized_range 1414: { return ranges::size(_M_base); } 1414: }; 1414: 1414: template 1414: reverse_view(_Range&&) -> reverse_view>; 1414: 1414: template 1414: inline constexpr bool enable_borrowed_range> 1414: = enable_borrowed_range<_Tp>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: inline constexpr bool __is_reversible_subrange = false; 1414: 1414: template 1414: inline constexpr bool 1414: __is_reversible_subrange, 1414: reverse_iterator<_Iter>, 1414: _Kind>> = true; 1414: 1414: template 1414: inline constexpr bool __is_reverse_view = false; 1414: 1414: template 1414: inline constexpr bool __is_reverse_view> = true; 1414: 1414: template 1414: concept __can_reverse_view 1414: = requires { reverse_view{std::declval<_Range>()}; }; 1414: } 1414: 1414: struct _Reverse : __adaptor::_RangeAdaptorClosure<_Reverse> 1414: { 1414: template 1414: requires __detail::__is_reverse_view> 1414: || __detail::__is_reversible_subrange> 1414: || __detail::__can_reverse_view<_Range> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r) const 1414: { 1414: using _Tp = remove_cvref_t<_Range>; 1414: if constexpr (__detail::__is_reverse_view<_Tp>) 1414: return std::forward<_Range>(__r).base(); 1414: 1414: 1414: 1414: 1414: else if constexpr (__detail::__is_reversible_subrange<_Tp>) 1414: { 1414: using _Iter = decltype(ranges::begin(__r).base()); 1414: if constexpr (sized_range<_Tp>) 1414: return subrange<_Iter, _Iter, subrange_kind::sized> 1414: {__r.end().base(), __r.begin().base(), __r.size()}; 1414: else 1414: return subrange<_Iter, _Iter, subrange_kind::unsized> 1414: {__r.end().base(), __r.begin().base()}; 1414: } 1414: else 1414: return reverse_view{std::forward<_Range>(__r)}; 1414: } 1414: 1414: static constexpr bool _S_has_simple_call_op = true; 1414: }; 1414: 1414: inline constexpr _Reverse reverse; 1414: } 1414: 1414: namespace __detail 1414: { 1414: 1414: 1414: 1414: 1414: template 1414: concept __has_tuple_element = requires(_Tp __t) 1414: { 1414: typename tuple_size<_Tp>::type; 1414: requires _Nm < tuple_size_v<_Tp>; 1414: typename tuple_element_t<_Nm, _Tp>; 1414: { std::get<_Nm>(__t) } 1414: -> convertible_to&>; 1414: }; 1414: 1414: 1414: template 1414: concept __returnable_element 1414: = is_reference_v<_Tp> || move_constructible>; 1414: } 1414: 1414: template 1414: requires view<_Vp> 1414: && __detail::__has_tuple_element, _Nm> 1414: && __detail::__has_tuple_element>, 1414: _Nm> 1414: && __detail::__returnable_element, _Nm> 1414: class elements_view : public view_interface> 1414: { 1414: public: 1414: elements_view() requires default_initializable<_Vp> = default; 1414: 1414: constexpr explicit 1414: elements_view(_Vp __base) 1414: : _M_base(std::move(__base)) 1414: { } 1414: 1414: constexpr _Vp 1414: base() const& requires copy_constructible<_Vp> 1414: { return _M_base; } 1414: 1414: constexpr _Vp 1414: base() && 1414: { return std::move(_M_base); } 1414: 1414: constexpr auto 1414: begin() requires (!__detail::__simple_view<_Vp>) 1414: { return _Iterator(ranges::begin(_M_base)); } 1414: 1414: constexpr auto 1414: begin() const requires range 1414: { return _Iterator(ranges::begin(_M_base)); } 1414: 1414: constexpr auto 1414: end() requires (!__detail::__simple_view<_Vp> && !common_range<_Vp>) 1414: { return _Sentinel{ranges::end(_M_base)}; } 1414: 1414: constexpr auto 1414: end() requires (!__detail::__simple_view<_Vp> && common_range<_Vp>) 1414: { return _Iterator{ranges::end(_M_base)}; } 1414: 1414: constexpr auto 1414: end() const requires range 1414: { return _Sentinel{ranges::end(_M_base)}; } 1414: 1414: constexpr auto 1414: end() const requires common_range 1414: { return _Iterator{ranges::end(_M_base)}; } 1414: 1414: constexpr auto 1414: size() requires sized_range<_Vp> 1414: { return ranges::size(_M_base); } 1414: 1414: constexpr auto 1414: size() const requires sized_range 1414: { return ranges::size(_M_base); } 1414: 1414: private: 1414: template 1414: using _Base = __detail::__maybe_const_t<_Const, _Vp>; 1414: 1414: template 1414: struct __iter_cat 1414: { }; 1414: 1414: template 1414: requires forward_range<_Base<_Const>> 1414: struct __iter_cat<_Const> 1414: { 1414: private: 1414: static auto _S_iter_cat() 1414: { 1414: using _Base = elements_view::_Base<_Const>; 1414: using _Cat = typename iterator_traits>::iterator_category; 1414: using _Res = decltype((std::get<_Nm>(*std::declval>()))); 1414: if constexpr (!is_lvalue_reference_v<_Res>) 1414: return input_iterator_tag{}; 1414: else if constexpr (derived_from<_Cat, random_access_iterator_tag>) 1414: return random_access_iterator_tag{}; 1414: else 1414: return _Cat{}; 1414: } 1414: public: 1414: using iterator_category = decltype(_S_iter_cat()); 1414: }; 1414: 1414: template 1414: struct _Sentinel; 1414: 1414: template 1414: struct _Iterator : __iter_cat<_Const> 1414: { 1414: private: 1414: using _Base = elements_view::_Base<_Const>; 1414: 1414: iterator_t<_Base> _M_current = iterator_t<_Base>(); 1414: 1414: static constexpr decltype(auto) 1414: _S_get_element(const iterator_t<_Base>& __i) 1414: { 1414: if constexpr (is_reference_v>) 1414: return std::get<_Nm>(*__i); 1414: else 1414: { 1414: using _Et = remove_cv_t>>; 1414: return static_cast<_Et>(std::get<_Nm>(*__i)); 1414: } 1414: } 1414: 1414: static auto 1414: _S_iter_concept() 1414: { 1414: if constexpr (random_access_range<_Base>) 1414: return random_access_iterator_tag{}; 1414: else if constexpr (bidirectional_range<_Base>) 1414: return bidirectional_iterator_tag{}; 1414: else if constexpr (forward_range<_Base>) 1414: return forward_iterator_tag{}; 1414: else 1414: return input_iterator_tag{}; 1414: } 1414: 1414: friend _Iterator; 1414: 1414: public: 1414: using iterator_concept = decltype(_S_iter_concept()); 1414: 1414: using value_type 1414: = remove_cvref_t>>; 1414: using difference_type = range_difference_t<_Base>; 1414: 1414: _Iterator() requires default_initializable> = default; 1414: 1414: constexpr explicit 1414: _Iterator(iterator_t<_Base> __current) 1414: : _M_current(std::move(__current)) 1414: { } 1414: 1414: constexpr 1414: _Iterator(_Iterator __i) 1414: requires _Const && convertible_to, iterator_t<_Base>> 1414: : _M_current(std::move(__i._M_current)) 1414: { } 1414: 1414: constexpr const iterator_t<_Base>& 1414: base() const& noexcept 1414: { return _M_current; } 1414: 1414: constexpr iterator_t<_Base> 1414: base() && 1414: { return std::move(_M_current); } 1414: 1414: constexpr decltype(auto) 1414: operator*() const 1414: { return _S_get_element(_M_current); } 1414: 1414: constexpr _Iterator& 1414: operator++() 1414: { 1414: ++_M_current; 1414: return *this; 1414: } 1414: 1414: constexpr void 1414: operator++(int) 1414: { ++_M_current; } 1414: 1414: constexpr _Iterator 1414: operator++(int) requires forward_range<_Base> 1414: { 1414: auto __tmp = *this; 1414: ++_M_current; 1414: return __tmp; 1414: } 1414: 1414: constexpr _Iterator& 1414: operator--() requires bidirectional_range<_Base> 1414: { 1414: --_M_current; 1414: return *this; 1414: } 1414: 1414: constexpr _Iterator 1414: operator--(int) requires bidirectional_range<_Base> 1414: { 1414: auto __tmp = *this; 1414: --_M_current; 1414: return __tmp; 1414: } 1414: 1414: constexpr _Iterator& 1414: operator+=(difference_type __n) 1414: requires random_access_range<_Base> 1414: { 1414: _M_current += __n; 1414: return *this; 1414: } 1414: 1414: constexpr _Iterator& 1414: operator-=(difference_type __n) 1414: requires random_access_range<_Base> 1414: { 1414: _M_current -= __n; 1414: return *this; 1414: } 1414: 1414: constexpr decltype(auto) 1414: operator[](difference_type __n) const 1414: requires random_access_range<_Base> 1414: { return _S_get_element(_M_current + __n); } 1414: 1414: friend constexpr bool 1414: operator==(const _Iterator& __x, const _Iterator& __y) 1414: requires equality_comparable> 1414: { return __x._M_current == __y._M_current; } 1414: 1414: friend constexpr bool 1414: operator<(const _Iterator& __x, const _Iterator& __y) 1414: requires random_access_range<_Base> 1414: { return __x._M_current < __y._M_current; } 1414: 1414: friend constexpr bool 1414: operator>(const _Iterator& __x, const _Iterator& __y) 1414: requires random_access_range<_Base> 1414: { return __y._M_current < __x._M_current; } 1414: 1414: friend constexpr bool 1414: operator<=(const _Iterator& __x, const _Iterator& __y) 1414: requires random_access_range<_Base> 1414: { return !(__y._M_current > __x._M_current); } 1414: 1414: friend constexpr bool 1414: operator>=(const _Iterator& __x, const _Iterator& __y) 1414: requires random_access_range<_Base> 1414: { return !(__x._M_current > __y._M_current); } 1414: 1414: 1414: friend constexpr auto 1414: operator<=>(const _Iterator& __x, const _Iterator& __y) 1414: requires random_access_range<_Base> 1414: && three_way_comparable> 1414: { return __x._M_current <=> __y._M_current; } 1414: 1414: 1414: friend constexpr _Iterator 1414: operator+(const _Iterator& __x, difference_type __y) 1414: requires random_access_range<_Base> 1414: { return _Iterator{__x} += __y; } 1414: 1414: friend constexpr _Iterator 1414: operator+(difference_type __x, const _Iterator& __y) 1414: requires random_access_range<_Base> 1414: { return __y + __x; } 1414: 1414: friend constexpr _Iterator 1414: operator-(const _Iterator& __x, difference_type __y) 1414: requires random_access_range<_Base> 1414: { return _Iterator{__x} -= __y; } 1414: 1414: 1414: 1414: friend constexpr difference_type 1414: operator-(const _Iterator& __x, const _Iterator& __y) 1414: requires sized_sentinel_for, iterator_t<_Base>> 1414: { return __x._M_current - __y._M_current; } 1414: 1414: template friend struct _Sentinel; 1414: }; 1414: 1414: template 1414: struct _Sentinel 1414: { 1414: private: 1414: using _Base = elements_view::_Base<_Const>; 1414: sentinel_t<_Base> _M_end = sentinel_t<_Base>(); 1414: 1414: public: 1414: _Sentinel() = default; 1414: 1414: constexpr explicit 1414: _Sentinel(sentinel_t<_Base> __end) 1414: : _M_end(std::move(__end)) 1414: { } 1414: 1414: constexpr 1414: _Sentinel(_Sentinel __other) 1414: requires _Const 1414: && convertible_to, sentinel_t<_Base>> 1414: : _M_end(std::move(__other._M_end)) 1414: { } 1414: 1414: constexpr sentinel_t<_Base> 1414: base() const 1414: { return _M_end; } 1414: 1414: template 1414: requires sentinel_for, 1414: iterator_t<__detail::__maybe_const_t<_Const2, _Vp>>> 1414: friend constexpr bool 1414: operator==(const _Iterator<_Const2>& __x, const _Sentinel& __y) 1414: { return __x._M_current == __y._M_end; } 1414: 1414: template> 1414: requires sized_sentinel_for, iterator_t<_Base2>> 1414: friend constexpr range_difference_t<_Base2> 1414: operator-(const _Iterator<_Const2>& __x, const _Sentinel& __y) 1414: { return -(__y._M_end - __x._M_current); } 1414: 1414: template> 1414: requires sized_sentinel_for, iterator_t<_Base2>> 1414: friend constexpr range_difference_t<_Base2> 1414: operator-(const _Sentinel& __x, const _Iterator<_Const2>& __y) 1414: { return __x._M_end - __y._M_current; } 1414: 1414: friend _Sentinel; 1414: }; 1414: 1414: _Vp _M_base = _Vp(); 1414: }; 1414: 1414: template 1414: inline constexpr bool enable_borrowed_range> 1414: = enable_borrowed_range<_Tp>; 1414: 1414: 1414: 1414: template 1414: using keys_view = elements_view<_Range, 0>; 1414: 1414: template 1414: using values_view = elements_view<_Range, 1>; 1414: 1414: namespace views 1414: { 1414: namespace __detail 1414: { 1414: template 1414: concept __can_elements_view 1414: = requires { elements_view, _Nm>{std::declval<_Range>()}; }; 1414: } 1414: 1414: template 1414: struct _Elements : __adaptor::_RangeAdaptorClosure<_Elements<_Nm>> 1414: { 1414: template 1414: requires __detail::__can_elements_view<_Nm, _Range> 1414: constexpr auto 1414: operator() [[nodiscard]] (_Range&& __r) const 1414: { 1414: return elements_view, _Nm>{std::forward<_Range>(__r)}; 1414: } 1414: 1414: static constexpr bool _S_has_simple_call_op = true; 1414: }; 1414: 1414: template 1414: inline constexpr _Elements<_Nm> elements; 1414: inline constexpr auto keys = elements<0>; 1414: inline constexpr auto values = elements<1>; 1414: } 1414: # 9519 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 3 1414: } 1414: 1414: namespace views = ranges::views; 1414: # 10714 "/usr/arm-linux-gnueabihf/include/c++/16/ranges" 3 1414: 1414: } 1414: # 14 "build/include/public/botan/range_concepts.h" 2 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/utility" 1 3 1414: # 70 "/usr/arm-linux-gnueabihf/include/c++/16/utility" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_relops.h" 1 3 1414: # 62 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_relops.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: namespace rel_ops __attribute__ ((__deprecated__ ("use '" "<=>" "' instead"))) 1414: { 1414: # 86 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_relops.h" 3 1414: template 1414: inline bool 1414: operator!=(const _Tp& __x, const _Tp& __y) 1414: { return !(__x == __y); } 1414: # 99 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_relops.h" 3 1414: template 1414: inline bool 1414: operator>(const _Tp& __x, const _Tp& __y) 1414: { return __y < __x; } 1414: # 112 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_relops.h" 3 1414: template 1414: inline bool 1414: operator<=(const _Tp& __x, const _Tp& __y) 1414: { return !(__y < __x); } 1414: # 125 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_relops.h" 3 1414: template 1414: inline bool 1414: operator>=(const _Tp& __x, const _Tp& __y) 1414: { return !(__x < __y); } 1414: } 1414: 1414: 1414: } 1414: # 71 "/usr/arm-linux-gnueabihf/include/c++/16/utility" 2 3 1414: # 81 "/usr/arm-linux-gnueabihf/include/c++/16/utility" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/intcmp.h" 1 3 1414: # 37 "/usr/arm-linux-gnueabihf/include/c++/16/bits/intcmp.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/c++/16/bits/intcmp.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: template 1414: constexpr bool 1414: cmp_equal(_Tp __t, _Up __u) noexcept 1414: { 1414: static_assert(__is_signed_or_unsigned_integer<_Tp>::value); 1414: static_assert(__is_signed_or_unsigned_integer<_Up>::value); 1414: 1414: if constexpr (is_signed_v<_Tp> == is_signed_v<_Up>) 1414: return __t == __u; 1414: else if constexpr (is_signed_v<_Tp>) 1414: return __t >= 0 && make_unsigned_t<_Tp>(__t) == __u; 1414: else 1414: return __u >= 0 && __t == make_unsigned_t<_Up>(__u); 1414: } 1414: 1414: template 1414: constexpr bool 1414: cmp_not_equal(_Tp __t, _Up __u) noexcept 1414: { return !std::cmp_equal(__t, __u); } 1414: 1414: template 1414: constexpr bool 1414: cmp_less(_Tp __t, _Up __u) noexcept 1414: { 1414: static_assert(__is_signed_or_unsigned_integer<_Tp>::value); 1414: static_assert(__is_signed_or_unsigned_integer<_Up>::value); 1414: 1414: if constexpr (is_signed_v<_Tp> == is_signed_v<_Up>) 1414: return __t < __u; 1414: else if constexpr (is_signed_v<_Tp>) 1414: return __t < 0 || make_unsigned_t<_Tp>(__t) < __u; 1414: else 1414: return __u >= 0 && __t < make_unsigned_t<_Up>(__u); 1414: } 1414: 1414: template 1414: constexpr bool 1414: cmp_greater(_Tp __t, _Up __u) noexcept 1414: { return std::cmp_less(__u, __t); } 1414: 1414: template 1414: constexpr bool 1414: cmp_less_equal(_Tp __t, _Up __u) noexcept 1414: { return !std::cmp_less(__u, __t); } 1414: 1414: template 1414: constexpr bool 1414: cmp_greater_equal(_Tp __t, _Up __u) noexcept 1414: { return !std::cmp_less(__t, __u); } 1414: 1414: template 1414: constexpr bool 1414: in_range(_Tp __t) noexcept 1414: { 1414: static_assert(__is_signed_or_unsigned_integer<_Res>::value); 1414: static_assert(__is_signed_or_unsigned_integer<_Tp>::value); 1414: using __gnu_cxx::__int_traits; 1414: 1414: if constexpr (is_signed_v<_Tp> == is_signed_v<_Res>) 1414: return __int_traits<_Res>::__min <= __t 1414: && __t <= __int_traits<_Res>::__max; 1414: else if constexpr (is_signed_v<_Tp>) 1414: return __t >= 0 1414: && make_unsigned_t<_Tp>(__t) <= __int_traits<_Res>::__max; 1414: else 1414: return __t <= make_unsigned_t<_Res>(__int_traits<_Res>::__max); 1414: } 1414: 1414: 1414: } 1414: # 82 "/usr/arm-linux-gnueabihf/include/c++/16/utility" 2 3 1414: # 105 "/usr/arm-linux-gnueabihf/include/c++/16/utility" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 106 "/usr/arm-linux-gnueabihf/include/c++/16/utility" 2 3 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: 1414: template 1414: constexpr 1414: inline _Tp 1414: exchange(_Tp& __obj, _Up&& __new_val) 1414: noexcept(__and_, 1414: is_nothrow_assignable<_Tp&, _Up>>::value) 1414: { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } 1414: 1414: 1414: 1414: template 1414: [[nodiscard]] 1414: constexpr add_const_t<_Tp>& 1414: as_const(_Tp& __t) noexcept 1414: { return __t; } 1414: 1414: template 1414: void as_const(const _Tp&&) = delete; 1414: # 187 "/usr/arm-linux-gnueabihf/include/c++/16/utility" 3 1414: 1414: } 1414: # 16 "build/include/public/botan/range_concepts.h" 2 1414: 1414: 1414: 1414: 1414: # 19 "build/include/public/botan/range_concepts.h" 1414: namespace Botan::ranges { 1414: 1414: 1414: 1414: 1414: 1414: 1414: template > 1414: concept contiguous_range = std::ranges::contiguous_range && std::same_as>; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template > 1414: concept contiguous_output_range = contiguous_range && std::ranges::output_range; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: concept spanable_range = std::constructible_from>, T>; 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: concept statically_spanable_range = spanable_range && 1414: decltype(std::span{std::declval()})::extent != std::dynamic_extent; 1414: 1414: 1414: 1414: 1414: 1414: 1414: inline constexpr size_t size_bytes(const spanable_range auto& r) { 1414: return std::span{r}.size_bytes(); 1414: } 1414: 1414: 1414: 1414: 1414: [[noreturn]] void __attribute__((visibility("default"))) memory_region_size_violation(); 1414: # 76 "build/include/public/botan/range_concepts.h" 1414: template 1414: inline constexpr void assert_exact_byte_length(const R& r) { 1414: const std::span s{r}; 1414: if constexpr(statically_spanable_range) { 1414: static_assert(s.size_bytes() == expected, "memory region does not have expected byte lengths"); 1414: } else { 1414: if(s.size_bytes() != expected) { 1414: memory_region_size_violation(); 1414: } 1414: } 1414: } 1414: # 97 "build/include/public/botan/range_concepts.h" 1414: template 1414: inline constexpr void assert_equal_byte_lengths(const R0& r0, const Rs&... rs) 1414: requires(sizeof...(Rs) > 0) 1414: { 1414: const std::span s0{r0}; 1414: 1414: if constexpr(statically_spanable_range) { 1414: constexpr size_t expected_size = s0.size_bytes(); 1414: (assert_exact_byte_length(rs), ...); 1414: } else { 1414: const size_t expected_size = s0.size_bytes(); 1414: const bool correct_size = 1414: ((std::span>{rs}.size_bytes() == expected_size) && ...); 1414: 1414: if(!correct_size) { 1414: memory_region_size_violation(); 1414: } 1414: } 1414: } 1414: 1414: } 1414: # 13 "build/include/public/botan/mem_ops.h" 2 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/cstring" 1 3 1414: # 47 "/usr/arm-linux-gnueabihf/include/c++/16/cstring" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 48 "/usr/arm-linux-gnueabihf/include/c++/16/cstring" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/string.h" 1 3 1414: # 26 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/bits/libc-header-start.h" 1 3 1414: # 27 "/usr/arm-linux-gnueabihf/include/string.h" 2 3 1414: 1414: 1414: # 28 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern "C" { 1414: # 37 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/string.h" 2 3 1414: # 47 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern void *memcpy (void *__restrict __dest, const void *__restrict __src, 1414: size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern void *memmove (void *__dest, const void *__src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: 1414: 1414: extern void *memccpy (void *__restrict __dest, const void *__restrict __src, 1414: int __c, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4))); 1414: 1414: 1414: 1414: 1414: extern void *memset (void *__s, int __c, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: extern void *memset_explicit (void *__s, int __c, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__write_only__, 1, 3))); 1414: 1414: 1414: 1414: extern int memcmp (const void *__s1, const void *__s2, size_t __n) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: # 91 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: extern "C++" 1414: { 1414: extern void *memchr (void *__s, int __c, size_t __n) 1414: noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: extern const void *memchr (const void *__s, int __c, size_t __n) 1414: noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * 1414: memchr (void *__s, int __c, size_t __n) noexcept (true) 1414: { 1414: return __builtin_memchr (__s, __c, __n); 1414: } 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void * 1414: memchr (const void *__s, int __c, size_t __n) noexcept (true) 1414: { 1414: return __builtin_memchr (__s, __c, __n); 1414: } 1414: 1414: } 1414: # 130 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern "C++" void *rawmemchr (void *__s, int __c) 1414: noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: extern "C++" const void *rawmemchr (const void *__s, int __c) 1414: noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern "C++" void *memrchr (void *__s, int __c, size_t __n) 1414: noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) 1414: __attribute__ ((__access__ (__read_only__, 1, 3))); 1414: extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) 1414: noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) 1414: __attribute__ ((__access__ (__read_only__, 1, 3))); 1414: # 156 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern char *strcpy (char *__restrict __dest, const char *__restrict __src) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: extern char *strncpy (char *__restrict __dest, 1414: const char *__restrict __src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern char *strcat (char *__restrict __dest, const char *__restrict __src) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: extern char *strncat (char *__restrict __dest, const char *__restrict __src, 1414: size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int strcmp (const char *__s1, const char *__s2) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: extern int strncmp (const char *__s1, const char *__s2, size_t __n) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int strcoll (const char *__s1, const char *__s2) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: extern size_t strxfrm (char *__restrict __dest, 1414: const char *__restrict __src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 1414: 1414: 1414: extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, 1414: locale_t __l) noexcept (true) __attribute__ ((__nonnull__ (2, 4))) 1414: __attribute__ ((__access__ (__write_only__, 1, 3))); 1414: 1414: 1414: 1414: 1414: 1414: extern char *strdup (const char *__s) 1414: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern char *strndup (const char *__string, size_t __n) 1414: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 1414: # 239 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern "C++" 1414: { 1414: extern char *strchr (char *__s, int __c) 1414: noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: extern const char *strchr (const char *__s, int __c) 1414: noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 1414: strchr (char *__s, int __c) noexcept (true) 1414: { 1414: return __builtin_strchr (__s, __c); 1414: } 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 1414: strchr (const char *__s, int __c) noexcept (true) 1414: { 1414: return __builtin_strchr (__s, __c); 1414: } 1414: 1414: } 1414: # 270 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern "C++" 1414: { 1414: extern char *strrchr (char *__s, int __c) 1414: noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: extern const char *strrchr (const char *__s, int __c) 1414: noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 1414: strrchr (char *__s, int __c) noexcept (true) 1414: { 1414: return __builtin_strrchr (__s, __c); 1414: } 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 1414: strrchr (const char *__s, int __c) noexcept (true) 1414: { 1414: return __builtin_strrchr (__s, __c); 1414: } 1414: 1414: } 1414: # 304 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern "C++" char *strchrnul (char *__s, int __c) 1414: noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: extern "C++" const char *strchrnul (const char *__s, int __c) 1414: noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: # 316 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern size_t strcspn (const char *__s, const char *__reject) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern size_t strspn (const char *__s, const char *__accept) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern "C++" 1414: { 1414: extern char *strpbrk (char *__s, const char *__accept) 1414: noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: extern const char *strpbrk (const char *__s, const char *__accept) 1414: noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 1414: strpbrk (char *__s, const char *__accept) noexcept (true) 1414: { 1414: return __builtin_strpbrk (__s, __accept); 1414: } 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 1414: strpbrk (const char *__s, const char *__accept) noexcept (true) 1414: { 1414: return __builtin_strpbrk (__s, __accept); 1414: } 1414: 1414: } 1414: # 355 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern "C++" 1414: { 1414: extern char *strstr (char *__haystack, const char *__needle) 1414: noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: extern const char *strstr (const char *__haystack, const char *__needle) 1414: noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 1414: strstr (char *__haystack, const char *__needle) noexcept (true) 1414: { 1414: return __builtin_strstr (__haystack, __needle); 1414: } 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 1414: strstr (const char *__haystack, const char *__needle) noexcept (true) 1414: { 1414: return __builtin_strstr (__haystack, __needle); 1414: } 1414: 1414: } 1414: # 388 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern char *strtok (char *__restrict __s, const char *__restrict __delim) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))); 1414: 1414: 1414: 1414: extern char *__strtok_r (char *__restrict __s, 1414: const char *__restrict __delim, 1414: char **__restrict __save_ptr) 1414: noexcept (true) __attribute__ ((__nonnull__ (2, 3))); 1414: 1414: extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, 1414: char **__restrict __save_ptr) 1414: noexcept (true) __attribute__ ((__nonnull__ (2, 3))); 1414: 1414: 1414: 1414: 1414: 1414: extern "C++" char *strcasestr (char *__haystack, const char *__needle) 1414: noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: extern "C++" const char *strcasestr (const char *__haystack, 1414: const char *__needle) 1414: noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: # 421 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern void *memmem (const void *__haystack, size_t __haystacklen, 1414: const void *__needle, size_t __needlelen) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))) 1414: __attribute__ ((__access__ (__read_only__, 1, 2))) 1414: __attribute__ ((__access__ (__read_only__, 3, 4))); 1414: 1414: 1414: 1414: extern void *__mempcpy (void *__restrict __dest, 1414: const void *__restrict __src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: extern void *mempcpy (void *__restrict __dest, 1414: const void *__restrict __src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: 1414: extern size_t strlen (const char *__s) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: extern size_t strnlen (const char *__string, size_t __maxlen) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: 1414: extern char *strerror (int __errnum) noexcept (true); 1414: # 476 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) 1414: noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); 1414: 1414: 1414: 1414: 1414: extern const char *strerrordesc_np (int __err) noexcept (true); 1414: 1414: extern const char *strerrorname_np (int __err) noexcept (true); 1414: 1414: 1414: 1414: 1414: 1414: extern char *strerror_l (int __errnum, locale_t __l) noexcept (true); 1414: 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/strings.h" 1 3 1414: # 23 "/usr/arm-linux-gnueabihf/include/strings.h" 3 1414: # 1 "/usr/lib/gcc-cross/arm-linux-gnueabihf/16/include/stddef.h" 1 3 1414: # 24 "/usr/arm-linux-gnueabihf/include/strings.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern "C" { 1414: 1414: 1414: 1414: extern int bcmp (const void *__s1, const void *__s2, size_t __n) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern void bcopy (const void *__src, void *__dest, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern void bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: 1414: extern "C++" 1414: { 1414: extern char *index (char *__s, int __c) 1414: noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: extern const char *index (const char *__s, int __c) 1414: noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 1414: index (char *__s, int __c) noexcept (true) 1414: { 1414: return __builtin_index (__s, __c); 1414: } 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 1414: index (const char *__s, int __c) noexcept (true) 1414: { 1414: return __builtin_index (__s, __c); 1414: } 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern "C++" 1414: { 1414: extern char *rindex (char *__s, int __c) 1414: noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: extern const char *rindex (const char *__s, int __c) 1414: noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 1414: rindex (char *__s, int __c) noexcept (true) 1414: { 1414: return __builtin_rindex (__s, __c); 1414: } 1414: 1414: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 1414: rindex (const char *__s, int __c) noexcept (true) 1414: { 1414: return __builtin_rindex (__s, __c); 1414: } 1414: 1414: } 1414: # 104 "/usr/arm-linux-gnueabihf/include/strings.h" 3 1414: extern int ffs (int __i) noexcept (true) __attribute__ ((__const__)); 1414: 1414: 1414: 1414: 1414: 1414: extern int ffsl (long int __l) noexcept (true) __attribute__ ((__const__)); 1414: __extension__ extern int ffsll (long long int __ll) 1414: noexcept (true) __attribute__ ((__const__)); 1414: 1414: 1414: 1414: extern int strcasecmp (const char *__s1, const char *__s2) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 1414: 1414: 1414: 1414: extern int strncasecmp_l (const char *__s1, const char *__s2, 1414: size_t __n, locale_t __loc) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); 1414: 1414: 1414: } 1414: # 495 "/usr/arm-linux-gnueabihf/include/string.h" 2 3 1414: 1414: 1414: 1414: extern void explicit_bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) 1414: __attribute__ ((__access__ (__write_only__, 1, 2))); 1414: 1414: 1414: 1414: extern char *strsep (char **__restrict __stringp, 1414: const char *__restrict __delim) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: 1414: extern char *strsignal (int __sig) noexcept (true); 1414: 1414: 1414: 1414: extern const char *sigabbrev_np (int __sig) noexcept (true); 1414: 1414: 1414: extern const char *sigdescr_np (int __sig) noexcept (true); 1414: 1414: 1414: 1414: extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: extern char *__stpncpy (char *__restrict __dest, 1414: const char *__restrict __src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: extern char *stpncpy (char *__restrict __dest, 1414: const char *__restrict __src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: 1414: 1414: extern size_t strlcpy (char *__restrict __dest, 1414: const char *__restrict __src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 3))); 1414: 1414: 1414: 1414: extern size_t strlcat (char *__restrict __dest, 1414: const char *__restrict __src, size_t __n) 1414: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__read_write__, 1, 3))); 1414: 1414: 1414: 1414: 1414: extern int strverscmp (const char *__s1, const char *__s2) 1414: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1414: 1414: 1414: extern char *strfry (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); 1414: 1414: 1414: extern void *memfrob (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) 1414: __attribute__ ((__access__ (__read_write__, 1, 2))); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: extern "C++" char *basename (char *__filename) 1414: noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); 1414: extern "C++" const char *basename (const char *__filename) 1414: noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); 1414: # 584 "/usr/arm-linux-gnueabihf/include/string.h" 3 1414: } 1414: # 49 "/usr/arm-linux-gnueabihf/include/c++/16/cstring" 2 3 1414: # 74 "/usr/arm-linux-gnueabihf/include/c++/16/cstring" 3 1414: extern "C++" 1414: { 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: using ::memchr; 1414: using ::memcmp; 1414: using ::memcpy; 1414: using ::memmove; 1414: using ::memset; 1414: using ::strcat; 1414: using ::strcmp; 1414: using ::strcoll; 1414: using ::strcpy; 1414: using ::strcspn; 1414: using ::strerror; 1414: using ::strlen; 1414: using ::strncat; 1414: using ::strncmp; 1414: using ::strncpy; 1414: using ::strspn; 1414: 1414: using ::strtok; 1414: 1414: using ::strxfrm; 1414: using ::strchr; 1414: using ::strpbrk; 1414: using ::strrchr; 1414: using ::strstr; 1414: # 127 "/usr/arm-linux-gnueabihf/include/c++/16/cstring" 3 1414: 1414: } 1414: } 1414: # 16 "build/include/public/botan/mem_ops.h" 2 1414: 1414: 1414: 1414: 1414: 1414: 1414: # 34 "build/include/public/botan/mem_ops.h" 1414: 1414: # 34 "build/include/public/botan/mem_ops.h" 1414: namespace Botan { 1414: # 51 "build/include/public/botan/mem_ops.h" 1414: __attribute__((visibility("default"))) void secure_scrub_memory(void* ptr, size_t n); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: void secure_scrub_memory(ranges::contiguous_output_range auto&& data) { 1414: secure_scrub_memory(std::ranges::data(data), ranges::size_bytes(data)); 1414: } 1414: # 70 "build/include/public/botan/mem_ops.h" 1414: 1414: __attribute__((visibility("default"))) uint8_t ct_compare_u8(const uint8_t x[], const uint8_t y[], size_t len); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: __attribute__((visibility("default"))) bool constant_time_compare(std::span x, std::span y); 1414: # 88 "build/include/public/botan/mem_ops.h" 1414: inline bool constant_time_compare(const uint8_t x[], const uint8_t y[], size_t len) { 1414: 1414: return constant_time_compare({x, len}, {y, len}); 1414: } 1414: # 101 "build/include/public/botan/mem_ops.h" 1414: inline constexpr void clear_bytes(void* ptr, size_t bytes) { 1414: if(bytes > 0) { 1414: std::memset(ptr, 0, bytes); 1414: } 1414: } 1414: # 117 "build/include/public/botan/mem_ops.h" 1414: template 1414: inline constexpr void clear_mem(T* ptr, size_t n) { 1414: clear_bytes(ptr, sizeof(T) * n); 1414: } 1414: # 129 "build/include/public/botan/mem_ops.h" 1414: template 1414: inline constexpr void clear_mem(R&& mem) 1414: requires std::is_trivially_copyable_v> 1414: { 1414: clear_bytes(std::ranges::data(mem), ranges::size_bytes(mem)); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: requires std::is_trivial_v> 1414: inline constexpr void copy_mem(T* out, const T* in, size_t n) { 1414: do { if((n > 0) && !(in != nullptr && out != nullptr)) { Botan::assertion_failure("n > 0" " implies " "in != nullptr && out != nullptr", "If n > 0 then args are not null", __func__, "build/include/public/botan/mem_ops.h", 145); } } while(0); 1414: 1414: if(in != nullptr && out != nullptr && n > 0) { 1414: std::memmove(out, in, sizeof(T) * n); 1414: } 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: requires std::is_same_v, std::ranges::range_value_t> && 1414: std::is_trivially_copyable_v> 1414: inline constexpr void copy_mem(OutR&& out , const InR& in) { 1414: ranges::assert_equal_byte_lengths(out, in); 1414: if(std::is_constant_evaluated()) { 1414: std::copy(std::ranges::begin(in), std::ranges::end(in), std::ranges::begin(out)); 1414: } else if(ranges::size_bytes(out) > 0) { 1414: std::memmove(std::ranges::data(out), std::ranges::data(in), ranges::size_bytes(out)); 1414: } 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: requires std::is_trivially_copyable_v> && 1414: std::is_trivially_copyable_v> 1414: inline constexpr void typecast_copy(ToR&& out , const FromR& in) { 1414: ranges::assert_equal_byte_lengths(out, in); 1414: std::memcpy(std::ranges::data(out), std::ranges::data(in), ranges::size_bytes(out)); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: requires std::is_trivially_copyable_v> && std::is_trivially_copyable_v && 1414: (!std::ranges::range) 1414: inline constexpr void typecast_copy(ToT& out, const FromR& in) { 1414: typecast_copy(std::span(&out, 1), in); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: requires std::is_trivially_copyable_v && 1414: (!std::ranges::range) && std::is_trivially_copyable_v> 1414: inline constexpr void typecast_copy(ToR&& out , const FromT& in) { 1414: typecast_copy(out, std::span(&in, 1)); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: requires std::is_default_constructible_v && std::is_trivially_copyable_v && 1414: std::is_trivially_copyable_v> 1414: inline constexpr ToT typecast_copy(const FromR& src) { 1414: ToT dst; 1414: typecast_copy(dst, src); 1414: return dst; 1414: } 1414: 1414: 1414: template 1414: inline constexpr void typecast_copy(uint8_t out[], T in[], size_t N) 1414: requires std::is_trivially_copyable_v 1414: { 1414: 1414: typecast_copy(std::span(out, sizeof(T) * N), std::span(in, N)); 1414: } 1414: 1414: 1414: template 1414: inline constexpr void typecast_copy(T out[], const uint8_t in[], size_t N) 1414: requires std::is_trivial_v 1414: { 1414: 1414: typecast_copy(std::span(out, N), std::span(in, N * sizeof(T))); 1414: } 1414: 1414: 1414: template 1414: inline constexpr void typecast_copy(uint8_t out[], const T& in) { 1414: 1414: typecast_copy(std::span(out, sizeof(T)), in); 1414: } 1414: 1414: 1414: template 1414: requires std::is_trivial_v> 1414: inline constexpr void typecast_copy(T& out, const uint8_t in[]) { 1414: 1414: typecast_copy(out, std::span(in, sizeof(T))); 1414: } 1414: 1414: 1414: template 1414: requires std::is_trivial_v 1414: inline constexpr To typecast_copy(const uint8_t src[]) noexcept { 1414: 1414: return typecast_copy(std::span(src, sizeof(To))); 1414: } 1414: # 281 "build/include/public/botan/mem_ops.h" 1414: inline const char* cast_uint8_ptr_to_char(const uint8_t* b) { 1414: return reinterpret_cast(b); 1414: } 1414: 1414: inline char* cast_uint8_ptr_to_char(uint8_t* b) { 1414: return reinterpret_cast(b); 1414: } 1414: # 341 "build/include/public/botan/mem_ops.h" 1414: inline constexpr void xor_buf(ranges::contiguous_output_range auto&& out, 1414: ranges::contiguous_range auto&& in) { 1414: ranges::assert_equal_byte_lengths(out, in); 1414: 1414: std::span o(out); 1414: std::span i(in); 1414: 1414: for(; o.size_bytes() >= 32; o = o.subspan(32), i = i.subspan(32)) { 1414: auto x = typecast_copy>(o.template first<32>()); 1414: const auto y = typecast_copy>(i.template first<32>()); 1414: 1414: x[0] ^= y[0]; 1414: x[1] ^= y[1]; 1414: x[2] ^= y[2]; 1414: x[3] ^= y[3]; 1414: 1414: typecast_copy(o.template first<32>(), x); 1414: } 1414: 1414: for(size_t off = 0; off != o.size_bytes(); ++off) { 1414: o[off] ^= i[off]; 1414: } 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: inline constexpr void xor_buf(ranges::contiguous_output_range auto&& out, 1414: ranges::contiguous_range auto&& in1, 1414: ranges::contiguous_range auto&& in2) { 1414: ranges::assert_equal_byte_lengths(out, in1, in2); 1414: 1414: std::span o{out}; 1414: std::span i1{in1}; 1414: std::span i2{in2}; 1414: 1414: for(; o.size_bytes() >= 32; o = o.subspan(32), i1 = i1.subspan(32), i2 = i2.subspan(32)) { 1414: auto x = typecast_copy>(i1.template first<32>()); 1414: const auto y = typecast_copy>(i2.template first<32>()); 1414: 1414: x[0] ^= y[0]; 1414: x[1] ^= y[1]; 1414: x[2] ^= y[2]; 1414: x[3] ^= y[3]; 1414: 1414: typecast_copy(o.template first<32>(), x); 1414: } 1414: 1414: for(size_t off = 0; off != o.size_bytes(); ++off) { 1414: o[off] = i1[off] ^ i2[off]; 1414: } 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: inline void xor_buf(uint8_t out[], const uint8_t in[], size_t length) { 1414: 1414: xor_buf(std::span{out, length}, std::span{in, length}); 1414: } 1414: # 415 "build/include/public/botan/mem_ops.h" 1414: inline void xor_buf(uint8_t out[], const uint8_t in[], const uint8_t in2[], size_t length) { 1414: 1414: xor_buf(std::span{out, length}, std::span{in, length}, std::span{in2, length}); 1414: } 1414: 1414: 1414: inline void xor_buf(std::span out, std::span in, size_t n) { 1414: do { if(!(out.size() >= n)) { Botan::throw_invalid_argument("output span is too small", __func__, "build/include/public/botan/mem_ops.h"); } } while(0); 1414: do { if(!(in.size() >= n)) { Botan::throw_invalid_argument("input span is too small", __func__, "build/include/public/botan/mem_ops.h"); } } while(0); 1414: xor_buf(out.first(n), in.first(n)); 1414: } 1414: 1414: 1414: template 1414: void xor_buf(std::vector& out, const uint8_t* in, size_t n) { 1414: do { if(!(out.size() >= n)) { Botan::throw_invalid_argument("output vector is too small", __func__, "build/include/public/botan/mem_ops.h"); } } while(0); 1414: 1414: xor_buf(std::span{out}.first(n), std::span{in, n}); 1414: } 1414: 1414: 1414: template 1414: void xor_buf(std::vector& out, const uint8_t* in, const std::vector& in2, size_t n) { 1414: do { if(!(out.size() >= n)) { Botan::throw_invalid_argument("output vector is too small", __func__, "build/include/public/botan/mem_ops.h"); } } while(0); 1414: do { if(!(in2.size() >= n)) { Botan::throw_invalid_argument("input vector is too small", __func__, "build/include/public/botan/mem_ops.h"); } } while(0); 1414: 1414: xor_buf(std::span{out}.first(n), std::span{in, n}, std::span{in2}.first(n)); 1414: } 1414: 1414: template 1414: std::vector& operator^=(std::vector& out, const std::vector& in) { 1414: if(out.size() < in.size()) { 1414: out.resize(in.size()); 1414: } 1414: 1414: xor_buf(std::span{out}.first(in.size()), in); 1414: return out; 1414: } 1414: 1414: } 1414: # 14 "build/include/internal/botan/internal/loadstor.h" 2 1414: 1414: # 1 "build/include/public/botan/strong_type.h" 1 1414: # 12 "build/include/public/botan/strong_type.h" 1414: # 1 "build/include/public/botan/concepts.h" 1 1414: # 15 "build/include/public/botan/concepts.h" 1414: namespace Botan { 1414: 1414: template 1414: struct all_same { 1414: static constexpr bool value = (std::is_same_v && ... && true); 1414: }; 1414: 1414: template 1414: static constexpr bool all_same_v = all_same::value; 1414: 1414: namespace detail { 1414: 1414: 1414: 1414: 1414: 1414: struct AutoDetect { 1414: constexpr AutoDetect() = delete; 1414: }; 1414: 1414: } 1414: 1414: namespace concepts { 1414: 1414: 1414: 1414: 1414: 1414: template 1414: concept container_iterator = 1414: std::same_as || std::same_as; 1414: 1414: template 1414: concept container_pointer = 1414: std::same_as || std::same_as; 1414: 1414: template 1414: concept container = requires(T a) { 1414: { a.begin() } -> container_iterator; 1414: { a.end() } -> container_iterator; 1414: { a.cbegin() } -> container_iterator; 1414: { a.cend() } -> container_iterator; 1414: { a.size() } -> std::same_as; 1414: typename T::value_type; 1414: }; 1414: 1414: template 1414: concept contiguous_container = container && requires(T a) { 1414: { a.data() } -> container_pointer; 1414: }; 1414: 1414: template 1414: concept has_empty = requires(T a) { 1414: { a.empty() } -> std::same_as; 1414: }; 1414: 1414: template 1414: concept resizable_container = container && requires(T& c, typename T::size_type s) { 1414: T(s); 1414: c.resize(s); 1414: }; 1414: 1414: template 1414: concept reservable_container = container && requires(T& c, typename T::size_type s) { c.reserve(s); }; 1414: 1414: template 1414: concept resizable_byte_buffer = 1414: contiguous_container && resizable_container && std::same_as; 1414: 1414: } 1414: 1414: } 1414: # 13 "build/include/public/botan/strong_type.h" 2 1414: 1414: 1414: 1414: 1414: namespace Botan { 1414: 1414: template 1414: class Strong; 1414: 1414: template 1414: struct is_strong_type : std::false_type {}; 1414: 1414: template 1414: struct is_strong_type> : std::true_type {}; 1414: 1414: template 1414: constexpr bool is_strong_type_v = is_strong_type...>::value; 1414: 1414: namespace concepts { 1414: 1414: template 1414: concept streamable = requires(std::ostream& os, T a) { os << a; }; 1414: 1414: template 1414: concept strong_type = is_strong_type_v; 1414: 1414: template 1414: concept contiguous_strong_type = strong_type && contiguous_container; 1414: 1414: template 1414: concept integral_strong_type = strong_type && std::integral; 1414: 1414: template 1414: concept unsigned_integral_strong_type = strong_type && std::unsigned_integral; 1414: 1414: template 1414: concept strong_type_with_capability = T::template has_capability(); 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: struct EnableArithmeticWithPlainNumber {}; 1414: 1414: namespace detail { 1414: 1414: 1414: 1414: 1414: template 1414: constexpr bool has_capability = (std::is_same_v || ...); 1414: 1414: template 1414: class Strong_Base { 1414: private: 1414: T m_value; 1414: 1414: public: 1414: using wrapped_type = T; 1414: 1414: public: 1414: Strong_Base() = default; 1414: Strong_Base(const Strong_Base&) = default; 1414: Strong_Base(Strong_Base&&) noexcept = default; 1414: Strong_Base& operator=(const Strong_Base&) = default; 1414: Strong_Base& operator=(Strong_Base&&) noexcept = default; 1414: ~Strong_Base() = default; 1414: 1414: constexpr explicit Strong_Base(T v) : m_value(std::move(v)) {} 1414: 1414: constexpr T& get() & { return m_value; } 1414: 1414: constexpr const T& get() const& { return m_value; } 1414: 1414: constexpr T&& get() && { return std::move(m_value); } 1414: 1414: constexpr const T&& get() const&& { return std::move(m_value); } 1414: }; 1414: 1414: template 1414: class Strong_Adapter : public Strong_Base { 1414: public: 1414: using Strong_Base::Strong_Base; 1414: }; 1414: 1414: template 1414: class Strong_Adapter : public Strong_Base { 1414: public: 1414: using Strong_Base::Strong_Base; 1414: }; 1414: 1414: template 1414: class Container_Strong_Adapter_Base : public Strong_Base { 1414: public: 1414: using value_type = typename T::value_type; 1414: using size_type = typename T::size_type; 1414: using iterator = typename T::iterator; 1414: using const_iterator = typename T::const_iterator; 1414: 1414: public: 1414: using Strong_Base::Strong_Base; 1414: 1414: explicit Container_Strong_Adapter_Base(size_t size) 1414: requires(concepts::resizable_container) 1414: : Container_Strong_Adapter_Base(T(size)) {} 1414: 1414: template 1414: Container_Strong_Adapter_Base(InputIt begin, InputIt end) : Container_Strong_Adapter_Base(T(begin, end)) {} 1414: 1414: public: 1414: decltype(auto) begin() noexcept(noexcept(this->get().begin())) { return this->get().begin(); } 1414: 1414: decltype(auto) begin() const noexcept(noexcept(this->get().begin())) { return this->get().begin(); } 1414: 1414: decltype(auto) end() noexcept(noexcept(this->get().end())) { return this->get().end(); } 1414: 1414: decltype(auto) end() const noexcept(noexcept(this->get().end())) { return this->get().end(); } 1414: 1414: decltype(auto) cbegin() noexcept(noexcept(this->get().cbegin())) { return this->get().cbegin(); } 1414: 1414: decltype(auto) cbegin() const noexcept(noexcept(this->get().cbegin())) { return this->get().cbegin(); } 1414: 1414: decltype(auto) cend() noexcept(noexcept(this->get().cend())) { return this->get().cend(); } 1414: 1414: decltype(auto) cend() const noexcept(noexcept(this->get().cend())) { return this->get().cend(); } 1414: 1414: size_type size() const noexcept(noexcept(this->get().size())) { return this->get().size(); } 1414: 1414: bool empty() const noexcept(noexcept(this->get().empty())) 1414: requires(concepts::has_empty) 1414: { 1414: return this->get().empty(); 1414: } 1414: 1414: void resize(size_type size) noexcept(noexcept(this->get().resize(size))) 1414: requires(concepts::resizable_container) 1414: { 1414: this->get().resize(size); 1414: } 1414: 1414: void reserve(size_type size) noexcept(noexcept(this->get().reserve(size))) 1414: requires(concepts::reservable_container) 1414: { 1414: this->get().reserve(size); 1414: } 1414: 1414: template 1414: decltype(auto) operator[](U&& i) const noexcept(noexcept(this->get().operator[](i))) { 1414: return this->get()[std::forward(i)]; 1414: } 1414: 1414: template 1414: decltype(auto) operator[](U&& i) noexcept(noexcept(this->get().operator[](i))) { 1414: return this->get()[std::forward(i)]; 1414: } 1414: }; 1414: 1414: template 1414: class Strong_Adapter : public Container_Strong_Adapter_Base { 1414: public: 1414: using Container_Strong_Adapter_Base::Container_Strong_Adapter_Base; 1414: }; 1414: 1414: template 1414: class Strong_Adapter : public Container_Strong_Adapter_Base { 1414: public: 1414: using pointer = typename T::pointer; 1414: using const_pointer = typename T::const_pointer; 1414: 1414: public: 1414: using Container_Strong_Adapter_Base::Container_Strong_Adapter_Base; 1414: 1414: explicit Strong_Adapter(std::span::value_type> span) : 1414: Strong_Adapter(T(span.begin(), span.end())) {} 1414: 1414: 1414: 1414: 1414: explicit Strong_Adapter(const char* str) 1414: requires(std::same_as) 1414: : Strong_Adapter(std::string(str)) {} 1414: 1414: public: 1414: decltype(auto) data() noexcept(noexcept(this->get().data())) { return this->get().data(); } 1414: 1414: decltype(auto) data() const noexcept(noexcept(this->get().data())) { return this->get().data(); } 1414: }; 1414: 1414: } 1414: # 216 "build/include/public/botan/strong_type.h" 1414: template 1414: class Strong final : public detail::Strong_Adapter { 1414: public: 1414: using detail::Strong_Adapter::Strong_Adapter; 1414: 1414: template 1414: constexpr static bool has_capability() { 1414: return (std::is_same_v || ...); 1414: } 1414: 1414: private: 1414: using Tag = TagTypeT; 1414: }; 1414: # 242 "build/include/public/botan/strong_type.h" 1414: template 1414: [[nodiscard]] constexpr decltype(auto) unwrap_strong_type(T&& t) { 1414: if constexpr(!concepts::strong_type>) { 1414: 1414: return std::forward(t); 1414: } else { 1414: 1414: return std::forward(t).get(); 1414: } 1414: } 1414: # 265 "build/include/public/botan/strong_type.h" 1414: template 1414: requires std::constructible_from || 1414: (concepts::strong_type && std::constructible_from) 1414: [[nodiscard]] constexpr decltype(auto) wrap_strong_type(ParamT&& t) { 1414: if constexpr(std::same_as, T>) { 1414: 1414: return std::forward(t); 1414: } else if constexpr(std::constructible_from) { 1414: 1414: return T{std::forward(t)}; 1414: } else { 1414: 1414: 1414: static_assert(concepts::strong_type && std::constructible_from); 1414: return T{typename T::wrapped_type{std::forward(t)}}; 1414: } 1414: } 1414: 1414: namespace detail { 1414: 1414: template 1414: struct wrapped_type_helper { 1414: using type = T; 1414: }; 1414: 1414: template 1414: struct wrapped_type_helper { 1414: using type = typename T::wrapped_type; 1414: }; 1414: 1414: } 1414: # 306 "build/include/public/botan/strong_type.h" 1414: template 1414: using strong_type_wrapped_type = typename detail::wrapped_type_helper>::type; 1414: 1414: template 1414: requires(concepts::streamable) 1414: decltype(auto) operator<<(std::ostream& os, const Strong& v) { 1414: return os << v.get(); 1414: } 1414: 1414: template 1414: requires(std::equality_comparable) 1414: bool operator==(const Strong& lhs, const Strong& rhs) { 1414: return lhs.get() == rhs.get(); 1414: } 1414: 1414: template 1414: requires(std::three_way_comparable) 1414: auto operator<=>(const Strong& lhs, const Strong& rhs) { 1414: return lhs.get() <=> rhs.get(); 1414: } 1414: 1414: template 1414: auto operator<=>(T1 a, Strong b) { 1414: return a <=> b.get(); 1414: } 1414: 1414: template 1414: auto operator<=>(Strong a, T2 b) { 1414: return a.get() <=> b; 1414: } 1414: 1414: template 1414: auto operator==(T1 a, Strong b) { 1414: return a == b.get(); 1414: } 1414: 1414: template 1414: auto operator==(Strong a, T2 b) { 1414: return a.get() == b; 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator+(T1 a, Strong b) { 1414: return Strong(a + b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator+(Strong a, T2 b) { 1414: return Strong(a.get() + b); 1414: } 1414: 1414: template 1414: constexpr decltype(auto) operator+(Strong a, Strong b) { 1414: return Strong(a.get() + b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator-(T1 a, Strong b) { 1414: return Strong(a - b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator-(Strong a, T2 b) { 1414: return Strong(a.get() - b); 1414: } 1414: 1414: template 1414: constexpr decltype(auto) operator-(Strong a, Strong b) { 1414: return Strong(a.get() - b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator*(T1 a, Strong b) { 1414: return Strong(a * b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator*(Strong a, T2 b) { 1414: return Strong(a.get() * b); 1414: } 1414: 1414: template 1414: constexpr decltype(auto) operator*(Strong a, Strong b) { 1414: return Strong(a.get() * b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator/(T1 a, Strong b) { 1414: return Strong(a / b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator/(Strong a, T2 b) { 1414: return Strong(a.get() / b); 1414: } 1414: 1414: template 1414: constexpr decltype(auto) operator/(Strong a, Strong b) { 1414: return Strong(a.get() / b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator^(T1 a, Strong b) { 1414: return Strong(a ^ b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator^(Strong a, T2 b) { 1414: return Strong(a.get() ^ b); 1414: } 1414: 1414: template 1414: constexpr decltype(auto) operator^(Strong a, Strong b) { 1414: return Strong(a.get() ^ b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator&(T1 a, Strong b) { 1414: return Strong(a & b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator&(Strong a, T2 b) { 1414: return Strong(a.get() & b); 1414: } 1414: 1414: template 1414: constexpr decltype(auto) operator&(Strong a, Strong b) { 1414: return Strong(a.get() & b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator|(T1 a, Strong b) { 1414: return Strong(a | b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator|(Strong a, T2 b) { 1414: return Strong(a.get() | b); 1414: } 1414: 1414: template 1414: constexpr decltype(auto) operator|(Strong a, Strong b) { 1414: return Strong(a.get() | b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator>>(T1 a, Strong b) { 1414: return Strong(a >> b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator>>(Strong a, T2 b) { 1414: return Strong(a.get() >> b); 1414: } 1414: 1414: template 1414: constexpr decltype(auto) operator>>(Strong a, Strong b) { 1414: return Strong(a.get() >> b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator<<(T1 a, Strong b) { 1414: return Strong(a << b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr decltype(auto) operator<<(Strong a, T2 b) { 1414: return Strong(a.get() << b); 1414: } 1414: 1414: template 1414: constexpr decltype(auto) operator<<(Strong a, Strong b) { 1414: return Strong(a.get() << b.get()); 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr auto operator+=(Strong& a, T2 b) { 1414: a.get() += b; 1414: return a; 1414: } 1414: 1414: template 1414: constexpr auto operator+=(Strong& a, Strong b) { 1414: a.get() += b.get(); 1414: return a; 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr auto operator-=(Strong& a, T2 b) { 1414: a.get() -= b; 1414: return a; 1414: } 1414: 1414: template 1414: constexpr auto operator-=(Strong& a, Strong b) { 1414: a.get() -= b.get(); 1414: return a; 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr auto operator*=(Strong& a, T2 b) { 1414: a.get() *= b; 1414: return a; 1414: } 1414: 1414: template 1414: constexpr auto operator*=(Strong& a, Strong b) { 1414: a.get() *= b.get(); 1414: return a; 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr auto operator/=(Strong& a, T2 b) { 1414: a.get() /= b; 1414: return a; 1414: } 1414: 1414: template 1414: constexpr auto operator/=(Strong& a, Strong b) { 1414: a.get() /= b.get(); 1414: return a; 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr auto operator^=(Strong& a, T2 b) { 1414: a.get() ^= b; 1414: return a; 1414: } 1414: 1414: template 1414: constexpr auto operator^=(Strong& a, Strong b) { 1414: a.get() ^= b.get(); 1414: return a; 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr auto operator&=(Strong& a, T2 b) { 1414: a.get() &= b; 1414: return a; 1414: } 1414: 1414: template 1414: constexpr auto operator&=(Strong& a, Strong b) { 1414: a.get() &= b.get(); 1414: return a; 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr auto operator|=(Strong& a, T2 b) { 1414: a.get() |= b; 1414: return a; 1414: } 1414: 1414: template 1414: constexpr auto operator|=(Strong& a, Strong b) { 1414: a.get() |= b.get(); 1414: return a; 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr auto operator>>=(Strong& a, T2 b) { 1414: a.get() >>= b; 1414: return a; 1414: } 1414: 1414: template 1414: constexpr auto operator>>=(Strong& a, Strong b) { 1414: a.get() >>= b.get(); 1414: return a; 1414: } 1414: 1414: template 1414: requires(detail::has_capability) 1414: constexpr auto operator<<=(Strong& a, T2 b) { 1414: a.get() <<= b; 1414: return a; 1414: } 1414: 1414: template 1414: constexpr auto operator<<=(Strong& a, Strong b) { 1414: a.get() <<= b.get(); 1414: return a; 1414: } 1414: 1414: template 1414: constexpr auto operator++(Strong& a, int) { 1414: auto tmp = a; 1414: ++a.get(); 1414: return tmp; 1414: } 1414: 1414: template 1414: constexpr auto operator++(Strong& a) { 1414: ++a.get(); 1414: return a; 1414: } 1414: 1414: template 1414: constexpr auto operator--(Strong& a, int) { 1414: auto tmp = a; 1414: --a.get(); 1414: return tmp; 1414: } 1414: 1414: template 1414: constexpr auto operator--(Strong& a) { 1414: --a.get(); 1414: return a; 1414: } 1414: # 658 "build/include/public/botan/strong_type.h" 1414: template 1414: class StrongSpan final { 1414: using underlying_span = std:: 1414: conditional_t, std::span, std::span>; 1414: 1414: public: 1414: using value_type = typename underlying_span::value_type; 1414: using size_type = typename underlying_span::size_type; 1414: using iterator = typename underlying_span::iterator; 1414: using pointer = typename underlying_span::pointer; 1414: using const_pointer = typename underlying_span::const_pointer; 1414: 1414: StrongSpan() = default; 1414: 1414: explicit StrongSpan(underlying_span span) : m_span(span) {} 1414: 1414: 1414: StrongSpan(T& strong) : m_span(strong) {} 1414: # 687 "build/include/public/botan/strong_type.h" 1414: template 1414: 1414: StrongSpan(const StrongSpan& other) 1414: requires(std::is_same_v>) 1414: : m_span(other.get()) {} 1414: 1414: StrongSpan(const StrongSpan& other) = default; 1414: StrongSpan(StrongSpan&& other) = default; 1414: StrongSpan& operator=(const StrongSpan& other) = default; 1414: StrongSpan& operator=(StrongSpan&& other) = default; 1414: 1414: ~StrongSpan() = default; 1414: 1414: 1414: 1414: 1414: underlying_span get() const { return m_span; } 1414: 1414: 1414: 1414: 1414: underlying_span get() { return m_span; } 1414: 1414: decltype(auto) data() noexcept(noexcept(this->m_span.data())) { return this->m_span.data(); } 1414: 1414: decltype(auto) data() const noexcept(noexcept(this->m_span.data())) { return this->m_span.data(); } 1414: 1414: decltype(auto) size() const noexcept(noexcept(this->m_span.size())) { return this->m_span.size(); } 1414: 1414: bool empty() const noexcept(noexcept(this->m_span.empty())) { return this->m_span.empty(); } 1414: 1414: decltype(auto) begin() noexcept(noexcept(this->m_span.begin())) { return this->m_span.begin(); } 1414: 1414: decltype(auto) begin() const noexcept(noexcept(this->m_span.begin())) { return this->m_span.begin(); } 1414: 1414: decltype(auto) end() noexcept(noexcept(this->m_span.end())) { return this->m_span.end(); } 1414: 1414: decltype(auto) end() const noexcept(noexcept(this->m_span.end())) { return this->m_span.end(); } 1414: 1414: decltype(auto) operator[](typename underlying_span::size_type i) const noexcept { return this->m_span[i]; } 1414: 1414: private: 1414: underlying_span m_span; 1414: }; 1414: 1414: template 1414: struct is_strong_span : std::false_type {}; 1414: 1414: template 1414: struct is_strong_span> : std::true_type {}; 1414: 1414: template 1414: constexpr bool is_strong_span_v = is_strong_span::value; 1414: 1414: } 1414: # 16 "build/include/internal/botan/internal/loadstor.h" 2 1414: 1414: # 1 "build/include/internal/botan/internal/bswap.h" 1 1414: # 17 "build/include/internal/botan/internal/bswap.h" 1414: # 1 "build/include/public/botan/compiler.h" 1 1414: # 16 "build/include/public/botan/compiler.h" 1414: 1414: # 18 "build/include/internal/botan/internal/bswap.h" 2 1414: 1414: 1414: namespace Botan { 1414: 1414: 1414: 1414: 1414: template 1414: requires(sizeof(T) == 1 || sizeof(T) == 2 || sizeof(T) == 4 || sizeof(T) == 8) 1414: inline constexpr T reverse_bytes(T x) { 1414: if constexpr(sizeof(T) == 1) { 1414: return x; 1414: } else if constexpr(sizeof(T) == 2) { 1414: 1414: return static_cast(__builtin_bswap16(x)); 1414: 1414: 1414: 1414: } else if constexpr(sizeof(T) == 4) { 1414: 1414: return static_cast(__builtin_bswap32(x)); 1414: 1414: 1414: 1414: 1414: 1414: } else if constexpr(sizeof(T) == 8) { 1414: 1414: return static_cast(__builtin_bswap64(x)); 1414: # 56 "build/include/internal/botan/internal/bswap.h" 1414: } 1414: } 1414: 1414: } 1414: # 18 "build/include/internal/botan/internal/loadstor.h" 2 1414: # 57 "build/include/internal/botan/internal/loadstor.h" 1414: namespace Botan { 1414: 1414: static_assert(std::endian::native == std::endian::big || std::endian::native == std::endian::little, 1414: "Mixed endian systems are not supported"); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr uint8_t get_byte_var(size_t byte_num, T input) { 1414: return static_cast(input >> (((~byte_num) & (sizeof(T) - 1)) << 3)); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr uint8_t get_byte(T input) 1414: requires(B < sizeof(T)) 1414: { 1414: const size_t shift = ((~B) & (sizeof(T) - 1)) << 3; 1414: return static_cast((input >> shift) & 0xFF); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: inline constexpr uint16_t make_uint16(uint8_t i0, uint8_t i1) { 1414: return static_cast((static_cast(i0) << 8) | i1); 1414: } 1414: # 104 "build/include/internal/botan/internal/loadstor.h" 1414: inline constexpr uint32_t make_uint32(uint8_t i0, uint8_t i1, uint8_t i2, uint8_t i3) { 1414: return ((static_cast(i0) << 24) | (static_cast(i1) << 16) | (static_cast(i2) << 8) | 1414: (static_cast(i3))); 1414: } 1414: # 121 "build/include/internal/botan/internal/loadstor.h" 1414: inline constexpr uint64_t make_uint64( 1414: uint8_t i0, uint8_t i1, uint8_t i2, uint8_t i3, uint8_t i4, uint8_t i5, uint8_t i6, uint8_t i7) { 1414: return ((static_cast(i0) << 56) | (static_cast(i1) << 48) | (static_cast(i2) << 40) | 1414: (static_cast(i3) << 32) | (static_cast(i4) << 24) | (static_cast(i5) << 16) | 1414: (static_cast(i6) << 8) | (static_cast(i7))); 1414: } 1414: 1414: namespace detail { 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: consteval std::endian opposite(std::endian endianness) { 1414: if(endianness == std::endian::big) { 1414: return std::endian::little; 1414: } else { 1414: 1414: 1414: return std::endian::big; 1414: } 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: concept custom_loadable = requires(std::span data) { 1414: { T::load_be(data) } -> std::same_as; 1414: { T::load_le(data) } -> std::same_as; 1414: }; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: concept custom_storable = requires(std::span data, const T value) { 1414: { value.store_be(data) }; 1414: { value.store_le(data) }; 1414: }; 1414: 1414: 1414: 1414: 1414: template 1414: concept unsigned_integralish = 1414: std::unsigned_integral> || 1414: (std::is_enum_v && std::unsigned_integral>) || 1414: (custom_loadable> || custom_storable>); 1414: 1414: template 1414: struct wrapped_type_helper_with_enum { 1414: using type = strong_type_wrapped_type; 1414: }; 1414: 1414: template 1414: requires std::is_enum_v 1414: struct wrapped_type_helper_with_enum { 1414: using type = std::underlying_type_t; 1414: }; 1414: 1414: template 1414: using wrapped_type = typename wrapped_type_helper_with_enum::type; 1414: 1414: template 1414: constexpr auto unwrap_strong_type_or_enum(InT t) { 1414: if constexpr(std::is_enum_v) { 1414: 1414: return static_cast>(t); 1414: } else { 1414: return Botan::unwrap_strong_type(t); 1414: } 1414: } 1414: 1414: template 1414: constexpr auto wrap_strong_type_or_enum(T t) { 1414: if constexpr(std::is_enum_v) { 1414: return static_cast(t); 1414: } else { 1414: return Botan::wrap_strong_type(t); 1414: } 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template InR> 1414: inline constexpr OutT fallback_load_any(const InR& in_range) { 1414: std::span in{in_range}; 1414: 1414: if constexpr(endianness == std::endian::big) { 1414: return [&](std::index_sequence) { 1414: return static_cast(((static_cast(in[i]) << ((sizeof(OutT) - i - 1) * 8)) | ...)); 1414: } (std::make_index_sequence()); 1414: } else { 1414: static_assert(endianness == std::endian::little); 1414: return [&](std::index_sequence) { 1414: return static_cast(((static_cast(in[i]) << (i * 8)) | ...)); 1414: } (std::make_index_sequence()); 1414: } 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template OutR> 1414: inline constexpr void fallback_store_any(InT in, OutR&& out_range ) { 1414: std::span out{out_range}; 1414: 1414: if constexpr(endianness == std::endian::big) { 1414: [&](std::index_sequence) { 1414: ((out[i] = get_byte(in)), ...); 1414: } (std::make_index_sequence()); 1414: } else { 1414: static_assert(endianness == std::endian::little); 1414: [&](std::index_sequence) { 1414: ((out[i] = get_byte(in)), ...); 1414: } (std::make_index_sequence()); 1414: } 1414: 1414: } 1414: # 276 "build/include/internal/botan/internal/loadstor.h" 1414: template InR> 1414: requires(!custom_loadable>) 1414: inline constexpr WrappedOutT load_any(InR&& in_range) { 1414: using OutT = detail::wrapped_type; 1414: ranges::assert_exact_byte_length(in_range); 1414: 1414: return detail::wrap_strong_type_or_enum([&]() -> OutT { 1414: 1414: 1414: 1414: if(std::is_constant_evaluated()) { 1414: return fallback_load_any(std::forward(in_range)); 1414: } else { 1414: const std::span in{in_range}; 1414: if constexpr(sizeof(OutT) == 1) { 1414: return static_cast(in[0]); 1414: } else if constexpr(endianness == std::endian::native) { 1414: return typecast_copy(in); 1414: } else { 1414: static_assert(opposite(endianness) == std::endian::native); 1414: return reverse_bytes(typecast_copy(in)); 1414: } 1414: } 1414: }()); 1414: } 1414: # 311 "build/include/internal/botan/internal/loadstor.h" 1414: template InR> 1414: requires(custom_loadable>) 1414: inline constexpr WrappedOutT load_any(const InR& in_range) { 1414: using OutT = detail::wrapped_type; 1414: ranges::assert_exact_byte_length(in_range); 1414: const std::span ins{in_range}; 1414: if constexpr(endianness == std::endian::big) { 1414: return wrap_strong_type(OutT::load_be(ins)); 1414: } else { 1414: return wrap_strong_type(OutT::load_le(ins)); 1414: } 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template InR, unsigned_integralish... Ts> 1414: requires(sizeof...(Ts) > 0) && ((std::same_as && all_same_v) || 1414: (unsigned_integralish && all_same_v)) 1414: inline constexpr void load_any(const InR& in, Ts&... outs) { 1414: ranges::assert_exact_byte_length<(sizeof(Ts) + ...)>(in); 1414: auto load_one = [off = 0](auto i, T& o) mutable { 1414: o = load_any(i.subspan(off).template first()); 1414: off += sizeof(T); 1414: }; 1414: 1414: (load_one(std::span{in}, outs), ...); 1414: } 1414: # 349 "build/include/internal/botan/internal/loadstor.h" 1414: template InR> 1414: requires(unsigned_integralish> && 1414: (std::same_as || std::same_as>)) 1414: inline constexpr void load_any(OutR&& out , const InR& in) { 1414: ranges::assert_equal_byte_lengths(out, in); 1414: using element_type = std::ranges::range_value_t; 1414: 1414: auto load_elementwise = [&] { 1414: constexpr size_t bytes_per_element = sizeof(element_type); 1414: std::span in_s(in); 1414: for(auto& out_elem : out) { 1414: out_elem = load_any(in_s.template first()); 1414: in_s = in_s.subspan(bytes_per_element); 1414: } 1414: }; 1414: 1414: 1414: 1414: 1414: if(std::is_constant_evaluated()) { 1414: load_elementwise(); 1414: } else { 1414: if constexpr(endianness == std::endian::native && !custom_loadable) { 1414: typecast_copy(out, in); 1414: } else { 1414: load_elementwise(); 1414: } 1414: } 1414: } 1414: # 393 "build/include/internal/botan/internal/loadstor.h" 1414: template InR> 1414: requires(std::same_as || 1414: ((ranges::statically_spanable_range || concepts::resizable_container) && 1414: unsigned_integralish)) 1414: inline constexpr auto load_any(InR&& in_range) { 1414: auto out = []([[maybe_unused]] const auto& in) { 1414: if constexpr(std::same_as) { 1414: if constexpr(ranges::statically_spanable_range) { 1414: constexpr size_t extent = decltype(std::span{in})::extent; 1414: 1414: 1414: using type = 1414: std::conditional_t>>>; 1414: 1414: 1414: static_assert( 1414: !std::is_void_v, 1414: "Cannot determine the output type based on a statically sized bytearray with length other than those: 1, 2, 4, 8"); 1414: 1414: return type{}; 1414: } else { 1414: static_assert( 1414: !std::same_as, 1414: "cannot infer return type from a dynamic range at compile time, please specify it explicitly"); 1414: } 1414: } else if constexpr(concepts::resizable_container) { 1414: const size_t in_bytes = std::span{in}.size_bytes(); 1414: constexpr size_t out_elem_bytes = sizeof(typename OutT::value_type); 1414: do { if(!(in_bytes % out_elem_bytes == 0)) { Botan::throw_invalid_argument("Input range is not word-aligned with the requested output range", __func__, "build/include/internal/botan/internal/loadstor.h"); } } while(0) 1414: ; 1414: return OutT(in_bytes / out_elem_bytes); 1414: } else { 1414: return OutT{}; 1414: } 1414: }(in_range); 1414: 1414: using out_type = decltype(out); 1414: if constexpr(unsigned_integralish) { 1414: out = load_any(std::forward(in_range)); 1414: } else { 1414: static_assert(ranges::contiguous_range); 1414: using out_range_type = std::ranges::range_value_t; 1414: load_any(out, std::forward(in_range)); 1414: } 1414: return out; 1414: } 1414: # 453 "build/include/internal/botan/internal/loadstor.h" 1414: template 1414: inline constexpr OutT load_any(const uint8_t in[], size_t off) { 1414: 1414: constexpr size_t out_size = sizeof(OutT); 1414: return load_any(std::span(in + off * out_size, out_size)); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: requires(sizeof...(Ts) > 0 && all_same_v && 1414: ((std::same_as && all_same_v) || 1414: (unsigned_integralish && all_same_v))) 1414: inline constexpr void load_any(const uint8_t in[], Ts&... outs) { 1414: constexpr auto bytes = (sizeof(outs) + ...); 1414: 1414: load_any(std::span(in, bytes), outs...); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: requires(std::same_as || std::same_as) 1414: inline constexpr void load_any(T out[], const uint8_t in[], size_t count) { 1414: 1414: load_any(std::span(out, count), std::span(in, count * sizeof(T))); 1414: } 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr auto load_le(ParamTs&&... params) { 1414: return detail::load_any(std::forward(params)...); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr auto load_be(ParamTs&&... params) { 1414: return detail::load_any(std::forward(params)...); 1414: } 1414: 1414: namespace detail { 1414: # 523 "build/include/internal/botan/internal/loadstor.h" 1414: template OutR> 1414: requires(!custom_storable>) 1414: inline constexpr void store_any(WrappedInT wrapped_in, OutR&& out_range) { 1414: const auto in = detail::unwrap_strong_type_or_enum(wrapped_in); 1414: using InT = decltype(in); 1414: ranges::assert_exact_byte_length(out_range); 1414: const std::span out{out_range}; 1414: 1414: 1414: 1414: 1414: if(std::is_constant_evaluated()) { 1414: return fallback_store_any(in, std::forward(out_range)); 1414: } else { 1414: if constexpr(sizeof(InT) == 1) { 1414: out[0] = static_cast(in); 1414: } else if constexpr(endianness == std::endian::native) { 1414: typecast_copy(out, in); 1414: } else { 1414: static_assert(opposite(endianness) == std::endian::native); 1414: typecast_copy(out, reverse_bytes(in)); 1414: } 1414: } 1414: } 1414: # 557 "build/include/internal/botan/internal/loadstor.h" 1414: template OutR> 1414: requires(custom_storable>) 1414: inline constexpr void store_any(WrappedInT wrapped_in, const OutR& out_range) { 1414: const auto in = detail::unwrap_strong_type_or_enum(wrapped_in); 1414: using InT = decltype(in); 1414: ranges::assert_exact_byte_length(out_range); 1414: const std::span outs{out_range}; 1414: if constexpr(endianness == std::endian::big) { 1414: in.store_be(outs); 1414: } else { 1414: in.store_le(outs); 1414: } 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template OutR, 1414: unsigned_integralish... Ts> 1414: requires(sizeof...(Ts) > 0) && ((std::same_as && all_same_v) || 1414: (unsigned_integralish && all_same_v)) 1414: inline constexpr void store_any(OutR&& out , Ts... ins) { 1414: ranges::assert_exact_byte_length<(sizeof(Ts) + ...)>(out); 1414: auto store_one = [off = 0](auto o, T i) mutable { 1414: store_any(i, o.subspan(off).template first()); 1414: off += sizeof(T); 1414: }; 1414: 1414: (store_one(std::span{out}, ins), ...); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: template OutR, 1414: ranges::spanable_range InR> 1414: requires(std::same_as || std::same_as>) 1414: inline constexpr void store_any(OutR&& out , const InR& in) { 1414: ranges::assert_equal_byte_lengths(out, in); 1414: using element_type = std::ranges::range_value_t; 1414: 1414: auto store_elementwise = [&] { 1414: constexpr size_t bytes_per_element = sizeof(element_type); 1414: std::span out_s(out); 1414: for(auto in_elem : in) { 1414: store_any(out_s.template first(), in_elem); 1414: out_s = out_s.subspan(bytes_per_element); 1414: } 1414: }; 1414: 1414: 1414: 1414: 1414: if(std::is_constant_evaluated()) { 1414: store_elementwise(); 1414: } else { 1414: if constexpr(endianness == std::endian::native && !custom_storable) { 1414: typecast_copy(out, in); 1414: } else { 1414: store_elementwise(); 1414: } 1414: } 1414: } 1414: # 644 "build/include/internal/botan/internal/loadstor.h" 1414: template OutR> 1414: requires std::same_as 1414: inline constexpr void store_any(T in, OutR&& out_range) { 1414: store_any(in, std::forward(out_range)); 1414: } 1414: # 659 "build/include/internal/botan/internal/loadstor.h" 1414: template 1414: requires(std::same_as || 1414: (ranges::statically_spanable_range && std::default_initializable) || 1414: concepts::resizable_byte_buffer) 1414: inline constexpr auto store_any(InR&& in_range) { 1414: auto out = []([[maybe_unused]] const auto& in) { 1414: if constexpr(std::same_as) { 1414: if constexpr(ranges::statically_spanable_range) { 1414: constexpr size_t bytes = decltype(std::span{in})::extent * sizeof(std::ranges::range_value_t); 1414: return std::array(); 1414: } else { 1414: static_assert( 1414: !std::same_as, 1414: "cannot infer a suitable result container type from the given parameters at compile time, please specify it explicitly"); 1414: } 1414: } else if constexpr(concepts::resizable_byte_buffer) { 1414: return OutR(std::span{in}.size_bytes()); 1414: } else { 1414: return OutR{}; 1414: } 1414: }(in_range); 1414: 1414: store_any>(out, std::forward(in_range)); 1414: return out; 1414: } 1414: # 694 "build/include/internal/botan/internal/loadstor.h" 1414: template 1414: requires all_same_v 1414: inline constexpr auto store_any(Ts... ins) { 1414: return store_any(std::array{ins...}); 1414: } 1414: # 709 "build/include/internal/botan/internal/loadstor.h" 1414: template 1414: requires(std::same_as || std::same_as) 1414: inline constexpr void store_any(T in, uint8_t out[]) { 1414: 1414: store_any(in, std::span(out, sizeof(T))); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: 1414: template 1414: requires(std::same_as || std::same_as) && all_same_v 1414: inline constexpr void store_any(uint8_t out[], T0 in0, Ts... ins) { 1414: constexpr auto bytes = sizeof(in0) + (sizeof(ins) + ... + 0); 1414: 1414: store_any(std::span(out, bytes), in0, ins...); 1414: } 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr auto store_le(ParamTs&&... params) { 1414: return detail::store_any(std::forward(params)...); 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline constexpr auto store_be(ParamTs&&... params) { 1414: return detail::store_any(std::forward(params)...); 1414: } 1414: 1414: namespace detail { 1414: 1414: template 1414: inline size_t copy_out_any_word_aligned_portion(std::span& out, std::span& in) { 1414: const size_t full_words = out.size() / sizeof(T); 1414: const size_t full_word_bytes = full_words * sizeof(T); 1414: const size_t remaining_bytes = out.size() - full_word_bytes; 1414: do { if(!(in.size_bytes() >= full_word_bytes + remaining_bytes)) { Botan::assertion_failure("in.size_bytes() >= full_word_bytes + remaining_bytes", "", __func__, "build/include/internal/botan/internal/loadstor.h", 756); } } while(0); 1414: 1414: 1414: store_any(out.first(full_word_bytes), in.first(full_words)); 1414: out = out.subspan(full_word_bytes); 1414: in = in.subspan(full_words); 1414: 1414: return remaining_bytes; 1414: } 1414: 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline void copy_out_be(std::span out, const InR& in) { 1414: using T = std::ranges::range_value_t; 1414: std::span in_s{in}; 1414: const auto remaining_bytes = detail::copy_out_any_word_aligned_portion(out, in_s); 1414: 1414: 1414: for(size_t i = 0; i < remaining_bytes; ++i) { 1414: out[i] = get_byte_var(i, in_s.front()); 1414: } 1414: } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: inline void copy_out_le(std::span out, const InR& in) { 1414: using T = std::ranges::range_value_t; 1414: std::span in_s{in}; 1414: const auto remaining_bytes = detail::copy_out_any_word_aligned_portion(out, in_s); 1414: 1414: 1414: for(size_t i = 0; i < remaining_bytes; ++i) { 1414: out[i] = get_byte_var(sizeof(T) - 1 - i, in_s.front()); 1414: } 1414: } 1414: 1414: } 1414: # 12 "/build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ip_address/ipv6_address.cpp" 2 1414: # 1 "build/include/internal/botan/internal/parsing.h" 1 1414: # 14 "build/include/internal/botan/internal/parsing.h" 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/map" 1 3 1414: # 64 "/usr/arm-linux-gnueabihf/include/c++/16/map" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 1 3 1414: # 72 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/ext/aligned_buffer.h" 1 3 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/ext/aligned_buffer.h" 3 1414: 1414: # 42 "/usr/arm-linux-gnueabihf/include/c++/16/ext/aligned_buffer.h" 3 1414: namespace __gnu_cxx 1414: { 1414: 1414: 1414: 1414: 1414: template 1414: struct __aligned_membuf 1414: { 1414: # 60 "/usr/arm-linux-gnueabihf/include/c++/16/ext/aligned_buffer.h" 3 1414: alignas(_Tp) 1414: 1414: unsigned char _M_storage[sizeof(_Tp)]; 1414: 1414: __aligned_membuf() = default; 1414: 1414: 1414: __aligned_membuf(std::nullptr_t) { } 1414: 1414: void* 1414: _M_addr() noexcept 1414: { return static_cast(&_M_storage); } 1414: 1414: const void* 1414: _M_addr() const noexcept 1414: { return static_cast(&_M_storage); } 1414: 1414: _Tp* 1414: _M_ptr() noexcept 1414: { return static_cast<_Tp*>(_M_addr()); } 1414: 1414: const _Tp* 1414: _M_ptr() const noexcept 1414: { return static_cast(_M_addr()); } 1414: }; 1414: # 95 "/usr/arm-linux-gnueabihf/include/c++/16/ext/aligned_buffer.h" 3 1414: template 1414: struct __aligned_buffer 1414: { 1414: 1414: alignas(__alignof__(_Tp)) unsigned char _M_storage[sizeof(_Tp)]; 1414: 1414: __aligned_buffer() = default; 1414: 1414: 1414: __aligned_buffer(std::nullptr_t) { } 1414: 1414: void* 1414: _M_addr() noexcept 1414: { 1414: return static_cast(&_M_storage); 1414: } 1414: 1414: const void* 1414: _M_addr() const noexcept 1414: { 1414: return static_cast(&_M_storage); 1414: } 1414: 1414: _Tp* 1414: _M_ptr() noexcept 1414: { return static_cast<_Tp*>(_M_addr()); } 1414: 1414: const _Tp* 1414: _M_ptr() const noexcept 1414: { return static_cast(_M_addr()); } 1414: }; 1414: 1414: 1414: } 1414: # 73 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 2 3 1414: 1414: 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/node_handle.h" 1 3 1414: # 38 "/usr/arm-linux-gnueabihf/include/c++/16/bits/node_handle.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 39 "/usr/arm-linux-gnueabihf/include/c++/16/bits/node_handle.h" 2 3 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 66 "/usr/arm-linux-gnueabihf/include/c++/16/bits/node_handle.h" 3 1414: template 1414: class _Node_handle_common 1414: { 1414: using _AllocTraits = allocator_traits<_NodeAlloc>; 1414: 1414: public: 1414: using allocator_type = __alloc_rebind<_NodeAlloc, _Val>; 1414: 1414: allocator_type 1414: get_allocator() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return allocator_type(_M_alloc._M_alloc); 1414: } 1414: 1414: explicit operator bool() const noexcept { return _M_ptr != nullptr; } 1414: 1414: [[nodiscard]] bool empty() const noexcept { return _M_ptr == nullptr; } 1414: 1414: 1414: protected: 1414: constexpr _Node_handle_common() noexcept : _M_ptr() { } 1414: 1414: ~_Node_handle_common() 1414: { 1414: if (!empty()) 1414: _M_reset(); 1414: } 1414: 1414: _Node_handle_common(_Node_handle_common&& __nh) noexcept 1414: : _M_ptr(__nh._M_ptr) 1414: { 1414: if (_M_ptr) 1414: _M_move(std::move(__nh)); 1414: } 1414: 1414: _Node_handle_common& 1414: operator=(_Node_handle_common&& __nh) noexcept 1414: { 1414: if (empty()) 1414: { 1414: if (!__nh.empty()) 1414: _M_move(std::move(__nh)); 1414: } 1414: else if (__nh.empty()) 1414: _M_reset(); 1414: else 1414: { 1414: 1414: _AllocTraits::destroy(*_M_alloc, _M_ptr->_M_valptr()); 1414: _AllocTraits::deallocate(*_M_alloc, _M_ptr, 1); 1414: 1414: _M_alloc = __nh._M_alloc.release(); 1414: _M_ptr = __nh._M_ptr; 1414: __nh._M_ptr = nullptr; 1414: } 1414: return *this; 1414: } 1414: 1414: _Node_handle_common(typename _AllocTraits::pointer __ptr, 1414: const _NodeAlloc& __alloc) 1414: : _M_ptr(__ptr), _M_alloc(__alloc) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__ptr != nullptr)) std::__glibcxx_assert_fail(); } while (false); 1414: } 1414: 1414: void 1414: _M_swap(_Node_handle_common& __nh) noexcept 1414: { 1414: if (empty()) 1414: { 1414: if (!__nh.empty()) 1414: _M_move(std::move(__nh)); 1414: } 1414: else if (__nh.empty()) 1414: __nh._M_move(std::move(*this)); 1414: else 1414: { 1414: using std::swap; 1414: swap(_M_ptr, __nh._M_ptr); 1414: _M_alloc.swap(__nh._M_alloc); 1414: } 1414: } 1414: 1414: private: 1414: 1414: 1414: 1414: void 1414: _M_move(_Node_handle_common&& __nh) noexcept 1414: { 1414: ::new (std::__addressof(_M_alloc)) _NodeAlloc(__nh._M_alloc.release()); 1414: _M_ptr = __nh._M_ptr; 1414: __nh._M_ptr = nullptr; 1414: } 1414: 1414: 1414: 1414: 1414: void 1414: _M_reset() noexcept 1414: { 1414: _NodeAlloc __alloc = _M_alloc.release(); 1414: _AllocTraits::destroy(__alloc, _M_ptr->_M_valptr()); 1414: _AllocTraits::deallocate(__alloc, _M_ptr, 1); 1414: _M_ptr = nullptr; 1414: } 1414: 1414: 1414: 1414: 1414: void 1414: release() noexcept 1414: { 1414: _M_alloc.release(); 1414: _M_ptr = nullptr; 1414: } 1414: 1414: protected: 1414: typename _AllocTraits::pointer _M_ptr; 1414: 1414: private: 1414: 1414: 1414: union _Optional_alloc 1414: { 1414: _Optional_alloc() { } 1414: ~_Optional_alloc() { } 1414: 1414: _Optional_alloc(_Optional_alloc&&) = delete; 1414: _Optional_alloc& operator=(_Optional_alloc&&) = delete; 1414: 1414: _Optional_alloc(const _NodeAlloc& __alloc) noexcept 1414: : _M_alloc(__alloc) 1414: { } 1414: 1414: 1414: void 1414: operator=(_NodeAlloc&& __alloc) noexcept 1414: { 1414: using _ATr = _AllocTraits; 1414: if constexpr (_ATr::propagate_on_container_move_assignment::value) 1414: _M_alloc = std::move(__alloc); 1414: else if constexpr (!_AllocTraits::is_always_equal::value) 1414: do { if (std::__is_constant_evaluated() && !bool(_M_alloc == __alloc)) std::__glibcxx_assert_fail(); } while (false); 1414: } 1414: 1414: 1414: void 1414: swap(_Optional_alloc& __other) noexcept 1414: { 1414: using std::swap; 1414: if constexpr (_AllocTraits::propagate_on_container_swap::value) 1414: swap(_M_alloc, __other._M_alloc); 1414: else if constexpr (!_AllocTraits::is_always_equal::value) 1414: do { if (std::__is_constant_evaluated() && !bool(_M_alloc == __other._M_alloc)) std::__glibcxx_assert_fail(); } while (false); 1414: } 1414: 1414: 1414: _NodeAlloc& operator*() noexcept { return _M_alloc; } 1414: 1414: 1414: _NodeAlloc release() noexcept 1414: { 1414: _NodeAlloc __tmp = std::move(_M_alloc); 1414: _M_alloc.~_NodeAlloc(); 1414: return __tmp; 1414: } 1414: 1414: [[__no_unique_address__]] _NodeAlloc _M_alloc; 1414: }; 1414: 1414: [[__no_unique_address__]] _Optional_alloc _M_alloc; 1414: 1414: template 1414: friend class _Rb_tree; 1414: 1414: template 1414: friend class _Hashtable; 1414: 1414: 1414: }; 1414: 1414: 1414: template 1414: class _Node_handle : public _Node_handle_common<_Value, _NodeAlloc> 1414: { 1414: public: 1414: constexpr _Node_handle() noexcept = default; 1414: ~_Node_handle() = default; 1414: _Node_handle(_Node_handle&&) noexcept = default; 1414: 1414: _Node_handle& 1414: operator=(_Node_handle&&) noexcept = default; 1414: 1414: using key_type = _Key; 1414: using mapped_type = typename _Value::second_type; 1414: 1414: key_type& 1414: key() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *_M_pkey; 1414: } 1414: 1414: mapped_type& 1414: mapped() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *_M_pmapped; 1414: } 1414: 1414: void 1414: swap(_Node_handle& __nh) noexcept 1414: { 1414: this->_M_swap(__nh); 1414: using std::swap; 1414: swap(_M_pkey, __nh._M_pkey); 1414: swap(_M_pmapped, __nh._M_pmapped); 1414: } 1414: 1414: friend void 1414: swap(_Node_handle& __x, _Node_handle& __y) 1414: noexcept(noexcept(__x.swap(__y))) 1414: { __x.swap(__y); } 1414: 1414: private: 1414: using _AllocTraits = allocator_traits<_NodeAlloc>; 1414: 1414: _Node_handle(typename _AllocTraits::pointer __ptr, 1414: const _NodeAlloc& __alloc) 1414: : _Node_handle_common<_Value, _NodeAlloc>(__ptr, __alloc) 1414: { 1414: if (__ptr) 1414: { 1414: auto& __key = const_cast<_Key&>(__ptr->_M_valptr()->first); 1414: _M_pkey = _S_pointer_to(__key); 1414: _M_pmapped = _S_pointer_to(__ptr->_M_valptr()->second); 1414: } 1414: else 1414: { 1414: _M_pkey = nullptr; 1414: _M_pmapped = nullptr; 1414: } 1414: } 1414: 1414: template 1414: using __pointer 1414: = __ptr_rebind>; 1414: 1414: __pointer<_Key> _M_pkey = nullptr; 1414: __pointer _M_pmapped = nullptr; 1414: 1414: template 1414: __pointer<_Tp> 1414: _S_pointer_to(_Tp& __obj) 1414: { return pointer_traits<__pointer<_Tp>>::pointer_to(__obj); } 1414: 1414: const key_type& 1414: _M_key() const noexcept { return key(); } 1414: 1414: template 1414: friend class _Rb_tree; 1414: 1414: template 1414: friend class _Hashtable; 1414: }; 1414: 1414: 1414: template 1414: class _Node_handle<_Value, _Value, _NodeAlloc> 1414: : public _Node_handle_common<_Value, _NodeAlloc> 1414: { 1414: public: 1414: constexpr _Node_handle() noexcept = default; 1414: ~_Node_handle() = default; 1414: _Node_handle(_Node_handle&&) noexcept = default; 1414: 1414: _Node_handle& 1414: operator=(_Node_handle&&) noexcept = default; 1414: 1414: using value_type = _Value; 1414: 1414: value_type& 1414: value() const noexcept 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(!this->empty())) std::__glibcxx_assert_fail(); } while (false); 1414: return *this->_M_ptr->_M_valptr(); 1414: } 1414: 1414: void 1414: swap(_Node_handle& __nh) noexcept 1414: { this->_M_swap(__nh); } 1414: 1414: friend void 1414: swap(_Node_handle& __x, _Node_handle& __y) 1414: noexcept(noexcept(__x.swap(__y))) 1414: { __x.swap(__y); } 1414: 1414: private: 1414: using _AllocTraits = allocator_traits<_NodeAlloc>; 1414: 1414: _Node_handle(typename _AllocTraits::pointer __ptr, 1414: const _NodeAlloc& __alloc) 1414: : _Node_handle_common<_Value, _NodeAlloc>(__ptr, __alloc) { } 1414: 1414: const value_type& 1414: _M_key() const noexcept { return value(); } 1414: 1414: template 1414: friend class _Rb_tree; 1414: 1414: template 1414: friend class _Hashtable; 1414: }; 1414: 1414: 1414: template 1414: struct _Node_insert_return 1414: { 1414: _Iterator position = _Iterator(); 1414: bool inserted = false; 1414: _NodeHandle node; 1414: }; 1414: 1414: 1414: 1414: 1414: } 1414: # 76 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 2 3 1414: # 85 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: # 105 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: enum _Rb_tree_color { _S_red = false, _S_black = true }; 1414: 1414: struct _Rb_tree_node_base 1414: { 1414: typedef _Rb_tree_node_base* _Base_ptr; 1414: 1414: _Rb_tree_color _M_color; 1414: _Base_ptr _M_parent; 1414: _Base_ptr _M_left; 1414: _Base_ptr _M_right; 1414: 1414: static _Base_ptr 1414: _S_minimum(_Base_ptr __x) noexcept 1414: { 1414: while (__x->_M_left != 0) __x = __x->_M_left; 1414: return __x; 1414: } 1414: 1414: static _Base_ptr 1414: _S_maximum(_Base_ptr __x) noexcept 1414: { 1414: while (__x->_M_right != 0) __x = __x->_M_right; 1414: return __x; 1414: } 1414: 1414: 1414: 1414: 1414: _Base_ptr 1414: _M_base_ptr() const noexcept 1414: { return const_cast<_Rb_tree_node_base*>(this); } 1414: }; 1414: 1414: 1414: template 1414: struct _Rb_tree_key_compare 1414: { 1414: _Key_compare _M_key_compare; 1414: 1414: _Rb_tree_key_compare() 1414: noexcept(is_nothrow_default_constructible<_Key_compare>::value) 1414: 1414: : _M_key_compare() 1414: { } 1414: 1414: _Rb_tree_key_compare(const _Key_compare& __comp) 1414: : _M_key_compare(__comp) 1414: { } 1414: 1414: 1414: 1414: _Rb_tree_key_compare(const _Rb_tree_key_compare&) = default; 1414: 1414: _Rb_tree_key_compare(_Rb_tree_key_compare&& __x) 1414: noexcept(is_nothrow_copy_constructible<_Key_compare>::value) 1414: : _M_key_compare(__x._M_key_compare) 1414: { } 1414: 1414: }; 1414: 1414: 1414: struct _Rb_tree_header 1414: { 1414: _Rb_tree_node_base _M_header; 1414: size_t _M_node_count; 1414: 1414: _Rb_tree_header() noexcept 1414: { 1414: _M_header._M_color = _S_red; 1414: _M_reset(); 1414: } 1414: 1414: 1414: _Rb_tree_header(_Rb_tree_header&& __x) noexcept 1414: { 1414: if (__x._M_header._M_parent != nullptr) 1414: _M_move_data(__x); 1414: else 1414: { 1414: _M_header._M_color = _S_red; 1414: _M_reset(); 1414: } 1414: } 1414: 1414: 1414: void 1414: _M_move_data(_Rb_tree_header& __from) 1414: { 1414: _M_header._M_color = __from._M_header._M_color; 1414: _M_header._M_parent = __from._M_header._M_parent; 1414: _M_header._M_left = __from._M_header._M_left; 1414: _M_header._M_right = __from._M_header._M_right; 1414: _M_header._M_parent->_M_parent = &_M_header; 1414: _M_node_count = __from._M_node_count; 1414: 1414: __from._M_reset(); 1414: } 1414: 1414: void 1414: _M_reset() 1414: { 1414: _M_header._M_parent = 0; 1414: _M_header._M_left = &_M_header; 1414: _M_header._M_right = &_M_header; 1414: _M_node_count = 0; 1414: } 1414: }; 1414: 1414: template 1414: struct _Rb_tree_node : public _Rb_tree_node_base 1414: { 1414: # 227 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: __gnu_cxx::__aligned_membuf<_Val> _M_storage; 1414: 1414: _Val* 1414: _M_valptr() 1414: { return _M_storage._M_ptr(); } 1414: 1414: const _Val* 1414: _M_valptr() const 1414: { return _M_storage._M_ptr(); } 1414: 1414: 1414: _Rb_tree_node* 1414: _M_node_ptr() noexcept 1414: { return this; } 1414: }; 1414: 1414: 1414: namespace __rb_tree 1414: { 1414: template 1414: struct _Node_base 1414: { 1414: using _Base_ptr = __ptr_rebind<_VoidPtr, _Node_base>; 1414: 1414: _Rb_tree_color _M_color; 1414: _Base_ptr _M_parent; 1414: _Base_ptr _M_left; 1414: _Base_ptr _M_right; 1414: 1414: static _Base_ptr 1414: _S_minimum(_Base_ptr __x) noexcept 1414: { 1414: while (__x->_M_left) __x = __x->_M_left; 1414: return __x; 1414: } 1414: 1414: static _Base_ptr 1414: _S_maximum(_Base_ptr __x) noexcept 1414: { 1414: while (__x->_M_right) __x = __x->_M_right; 1414: return __x; 1414: } 1414: 1414: 1414: 1414: 1414: _Base_ptr 1414: _M_base_ptr() const noexcept 1414: { 1414: return pointer_traits<_Base_ptr>::pointer_to 1414: (*const_cast<_Node_base*>(this)); 1414: } 1414: }; 1414: 1414: 1414: template 1414: struct _Header 1414: { 1414: private: 1414: using _Base_ptr = typename _NodeBase::_Base_ptr; 1414: 1414: public: 1414: _NodeBase _M_header; 1414: size_t _M_node_count; 1414: 1414: _Header() noexcept 1414: { 1414: _M_header._M_color = _S_red; 1414: _M_reset(); 1414: } 1414: 1414: _Header(_Header&& __x) noexcept 1414: { 1414: if (__x._M_header._M_parent) 1414: _M_move_data(__x); 1414: else 1414: { 1414: _M_header._M_color = _S_red; 1414: _M_reset(); 1414: } 1414: } 1414: 1414: void 1414: _M_move_data(_Header& __from) 1414: { 1414: _M_header._M_color = __from._M_header._M_color; 1414: _M_header._M_parent = __from._M_header._M_parent; 1414: _M_header._M_left = __from._M_header._M_left; 1414: _M_header._M_right = __from._M_header._M_right; 1414: _M_header._M_parent->_M_parent = _M_header._M_base_ptr(); 1414: _M_node_count = __from._M_node_count; 1414: 1414: __from._M_reset(); 1414: } 1414: 1414: void 1414: _M_reset() 1414: { 1414: _M_header._M_parent = nullptr; 1414: _M_header._M_left = _M_header._M_right = _M_header._M_base_ptr(); 1414: _M_node_count = 0; 1414: } 1414: }; 1414: 1414: template 1414: struct _Node : public __rb_tree::_Node_base<__ptr_rebind<_ValPtr, void>> 1414: { 1414: using value_type = typename pointer_traits<_ValPtr>::element_type; 1414: using _Node_ptr = __ptr_rebind<_ValPtr, _Node>; 1414: 1414: _Node() noexcept { } 1414: ~_Node() { } 1414: _Node(_Node&&) = delete; 1414: 1414: union _Uninit_storage 1414: { 1414: _Uninit_storage() noexcept { } 1414: ~_Uninit_storage() { } 1414: 1414: value_type _M_data; 1414: }; 1414: _Uninit_storage _M_u; 1414: 1414: value_type* 1414: _M_valptr() 1414: { return std::addressof(_M_u._M_data); } 1414: 1414: value_type const* 1414: _M_valptr() const 1414: { return std::addressof(_M_u._M_data); } 1414: 1414: _Node_ptr 1414: _M_node_ptr() noexcept 1414: { return pointer_traits<_Node_ptr>::pointer_to(*this); } 1414: }; 1414: } 1414: 1414: 1414: __attribute__ ((__pure__)) _Rb_tree_node_base* 1414: _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); 1414: 1414: __attribute__ ((__pure__)) _Rb_tree_node_base* 1414: _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); 1414: 1414: template 1414: struct _Rb_tree_iterator 1414: { 1414: typedef _Tp value_type; 1414: typedef _Tp& reference; 1414: typedef _Tp* pointer; 1414: 1414: typedef bidirectional_iterator_tag iterator_category; 1414: typedef ptrdiff_t difference_type; 1414: 1414: typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; 1414: typedef _Rb_tree_node<_Tp>* _Node_ptr; 1414: 1414: _Rb_tree_iterator() noexcept 1414: : _M_node() { } 1414: 1414: explicit 1414: _Rb_tree_iterator(_Base_ptr __x) noexcept 1414: : _M_node(__x) { } 1414: 1414: reference 1414: operator*() const noexcept 1414: { return *static_cast<_Node_ptr>(_M_node)->_M_valptr(); } 1414: 1414: pointer 1414: operator->() const noexcept 1414: { return static_cast<_Node_ptr>(_M_node)->_M_valptr(); } 1414: 1414: _Rb_tree_iterator& 1414: operator++() noexcept 1414: { 1414: _M_node = _Rb_tree_increment(_M_node); 1414: return *this; 1414: } 1414: 1414: _Rb_tree_iterator 1414: operator++(int) noexcept 1414: { 1414: _Rb_tree_iterator __tmp = *this; 1414: _M_node = _Rb_tree_increment(_M_node); 1414: return __tmp; 1414: } 1414: 1414: _Rb_tree_iterator& 1414: operator--() noexcept 1414: { 1414: _M_node = _Rb_tree_decrement(_M_node); 1414: return *this; 1414: } 1414: 1414: _Rb_tree_iterator 1414: operator--(int) noexcept 1414: { 1414: _Rb_tree_iterator __tmp = *this; 1414: _M_node = _Rb_tree_decrement(_M_node); 1414: return __tmp; 1414: } 1414: 1414: friend bool 1414: operator==(const _Rb_tree_iterator& __x, 1414: const _Rb_tree_iterator& __y) noexcept 1414: { return __x._M_node == __y._M_node; } 1414: # 441 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: _Base_ptr _M_node; 1414: }; 1414: 1414: template 1414: struct _Rb_tree_const_iterator 1414: { 1414: typedef _Tp value_type; 1414: typedef const _Tp& reference; 1414: typedef const _Tp* pointer; 1414: 1414: typedef _Rb_tree_iterator<_Tp> iterator; 1414: 1414: typedef bidirectional_iterator_tag iterator_category; 1414: typedef ptrdiff_t difference_type; 1414: 1414: typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; 1414: typedef const _Rb_tree_node<_Tp>* _Node_ptr; 1414: 1414: _Rb_tree_const_iterator() noexcept 1414: : _M_node() { } 1414: 1414: explicit 1414: _Rb_tree_const_iterator(_Base_ptr __x) noexcept 1414: : _M_node(__x) { } 1414: 1414: _Rb_tree_const_iterator(const iterator& __it) noexcept 1414: : _M_node(__it._M_node) { } 1414: 1414: reference 1414: operator*() const noexcept 1414: { return *static_cast<_Node_ptr>(_M_node)->_M_valptr(); } 1414: 1414: pointer 1414: operator->() const noexcept 1414: { return static_cast<_Node_ptr>(_M_node)->_M_valptr(); } 1414: 1414: _Rb_tree_const_iterator& 1414: operator++() noexcept 1414: { 1414: _M_node = _Rb_tree_increment(_M_node); 1414: return *this; 1414: } 1414: 1414: _Rb_tree_const_iterator 1414: operator++(int) noexcept 1414: { 1414: _Rb_tree_const_iterator __tmp = *this; 1414: _M_node = _Rb_tree_increment(_M_node); 1414: return __tmp; 1414: } 1414: 1414: _Rb_tree_const_iterator& 1414: operator--() noexcept 1414: { 1414: _M_node = _Rb_tree_decrement(_M_node); 1414: return *this; 1414: } 1414: 1414: _Rb_tree_const_iterator 1414: operator--(int) noexcept 1414: { 1414: _Rb_tree_const_iterator __tmp = *this; 1414: _M_node = _Rb_tree_decrement(_M_node); 1414: return __tmp; 1414: } 1414: 1414: friend bool 1414: operator==(const _Rb_tree_const_iterator& __x, 1414: const _Rb_tree_const_iterator& __y) noexcept 1414: { return __x._M_node == __y._M_node; } 1414: # 519 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: _Base_ptr _M_node; 1414: }; 1414: 1414: __attribute__((__nonnull__)) 1414: void 1414: _Rb_tree_insert_and_rebalance(const bool __insert_left, 1414: _Rb_tree_node_base* __x, 1414: _Rb_tree_node_base* __p, 1414: _Rb_tree_node_base& __header) throw (); 1414: 1414: __attribute__((__nonnull__,__returns_nonnull__)) 1414: _Rb_tree_node_base* 1414: _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, 1414: _Rb_tree_node_base& __header) throw (); 1414: 1414: namespace __rb_tree 1414: { 1414: 1414: template 1414: struct _Iterator 1414: { 1414: template 1414: using __maybe_const = __conditional_t<_Const, const _Tp, _Tp>; 1414: 1414: using __ptr_traits = pointer_traits<_ValPtr>; 1414: using value_type = typename __ptr_traits::element_type; 1414: using reference = __maybe_const&; 1414: using pointer = __maybe_const*; 1414: 1414: using iterator_category = bidirectional_iterator_tag; 1414: using difference_type = ptrdiff_t; 1414: 1414: using _Node = __rb_tree::_Node<_ValPtr>; 1414: using _Node_base = __rb_tree::_Node_base<__ptr_rebind<_ValPtr, void>>; 1414: using _Base_ptr = typename _Node_base::_Base_ptr; 1414: 1414: _Iterator() noexcept 1414: : _M_node() { } 1414: 1414: constexpr explicit 1414: _Iterator(_Base_ptr __x) noexcept 1414: : _M_node(__x) { } 1414: 1414: _Iterator(const _Iterator&) = default; 1414: _Iterator& operator=(const _Iterator&) = default; 1414: 1414: 1414: constexpr 1414: _Iterator(const _Iterator& __it) requires _Const 1414: 1414: 1414: 1414: 1414: 1414: 1414: : _M_node(__it._M_node) { } 1414: 1414: [[__nodiscard__]] 1414: reference 1414: operator*() const noexcept 1414: { return *static_cast<_Node&>(*_M_node)._M_valptr(); } 1414: 1414: [[__nodiscard__]] 1414: pointer 1414: operator->() const noexcept 1414: { return static_cast<_Node&>(*_M_node)._M_valptr(); } 1414: 1414: constexpr _Iterator& 1414: operator++() noexcept 1414: { 1414: if (_M_node->_M_right) 1414: { 1414: _M_node = _M_node->_M_right; 1414: while (_M_node->_M_left) 1414: _M_node = _M_node->_M_left; 1414: } 1414: else 1414: { 1414: _Base_ptr __y = _M_node->_M_parent; 1414: while (_M_node == __y->_M_right) 1414: { 1414: _M_node = __y; 1414: __y = __y->_M_parent; 1414: } 1414: if (_M_node->_M_right != __y) 1414: _M_node = __y; 1414: } 1414: 1414: return *this; 1414: } 1414: 1414: constexpr _Iterator 1414: operator++(int) noexcept 1414: { 1414: _Iterator __tmp(this->_M_node); 1414: ++*this; 1414: return __tmp; 1414: } 1414: 1414: constexpr _Iterator& 1414: operator--() noexcept 1414: { 1414: if (_M_node->_M_color == _S_red 1414: && _M_node->_M_parent->_M_parent == _M_node) 1414: _M_node = _M_node->_M_right; 1414: else if (_M_node->_M_left) 1414: { 1414: _Base_ptr __y = _M_node->_M_left; 1414: while (__y->_M_right) 1414: __y = __y->_M_right; 1414: _M_node = __y; 1414: } 1414: else 1414: { 1414: _Base_ptr __y = _M_node->_M_parent; 1414: while (_M_node == __y->_M_left) 1414: { 1414: _M_node = __y; 1414: __y = __y->_M_parent; 1414: } 1414: _M_node = __y; 1414: } 1414: return *this; 1414: } 1414: 1414: constexpr _Iterator 1414: operator--(int) noexcept 1414: { 1414: _Iterator __tmp(this->_M_node); 1414: --*this; 1414: return __tmp; 1414: } 1414: 1414: [[__nodiscard__]] 1414: friend bool 1414: operator==(const _Iterator& __x, const _Iterator& __y) noexcept 1414: { return __x._M_node == __y._M_node; } 1414: # 664 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: _Base_ptr _M_node; 1414: }; 1414: 1414: 1414: 1414: template 1414: struct _Node_traits; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct _Node_traits<_Val, _Val*> 1414: { 1414: typedef _Rb_tree_node<_Val> _Node; 1414: typedef _Node* _Node_ptr; 1414: typedef _Rb_tree_node_base _Node_base; 1414: typedef _Node_base* _Base_ptr; 1414: typedef _Rb_tree_header _Header_t; 1414: typedef _Rb_tree_iterator<_Val> _Iterator; 1414: typedef _Rb_tree_const_iterator<_Val> _Const_iterator; 1414: 1414: __attribute__((__nonnull__)) 1414: static void 1414: _S_insert_and_rebalance(const bool __insert_left, 1414: _Node_base* __x, _Node_base* __p, 1414: _Node_base& __header) noexcept 1414: { 1414: return _Rb_tree_insert_and_rebalance(__insert_left, __x, __p, __header); 1414: } 1414: 1414: __attribute__((__nonnull__,__returns_nonnull__)) 1414: static _Node_base* 1414: _S_rebalance_for_erase(_Node_base* const __z, 1414: _Node_base& __header) noexcept 1414: { return _Rb_tree_rebalance_for_erase(__z, __header); } 1414: }; 1414: # 712 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: template 1414: struct _Node_traits 1414: { 1414: using _Node = __rb_tree::_Node<_ValPtr>; 1414: using _Node_ptr = __ptr_rebind<_ValPtr, _Node>; 1414: using _Node_base = __rb_tree::_Node_base<__ptr_rebind<_ValPtr, void>>; 1414: using _Base_ptr = __ptr_rebind<_ValPtr, _Node_base>; 1414: using _Header_t = __rb_tree::_Header<_Node_base>; 1414: using _Iterator = __rb_tree::_Iterator; 1414: using _Const_iterator = __rb_tree::_Iterator; 1414: 1414: static void 1414: _Rotate_left(_Base_ptr __x, _Base_ptr& __root) 1414: { 1414: const _Base_ptr __y = __x->_M_right; 1414: 1414: __x->_M_right = __y->_M_left; 1414: if (__y->_M_left) 1414: __y->_M_left->_M_parent = __x; 1414: __y->_M_parent = __x->_M_parent; 1414: 1414: if (__x == __root) 1414: __root = __y; 1414: else if (__x == __x->_M_parent->_M_left) 1414: __x->_M_parent->_M_left = __y; 1414: else 1414: __x->_M_parent->_M_right = __y; 1414: __y->_M_left = __x; 1414: __x->_M_parent = __y; 1414: } 1414: 1414: static void 1414: _Rotate_right(_Base_ptr __x, _Base_ptr& __root) 1414: { 1414: const _Base_ptr __y = __x->_M_left; 1414: 1414: __x->_M_left = __y->_M_right; 1414: if (__y->_M_right) 1414: __y->_M_right->_M_parent = __x; 1414: __y->_M_parent = __x->_M_parent; 1414: 1414: if (__x == __root) 1414: __root = __y; 1414: else if (__x == __x->_M_parent->_M_right) 1414: __x->_M_parent->_M_right = __y; 1414: else 1414: __x->_M_parent->_M_left = __y; 1414: __y->_M_right = __x; 1414: __x->_M_parent = __y; 1414: } 1414: 1414: static void 1414: _S_insert_and_rebalance(const bool __insert_left, 1414: _Base_ptr __x, _Base_ptr __p, 1414: _Node_base& __header) 1414: { 1414: _Base_ptr& __root = __header._M_parent; 1414: 1414: 1414: __x->_M_parent = __p; 1414: __x->_M_left = __x->_M_right = nullptr; 1414: __x->_M_color = _S_red; 1414: 1414: 1414: 1414: 1414: 1414: if (__insert_left) 1414: { 1414: __p->_M_left = __x; 1414: 1414: if (std::__to_address(__p) == std::addressof(__header)) 1414: { 1414: __header._M_parent = __x; 1414: __header._M_right = __x; 1414: } 1414: else if (__p == __header._M_left) 1414: __header._M_left = __x; 1414: } 1414: else 1414: { 1414: __p->_M_right = __x; 1414: 1414: if (__p == __header._M_right) 1414: __header._M_right = __x; 1414: } 1414: 1414: while (__x != __root 1414: && __x->_M_parent->_M_color == _S_red) 1414: { 1414: const _Base_ptr __xpp = __x->_M_parent->_M_parent; 1414: 1414: if (__x->_M_parent == __xpp->_M_left) 1414: { 1414: const _Base_ptr __y = __xpp->_M_right; 1414: if (__y && __y->_M_color == _S_red) 1414: { 1414: __x->_M_parent->_M_color = _S_black; 1414: __y->_M_color = _S_black; 1414: __xpp->_M_color = _S_red; 1414: __x = __xpp; 1414: } 1414: else 1414: { 1414: if (__x == __x->_M_parent->_M_right) 1414: { 1414: __x = __x->_M_parent; 1414: _Rotate_left(__x, __root); 1414: } 1414: __x->_M_parent->_M_color = _S_black; 1414: __xpp->_M_color = _S_red; 1414: _Rotate_right(__xpp, __root); 1414: } 1414: } 1414: else 1414: { 1414: const _Base_ptr __y = __xpp->_M_left; 1414: if (__y && __y->_M_color == _S_red) 1414: { 1414: __x->_M_parent->_M_color = _S_black; 1414: __y->_M_color = _S_black; 1414: __xpp->_M_color = _S_red; 1414: __x = __xpp; 1414: } 1414: else 1414: { 1414: if (__x == __x->_M_parent->_M_left) 1414: { 1414: __x = __x->_M_parent; 1414: _Rotate_right(__x, __root); 1414: } 1414: __x->_M_parent->_M_color = _S_black; 1414: __xpp->_M_color = _S_red; 1414: _Rotate_left(__xpp, __root); 1414: } 1414: } 1414: } 1414: __root->_M_color = _S_black; 1414: } 1414: 1414: static _Base_ptr 1414: _S_rebalance_for_erase(_Base_ptr __z, _Node_base& __header) 1414: { 1414: _Base_ptr& __root = __header._M_parent; 1414: _Base_ptr& __leftmost = __header._M_left; 1414: _Base_ptr& __rightmost = __header._M_right; 1414: _Base_ptr __y = __z; 1414: _Base_ptr __x{}; 1414: _Base_ptr __x_parent{}; 1414: 1414: if (!__y->_M_left) 1414: __x = __y->_M_right; 1414: else 1414: if (!__y->_M_right) 1414: __x = __y->_M_left; 1414: else 1414: { 1414: 1414: __y = __y->_M_right; 1414: while (__y->_M_left) 1414: __y = __y->_M_left; 1414: __x = __y->_M_right; 1414: } 1414: if (__y != __z) 1414: { 1414: 1414: __z->_M_left->_M_parent = __y; 1414: __y->_M_left = __z->_M_left; 1414: if (__y != __z->_M_right) 1414: { 1414: __x_parent = __y->_M_parent; 1414: if (__x) 1414: __x->_M_parent = __y->_M_parent; 1414: __y->_M_parent->_M_left = __x; 1414: __y->_M_right = __z->_M_right; 1414: __z->_M_right->_M_parent = __y; 1414: } 1414: else 1414: __x_parent = __y; 1414: if (__root == __z) 1414: __root = __y; 1414: else if (__z->_M_parent->_M_left == __z) 1414: __z->_M_parent->_M_left = __y; 1414: else 1414: __z->_M_parent->_M_right = __y; 1414: __y->_M_parent = __z->_M_parent; 1414: std::swap(__y->_M_color, __z->_M_color); 1414: __y = __z; 1414: 1414: } 1414: else 1414: { 1414: __x_parent = __y->_M_parent; 1414: if (__x) 1414: __x->_M_parent = __y->_M_parent; 1414: if (__root == __z) 1414: __root = __x; 1414: else 1414: if (__z->_M_parent->_M_left == __z) 1414: __z->_M_parent->_M_left = __x; 1414: else 1414: __z->_M_parent->_M_right = __x; 1414: if (__leftmost == __z) 1414: { 1414: if (!__z->_M_right) 1414: __leftmost = __z->_M_parent; 1414: 1414: else 1414: __leftmost = _Node_base::_S_minimum(__x); 1414: } 1414: if (__rightmost == __z) 1414: { 1414: if (__z->_M_left == 0) 1414: __rightmost = __z->_M_parent; 1414: 1414: else 1414: __rightmost = _Node_base::_S_maximum(__x); 1414: } 1414: } 1414: if (__y->_M_color != _S_red) 1414: { 1414: while (__x != __root && (__x == 0 || __x->_M_color == _S_black)) 1414: if (__x == __x_parent->_M_left) 1414: { 1414: _Base_ptr __w = __x_parent->_M_right; 1414: if (__w->_M_color == _S_red) 1414: { 1414: __w->_M_color = _S_black; 1414: __x_parent->_M_color = _S_red; 1414: _Rotate_left(__x_parent, __root); 1414: __w = __x_parent->_M_right; 1414: } 1414: if ((!__w->_M_left || __w->_M_left->_M_color == _S_black) && 1414: (!__w->_M_right || __w->_M_right->_M_color == _S_black)) 1414: { 1414: __w->_M_color = _S_red; 1414: __x = __x_parent; 1414: __x_parent = __x_parent->_M_parent; 1414: } 1414: else 1414: { 1414: if (!__w->_M_right || __w->_M_right->_M_color == _S_black) 1414: { 1414: __w->_M_left->_M_color = _S_black; 1414: __w->_M_color = _S_red; 1414: _Rotate_right(__w, __root); 1414: __w = __x_parent->_M_right; 1414: } 1414: __w->_M_color = __x_parent->_M_color; 1414: __x_parent->_M_color = _S_black; 1414: if (__w->_M_right) 1414: __w->_M_right->_M_color = _S_black; 1414: _Rotate_left(__x_parent, __root); 1414: break; 1414: } 1414: } 1414: else 1414: { 1414: 1414: _Base_ptr __w = __x_parent->_M_left; 1414: if (__w->_M_color == _S_red) 1414: { 1414: __w->_M_color = _S_black; 1414: __x_parent->_M_color = _S_red; 1414: _Rotate_right(__x_parent, __root); 1414: __w = __x_parent->_M_left; 1414: } 1414: if ((!__w->_M_right || __w->_M_right->_M_color == _S_black) && 1414: (!__w->_M_left || __w->_M_left->_M_color == _S_black)) 1414: { 1414: __w->_M_color = _S_red; 1414: __x = __x_parent; 1414: __x_parent = __x_parent->_M_parent; 1414: } 1414: else 1414: { 1414: if (!__w->_M_left || __w->_M_left->_M_color == _S_black) 1414: { 1414: __w->_M_right->_M_color = _S_black; 1414: __w->_M_color = _S_red; 1414: _Rotate_left(__w, __root); 1414: __w = __x_parent->_M_left; 1414: } 1414: __w->_M_color = __x_parent->_M_color; 1414: __x_parent->_M_color = _S_black; 1414: if (__w->_M_left) 1414: __w->_M_left->_M_color = _S_black; 1414: _Rotate_right(__x_parent, __root); 1414: break; 1414: } 1414: } 1414: if (__x) 1414: __x->_M_color = _S_black; 1414: } 1414: 1414: return __y; 1414: } 1414: }; 1414: 1414: } 1414: 1414: 1414: template 1414: struct _Rb_tree_merge_helper { }; 1414: 1414: 1414: template > 1414: class _Rb_tree 1414: { 1414: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 1414: rebind<_Val>::other _Val_alloc_type; 1414: 1414: typedef __gnu_cxx::__alloc_traits<_Val_alloc_type> _Val_alloc_traits; 1414: typedef typename _Val_alloc_traits::pointer _ValPtr; 1414: typedef __rb_tree::_Node_traits<_Val, _ValPtr> _Node_traits; 1414: 1414: typedef typename _Node_traits::_Node_base _Node_base; 1414: typedef typename _Node_traits::_Node _Node; 1414: 1414: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 1414: rebind<_Node>::other _Node_allocator; 1414: 1414: typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Node_alloc_traits; 1414: 1414: protected: 1414: typedef typename _Node_traits::_Base_ptr _Base_ptr; 1414: typedef typename _Node_traits::_Node_ptr _Node_ptr; 1414: 1414: private: 1414: 1414: 1414: struct _Reuse_or_alloc_node 1414: { 1414: _Reuse_or_alloc_node(_Rb_tree& __t) 1414: : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t) 1414: { 1414: if (_M_root) 1414: { 1414: _M_root->_M_parent = _Base_ptr(); 1414: 1414: if (_M_nodes->_M_left) 1414: _M_nodes = _M_nodes->_M_left; 1414: } 1414: else 1414: _M_nodes = _Base_ptr(); 1414: } 1414: 1414: 1414: _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; 1414: 1414: 1414: ~_Reuse_or_alloc_node() 1414: { 1414: if (_M_root) 1414: _M_t._M_erase(static_cast<_Node&>(*_M_root)._M_node_ptr()); 1414: } 1414: 1414: template 1414: _Node_ptr 1414: operator()(_Arg&& __arg) 1414: { 1414: _Base_ptr __base = _M_extract(); 1414: if (__base) 1414: { 1414: _Node_ptr __node = static_cast<_Node&>(*__base)._M_node_ptr(); 1414: _M_t._M_destroy_node(__node); 1414: _M_t._M_construct_node(__node, std::forward<_Arg>(__arg)); 1414: return __node; 1414: } 1414: 1414: return _M_t._M_create_node(std::forward<_Arg>(__arg)); 1414: } 1414: 1414: private: 1414: _Base_ptr 1414: _M_extract() 1414: { 1414: if (!_M_nodes) 1414: return _M_nodes; 1414: 1414: _Base_ptr __node = _M_nodes; 1414: _M_nodes = _M_nodes->_M_parent; 1414: if (_M_nodes) 1414: { 1414: if (_M_nodes->_M_right == __node) 1414: { 1414: _M_nodes->_M_right = _Base_ptr(); 1414: 1414: if (_M_nodes->_M_left) 1414: { 1414: _M_nodes = _M_nodes->_M_left; 1414: 1414: while (_M_nodes->_M_right) 1414: _M_nodes = _M_nodes->_M_right; 1414: 1414: if (_M_nodes->_M_left) 1414: _M_nodes = _M_nodes->_M_left; 1414: } 1414: } 1414: else 1414: _M_nodes->_M_left = _Base_ptr(); 1414: } 1414: else 1414: _M_root = _Base_ptr(); 1414: 1414: return __node; 1414: } 1414: 1414: _Base_ptr _M_root; 1414: _Base_ptr _M_nodes; 1414: _Rb_tree& _M_t; 1414: }; 1414: 1414: 1414: 1414: struct _Alloc_node 1414: { 1414: _Alloc_node(_Rb_tree& __t) 1414: : _M_t(__t) { } 1414: 1414: template 1414: _Node_ptr 1414: operator()(_Arg&& __arg) const 1414: { return _M_t._M_create_node(std::forward<_Arg>(__arg)); } 1414: 1414: private: 1414: _Rb_tree& _M_t; 1414: }; 1414: 1414: public: 1414: typedef _Key key_type; 1414: typedef _Val value_type; 1414: typedef value_type* pointer; 1414: typedef const value_type* const_pointer; 1414: typedef value_type& reference; 1414: typedef const value_type& const_reference; 1414: typedef size_t size_type; 1414: typedef ptrdiff_t difference_type; 1414: typedef _Alloc allocator_type; 1414: 1414: _Node_allocator& 1414: _M_get_Node_allocator() noexcept 1414: { return this->_M_impl; } 1414: 1414: const _Node_allocator& 1414: _M_get_Node_allocator() const noexcept 1414: { return this->_M_impl; } 1414: 1414: allocator_type 1414: get_allocator() const noexcept 1414: { return allocator_type(_M_get_Node_allocator()); } 1414: 1414: protected: 1414: _Node_ptr 1414: _M_get_node() 1414: { 1414: 1414: return _Node_alloc_traits::allocate(_M_get_Node_allocator(), 1); 1414: # 1185 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: } 1414: 1414: void 1414: _M_put_node(_Node_ptr __p) noexcept 1414: { 1414: 1414: _Node_alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); 1414: # 1207 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: } 1414: # 1230 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: template 1414: void 1414: _M_construct_node(_Node_ptr __node, _Args&&... __args) 1414: { 1414: try 1414: { 1414: ::new(std::addressof(*__node)) _Node; 1414: _Node_alloc_traits::construct(_M_get_Node_allocator(), 1414: __node->_M_valptr(), 1414: std::forward<_Args>(__args)...); 1414: } 1414: catch(...) 1414: { 1414: __node->~_Node(); 1414: _M_put_node(__node); 1414: throw; 1414: } 1414: } 1414: 1414: template 1414: _Node_ptr 1414: _M_create_node(_Args&&... __args) 1414: { 1414: _Node_ptr __tmp = _M_get_node(); 1414: _M_construct_node(__tmp, std::forward<_Args>(__args)...); 1414: return __tmp; 1414: } 1414: 1414: 1414: void 1414: _M_destroy_node(_Node_ptr __p) noexcept 1414: { 1414: 1414: 1414: 1414: _Node_alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr()); 1414: __p->~_Node(); 1414: 1414: } 1414: 1414: void 1414: _M_drop_node(_Node_ptr __p) noexcept 1414: { 1414: _M_destroy_node(__p); 1414: _M_put_node(__p); 1414: } 1414: 1414: template 1414: _Node_ptr 1414: _M_clone_node(_Node_ptr __x, _NodeGen& __node_gen) 1414: { 1414: 1414: using _Vp = __conditional_t<_MoveValue, 1414: value_type&&, 1414: const value_type&>; 1414: 1414: _Node_ptr __tmp 1414: = __node_gen(std::forward<_Vp>(*__x->_M_valptr())); 1414: __tmp->_M_color = __x->_M_color; 1414: __tmp->_M_left = __tmp->_M_right = _Base_ptr(); 1414: return __tmp; 1414: } 1414: 1414: protected: 1414: typedef typename _Node_traits::_Header_t _Header_t; 1414: 1414: 1414: 1414: 1414: 1414: template 1414: 1414: struct _Rb_tree_impl 1414: : public _Node_allocator 1414: , public _Rb_tree_key_compare<_Key_compare> 1414: , public _Header_t 1414: { 1414: typedef _Rb_tree_key_compare<_Key_compare> _Base_key_compare; 1414: 1414: _Rb_tree_impl() 1414: noexcept(is_nothrow_default_constructible<_Node_allocator>::value && is_nothrow_default_constructible<_Base_key_compare>::value) 1414: 1414: 1414: : _Node_allocator() 1414: { } 1414: 1414: _Rb_tree_impl(const _Rb_tree_impl& __x) 1414: : _Node_allocator(_Node_alloc_traits::_S_select_on_copy(__x)) 1414: , _Base_key_compare(__x._M_key_compare) 1414: , _Header_t() 1414: { } 1414: 1414: 1414: 1414: 1414: 1414: 1414: _Rb_tree_impl(_Rb_tree_impl&&) 1414: noexcept( is_nothrow_move_constructible<_Base_key_compare>::value ) 1414: = default; 1414: 1414: explicit 1414: _Rb_tree_impl(_Node_allocator&& __a) 1414: : _Node_allocator(std::move(__a)) 1414: { } 1414: 1414: _Rb_tree_impl(_Rb_tree_impl&& __x, _Node_allocator&& __a) 1414: : _Node_allocator(std::move(__a)), 1414: _Base_key_compare(std::move(__x)), 1414: _Header_t(std::move(__x)) 1414: { } 1414: 1414: _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a) 1414: : _Node_allocator(std::move(__a)), _Base_key_compare(__comp) 1414: { } 1414: 1414: }; 1414: 1414: _Rb_tree_impl<_Compare> _M_impl; 1414: 1414: protected: 1414: _Base_ptr& 1414: _M_root() noexcept 1414: { return this->_M_impl._M_header._M_parent; } 1414: 1414: _Base_ptr 1414: _M_root() const noexcept 1414: { return this->_M_impl._M_header._M_parent; } 1414: 1414: _Base_ptr& 1414: _M_leftmost() noexcept 1414: { return this->_M_impl._M_header._M_left; } 1414: 1414: _Base_ptr 1414: _M_leftmost() const noexcept 1414: { return this->_M_impl._M_header._M_left; } 1414: 1414: _Base_ptr& 1414: _M_rightmost() noexcept 1414: { return this->_M_impl._M_header._M_right; } 1414: 1414: _Base_ptr 1414: _M_rightmost() const noexcept 1414: { return this->_M_impl._M_header._M_right; } 1414: 1414: _Base_ptr 1414: _M_begin() const noexcept 1414: { return this->_M_impl._M_header._M_parent; } 1414: 1414: _Node_ptr 1414: _M_begin_node() const noexcept 1414: { 1414: _Base_ptr __begin = this->_M_impl._M_header._M_parent; 1414: return __begin 1414: ? static_cast<_Node&>(*__begin)._M_node_ptr() 1414: : _Node_ptr(); 1414: } 1414: 1414: _Base_ptr 1414: _M_end() const noexcept 1414: { return this->_M_impl._M_header._M_base_ptr(); } 1414: 1414: 1414: 1414: template 1414: bool 1414: _M_key_compare(const _Key1& __k1, const _Key2& __k2) const 1414: { 1414: 1414: 1414: static_assert( 1414: __is_invocable::value, 1414: "comparison object must be invocable with arguments of key_type" 1414: ); 1414: 1414: return _M_impl._M_key_compare(__k1, __k2); 1414: } 1414: 1414: static const _Key& 1414: _S_key(const _Node& __node) 1414: { return _KeyOfValue()(*__node._M_valptr()); } 1414: 1414: static const _Key& 1414: _S_key(_Base_ptr __x) 1414: { return _S_key(static_cast(*__x)); } 1414: 1414: static const _Key& 1414: _S_key(_Node_ptr __x) 1414: { return _S_key(*__x); } 1414: 1414: static _Base_ptr 1414: _S_left(_Base_ptr __x) noexcept 1414: { return __x->_M_left; } 1414: 1414: static _Node_ptr 1414: _S_left(_Node_ptr __x) 1414: { 1414: return __x->_M_left 1414: ? static_cast<_Node&>(*__x->_M_left)._M_node_ptr() 1414: : _Node_ptr(); 1414: } 1414: 1414: static _Base_ptr 1414: _S_right(_Base_ptr __x) noexcept 1414: { return __x->_M_right; } 1414: 1414: static _Node_ptr 1414: _S_right(_Node_ptr __x) noexcept 1414: { 1414: return __x->_M_right 1414: ? static_cast<_Node&>(*__x->_M_right)._M_node_ptr() 1414: : _Node_ptr(); 1414: } 1414: 1414: public: 1414: typedef typename _Node_traits::_Iterator iterator; 1414: typedef typename _Node_traits::_Const_iterator const_iterator; 1414: 1414: typedef std::reverse_iterator reverse_iterator; 1414: typedef std::reverse_iterator const_reverse_iterator; 1414: 1414: 1414: using node_type = _Node_handle<_Key, _Val, _Node_allocator>; 1414: using insert_return_type = _Node_insert_return< 1414: __conditional_t, const_iterator, iterator>, 1414: node_type>; 1414: 1414: 1414: pair<_Base_ptr, _Base_ptr> 1414: _M_get_insert_unique_pos(const key_type& __k); 1414: 1414: pair<_Base_ptr, _Base_ptr> 1414: _M_get_insert_equal_pos(const key_type& __k); 1414: 1414: pair<_Base_ptr, _Base_ptr> 1414: _M_get_insert_hint_unique_pos(const_iterator __pos, 1414: const key_type& __k); 1414: 1414: pair<_Base_ptr, _Base_ptr> 1414: _M_get_insert_hint_equal_pos(const_iterator __pos, 1414: const key_type& __k); 1414: # 1487 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: private: 1414: 1414: template 1414: iterator 1414: _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&); 1414: 1414: iterator 1414: _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Node_ptr __z); 1414: 1414: template 1414: iterator 1414: _M_insert_lower(_Base_ptr __y, _Arg&& __v); 1414: 1414: template 1414: iterator 1414: _M_insert_equal_lower(_Arg&& __x); 1414: 1414: iterator 1414: _M_insert_lower_node(_Base_ptr __p, _Node_ptr __z); 1414: 1414: iterator 1414: _M_insert_equal_lower_node(_Node_ptr __z); 1414: # 1524 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: enum { __as_lvalue, __as_rvalue }; 1414: 1414: template 1414: _Base_ptr 1414: _M_copy(_Node_ptr, _Base_ptr, _NodeGen&); 1414: 1414: template 1414: _Base_ptr 1414: _M_copy(const _Rb_tree& __x, _NodeGen& __gen) 1414: { 1414: _Base_ptr __root = 1414: _M_copy<_MoveValues>(__x._M_begin_node(), _M_end(), __gen); 1414: _M_leftmost() = _Node_base::_S_minimum(__root); 1414: _M_rightmost() = _Node_base::_S_maximum(__root); 1414: _M_impl._M_node_count = __x._M_impl._M_node_count; 1414: return __root; 1414: } 1414: 1414: _Base_ptr 1414: _M_copy(const _Rb_tree& __x) 1414: { 1414: _Alloc_node __an(*this); 1414: return _M_copy<__as_lvalue>(__x, __an); 1414: } 1414: 1414: void 1414: _M_erase(_Node_ptr __x); 1414: 1414: _Base_ptr 1414: _M_lower_bound(_Base_ptr __x, _Base_ptr __y, 1414: const _Key& __k) const; 1414: 1414: template 1414: _Base_ptr 1414: _M_lower_bound_tr(_Base_ptr __x, _Base_ptr __y, const _Kt& __k) const; 1414: 1414: _Base_ptr 1414: _M_upper_bound(_Base_ptr __x, _Base_ptr __y, 1414: const _Key& __k) const; 1414: 1414: template 1414: _Base_ptr 1414: _M_upper_bound_tr(_Base_ptr __x, _Base_ptr __y, const _Kt& __k) const; 1414: 1414: public: 1414: 1414: 1414: 1414: 1414: _Rb_tree() = default; 1414: 1414: 1414: _Rb_tree(const _Compare& __comp, 1414: const allocator_type& __a = allocator_type()) 1414: : _M_impl(__comp, _Node_allocator(__a)) { } 1414: 1414: _Rb_tree(const _Rb_tree& __x) 1414: : _M_impl(__x._M_impl) 1414: { 1414: if (__x._M_root()) 1414: _M_root() = _M_copy(__x); 1414: } 1414: 1414: 1414: _Rb_tree(const allocator_type& __a) 1414: : _M_impl(_Node_allocator(__a)) 1414: { } 1414: 1414: _Rb_tree(const _Rb_tree& __x, const allocator_type& __a) 1414: : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a)) 1414: { 1414: if (__x._M_root()) 1414: _M_root() = _M_copy(__x); 1414: } 1414: 1414: _Rb_tree(_Rb_tree&&) = default; 1414: 1414: _Rb_tree(_Rb_tree&& __x, const allocator_type& __a) 1414: : _Rb_tree(std::move(__x), _Node_allocator(__a)) 1414: { } 1414: 1414: private: 1414: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a, true_type) 1414: noexcept(is_nothrow_default_constructible<_Compare>::value) 1414: : _M_impl(std::move(__x._M_impl), std::move(__a)) 1414: { } 1414: 1414: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a, false_type) 1414: : _M_impl(__x._M_impl._M_key_compare, std::move(__a)) 1414: { 1414: if (__x._M_root()) 1414: _M_move_data(__x, false_type{}); 1414: } 1414: 1414: public: 1414: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a) 1414: noexcept( noexcept( 1414: _Rb_tree(std::declval<_Rb_tree&&>(), std::declval<_Node_allocator&&>(), 1414: std::declval())) ) 1414: : _Rb_tree(std::move(__x), std::move(__a), 1414: typename _Node_alloc_traits::is_always_equal{}) 1414: { } 1414: 1414: 1414: ~_Rb_tree() noexcept 1414: { _M_erase(_M_begin_node()); } 1414: 1414: _Rb_tree& 1414: operator=(const _Rb_tree& __x); 1414: 1414: 1414: _Compare 1414: key_comp() const 1414: { return _M_impl._M_key_compare; } 1414: 1414: iterator 1414: begin() noexcept 1414: { return iterator(this->_M_impl._M_header._M_left); } 1414: 1414: const_iterator 1414: begin() const noexcept 1414: { return const_iterator(this->_M_impl._M_header._M_left); } 1414: 1414: iterator 1414: end() noexcept 1414: { return iterator(_M_end()); } 1414: 1414: const_iterator 1414: end() const noexcept 1414: { return const_iterator(_M_end()); } 1414: 1414: reverse_iterator 1414: rbegin() noexcept 1414: { return reverse_iterator(end()); } 1414: 1414: const_reverse_iterator 1414: rbegin() const noexcept 1414: { return const_reverse_iterator(end()); } 1414: 1414: reverse_iterator 1414: rend() noexcept 1414: { return reverse_iterator(begin()); } 1414: 1414: const_reverse_iterator 1414: rend() const noexcept 1414: { return const_reverse_iterator(begin()); } 1414: 1414: [[__nodiscard__]] bool 1414: empty() const noexcept 1414: { return _M_impl._M_node_count == 0; } 1414: 1414: size_type 1414: size() const noexcept 1414: { return _M_impl._M_node_count; } 1414: 1414: size_type 1414: max_size() const noexcept 1414: { return _Node_alloc_traits::max_size(_M_get_Node_allocator()); } 1414: 1414: void 1414: swap(_Rb_tree& __t) 1414: noexcept(__is_nothrow_swappable<_Compare>::value); 1414: 1414: 1414: 1414: template 1414: pair 1414: _M_insert_unique(_Arg&& __x); 1414: 1414: template 1414: iterator 1414: _M_insert_equal(_Arg&& __x); 1414: 1414: template 1414: iterator 1414: _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&); 1414: 1414: template 1414: iterator 1414: _M_insert_unique_(const_iterator __pos, _Arg&& __x) 1414: { 1414: _Alloc_node __an(*this); 1414: return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an); 1414: } 1414: 1414: template 1414: iterator 1414: _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&); 1414: 1414: template 1414: iterator 1414: _M_insert_equal_(const_iterator __pos, _Arg&& __x) 1414: { 1414: _Alloc_node __an(*this); 1414: return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an); 1414: } 1414: 1414: template 1414: pair 1414: _M_emplace_unique(_Args&&... __args); 1414: 1414: template 1414: iterator 1414: _M_emplace_equal(_Args&&... __args); 1414: 1414: template 1414: iterator 1414: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args); 1414: 1414: template 1414: iterator 1414: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args); 1414: 1414: template 1414: using __same_value_type 1414: = is_same::value_type>; 1414: 1414: template 1414: __enable_if_t<__same_value_type<_InputIterator>::value> 1414: _M_insert_range_unique(_InputIterator __first, _InputIterator __last) 1414: { 1414: _Alloc_node __an(*this); 1414: for (; __first != __last; ++__first) 1414: _M_insert_unique_(end(), *__first, __an); 1414: } 1414: 1414: template 1414: __enable_if_t::value> 1414: _M_insert_range_unique(_InputIterator __first, _InputIterator __last) 1414: { 1414: for (; __first != __last; ++__first) 1414: _M_emplace_unique(*__first); 1414: } 1414: 1414: template 1414: __enable_if_t<__same_value_type<_InputIterator>::value> 1414: _M_insert_range_equal(_InputIterator __first, _InputIterator __last) 1414: { 1414: _Alloc_node __an(*this); 1414: for (; __first != __last; ++__first) 1414: _M_insert_equal_(end(), *__first, __an); 1414: } 1414: 1414: template 1414: __enable_if_t::value> 1414: _M_insert_range_equal(_InputIterator __first, _InputIterator __last) 1414: { 1414: for (; __first != __last; ++__first) 1414: _M_emplace_equal(*__first); 1414: } 1414: # 1823 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: private: 1414: void 1414: _M_erase_aux(const_iterator __position); 1414: 1414: void 1414: _M_erase_aux(const_iterator __first, const_iterator __last); 1414: 1414: public: 1414: 1414: 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: iterator 1414: erase(const_iterator __position) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__position != end())) std::__glibcxx_assert_fail(); } while (false); 1414: const_iterator __result = __position; 1414: ++__result; 1414: _M_erase_aux(__position); 1414: return iterator(__result._M_node); 1414: } 1414: 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: iterator 1414: erase(iterator __position) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__position != end())) std::__glibcxx_assert_fail(); } while (false); 1414: iterator __result = __position; 1414: ++__result; 1414: _M_erase_aux(__position); 1414: return __result; 1414: } 1414: # 1872 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: size_type 1414: erase(const key_type& __x); 1414: 1414: template 1414: size_type 1414: _M_erase_tr(const _Kt& __x); 1414: 1414: size_type 1414: _M_erase_unique(const key_type& __x); 1414: 1414: 1414: 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: iterator 1414: erase(const_iterator __first, const_iterator __last) 1414: { 1414: _M_erase_aux(__first, __last); 1414: return iterator(__last._M_node); 1414: } 1414: # 1902 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: void 1414: clear() noexcept 1414: { 1414: _M_erase(_M_begin_node()); 1414: _M_impl._M_reset(); 1414: } 1414: 1414: 1414: iterator 1414: find(const key_type& __k); 1414: 1414: const_iterator 1414: find(const key_type& __k) const; 1414: 1414: size_type 1414: count(const key_type& __k) const; 1414: 1414: iterator 1414: lower_bound(const key_type& __k) 1414: { return iterator(_M_lower_bound(_M_begin(), _M_end(), __k)); } 1414: 1414: const_iterator 1414: lower_bound(const key_type& __k) const 1414: { 1414: return const_iterator 1414: (_M_lower_bound(_M_begin(), _M_end(), __k)); 1414: } 1414: 1414: iterator 1414: upper_bound(const key_type& __k) 1414: { return iterator(_M_upper_bound(_M_begin(), _M_end(), __k)); } 1414: 1414: const_iterator 1414: upper_bound(const key_type& __k) const 1414: { 1414: return const_iterator 1414: (_M_upper_bound(_M_begin(), _M_end(), __k)); 1414: } 1414: 1414: pair 1414: equal_range(const key_type& __k); 1414: 1414: pair 1414: equal_range(const key_type& __k) const; 1414: 1414: 1414: template> 1414: iterator 1414: _M_find_tr(const _Kt& __k) 1414: { 1414: const _Rb_tree* __const_this = this; 1414: return iterator(__const_this->_M_find_tr(__k)._M_node); 1414: } 1414: 1414: template> 1414: const_iterator 1414: _M_find_tr(const _Kt& __k) const 1414: { 1414: const_iterator __j(_M_lower_bound_tr(__k)); 1414: if (__j != end() && _M_key_compare(__k, _S_key(__j._M_node))) 1414: __j = end(); 1414: return __j; 1414: } 1414: 1414: template> 1414: size_type 1414: _M_count_tr(const _Kt& __k) const 1414: { 1414: auto __p = _M_equal_range_tr(__k); 1414: return std::distance(__p.first, __p.second); 1414: } 1414: 1414: template> 1414: _Base_ptr 1414: _M_lower_bound_tr(const _Kt& __k) const 1414: { 1414: auto __x = _M_begin(); 1414: auto __y = _M_end(); 1414: while (__x) 1414: if (!_M_key_compare(_S_key(__x), __k)) 1414: { 1414: __y = __x; 1414: __x = _S_left(__x); 1414: } 1414: else 1414: __x = _S_right(__x); 1414: return __y; 1414: } 1414: 1414: template> 1414: _Base_ptr 1414: _M_upper_bound_tr(const _Kt& __k) const 1414: { 1414: auto __x = _M_begin(); 1414: auto __y = _M_end(); 1414: while (__x) 1414: if (_M_key_compare(__k, _S_key(__x))) 1414: { 1414: __y = __x; 1414: __x = _S_left(__x); 1414: } 1414: else 1414: __x = _S_right(__x); 1414: return __y; 1414: } 1414: 1414: template> 1414: pair 1414: _M_equal_range_tr(const _Kt& __k) 1414: { 1414: const _Rb_tree* __const_this = this; 1414: auto __ret = __const_this->_M_equal_range_tr(__k); 1414: return 1414: { iterator(__ret.first._M_node), iterator(__ret.second._M_node) }; 1414: } 1414: 1414: template> 1414: pair 1414: _M_equal_range_tr(const _Kt& __k) const 1414: { 1414: const_iterator __low(_M_lower_bound_tr(__k)); 1414: auto __high = __low; 1414: auto& __cmp = _M_impl._M_key_compare; 1414: while (__high != end() && !__cmp(__k, _S_key(__high._M_node))) 1414: ++__high; 1414: return { __low, __high }; 1414: } 1414: 1414: 1414: 1414: bool 1414: __rb_verify() const; 1414: 1414: 1414: _Rb_tree& 1414: operator=(_Rb_tree&&) 1414: noexcept(_Node_alloc_traits::_S_nothrow_move() 1414: && is_nothrow_move_assignable<_Compare>::value); 1414: 1414: template 1414: void 1414: _M_assign_unique(_Iterator, _Iterator); 1414: 1414: template 1414: void 1414: _M_assign_equal(_Iterator, _Iterator); 1414: 1414: private: 1414: 1414: void 1414: _M_move_data(_Rb_tree& __x, true_type) 1414: { _M_impl._M_move_data(__x._M_impl); } 1414: 1414: 1414: 1414: void 1414: _M_move_data(_Rb_tree&, false_type); 1414: 1414: 1414: void 1414: _M_move_assign(_Rb_tree&, true_type); 1414: 1414: 1414: 1414: void 1414: _M_move_assign(_Rb_tree&, false_type); 1414: 1414: 1414: 1414: static _Node_ptr 1414: _S_adapt(typename _Node_alloc_traits::pointer __ptr) 1414: { 1414: 1414: return __ptr; 1414: # 2093 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: } 1414: 1414: public: 1414: 1414: insert_return_type 1414: _M_reinsert_node_unique(node_type&& __nh) 1414: { 1414: insert_return_type __ret; 1414: if (__nh.empty()) 1414: __ret.position = end(); 1414: else 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_get_Node_allocator() == *__nh._M_alloc)) std::__glibcxx_assert_fail(); } while (false); 1414: 1414: auto __res = _M_get_insert_unique_pos(__nh._M_key()); 1414: if (__res.second) 1414: { 1414: __ret.position 1414: = _M_insert_node(__res.first, __res.second, 1414: _S_adapt(__nh._M_ptr)); 1414: __nh.release(); 1414: __ret.inserted = true; 1414: } 1414: else 1414: { 1414: __ret.node = std::move(__nh); 1414: __ret.position = iterator(__res.first); 1414: __ret.inserted = false; 1414: } 1414: } 1414: return __ret; 1414: } 1414: 1414: 1414: iterator 1414: _M_reinsert_node_equal(node_type&& __nh) 1414: { 1414: iterator __ret; 1414: if (__nh.empty()) 1414: __ret = end(); 1414: else 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_get_Node_allocator() == *__nh._M_alloc)) std::__glibcxx_assert_fail(); } while (false); 1414: auto __res = _M_get_insert_equal_pos(__nh._M_key()); 1414: if (__res.second) 1414: __ret = _M_insert_node(__res.first, __res.second, 1414: _S_adapt(__nh._M_ptr)); 1414: else 1414: __ret = _M_insert_equal_lower_node(_S_adapt(__nh._M_ptr)); 1414: __nh.release(); 1414: } 1414: return __ret; 1414: } 1414: 1414: 1414: iterator 1414: _M_reinsert_node_hint_unique(const_iterator __hint, node_type&& __nh) 1414: { 1414: iterator __ret; 1414: if (__nh.empty()) 1414: __ret = end(); 1414: else 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_get_Node_allocator() == *__nh._M_alloc)) std::__glibcxx_assert_fail(); } while (false); 1414: auto __res = _M_get_insert_hint_unique_pos(__hint, __nh._M_key()); 1414: if (__res.second) 1414: { 1414: __ret = _M_insert_node(__res.first, __res.second, 1414: _S_adapt(__nh._M_ptr)); 1414: __nh.release(); 1414: } 1414: else 1414: __ret = iterator(__res.first); 1414: } 1414: return __ret; 1414: } 1414: 1414: 1414: iterator 1414: _M_reinsert_node_hint_equal(const_iterator __hint, node_type&& __nh) 1414: { 1414: iterator __ret; 1414: if (__nh.empty()) 1414: __ret = end(); 1414: else 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(_M_get_Node_allocator() == *__nh._M_alloc)) std::__glibcxx_assert_fail(); } while (false); 1414: auto __res = _M_get_insert_hint_equal_pos(__hint, __nh._M_key()); 1414: if (__res.second) 1414: __ret = _M_insert_node(__res.first, __res.second, 1414: _S_adapt(__nh._M_ptr)); 1414: else 1414: __ret = _M_insert_equal_lower_node(_S_adapt(__nh._M_ptr)); 1414: __nh.release(); 1414: } 1414: return __ret; 1414: } 1414: 1414: 1414: node_type 1414: extract(const_iterator __pos) 1414: { 1414: auto __ptr = _Node_traits::_S_rebalance_for_erase 1414: (__pos._M_node, _M_impl._M_header); 1414: --_M_impl._M_node_count; 1414: auto __node_ptr = static_cast<_Node&>(*__ptr)._M_node_ptr(); 1414: 1414: return { __node_ptr, _M_get_Node_allocator() }; 1414: # 2214 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: } 1414: 1414: 1414: node_type 1414: extract(const key_type& __k) 1414: { 1414: node_type __nh; 1414: auto __pos = find(__k); 1414: if (__pos != end()) 1414: __nh = extract(const_iterator(__pos)); 1414: return __nh; 1414: } 1414: 1414: template 1414: node_type 1414: _M_extract_tr(const _Kt& __k) 1414: { 1414: node_type __nh; 1414: auto __pos = _M_find_tr(__k); 1414: if (__pos != end()) 1414: __nh = extract(const_iterator(__pos)); 1414: return __nh; 1414: } 1414: 1414: template 1414: using _Compatible_tree 1414: = _Rb_tree<_Key, _Val, _KeyOfValue, _Compare2, _Alloc>; 1414: 1414: template 1414: friend struct _Rb_tree_merge_helper; 1414: 1414: 1414: template 1414: void 1414: _M_merge_unique(_Compatible_tree<_Compare2>& __src) noexcept 1414: { 1414: using _Merge_helper = _Rb_tree_merge_helper<_Rb_tree, _Compare2>; 1414: for (auto __i = __src.begin(), __end = __src.end(); __i != __end;) 1414: { 1414: auto __pos = __i++; 1414: auto __res = _M_get_insert_unique_pos(_KeyOfValue()(*__pos)); 1414: if (__res.second) 1414: { 1414: auto& __src_impl = _Merge_helper::_S_get_impl(__src); 1414: auto __ptr = _Node_traits::_S_rebalance_for_erase 1414: (__pos._M_node, __src_impl._M_header); 1414: --__src_impl._M_node_count; 1414: auto __node_ptr = static_cast<_Node&>(*__ptr)._M_node_ptr(); 1414: _M_insert_node(__res.first, __res.second, __node_ptr); 1414: } 1414: } 1414: } 1414: 1414: 1414: template 1414: void 1414: _M_merge_equal(_Compatible_tree<_Compare2>& __src) noexcept 1414: { 1414: using _Merge_helper = _Rb_tree_merge_helper<_Rb_tree, _Compare2>; 1414: for (auto __i = __src.begin(), __end = __src.end(); __i != __end;) 1414: { 1414: auto __pos = __i++; 1414: auto __res = _M_get_insert_equal_pos(_KeyOfValue()(*__pos)); 1414: if (__res.second) 1414: { 1414: auto& __src_impl = _Merge_helper::_S_get_impl(__src); 1414: auto __ptr = _Node_traits::_S_rebalance_for_erase 1414: (__pos._M_node, __src_impl._M_header); 1414: --__src_impl._M_node_count; 1414: auto __node_ptr = static_cast<_Node&>(*__ptr)._M_node_ptr(); 1414: _M_insert_node(__res.first, __res.second, __node_ptr); 1414: } 1414: } 1414: } 1414: 1414: 1414: friend bool 1414: operator==(const _Rb_tree& __x, const _Rb_tree& __y) 1414: { 1414: return __x.size() == __y.size() 1414: && std::equal(__x.begin(), __x.end(), __y.begin()); 1414: } 1414: 1414: 1414: friend auto 1414: operator<=>(const _Rb_tree& __x, const _Rb_tree& __y) 1414: { 1414: if constexpr (requires { typename __detail::__synth3way_t<_Val>; }) 1414: return std::lexicographical_compare_three_way(__x.begin(), __x.end(), 1414: __y.begin(), __y.end(), 1414: __detail::__synth3way); 1414: } 1414: # 2315 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: private: 1414: 1414: 1414: struct _Auto_node 1414: { 1414: template 1414: _Auto_node(_Rb_tree& __t, _Args&&... __args) 1414: : _M_t(__t), 1414: _M_node(__t._M_create_node(std::forward<_Args>(__args)...)) 1414: { } 1414: 1414: ~_Auto_node() 1414: { 1414: if (_M_node) 1414: _M_t._M_drop_node(_M_node); 1414: } 1414: 1414: _Auto_node(_Auto_node&& __n) 1414: : _M_t(__n._M_t), _M_node(__n._M_node) 1414: { __n._M_node = nullptr; } 1414: 1414: const _Key& 1414: _M_key() const 1414: { return _S_key(_M_node); } 1414: 1414: iterator 1414: _M_insert(pair<_Base_ptr, _Base_ptr> __p) 1414: { 1414: auto __it = _M_t._M_insert_node(__p.first, __p.second, _M_node); 1414: _M_node = nullptr; 1414: return __it; 1414: } 1414: 1414: iterator 1414: _M_insert_equal_lower() 1414: { 1414: auto __it = _M_t._M_insert_equal_lower_node(_M_node); 1414: _M_node = nullptr; 1414: return __it; 1414: } 1414: 1414: _Rb_tree& _M_t; 1414: _Node_ptr _M_node; 1414: }; 1414: 1414: }; 1414: 1414: template 1414: inline void 1414: swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 1414: { __x.swap(__y); } 1414: 1414: 1414: template 1414: void 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_move_data(_Rb_tree& __x, false_type) 1414: { 1414: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 1414: _M_move_data(__x, true_type()); 1414: else 1414: { 1414: constexpr bool __move = !__move_if_noexcept_cond::value; 1414: _Alloc_node __an(*this); 1414: _M_root() = _M_copy<__move>(__x, __an); 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wc++17-extensions" 1414: if constexpr (__move) 1414: __x.clear(); 1414: #pragma GCC diagnostic pop 1414: } 1414: } 1414: 1414: template 1414: inline void 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_move_assign(_Rb_tree& __x, true_type) 1414: { 1414: clear(); 1414: if (__x._M_root()) 1414: _M_move_data(__x, true_type()); 1414: std::__alloc_on_move(_M_get_Node_allocator(), 1414: __x._M_get_Node_allocator()); 1414: } 1414: 1414: template 1414: void 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_move_assign(_Rb_tree& __x, false_type) 1414: { 1414: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 1414: return _M_move_assign(__x, true_type{}); 1414: 1414: 1414: 1414: _Reuse_or_alloc_node __roan(*this); 1414: _M_impl._M_reset(); 1414: if (__x._M_root()) 1414: { 1414: _M_root() = _M_copy<__as_rvalue>(__x, __roan); 1414: __x.clear(); 1414: } 1414: } 1414: 1414: template 1414: inline _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: operator=(_Rb_tree&& __x) 1414: noexcept(_Node_alloc_traits::_S_nothrow_move() 1414: && is_nothrow_move_assignable<_Compare>::value) 1414: { 1414: _M_impl._M_key_compare = std::move(__x._M_impl._M_key_compare); 1414: _M_move_assign(__x, 1414: __bool_constant<_Node_alloc_traits::_S_nothrow_move()>()); 1414: return *this; 1414: } 1414: 1414: template 1414: template 1414: void 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_assign_unique(_Iterator __first, _Iterator __last) 1414: { 1414: _Reuse_or_alloc_node __roan(*this); 1414: _M_impl._M_reset(); 1414: for (; __first != __last; ++__first) 1414: _M_insert_unique_(end(), *__first, __roan); 1414: } 1414: 1414: template 1414: template 1414: void 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_assign_equal(_Iterator __first, _Iterator __last) 1414: { 1414: _Reuse_or_alloc_node __roan(*this); 1414: _M_impl._M_reset(); 1414: for (; __first != __last; ++__first) 1414: _M_insert_equal_(end(), *__first, __roan); 1414: } 1414: 1414: 1414: template 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: operator=(const _Rb_tree& __x) 1414: { 1414: if (this != std::__addressof(__x)) 1414: { 1414: 1414: 1414: if (_Node_alloc_traits::_S_propagate_on_copy_assign()) 1414: { 1414: auto& __this_alloc = this->_M_get_Node_allocator(); 1414: auto& __that_alloc = __x._M_get_Node_allocator(); 1414: if (!_Node_alloc_traits::_S_always_equal() 1414: && __this_alloc != __that_alloc) 1414: { 1414: 1414: 1414: clear(); 1414: std::__alloc_on_copy(__this_alloc, __that_alloc); 1414: } 1414: } 1414: 1414: 1414: _Reuse_or_alloc_node __roan(*this); 1414: _M_impl._M_reset(); 1414: _M_impl._M_key_compare = __x._M_impl._M_key_compare; 1414: if (__x._M_root()) 1414: _M_root() = _M_copy<__as_lvalue>(__x, __roan); 1414: } 1414: 1414: return *this; 1414: } 1414: 1414: template 1414: 1414: template 1414: 1414: 1414: 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_insert_(_Base_ptr __x, _Base_ptr __p, 1414: 1414: _Arg&& __v, 1414: 1414: 1414: 1414: _NodeGen& __node_gen) 1414: { 1414: bool __insert_left = (__x || __p == _M_end() 1414: || _M_key_compare(_KeyOfValue()(__v), 1414: _S_key(__p))); 1414: 1414: _Base_ptr __z = 1414: __node_gen(std::forward<_Arg>(__v))->_M_base_ptr(); 1414: 1414: _Node_traits::_S_insert_and_rebalance 1414: (__insert_left, __z, __p, this->_M_impl._M_header); 1414: ++_M_impl._M_node_count; 1414: return iterator(__z); 1414: } 1414: 1414: template 1414: 1414: template 1414: 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: 1414: _M_insert_lower(_Base_ptr __p, _Arg&& __v) 1414: 1414: 1414: 1414: { 1414: bool __insert_left = (__p == _M_end() 1414: || !_M_key_compare(_S_key(__p), 1414: _KeyOfValue()(__v))); 1414: 1414: _Base_ptr __z = 1414: _M_create_node(std::forward<_Arg>(__v))->_M_base_ptr(); 1414: _Node_traits::_S_insert_and_rebalance 1414: (__insert_left, __z, __p, this->_M_impl._M_header); 1414: ++_M_impl._M_node_count; 1414: return iterator(__z); 1414: } 1414: 1414: template 1414: 1414: template 1414: 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: 1414: _M_insert_equal_lower(_Arg&& __v) 1414: 1414: 1414: 1414: { 1414: _Base_ptr __x = _M_begin(); 1414: _Base_ptr __y = _M_end(); 1414: while (__x) 1414: { 1414: __y = __x; 1414: __x = !_M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? 1414: _S_left(__x) : _S_right(__x); 1414: } 1414: return _M_insert_lower(__y, std::forward<_Arg>(__v)); 1414: } 1414: 1414: template 1414: template 1414: typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Base_ptr 1414: _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: 1414: _M_copy(_Node_ptr __x, _Base_ptr __p, _NodeGen& __node_gen) 1414: { 1414: 1414: _Node_ptr __top = _M_clone_node<_MoveValues>(__x, __node_gen); 1414: _Base_ptr __top_base = __top->_M_base_ptr(); 1414: __top->_M_parent = __p; 1414: 1414: try 1414: { 1414: if (__x->_M_right) 1414: __top->_M_right = 1414: _M_copy<_MoveValues>(_S_right(__x), __top_base, __node_gen); 1414: __p = __top_base; 1414: __x = _S_left(__x); 1414: 1414: while (__x) 1414: { 1414: _Base_ptr __y = 1414: _M_clone_node<_MoveValues>(__x, __node_gen)->_M_base_ptr(); 1414: __p->_M_left = __y; 1414: __y->_M_parent = __p; 1414: if (__x->_M_right) 1414: __y->_M_right = _M_copy<_MoveValues>(_S_right(__x), 1414: __y, __node_gen); 1414: __p = __y; 1414: __x = _S_left(__x); 1414: } 1414: } 1414: catch(...) 1414: { 1414: _M_erase(__top); 1414: throw; 1414: } 1414: return __top_base; 1414: } 1414: 1414: template 1414: void 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_erase(_Node_ptr __x) 1414: { 1414: 1414: while (__x) 1414: { 1414: _M_erase(_S_right(__x)); 1414: _Node_ptr __y = _S_left(__x); 1414: _M_drop_node(__x); 1414: __x = __y; 1414: } 1414: } 1414: 1414: template 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1414: _Compare, _Alloc>::_Base_ptr 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_lower_bound(_Base_ptr __x, _Base_ptr __y, 1414: const _Key& __k) const 1414: { 1414: while (__x) 1414: if (!_M_key_compare(_S_key(__x), __k)) 1414: __y = __x, __x = _S_left(__x); 1414: else 1414: __x = _S_right(__x); 1414: return __y; 1414: } 1414: 1414: template 1414: template 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_lower_bound_tr(_Base_ptr __x, _Base_ptr __y, const _Kt& __k) const 1414: { 1414: while (__x) 1414: if (!_M_key_compare(_S_key(__x), __k)) 1414: __y = __x, __x = _S_left(__x); 1414: else 1414: __x = _S_right(__x); 1414: return __y; 1414: } 1414: 1414: template 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1414: _Compare, _Alloc>::_Base_ptr 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_upper_bound(_Base_ptr __x, _Base_ptr __y, 1414: const _Key& __k) const 1414: { 1414: while (__x) 1414: if (_M_key_compare(__k, _S_key(__x))) 1414: __y = __x, __x = _S_left(__x); 1414: else 1414: __x = _S_right(__x); 1414: return __y; 1414: } 1414: 1414: template 1414: template 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_upper_bound_tr(_Base_ptr __x, _Base_ptr __y, const _Kt& __k) const 1414: { 1414: while (__x) 1414: if (_M_key_compare(__k, _S_key(__x))) 1414: __y = __x, __x = _S_left(__x); 1414: else 1414: __x = _S_right(__x); 1414: return __y; 1414: } 1414: 1414: template 1414: pair::iterator, 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1414: _Compare, _Alloc>::iterator> 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: equal_range(const _Key& __k) 1414: { 1414: typedef pair _Ret; 1414: 1414: _Base_ptr __x = _M_begin(); 1414: _Base_ptr __y = _M_end(); 1414: while (__x) 1414: { 1414: if (_M_key_compare(_S_key(__x), __k)) 1414: __x = _S_right(__x); 1414: else if (_M_key_compare(__k, _S_key(__x))) 1414: __y = __x, __x = _S_left(__x); 1414: else 1414: { 1414: _Base_ptr __xu(__x); 1414: _Base_ptr __yu(__y); 1414: __y = __x, __x = _S_left(__x); 1414: __xu = _S_right(__xu); 1414: return _Ret(iterator(_M_lower_bound(__x, __y, __k)), 1414: iterator(_M_upper_bound(__xu, __yu, __k))); 1414: } 1414: } 1414: return _Ret(iterator(__y), iterator(__y)); 1414: } 1414: 1414: template 1414: pair::const_iterator, 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1414: _Compare, _Alloc>::const_iterator> 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: equal_range(const _Key& __k) const 1414: { 1414: typedef pair _Ret; 1414: 1414: _Base_ptr __x = _M_begin(); 1414: _Base_ptr __y = _M_end(); 1414: while (__x) 1414: { 1414: if (_M_key_compare(_S_key(__x), __k)) 1414: __x = _S_right(__x); 1414: else if (_M_key_compare(__k, _S_key(__x))) 1414: __y = __x, __x = _S_left(__x); 1414: else 1414: { 1414: _Base_ptr __xu(__x); 1414: _Base_ptr __yu(__y); 1414: __y = __x, __x = _S_left(__x); 1414: __xu = _S_right(__xu); 1414: return _Ret(const_iterator(_M_lower_bound(__x, __y, __k)), 1414: const_iterator(_M_upper_bound(__xu, __yu, __k))); 1414: } 1414: } 1414: return _Ret(const_iterator(__y), const_iterator(__y)); 1414: } 1414: 1414: template 1414: void 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: swap(_Rb_tree& __t) 1414: noexcept(__is_nothrow_swappable<_Compare>::value) 1414: { 1414: if (!_M_root()) 1414: { 1414: if (__t._M_root()) 1414: _M_impl._M_move_data(__t._M_impl); 1414: } 1414: else if (!__t._M_root()) 1414: __t._M_impl._M_move_data(_M_impl); 1414: else 1414: { 1414: std::swap(_M_root(),__t._M_root()); 1414: std::swap(_M_leftmost(),__t._M_leftmost()); 1414: std::swap(_M_rightmost(),__t._M_rightmost()); 1414: 1414: _M_root()->_M_parent = _M_end(); 1414: __t._M_root()->_M_parent = __t._M_end(); 1414: std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); 1414: } 1414: 1414: 1414: using std::swap; 1414: swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); 1414: 1414: _Node_alloc_traits::_S_on_swap(_M_get_Node_allocator(), 1414: __t._M_get_Node_allocator()); 1414: } 1414: 1414: template 1414: pair::_Base_ptr, 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1414: _Compare, _Alloc>::_Base_ptr> 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_get_insert_unique_pos(const key_type& __k) 1414: { 1414: typedef pair<_Base_ptr, _Base_ptr> _Res; 1414: _Base_ptr __x = _M_begin(); 1414: _Base_ptr __y = _M_end(); 1414: bool __comp = true; 1414: while (__x) 1414: { 1414: __y = __x; 1414: __comp = _M_key_compare(__k, _S_key(__x)); 1414: __x = __comp ? _S_left(__x) : _S_right(__x); 1414: } 1414: iterator __j = iterator(__y); 1414: if (__comp) 1414: { 1414: if (__j == begin()) 1414: return _Res(__x, __y); 1414: else 1414: --__j; 1414: } 1414: if (_M_key_compare(_S_key(__j._M_node), __k)) 1414: return _Res(__x, __y); 1414: return _Res(__j._M_node, _Base_ptr()); 1414: } 1414: 1414: template 1414: pair::_Base_ptr, 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1414: _Compare, _Alloc>::_Base_ptr> 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_get_insert_equal_pos(const key_type& __k) 1414: { 1414: typedef pair<_Base_ptr, _Base_ptr> _Res; 1414: _Base_ptr __x = _M_begin(); 1414: _Base_ptr __y = _M_end(); 1414: while (__x) 1414: { 1414: __y = __x; 1414: __x = _M_key_compare(__k, _S_key(__x)) ? _S_left(__x) : _S_right(__x); 1414: } 1414: return _Res(__x, __y); 1414: } 1414: # 2897 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: template 1414: 1414: template 1414: 1414: pair::iterator, bool> 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: 1414: _M_insert_unique(_Arg&& __v) 1414: 1414: 1414: 1414: { 1414: typedef pair _Res; 1414: pair<_Base_ptr, _Base_ptr> __res 1414: = _M_get_insert_unique_pos(_KeyOfValue()(__v)); 1414: 1414: if (__res.second) 1414: { 1414: _Alloc_node __an(*this); 1414: return _Res(_M_insert_(__res.first, __res.second, 1414: std::forward<_Arg>(__v), __an), 1414: true); 1414: } 1414: 1414: return _Res(iterator(__res.first), false); 1414: } 1414: 1414: template 1414: 1414: template 1414: 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: 1414: _M_insert_equal(_Arg&& __v) 1414: 1414: 1414: 1414: { 1414: pair<_Base_ptr, _Base_ptr> __res 1414: = _M_get_insert_equal_pos(_KeyOfValue()(__v)); 1414: _Alloc_node __an(*this); 1414: return _M_insert_(__res.first, __res.second, 1414: std::forward<_Arg>(__v), __an); 1414: } 1414: 1414: template 1414: pair::_Base_ptr, 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1414: _Compare, _Alloc>::_Base_ptr> 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_get_insert_hint_unique_pos(const_iterator __position, 1414: const key_type& __k) 1414: { 1414: typedef pair<_Base_ptr, _Base_ptr> _Res; 1414: 1414: 1414: if (__position._M_node == _M_end()) 1414: { 1414: if (size() > 0 && _M_key_compare(_S_key(_M_rightmost()), __k)) 1414: return _Res(_Base_ptr(), _M_rightmost()); 1414: else 1414: return _M_get_insert_unique_pos(__k); 1414: } 1414: else if (_M_key_compare(__k, _S_key(__position._M_node))) 1414: { 1414: 1414: iterator __before(__position._M_node); 1414: if (__position._M_node == _M_leftmost()) 1414: return _Res(_M_leftmost(), _M_leftmost()); 1414: else if (_M_key_compare(_S_key((--__before)._M_node), __k)) 1414: { 1414: if (!_S_right(__before._M_node)) 1414: return _Res(_Base_ptr(), __before._M_node); 1414: else 1414: return _Res(__position._M_node, __position._M_node); 1414: } 1414: else 1414: return _M_get_insert_unique_pos(__k); 1414: } 1414: else if (_M_key_compare(_S_key(__position._M_node), __k)) 1414: { 1414: 1414: iterator __after(__position._M_node); 1414: if (__position._M_node == _M_rightmost()) 1414: return _Res(_Base_ptr(), _M_rightmost()); 1414: else if (_M_key_compare(__k, _S_key((++__after)._M_node))) 1414: { 1414: if (!_S_right(__position._M_node)) 1414: return _Res(_Base_ptr(), __position._M_node); 1414: else 1414: return _Res(__after._M_node, __after._M_node); 1414: } 1414: else 1414: return _M_get_insert_unique_pos(__k); 1414: } 1414: else 1414: 1414: return _Res(__position._M_node, _Base_ptr()); 1414: } 1414: # 3056 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: template 1414: 1414: template 1414: 1414: 1414: 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_insert_unique_(const_iterator __position, 1414: 1414: _Arg&& __v, 1414: 1414: 1414: 1414: _NodeGen& __node_gen) 1414: { 1414: pair<_Base_ptr, _Base_ptr> __res 1414: = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v)); 1414: 1414: if (__res.second) 1414: return _M_insert_(__res.first, __res.second, 1414: std::forward<_Arg>(__v), 1414: __node_gen); 1414: return iterator(__res.first); 1414: } 1414: 1414: template 1414: pair::_Base_ptr, 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1414: _Compare, _Alloc>::_Base_ptr> 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k) 1414: { 1414: typedef pair<_Base_ptr, _Base_ptr> _Res; 1414: 1414: 1414: if (__position._M_node == _M_end()) 1414: { 1414: if (size() > 0 1414: && !_M_key_compare(__k, _S_key(_M_rightmost()))) 1414: return _Res(_Base_ptr(), _M_rightmost()); 1414: else 1414: return _M_get_insert_equal_pos(__k); 1414: } 1414: else if (!_M_key_compare(_S_key(__position._M_node), __k)) 1414: { 1414: 1414: iterator __before(__position._M_node); 1414: if (__position._M_node == _M_leftmost()) 1414: return _Res(_M_leftmost(), _M_leftmost()); 1414: else if (!_M_key_compare(__k, _S_key((--__before)._M_node))) 1414: { 1414: if (!_S_right(__before._M_node)) 1414: return _Res(_Base_ptr(), __before._M_node); 1414: else 1414: return _Res(__position._M_node, __position._M_node); 1414: } 1414: else 1414: return _M_get_insert_equal_pos(__k); 1414: } 1414: else 1414: { 1414: 1414: iterator __after(__position._M_node); 1414: if (__position._M_node == _M_rightmost()) 1414: return _Res(_Base_ptr(), _M_rightmost()); 1414: else if (!_M_key_compare(_S_key((++__after)._M_node), __k)) 1414: { 1414: if (!_S_right(__position._M_node)) 1414: return _Res(_Base_ptr(), __position._M_node); 1414: else 1414: return _Res(__after._M_node, __after._M_node); 1414: } 1414: else 1414: return _Res(_Base_ptr(), _Base_ptr()); 1414: } 1414: } 1414: 1414: template 1414: 1414: template 1414: 1414: 1414: 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_insert_equal_(const_iterator __position, 1414: 1414: _Arg&& __v, 1414: 1414: 1414: 1414: _NodeGen& __node_gen) 1414: { 1414: pair<_Base_ptr, _Base_ptr> __res 1414: = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v)); 1414: 1414: if (__res.second) 1414: return _M_insert_(__res.first, __res.second, 1414: std::forward<_Arg>(__v), 1414: __node_gen); 1414: 1414: return _M_insert_equal_lower(std::forward<_Arg>(__v)); 1414: } 1414: 1414: 1414: template 1414: auto 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Node_ptr __z) 1414: -> iterator 1414: { 1414: bool __insert_left = (__x || __p == _M_end() 1414: || _M_key_compare(_S_key(__z), _S_key(__p))); 1414: 1414: _Base_ptr __base_z = __z->_M_base_ptr(); 1414: _Node_traits::_S_insert_and_rebalance 1414: (__insert_left, __base_z, __p, this->_M_impl._M_header); 1414: ++_M_impl._M_node_count; 1414: return iterator(__base_z); 1414: } 1414: 1414: template 1414: auto 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_insert_lower_node(_Base_ptr __p, _Node_ptr __z) 1414: -> iterator 1414: { 1414: bool __insert_left = (__p == _M_end() 1414: || !_M_key_compare(_S_key(__p), _S_key(__z))); 1414: 1414: _Base_ptr __base_z = __z->_M_base_ptr(); 1414: _Node_traits::_S_insert_and_rebalance 1414: (__insert_left, __base_z, __p, this->_M_impl._M_header); 1414: ++_M_impl._M_node_count; 1414: return iterator(__base_z); 1414: } 1414: 1414: template 1414: auto 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_insert_equal_lower_node(_Node_ptr __z) 1414: -> iterator 1414: { 1414: _Base_ptr __x = _M_begin(); 1414: _Base_ptr __y = _M_end(); 1414: while (__x) 1414: { 1414: __y = __x; 1414: __x = !_M_key_compare(_S_key(__x), _S_key(__z)) ? 1414: _S_left(__x) : _S_right(__x); 1414: } 1414: return _M_insert_lower_node(__y, __z); 1414: } 1414: 1414: template 1414: template 1414: auto 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_emplace_unique(_Args&&... __args) 1414: -> pair 1414: { 1414: _Auto_node __z(*this, std::forward<_Args>(__args)...); 1414: auto __res = _M_get_insert_unique_pos(__z._M_key()); 1414: if (__res.second) 1414: return {__z._M_insert(__res), true}; 1414: return {iterator(__res.first), false}; 1414: } 1414: 1414: template 1414: template 1414: auto 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_emplace_equal(_Args&&... __args) 1414: -> iterator 1414: { 1414: _Auto_node __z(*this, std::forward<_Args>(__args)...); 1414: auto __res = _M_get_insert_equal_pos(__z._M_key()); 1414: return __z._M_insert(__res); 1414: } 1414: 1414: template 1414: template 1414: auto 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args) 1414: -> iterator 1414: { 1414: _Auto_node __z(*this, std::forward<_Args>(__args)...); 1414: auto __res = _M_get_insert_hint_unique_pos(__pos, __z._M_key()); 1414: if (__res.second) 1414: return __z._M_insert(__res); 1414: return iterator(__res.first); 1414: } 1414: 1414: template 1414: template 1414: auto 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args) 1414: -> iterator 1414: { 1414: _Auto_node __z(*this, std::forward<_Args>(__args)...); 1414: auto __res = _M_get_insert_hint_equal_pos(__pos, __z._M_key()); 1414: if (__res.second) 1414: return __z._M_insert(__res); 1414: return __z._M_insert_equal_lower(); 1414: } 1414: # 3298 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: template 1414: void 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_erase_aux(const_iterator __position) 1414: { 1414: _Base_ptr __y = _Node_traits::_S_rebalance_for_erase 1414: (__position._M_node, this->_M_impl._M_header); 1414: _M_drop_node(static_cast<_Node&>(*__y)._M_node_ptr()); 1414: --_M_impl._M_node_count; 1414: } 1414: 1414: template 1414: void 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_erase_aux(const_iterator __first, const_iterator __last) 1414: { 1414: if (__first == begin() && __last == end()) 1414: clear(); 1414: else 1414: while (__first != __last) 1414: _M_erase_aux(__first++); 1414: } 1414: 1414: template 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: erase(const _Key& __x) 1414: { 1414: pair __p = equal_range(__x); 1414: const size_type __old_size = size(); 1414: _M_erase_aux(__p.first, __p.second); 1414: return __old_size - size(); 1414: } 1414: 1414: template 1414: template 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_erase_tr(const _Kt& __x) 1414: { 1414: pair __p = _M_equal_range_tr(__x); 1414: const size_type __old_size = size(); 1414: _M_erase_aux(__p.first, __p.second); 1414: return __old_size - size(); 1414: } 1414: 1414: template 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: _M_erase_unique(const _Key& __x) 1414: { 1414: iterator __it = find(__x); 1414: if (__it == end()) 1414: return 0; 1414: 1414: _M_erase_aux(__it); 1414: return 1; 1414: } 1414: 1414: template 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1414: _Compare, _Alloc>::iterator 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: find(const _Key& __k) 1414: { 1414: iterator __j(_M_lower_bound(_M_begin(), _M_end(), __k)); 1414: return (__j == end() 1414: || _M_key_compare(__k, _S_key(__j._M_node))) ? end() : __j; 1414: } 1414: 1414: template 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1414: _Compare, _Alloc>::const_iterator 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: find(const _Key& __k) const 1414: { 1414: const_iterator __j(_M_lower_bound(_M_begin(), _M_end(), __k)); 1414: return (__j == end() 1414: || _M_key_compare(__k, _S_key(__j._M_node))) ? end() : __j; 1414: } 1414: 1414: template 1414: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 1414: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1414: count(const _Key& __k) const 1414: { 1414: pair __p = equal_range(__k); 1414: const size_type __n = std::distance(__p.first, __p.second); 1414: return __n; 1414: } 1414: 1414: __attribute__ ((__pure__)) unsigned int 1414: _Rb_tree_black_count(const _Rb_tree_node_base* __node, 1414: const _Rb_tree_node_base* __root) throw (); 1414: 1414: template 1414: bool 1414: _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const 1414: { 1414: if (_M_impl._M_node_count == 0 || begin() == end()) 1414: return _M_impl._M_node_count == 0 && begin() == end() 1414: && this->_M_impl._M_header._M_left == _M_end() 1414: && this->_M_impl._M_header._M_right == _M_end(); 1414: 1414: unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); 1414: for (const_iterator __it = begin(); __it != end(); ++__it) 1414: { 1414: _Base_ptr __x = __it._M_node; 1414: _Base_ptr __L = _S_left(__x); 1414: _Base_ptr __R = _S_right(__x); 1414: 1414: if (__x->_M_color == _S_red) 1414: if ((__L && __L->_M_color == _S_red) 1414: || (__R && __R->_M_color == _S_red)) 1414: return false; 1414: 1414: if (__L && _M_key_compare(_S_key(__x), _S_key(__L))) 1414: return false; 1414: if (__R && _M_key_compare(_S_key(__R), _S_key(__x))) 1414: return false; 1414: 1414: if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) 1414: return false; 1414: } 1414: 1414: if (_M_leftmost() != _Node_base::_S_minimum(_M_root())) 1414: return false; 1414: if (_M_rightmost() != _Node_base::_S_maximum(_M_root())) 1414: return false; 1414: return true; 1414: } 1414: 1414: 1414: 1414: template 1414: struct _Rb_tree_merge_helper<_Rb_tree<_Key, _Val, _Sel, _Cmp1, _Alloc>, 1414: _Cmp2> 1414: { 1414: private: 1414: friend class _Rb_tree<_Key, _Val, _Sel, _Cmp1, _Alloc>; 1414: 1414: static auto& 1414: _S_get_impl(_Rb_tree<_Key, _Val, _Sel, _Cmp2, _Alloc>& __tree) 1414: { return __tree._M_impl; } 1414: }; 1414: # 3462 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_tree.h" 3 1414: 1414: } 1414: # 65 "/usr/arm-linux-gnueabihf/include/c++/16/map" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 1 3 1414: # 59 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stdexcept_throw.h" 1 3 1414: # 60 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 2 3 1414: # 70 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: template 1414: class multimap; 1414: # 104 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template , 1414: typename _Alloc = std::allocator > > 1414: class map 1414: { 1414: public: 1414: typedef _Key key_type; 1414: typedef _Tp mapped_type; 1414: typedef std::pair value_type; 1414: typedef _Compare key_compare; 1414: typedef _Alloc allocator_type; 1414: 1414: private: 1414: # 129 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: static_assert(is_same::value, 1414: "std::map must have the same value_type as its allocator"); 1414: 1414: 1414: 1414: public: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: class value_compare 1414: : public std::binary_function 1414: { 1414: friend class map<_Key, _Tp, _Compare, _Alloc>; 1414: protected: 1414: _Compare comp; 1414: 1414: value_compare(_Compare __c) 1414: : comp(__c) { } 1414: 1414: public: 1414: bool operator()(const value_type& __x, const value_type& __y) const 1414: { return comp(__x.first, __y.first); } 1414: }; 1414: #pragma GCC diagnostic pop 1414: 1414: private: 1414: 1414: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 1414: rebind::other _Pair_alloc_type; 1414: 1414: typedef _Rb_tree, 1414: key_compare, _Pair_alloc_type> _Rep_type; 1414: 1414: 1414: _Rep_type _M_t; 1414: 1414: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 1414: 1414: 1414: template> 1414: static constexpr bool __usable_key 1414: = __or_v, 1414: __and_, is_scalar<_Key>>>; 1414: 1414: 1414: public: 1414: 1414: 1414: typedef typename _Alloc_traits::pointer pointer; 1414: typedef typename _Alloc_traits::const_pointer const_pointer; 1414: typedef typename _Alloc_traits::reference reference; 1414: typedef typename _Alloc_traits::const_reference const_reference; 1414: typedef typename _Rep_type::iterator iterator; 1414: typedef typename _Rep_type::const_iterator const_iterator; 1414: typedef typename _Rep_type::size_type size_type; 1414: typedef typename _Rep_type::difference_type difference_type; 1414: typedef typename _Rep_type::reverse_iterator reverse_iterator; 1414: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 1414: 1414: 1414: using node_type = typename _Rep_type::node_type; 1414: using insert_return_type = typename _Rep_type::insert_return_type; 1414: # 201 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: map() = default; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: explicit 1414: map(const _Compare& __comp, 1414: const allocator_type& __a = allocator_type()) 1414: : _M_t(__comp, _Pair_alloc_type(__a)) { } 1414: # 223 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: map(const map&) = default; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: map(map&&) = default; 1414: # 244 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: map(initializer_list __l, 1414: const _Compare& __comp = _Compare(), 1414: const allocator_type& __a = allocator_type()) 1414: : _M_t(__comp, _Pair_alloc_type(__a)) 1414: { _M_t._M_insert_range_unique(__l.begin(), __l.end()); } 1414: 1414: 1414: explicit 1414: map(const allocator_type& __a) 1414: : _M_t(_Pair_alloc_type(__a)) { } 1414: 1414: 1414: map(const map& __m, const __type_identity_t& __a) 1414: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 1414: 1414: 1414: map(map&& __m, const __type_identity_t& __a) 1414: noexcept(is_nothrow_copy_constructible<_Compare>::value 1414: && _Alloc_traits::_S_always_equal()) 1414: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 1414: 1414: 1414: map(initializer_list __l, const allocator_type& __a) 1414: : _M_t(_Pair_alloc_type(__a)) 1414: { _M_t._M_insert_range_unique(__l.begin(), __l.end()); } 1414: 1414: 1414: template 1414: map(_InputIterator __first, _InputIterator __last, 1414: const allocator_type& __a) 1414: : _M_t(_Pair_alloc_type(__a)) 1414: { _M_t._M_insert_range_unique(__first, __last); } 1414: # 288 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template 1414: map(_InputIterator __first, _InputIterator __last) 1414: : _M_t() 1414: { _M_t._M_insert_range_unique(__first, __last); } 1414: # 305 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template 1414: map(_InputIterator __first, _InputIterator __last, 1414: const _Compare& __comp, 1414: const allocator_type& __a = allocator_type()) 1414: : _M_t(__comp, _Pair_alloc_type(__a)) 1414: { _M_t._M_insert_range_unique(__first, __last); } 1414: # 338 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: ~map() = default; 1414: # 354 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: map& 1414: operator=(const map&) = default; 1414: 1414: 1414: map& 1414: operator=(map&&) = default; 1414: # 372 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: map& 1414: operator=(initializer_list __l) 1414: { 1414: _M_t._M_assign_unique(__l.begin(), __l.end()); 1414: return *this; 1414: } 1414: 1414: 1414: 1414: allocator_type 1414: get_allocator() const noexcept 1414: { return allocator_type(_M_t.get_allocator()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: iterator 1414: begin() noexcept 1414: { return _M_t.begin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_iterator 1414: begin() const noexcept 1414: { return _M_t.begin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: iterator 1414: end() noexcept 1414: { return _M_t.end(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_iterator 1414: end() const noexcept 1414: { return _M_t.end(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: reverse_iterator 1414: rbegin() noexcept 1414: { return _M_t.rbegin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_reverse_iterator 1414: rbegin() const noexcept 1414: { return _M_t.rbegin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: reverse_iterator 1414: rend() noexcept 1414: { return _M_t.rend(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_reverse_iterator 1414: rend() const noexcept 1414: { return _M_t.rend(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_iterator 1414: cbegin() const noexcept 1414: { return _M_t.begin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_iterator 1414: cend() const noexcept 1414: { return _M_t.end(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_reverse_iterator 1414: crbegin() const noexcept 1414: { return _M_t.rbegin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_reverse_iterator 1414: crend() const noexcept 1414: { return _M_t.rend(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] bool 1414: empty() const noexcept 1414: { return _M_t.empty(); } 1414: 1414: 1414: size_type 1414: size() const noexcept 1414: { return _M_t.size(); } 1414: 1414: 1414: size_type 1414: max_size() const noexcept 1414: { return _M_t.max_size(); } 1414: # 530 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: mapped_type& 1414: operator[](const key_type& __k) 1414: { 1414: 1414: 1414: 1414: iterator __i = lower_bound(__k); 1414: 1414: if (__i == end() || key_comp()(__k, (*__i).first)) 1414: 1414: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 1414: std::tuple(__k), 1414: std::tuple<>()); 1414: 1414: 1414: 1414: return (*__i).second; 1414: } 1414: 1414: 1414: mapped_type& 1414: operator[](key_type&& __k) 1414: { 1414: 1414: 1414: 1414: iterator __i = lower_bound(__k); 1414: 1414: if (__i == end() || key_comp()(__k, (*__i).first)) 1414: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 1414: std::forward_as_tuple(std::move(__k)), 1414: std::tuple<>()); 1414: return (*__i).second; 1414: } 1414: # 585 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: mapped_type& 1414: at(const key_type& __k) 1414: { 1414: iterator __i = lower_bound(__k); 1414: if (__i == end() || key_comp()(__k, (*__i).first)) 1414: __throw_out_of_range(("map::at")); 1414: return (*__i).second; 1414: } 1414: # 606 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: const mapped_type& 1414: at(const key_type& __k) const 1414: { 1414: const_iterator __i = lower_bound(__k); 1414: if (__i == end() || key_comp()(__k, (*__i).first)) 1414: __throw_out_of_range(("map::at")); 1414: return (*__i).second; 1414: } 1414: # 647 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template 1414: std::pair 1414: emplace(_Args&&... __args) 1414: { 1414: 1414: if constexpr (sizeof...(_Args) == 2) 1414: if constexpr (is_same_v>) 1414: { 1414: auto&& [__a, __v] = pair<_Args&...>(__args...); 1414: if constexpr (__usable_key) 1414: { 1414: const key_type& __k = __a; 1414: iterator __i = lower_bound(__k); 1414: if (__i == end() || key_comp()(__k, (*__i).first)) 1414: { 1414: __i = emplace_hint(__i, std::forward<_Args>(__args)...); 1414: return {__i, true}; 1414: } 1414: return {__i, false}; 1414: } 1414: } 1414: 1414: return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); 1414: } 1414: # 697 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template 1414: iterator 1414: emplace_hint(const_iterator __pos, _Args&&... __args) 1414: { 1414: return _M_t._M_emplace_hint_unique(__pos, 1414: std::forward<_Args>(__args)...); 1414: } 1414: 1414: 1414: 1414: 1414: node_type 1414: extract(const_iterator __pos) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__pos != end())) std::__glibcxx_assert_fail(); } while (false); 1414: return _M_t.extract(__pos); 1414: } 1414: 1414: 1414: node_type 1414: extract(const key_type& __x) 1414: { return _M_t.extract(__x); } 1414: # 728 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: insert_return_type 1414: insert(node_type&& __nh) 1414: { return _M_t._M_reinsert_node_unique(std::move(__nh)); } 1414: 1414: 1414: iterator 1414: insert(const_iterator __hint, node_type&& __nh) 1414: { return _M_t._M_reinsert_node_hint_unique(__hint, std::move(__nh)); } 1414: 1414: template 1414: friend struct std::_Rb_tree_merge_helper; 1414: 1414: template 1414: void 1414: merge(map<_Key, _Tp, _Cmp2, _Alloc>& __source) 1414: { 1414: using _Merge_helper = _Rb_tree_merge_helper; 1414: _M_t._M_merge_unique(_Merge_helper::_S_get_tree(__source)); 1414: } 1414: 1414: template 1414: void 1414: merge(map<_Key, _Tp, _Cmp2, _Alloc>&& __source) 1414: { merge(__source); } 1414: 1414: template 1414: void 1414: merge(multimap<_Key, _Tp, _Cmp2, _Alloc>& __source) 1414: { 1414: using _Merge_helper = _Rb_tree_merge_helper; 1414: _M_t._M_merge_unique(_Merge_helper::_S_get_tree(__source)); 1414: } 1414: 1414: template 1414: void 1414: merge(multimap<_Key, _Tp, _Cmp2, _Alloc>&& __source) 1414: { merge(__source); } 1414: # 791 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template 1414: pair 1414: try_emplace(const key_type& __k, _Args&&... __args) 1414: { 1414: iterator __i = lower_bound(__k); 1414: if (__i == end() || key_comp()(__k, (*__i).first)) 1414: { 1414: __i = emplace_hint(__i, std::piecewise_construct, 1414: std::forward_as_tuple(__k), 1414: std::forward_as_tuple( 1414: std::forward<_Args>(__args)...)); 1414: return {__i, true}; 1414: } 1414: return {__i, false}; 1414: } 1414: 1414: 1414: template 1414: pair 1414: try_emplace(key_type&& __k, _Args&&... __args) 1414: { 1414: iterator __i = lower_bound(__k); 1414: if (__i == end() || key_comp()(__k, (*__i).first)) 1414: { 1414: __i = emplace_hint(__i, std::piecewise_construct, 1414: std::forward_as_tuple(std::move(__k)), 1414: std::forward_as_tuple( 1414: std::forward<_Args>(__args)...)); 1414: return {__i, true}; 1414: } 1414: return {__i, false}; 1414: } 1414: # 876 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template 1414: iterator 1414: try_emplace(const_iterator __hint, const key_type& __k, 1414: _Args&&... __args) 1414: { 1414: iterator __i; 1414: auto __true_hint = _M_t._M_get_insert_hint_unique_pos(__hint, __k); 1414: if (__true_hint.second) 1414: __i = emplace_hint(iterator(__true_hint.second), 1414: std::piecewise_construct, 1414: std::forward_as_tuple(__k), 1414: std::forward_as_tuple( 1414: std::forward<_Args>(__args)...)); 1414: else 1414: __i = iterator(__true_hint.first); 1414: return __i; 1414: } 1414: 1414: 1414: template 1414: iterator 1414: try_emplace(const_iterator __hint, key_type&& __k, _Args&&... __args) 1414: { 1414: iterator __i; 1414: auto __true_hint = _M_t._M_get_insert_hint_unique_pos(__hint, __k); 1414: if (__true_hint.second) 1414: __i = emplace_hint(iterator(__true_hint.second), 1414: std::piecewise_construct, 1414: std::forward_as_tuple(std::move(__k)), 1414: std::forward_as_tuple( 1414: std::forward<_Args>(__args)...)); 1414: else 1414: __i = iterator(__true_hint.first); 1414: return __i; 1414: } 1414: # 950 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: std::pair 1414: insert(const value_type& __x) 1414: { return _M_t._M_insert_unique(__x); } 1414: 1414: 1414: 1414: 1414: std::pair 1414: insert(value_type&& __x) 1414: { return _M_t._M_insert_unique(std::move(__x)); } 1414: 1414: template 1414: __enable_if_t::value, 1414: pair> 1414: insert(_Pair&& __x) 1414: { 1414: 1414: using _P2 = remove_reference_t<_Pair>; 1414: if constexpr (__is_pair>) 1414: if constexpr (is_same_v>) 1414: if constexpr (__usable_key) 1414: { 1414: const key_type& __k = __x.first; 1414: iterator __i = lower_bound(__k); 1414: if (__i == end() || key_comp()(__k, (*__i).first)) 1414: { 1414: __i = emplace_hint(__i, std::forward<_Pair>(__x)); 1414: return {__i, true}; 1414: } 1414: return {__i, false}; 1414: } 1414: 1414: return _M_t._M_emplace_unique(std::forward<_Pair>(__x)); 1414: } 1414: # 995 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: void 1414: insert(std::initializer_list __list) 1414: { insert(__list.begin(), __list.end()); } 1414: # 1042 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: iterator 1414: 1414: insert(const_iterator __position, const value_type& __x) 1414: 1414: 1414: 1414: { return _M_t._M_insert_unique_(__position, __x); } 1414: 1414: 1414: 1414: 1414: iterator 1414: insert(const_iterator __position, value_type&& __x) 1414: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 1414: 1414: template 1414: __enable_if_t::value, iterator> 1414: insert(const_iterator __position, _Pair&& __x) 1414: { 1414: return _M_t._M_emplace_hint_unique(__position, 1414: std::forward<_Pair>(__x)); 1414: } 1414: # 1075 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template 1414: void 1414: insert(_InputIterator __first, _InputIterator __last) 1414: { _M_t._M_insert_range_unique(__first, __last); } 1414: # 1101 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template 1414: pair 1414: insert_or_assign(const key_type& __k, _Obj&& __obj) 1414: { 1414: iterator __i = lower_bound(__k); 1414: if (__i == end() || key_comp()(__k, (*__i).first)) 1414: { 1414: __i = emplace_hint(__i, std::piecewise_construct, 1414: std::forward_as_tuple(__k), 1414: std::forward_as_tuple( 1414: std::forward<_Obj>(__obj))); 1414: return {__i, true}; 1414: } 1414: (*__i).second = std::forward<_Obj>(__obj); 1414: return {__i, false}; 1414: } 1414: 1414: 1414: template 1414: pair 1414: insert_or_assign(key_type&& __k, _Obj&& __obj) 1414: { 1414: iterator __i = lower_bound(__k); 1414: if (__i == end() || key_comp()(__k, (*__i).first)) 1414: { 1414: __i = emplace_hint(__i, std::piecewise_construct, 1414: std::forward_as_tuple(std::move(__k)), 1414: std::forward_as_tuple( 1414: std::forward<_Obj>(__obj))); 1414: return {__i, true}; 1414: } 1414: (*__i).second = std::forward<_Obj>(__obj); 1414: return {__i, false}; 1414: } 1414: # 1182 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template 1414: iterator 1414: insert_or_assign(const_iterator __hint, 1414: const key_type& __k, _Obj&& __obj) 1414: { 1414: iterator __i; 1414: auto __true_hint = _M_t._M_get_insert_hint_unique_pos(__hint, __k); 1414: if (__true_hint.second) 1414: { 1414: return emplace_hint(iterator(__true_hint.second), 1414: std::piecewise_construct, 1414: std::forward_as_tuple(__k), 1414: std::forward_as_tuple( 1414: std::forward<_Obj>(__obj))); 1414: } 1414: __i = iterator(__true_hint.first); 1414: (*__i).second = std::forward<_Obj>(__obj); 1414: return __i; 1414: } 1414: 1414: 1414: template 1414: iterator 1414: insert_or_assign(const_iterator __hint, key_type&& __k, _Obj&& __obj) 1414: { 1414: iterator __i; 1414: auto __true_hint = _M_t._M_get_insert_hint_unique_pos(__hint, __k); 1414: if (__true_hint.second) 1414: { 1414: return emplace_hint(iterator(__true_hint.second), 1414: std::piecewise_construct, 1414: std::forward_as_tuple(std::move(__k)), 1414: std::forward_as_tuple( 1414: std::forward<_Obj>(__obj))); 1414: } 1414: __i = iterator(__true_hint.first); 1414: (*__i).second = std::forward<_Obj>(__obj); 1414: return __i; 1414: } 1414: # 1263 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: iterator 1414: erase(const_iterator __position) 1414: { return _M_t.erase(__position); } 1414: 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: iterator 1414: erase(iterator __position) 1414: { return _M_t.erase(__position); } 1414: # 1301 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: size_type 1414: erase(const key_type& __x) 1414: { return _M_t._M_erase_unique(__x); } 1414: # 1332 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: iterator 1414: erase(const_iterator __first, const_iterator __last) 1414: { return _M_t.erase(__first, __last); } 1414: # 1366 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: void 1414: swap(map& __x) 1414: noexcept(__is_nothrow_swappable<_Compare>::value) 1414: { _M_t.swap(__x._M_t); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: void 1414: clear() noexcept 1414: { _M_t.clear(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: key_compare 1414: key_comp() const 1414: { return _M_t.key_comp(); } 1414: 1414: 1414: 1414: 1414: 1414: value_compare 1414: value_comp() const 1414: { return value_compare(_M_t.key_comp()); } 1414: # 1413 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: iterator 1414: find(const key_type& __x) 1414: { return _M_t.find(__x); } 1414: 1414: 1414: template 1414: auto 1414: find(const _Kt& __x) -> decltype(_M_t._M_find_tr(__x)) 1414: { return _M_t._M_find_tr(__x); } 1414: # 1438 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: const_iterator 1414: find(const key_type& __x) const 1414: { return _M_t.find(__x); } 1414: 1414: 1414: template 1414: auto 1414: find(const _Kt& __x) const -> decltype(_M_t._M_find_tr(__x)) 1414: { return _M_t._M_find_tr(__x); } 1414: # 1459 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: size_type 1414: count(const key_type& __x) const 1414: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 1414: 1414: 1414: template 1414: auto 1414: count(const _Kt& __x) const -> decltype(_M_t._M_count_tr(__x)) 1414: { return _M_t._M_count_tr(__x); } 1414: # 1478 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: bool 1414: contains(const key_type& __x) const 1414: { return _M_t.find(__x) != _M_t.end(); } 1414: 1414: template 1414: auto 1414: contains(const _Kt& __x) const 1414: -> decltype(_M_t._M_find_tr(__x), void(), true) 1414: { return _M_t._M_find_tr(__x) != _M_t.end(); } 1414: # 1502 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: iterator 1414: lower_bound(const key_type& __x) 1414: { return _M_t.lower_bound(__x); } 1414: 1414: 1414: template 1414: auto 1414: lower_bound(const _Kt& __x) 1414: -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) 1414: { return iterator(_M_t._M_lower_bound_tr(__x)); } 1414: # 1527 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: const_iterator 1414: lower_bound(const key_type& __x) const 1414: { return _M_t.lower_bound(__x); } 1414: 1414: 1414: template 1414: auto 1414: lower_bound(const _Kt& __x) const 1414: -> decltype(const_iterator(_M_t._M_lower_bound_tr(__x))) 1414: { return const_iterator(_M_t._M_lower_bound_tr(__x)); } 1414: # 1547 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: iterator 1414: upper_bound(const key_type& __x) 1414: { return _M_t.upper_bound(__x); } 1414: 1414: 1414: template 1414: auto 1414: upper_bound(const _Kt& __x) 1414: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 1414: { return iterator(_M_t._M_upper_bound_tr(__x)); } 1414: # 1567 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: const_iterator 1414: upper_bound(const key_type& __x) const 1414: { return _M_t.upper_bound(__x); } 1414: 1414: 1414: template 1414: auto 1414: upper_bound(const _Kt& __x) const 1414: -> decltype(const_iterator(_M_t._M_upper_bound_tr(__x))) 1414: { return const_iterator(_M_t._M_upper_bound_tr(__x)); } 1414: # 1596 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: std::pair 1414: equal_range(const key_type& __x) 1414: { return _M_t.equal_range(__x); } 1414: 1414: 1414: template 1414: auto 1414: equal_range(const _Kt& __x) 1414: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 1414: { return pair(_M_t._M_equal_range_tr(__x)); } 1414: # 1625 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: std::pair 1414: equal_range(const key_type& __x) const 1414: { return _M_t.equal_range(__x); } 1414: 1414: 1414: template 1414: auto 1414: equal_range(const _Kt& __x) const 1414: -> decltype(pair( 1414: _M_t._M_equal_range_tr(__x))) 1414: { 1414: return pair( 1414: _M_t._M_equal_range_tr(__x)); 1414: } 1414: 1414: 1414: 1414: template 1414: friend bool 1414: operator==(const map<_K1, _T1, _C1, _A1>&, 1414: const map<_K1, _T1, _C1, _A1>&); 1414: 1414: 1414: template 1414: friend __detail::__synth3way_t> 1414: operator<=>(const map<_K1, _T1, _C1, _A1>&, 1414: const map<_K1, _T1, _C1, _A1>&); 1414: 1414: 1414: 1414: 1414: 1414: 1414: }; 1414: 1414: 1414: 1414: 1414: template>, 1414: typename _Allocator = allocator<__iter_to_alloc_t<_InputIterator>>, 1414: typename = _RequireInputIter<_InputIterator>, 1414: typename = _RequireNotAllocator<_Compare>, 1414: typename = _RequireAllocator<_Allocator>> 1414: map(_InputIterator, _InputIterator, 1414: _Compare = _Compare(), _Allocator = _Allocator()) 1414: -> map<__iter_key_t<_InputIterator>, __iter_val_t<_InputIterator>, 1414: _Compare, _Allocator>; 1414: 1414: template, 1414: typename _Allocator = allocator>, 1414: typename = _RequireNotAllocator<_Compare>, 1414: typename = _RequireAllocator<_Allocator>> 1414: map(initializer_list>, 1414: _Compare = _Compare(), _Allocator = _Allocator()) 1414: -> map<_Key, _Tp, _Compare, _Allocator>; 1414: 1414: template , 1414: typename = _RequireAllocator<_Allocator>> 1414: map(_InputIterator, _InputIterator, _Allocator) 1414: -> map<__iter_key_t<_InputIterator>, __iter_val_t<_InputIterator>, 1414: less<__iter_key_t<_InputIterator>>, _Allocator>; 1414: 1414: template> 1414: map(initializer_list>, _Allocator) 1414: -> map<_Key, _Tp, less<_Key>, _Allocator>; 1414: # 1724 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template 1414: inline bool 1414: operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, 1414: const map<_Key, _Tp, _Compare, _Alloc>& __y) 1414: { return __x._M_t == __y._M_t; } 1414: # 1745 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template 1414: inline __detail::__synth3way_t> 1414: operator<=>(const map<_Key, _Tp, _Compare, _Alloc>& __x, 1414: const map<_Key, _Tp, _Compare, _Alloc>& __y) 1414: { return __x._M_t <=> __y._M_t; } 1414: # 1798 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_map.h" 3 1414: template 1414: inline void 1414: swap(map<_Key, _Tp, _Compare, _Alloc>& __x, 1414: map<_Key, _Tp, _Compare, _Alloc>& __y) 1414: noexcept(noexcept(__x.swap(__y))) 1414: { __x.swap(__y); } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct 1414: _Rb_tree_merge_helper, 1414: _Cmp2> 1414: { 1414: private: 1414: friend class std::map<_Key, _Val, _Cmp1, _Alloc>; 1414: 1414: static auto& 1414: _S_get_tree(std::map<_Key, _Val, _Cmp2, _Alloc>& __map) 1414: { return __map._M_t; } 1414: 1414: static auto& 1414: _S_get_tree(std::multimap<_Key, _Val, _Cmp2, _Alloc>& __map) 1414: { return __map._M_t; } 1414: }; 1414: 1414: 1414: 1414: } 1414: # 66 "/usr/arm-linux-gnueabihf/include/c++/16/map" 2 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 1 3 1414: # 68 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: 1414: 1414: template 1414: class map; 1414: # 102 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: template , 1414: typename _Alloc = std::allocator > > 1414: class multimap 1414: { 1414: public: 1414: typedef _Key key_type; 1414: typedef _Tp mapped_type; 1414: typedef std::pair value_type; 1414: typedef _Compare key_compare; 1414: typedef _Alloc allocator_type; 1414: 1414: private: 1414: # 128 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: static_assert(is_same::value, 1414: "std::multimap must have the same value_type as its allocator"); 1414: 1414: 1414: 1414: public: 1414: #pragma GCC diagnostic push 1414: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1414: class value_compare 1414: : public std::binary_function 1414: { 1414: friend class multimap<_Key, _Tp, _Compare, _Alloc>; 1414: protected: 1414: _Compare comp; 1414: 1414: value_compare(_Compare __c) 1414: : comp(__c) { } 1414: 1414: public: 1414: bool operator()(const value_type& __x, const value_type& __y) const 1414: { return comp(__x.first, __y.first); } 1414: }; 1414: #pragma GCC diagnostic pop 1414: 1414: private: 1414: 1414: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 1414: rebind::other _Pair_alloc_type; 1414: 1414: typedef _Rb_tree, 1414: key_compare, _Pair_alloc_type> _Rep_type; 1414: 1414: _Rep_type _M_t; 1414: 1414: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 1414: 1414: public: 1414: 1414: 1414: typedef typename _Alloc_traits::pointer pointer; 1414: typedef typename _Alloc_traits::const_pointer const_pointer; 1414: typedef typename _Alloc_traits::reference reference; 1414: typedef typename _Alloc_traits::const_reference const_reference; 1414: typedef typename _Rep_type::iterator iterator; 1414: typedef typename _Rep_type::const_iterator const_iterator; 1414: typedef typename _Rep_type::size_type size_type; 1414: typedef typename _Rep_type::difference_type difference_type; 1414: typedef typename _Rep_type::reverse_iterator reverse_iterator; 1414: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 1414: 1414: 1414: using node_type = typename _Rep_type::node_type; 1414: # 191 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: multimap() = default; 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: explicit 1414: multimap(const _Compare& __comp, 1414: const allocator_type& __a = allocator_type()) 1414: : _M_t(__comp, _Pair_alloc_type(__a)) { } 1414: # 213 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: multimap(const multimap&) = default; 1414: # 222 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: multimap(multimap&&) = default; 1414: # 234 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: multimap(initializer_list __l, 1414: const _Compare& __comp = _Compare(), 1414: const allocator_type& __a = allocator_type()) 1414: : _M_t(__comp, _Pair_alloc_type(__a)) 1414: { _M_t._M_insert_range_equal(__l.begin(), __l.end()); } 1414: 1414: 1414: explicit 1414: multimap(const allocator_type& __a) 1414: : _M_t(_Pair_alloc_type(__a)) { } 1414: 1414: 1414: multimap(const multimap& __m, 1414: const __type_identity_t& __a) 1414: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 1414: 1414: 1414: multimap(multimap&& __m, const __type_identity_t& __a) 1414: noexcept(is_nothrow_copy_constructible<_Compare>::value 1414: && _Alloc_traits::_S_always_equal()) 1414: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 1414: 1414: 1414: multimap(initializer_list __l, const allocator_type& __a) 1414: : _M_t(_Pair_alloc_type(__a)) 1414: { _M_t._M_insert_range_equal(__l.begin(), __l.end()); } 1414: 1414: 1414: template 1414: multimap(_InputIterator __first, _InputIterator __last, 1414: const allocator_type& __a) 1414: : _M_t(_Pair_alloc_type(__a)) 1414: { _M_t._M_insert_range_equal(__first, __last); } 1414: # 278 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: template 1414: multimap(_InputIterator __first, _InputIterator __last) 1414: : _M_t() 1414: { _M_t._M_insert_range_equal(__first, __last); } 1414: # 294 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: template 1414: multimap(_InputIterator __first, _InputIterator __last, 1414: const _Compare& __comp, 1414: const allocator_type& __a = allocator_type()) 1414: : _M_t(__comp, _Pair_alloc_type(__a)) 1414: { _M_t._M_insert_range_equal(__first, __last); } 1414: # 327 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: ~multimap() = default; 1414: # 343 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: multimap& 1414: operator=(const multimap&) = default; 1414: 1414: 1414: multimap& 1414: operator=(multimap&&) = default; 1414: # 361 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: multimap& 1414: operator=(initializer_list __l) 1414: { 1414: _M_t._M_assign_equal(__l.begin(), __l.end()); 1414: return *this; 1414: } 1414: 1414: 1414: 1414: allocator_type 1414: get_allocator() const noexcept 1414: { return allocator_type(_M_t.get_allocator()); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: iterator 1414: begin() noexcept 1414: { return _M_t.begin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_iterator 1414: begin() const noexcept 1414: { return _M_t.begin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: iterator 1414: end() noexcept 1414: { return _M_t.end(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_iterator 1414: end() const noexcept 1414: { return _M_t.end(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: reverse_iterator 1414: rbegin() noexcept 1414: { return _M_t.rbegin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_reverse_iterator 1414: rbegin() const noexcept 1414: { return _M_t.rbegin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: reverse_iterator 1414: rend() noexcept 1414: { return _M_t.rend(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_reverse_iterator 1414: rend() const noexcept 1414: { return _M_t.rend(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_iterator 1414: cbegin() const noexcept 1414: { return _M_t.begin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_iterator 1414: cend() const noexcept 1414: { return _M_t.end(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_reverse_iterator 1414: crbegin() const noexcept 1414: { return _M_t.rbegin(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: const_reverse_iterator 1414: crend() const noexcept 1414: { return _M_t.rend(); } 1414: 1414: 1414: 1414: 1414: [[__nodiscard__]] bool 1414: empty() const noexcept 1414: { return _M_t.empty(); } 1414: 1414: 1414: size_type 1414: size() const noexcept 1414: { return _M_t.size(); } 1414: 1414: 1414: size_type 1414: max_size() const noexcept 1414: { return _M_t.max_size(); } 1414: # 519 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: template 1414: iterator 1414: emplace(_Args&&... __args) 1414: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 1414: # 546 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: template 1414: iterator 1414: emplace_hint(const_iterator __pos, _Args&&... __args) 1414: { 1414: return _M_t._M_emplace_hint_equal(__pos, 1414: std::forward<_Args>(__args)...); 1414: } 1414: # 568 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: iterator 1414: insert(const value_type& __x) 1414: { return _M_t._M_insert_equal(__x); } 1414: 1414: 1414: 1414: 1414: iterator 1414: insert(value_type&& __x) 1414: { return _M_t._M_insert_equal(std::move(__x)); } 1414: 1414: template 1414: __enable_if_t::value, iterator> 1414: insert(_Pair&& __x) 1414: { return _M_t._M_emplace_equal(std::forward<_Pair>(__x)); } 1414: # 607 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: iterator 1414: 1414: insert(const_iterator __position, const value_type& __x) 1414: 1414: 1414: 1414: { return _M_t._M_insert_equal_(__position, __x); } 1414: 1414: 1414: 1414: 1414: iterator 1414: insert(const_iterator __position, value_type&& __x) 1414: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 1414: 1414: template 1414: __enable_if_t::value, iterator> 1414: insert(const_iterator __position, _Pair&& __x) 1414: { 1414: return _M_t._M_emplace_hint_equal(__position, 1414: std::forward<_Pair>(__x)); 1414: } 1414: # 641 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: template 1414: void 1414: insert(_InputIterator __first, _InputIterator __last) 1414: { _M_t._M_insert_range_equal(__first, __last); } 1414: # 654 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: void 1414: insert(initializer_list __l) 1414: { this->insert(__l.begin(), __l.end()); } 1414: # 680 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: node_type 1414: extract(const_iterator __pos) 1414: { 1414: do { if (std::__is_constant_evaluated() && !bool(__pos != end())) std::__glibcxx_assert_fail(); } while (false); 1414: return _M_t.extract(__pos); 1414: } 1414: 1414: 1414: node_type 1414: extract(const key_type& __x) 1414: { return _M_t.extract(__x); } 1414: # 700 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: iterator 1414: insert(node_type&& __nh) 1414: { return _M_t._M_reinsert_node_equal(std::move(__nh)); } 1414: 1414: 1414: iterator 1414: insert(const_iterator __hint, node_type&& __nh) 1414: { return _M_t._M_reinsert_node_hint_equal(__hint, std::move(__nh)); } 1414: 1414: template 1414: friend struct std::_Rb_tree_merge_helper; 1414: 1414: template 1414: void 1414: merge(multimap<_Key, _Tp, _Cmp2, _Alloc>& __source) 1414: { 1414: using _Merge_helper = _Rb_tree_merge_helper; 1414: _M_t._M_merge_equal(_Merge_helper::_S_get_tree(__source)); 1414: } 1414: 1414: template 1414: void 1414: merge(multimap<_Key, _Tp, _Cmp2, _Alloc>&& __source) 1414: { merge(__source); } 1414: 1414: template 1414: void 1414: merge(map<_Key, _Tp, _Cmp2, _Alloc>& __source) 1414: { 1414: using _Merge_helper = _Rb_tree_merge_helper; 1414: _M_t._M_merge_equal(_Merge_helper::_S_get_tree(__source)); 1414: } 1414: 1414: template 1414: void 1414: merge(map<_Key, _Tp, _Cmp2, _Alloc>&& __source) 1414: { merge(__source); } 1414: # 757 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: iterator 1414: erase(const_iterator __position) 1414: { return _M_t.erase(__position); } 1414: 1414: 1414: __attribute ((__abi_tag__ ("cxx11"))) 1414: iterator 1414: erase(iterator __position) 1414: { return _M_t.erase(__position); } 1414: # 794 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: size_type 1414: erase(const key_type& __x) 1414: { return _M_t.erase(__x); } 1414: # 822 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: iterator 1414: erase(const_iterator __first, const_iterator __last) 1414: { return _M_t.erase(__first, __last); } 1414: # 859 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: void 1414: swap(multimap& __x) 1414: noexcept(__is_nothrow_swappable<_Compare>::value) 1414: { _M_t.swap(__x._M_t); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: void 1414: clear() noexcept 1414: { _M_t.clear(); } 1414: 1414: 1414: 1414: 1414: 1414: 1414: key_compare 1414: key_comp() const 1414: { return _M_t.key_comp(); } 1414: 1414: 1414: 1414: 1414: 1414: value_compare 1414: value_comp() const 1414: { return value_compare(_M_t.key_comp()); } 1414: # 905 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: iterator 1414: find(const key_type& __x) 1414: { return _M_t.find(__x); } 1414: 1414: 1414: template 1414: auto 1414: find(const _Kt& __x) -> decltype(_M_t._M_find_tr(__x)) 1414: { return _M_t._M_find_tr(__x); } 1414: # 929 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: const_iterator 1414: find(const key_type& __x) const 1414: { return _M_t.find(__x); } 1414: 1414: 1414: template 1414: auto 1414: find(const _Kt& __x) const -> decltype(_M_t._M_find_tr(__x)) 1414: { return _M_t._M_find_tr(__x); } 1414: # 947 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: size_type 1414: count(const key_type& __x) const 1414: { return _M_t.count(__x); } 1414: 1414: 1414: template 1414: auto 1414: count(const _Kt& __x) const -> decltype(_M_t._M_count_tr(__x)) 1414: { return _M_t._M_count_tr(__x); } 1414: # 966 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: bool 1414: contains(const key_type& __x) const 1414: { return _M_t.find(__x) != _M_t.end(); } 1414: 1414: template 1414: auto 1414: contains(const _Kt& __x) const 1414: -> decltype(_M_t._M_find_tr(__x), void(), true) 1414: { return _M_t._M_find_tr(__x) != _M_t.end(); } 1414: # 990 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: iterator 1414: lower_bound(const key_type& __x) 1414: { return _M_t.lower_bound(__x); } 1414: 1414: 1414: template 1414: auto 1414: lower_bound(const _Kt& __x) 1414: -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) 1414: { return iterator(_M_t._M_lower_bound_tr(__x)); } 1414: # 1015 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: const_iterator 1414: lower_bound(const key_type& __x) const 1414: { return _M_t.lower_bound(__x); } 1414: 1414: 1414: template 1414: auto 1414: lower_bound(const _Kt& __x) const 1414: -> decltype(const_iterator(_M_t._M_lower_bound_tr(__x))) 1414: { return const_iterator(_M_t._M_lower_bound_tr(__x)); } 1414: # 1035 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: iterator 1414: upper_bound(const key_type& __x) 1414: { return _M_t.upper_bound(__x); } 1414: 1414: 1414: template 1414: auto 1414: upper_bound(const _Kt& __x) 1414: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 1414: { return iterator(_M_t._M_upper_bound_tr(__x)); } 1414: # 1055 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: const_iterator 1414: upper_bound(const key_type& __x) const 1414: { return _M_t.upper_bound(__x); } 1414: 1414: 1414: template 1414: auto 1414: upper_bound(const _Kt& __x) const 1414: -> decltype(const_iterator(_M_t._M_upper_bound_tr(__x))) 1414: { return const_iterator(_M_t._M_upper_bound_tr(__x)); } 1414: # 1082 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: std::pair 1414: equal_range(const key_type& __x) 1414: { return _M_t.equal_range(__x); } 1414: 1414: 1414: template 1414: auto 1414: equal_range(const _Kt& __x) 1414: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 1414: { return pair(_M_t._M_equal_range_tr(__x)); } 1414: # 1109 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: std::pair 1414: equal_range(const key_type& __x) const 1414: { return _M_t.equal_range(__x); } 1414: 1414: 1414: template 1414: auto 1414: equal_range(const _Kt& __x) const 1414: -> decltype(pair( 1414: _M_t._M_equal_range_tr(__x))) 1414: { 1414: return pair( 1414: _M_t._M_equal_range_tr(__x)); 1414: } 1414: 1414: 1414: 1414: template 1414: friend bool 1414: operator==(const multimap<_K1, _T1, _C1, _A1>&, 1414: const multimap<_K1, _T1, _C1, _A1>&); 1414: 1414: 1414: template 1414: friend __detail::__synth3way_t> 1414: operator<=>(const multimap<_K1, _T1, _C1, _A1>&, 1414: const multimap<_K1, _T1, _C1, _A1>&); 1414: 1414: 1414: 1414: 1414: 1414: 1414: }; 1414: 1414: 1414: 1414: template>, 1414: typename _Allocator = allocator<__iter_to_alloc_t<_InputIterator>>, 1414: typename = _RequireInputIter<_InputIterator>, 1414: typename = _RequireNotAllocator<_Compare>, 1414: typename = _RequireAllocator<_Allocator>> 1414: multimap(_InputIterator, _InputIterator, 1414: _Compare = _Compare(), _Allocator = _Allocator()) 1414: -> multimap<__iter_key_t<_InputIterator>, __iter_val_t<_InputIterator>, 1414: _Compare, _Allocator>; 1414: 1414: template, 1414: typename _Allocator = allocator>, 1414: typename = _RequireNotAllocator<_Compare>, 1414: typename = _RequireAllocator<_Allocator>> 1414: multimap(initializer_list>, 1414: _Compare = _Compare(), _Allocator = _Allocator()) 1414: -> multimap<_Key, _Tp, _Compare, _Allocator>; 1414: 1414: template, 1414: typename = _RequireAllocator<_Allocator>> 1414: multimap(_InputIterator, _InputIterator, _Allocator) 1414: -> multimap<__iter_key_t<_InputIterator>, __iter_val_t<_InputIterator>, 1414: less<__iter_key_t<_InputIterator>>, _Allocator>; 1414: 1414: template> 1414: multimap(initializer_list>, _Allocator) 1414: -> multimap<_Key, _Tp, less<_Key>, _Allocator>; 1414: # 1207 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: template 1414: inline bool 1414: operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 1414: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 1414: { return __x._M_t == __y._M_t; } 1414: # 1228 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: template 1414: inline __detail::__synth3way_t> 1414: operator<=>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 1414: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 1414: { return __x._M_t <=> __y._M_t; } 1414: # 1281 "/usr/arm-linux-gnueabihf/include/c++/16/bits/stl_multimap.h" 3 1414: template 1414: inline void 1414: swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, 1414: multimap<_Key, _Tp, _Compare, _Alloc>& __y) 1414: noexcept(noexcept(__x.swap(__y))) 1414: { __x.swap(__y); } 1414: 1414: 1414: 1414: 1414: 1414: template 1414: struct 1414: _Rb_tree_merge_helper, 1414: _Cmp2> 1414: { 1414: private: 1414: friend class std::multimap<_Key, _Val, _Cmp1, _Alloc>; 1414: 1414: static auto& 1414: _S_get_tree(std::map<_Key, _Val, _Cmp2, _Alloc>& __map) 1414: { return __map._M_t; } 1414: 1414: static auto& 1414: _S_get_tree(std::multimap<_Key, _Val, _Cmp2, _Alloc>& __map) 1414: { return __map._M_t; } 1414: }; 1414: 1414: 1414: 1414: } 1414: # 67 "/usr/arm-linux-gnueabihf/include/c++/16/map" 2 3 1414: # 84 "/usr/arm-linux-gnueabihf/include/c++/16/map" 3 1414: # 1 "/usr/arm-linux-gnueabihf/include/c++/16/bits/version.h" 1 3 1414: # 85 "/usr/arm-linux-gnueabihf/include/c++/16/map" 2 3 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: namespace pmr 1414: { 1414: template> 1414: using map 1414: = std::map<_Key, _Tp, _Cmp, 1414: polymorphic_allocator>>; 1414: template> 1414: using multimap 1414: = std::multimap<_Key, _Tp, _Cmp, 1414: polymorphic_allocator>>; 1414: } 1414: 1414: } 1414: 1414: 1414: 1414: namespace std __attribute__ ((__visibility__ ("default"))) 1414: { 1414: 1414: template 1414: inline typename std::map<_Key, _Tp, _Compare, _Alloc>::size_type 1414: erase_if(std::map<_Key, _Tp, _Compare, _Alloc>& __cont, 1414: _Predicate __pred) 1414: { return __detail::__erase_nodes_if(__cont, __cont, __pred); } 1414: 1414: template 1414: inline typename std::multimap<_Key, _Tp, 1414: _Compare, _Alloc>::size_type 1414: erase_if(std::multimap<_Key, _Tp, _Compare, _Alloc>& __cont, 1414: _Predicate __pred) 1414: { return __detail::__erase_nodes_if(__cont, __cont, __pred); } 1414: 1414: } 1414: # 15 "build/include/internal/botan/internal/parsing.h" 2 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: # 21 "build/include/internal/botan/internal/parsing.h" 1414: namespace Botan { 1414: 1414: 1414: 1414: 1414: 1414: 1414: std::vector parse_algorithm_name(std::string_view scan_name); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: __attribute__((visibility("default"))) std::vector split_on(std::string_view str, char delim); 1414: 1414: 1414: 1414: 1414: 1414: 1414: 1414: std::string string_join(const std::vector& strs, char delim); 1414: 1414: 1414: 1414: 1414: 1414: 1414: __attribute__((visibility("default"))) uint32_t to_u32bit(std::string_view str); 1414: 1414: 1414: 1414: 1414: 1414: 1414: uint16_t to_uint16(std::string_view str); 1414: 1414: 1414: 1414: 1414: 1414: 1414: std::optional __attribute__((visibility("default"))) string_to_ipv4(std::string_view ip_str); 1414: 1414: 1414: 1414: 1414: 1414: 1414: std::string __attribute__((visibility("default"))) ipv4_to_string(uint32_t ip_addr); 1414: # 81 "build/include/internal/botan/internal/parsing.h" 1414: std::optional> __attribute__((visibility("default"))) string_to_ipv6(std::string_view ip_str); 1414: 1414: 1414: 1414: 1414: 1414: std::string __attribute__((visibility("default"))) ipv6_to_string(std::span ip_addr); 1414: 1414: std::map read_cfg(std::istream& is); 1414: # 106 "build/include/internal/botan/internal/parsing.h" 1414: __attribute__((visibility("default"))) 1414: std::map read_kv(std::string_view kv); 1414: 1414: std::string tolower_string(std::string_view str); 1414: 1414: 1414: 1414: 1414: __attribute__((visibility("default"))) 1414: bool host_wildcard_match(std::string_view wildcard, std::string_view host); 1414: 1414: 1414: 1414: 1414: 1414: 1414: __attribute__((visibility("default"))) std::string check_and_canonicalize_dns_name(std::string_view name); 1414: 1414: } 1414: # 13 "/build/reproducible-path/botan3-3.12.0+dfsg/src/lib/utils/ip_address/ipv6_address.cpp" 2 1414: 1414: 1414: namespace Botan { 1414: 1414: IPv6Address::IPv6Address(std::span ip) : m_ip{} { 1414: for(size_t i = 0; i != 16; ++i) { 1414: m_ip[i] = ip[i]; 1414: } 1414: } 1414: 1414: 1414: std::optional IPv6Address::from_string(std::string_view str) { 1414: if(auto ipv6 = string_to_ipv6(str)) { 1414: return IPv6Address(*ipv6); 1414: } else { 1414: return {}; 1414: } 1414: } 1414: 1414: 1414: IPv6Address IPv6Address::netmask(size_t bits) { 1414: do { if(!(bits <= 128)) { Botan::throw_invalid_argument("IPv6 netmask prefix length must be at most 128", __func__, "./src/lib/utils/ip_address/ipv6_address.cpp"); } } while(0); 1414: 1414: const size_t full_bytes = bits / 8; 1414: const size_t leftover = bits % 8; 1414: 1414: std::array m{}; 1414: for(size_t i = 0; i != full_bytes; ++i) { 1414: m[i] = 0xFF; 1414: } 1414: 1414: if(leftover > 0) { 1414: m[full_bytes] = static_cast(0xFF << (8 - leftover)); 1414: } 1414: 1414: return IPv6Address(m); 1414: } 1414: 1414: std::string IPv6Address::to_string() const { 1414: return ipv6_to_string(m_ip); 1414: } 1414: 1414: IPv6Address IPv6Address::operator&(const IPv6Address& other) const { 1414: std::array masked{}; 1414: for(size_t i = 0; i != 16; ++i) { 1414: masked[i] = m_ip[i] & other.m_ip[i]; 1414: } 1414: return IPv6Address(masked); 1414: } 1414: 1414: std::optional IPv6Address::prefix_length() const { 1414: 1414: size_t leading = 0; 1414: for(size_t i = 0; i != 16; ++i) { 1414: const size_t hw = (m_ip[i] == 0xFF) ? 8 : std::countl_one(m_ip[i]); 1414: leading += hw; 1414: if(hw != 8) { 1414: break; 1414: } 1414: } 1414: 1414: 1414: if(*this != netmask(leading)) { 1414: return std::nullopt; 1414: } 1414: return leading; 1414: } 1414: 1414: std::optional IPv6Address::as_ipv4() const { 1414: const uint32_t ip0 = load_be(m_ip.data(), 0); 1414: const uint32_t ip1 = load_be(m_ip.data(), 1); 1414: const uint32_t ip2 = load_be(m_ip.data(), 2); 1414: const uint32_t ip3 = load_be(m_ip.data(), 3); 1414: 1414: if(ip0 == 0x00000000 && ip1 == 0x00000000 && (ip2 == 0x00000000 || ip2 == 0x0000FFFF)) { 1414: return IPv4Address(ip3); 1414: } else { 1414: return {}; 1414: } 1414: } 1414: 1414: IPv6Subnet::IPv6Subnet(IPv6Address address, size_t prefix_length) : 1414: m_address(address & IPv6Address::netmask(prefix_length)), m_prefix_length(static_cast(prefix_length)) { 1414: 1414: 1414: } 1414: 1414: 1414: std::optional IPv6Subnet::from_address_and_mask(std::span addr_and_mask) { 1414: const auto addr = IPv6Address(addr_and_mask.first<16>()); 1414: const auto mask = IPv6Address(addr_and_mask.last<16>()); 1414: 1414: if(const auto plen = mask.prefix_length()) { 1414: return IPv6Subnet(addr, *plen); 1414: } else { 1414: return {}; 1414: } 1414: } 1414: 1414: 1414: std::optional IPv6Subnet::from_string(std::string_view str) { 1414: const auto slash = str.find('/'); 1414: if(slash == std::string_view::npos) { 1414: return std::nullopt; 1414: } 1414: 1414: auto addr = IPv6Address::from_string(str.substr(0, slash)); 1414: if(!addr.has_value()) { 1414: return std::nullopt; 1414: } 1414: 1414: 1414: const auto plen_str = str.substr(slash + 1); 1414: if(plen_str.empty() || plen_str.size() > 3) { 1414: return std::nullopt; 1414: } 1414: size_t plen = 0; 1414: for(const char c : plen_str) { 1414: if(c < '0' || c > '9') { 1414: return std::nullopt; 1414: } 1414: plen = plen * 10 + static_cast(c - '0'); 1414: } 1414: if(plen > 128) { 1414: return std::nullopt; 1414: } 1414: 1414: return IPv6Subnet(*addr, plen); 1414: } 1414: 1414: bool IPv6Subnet::contains(const IPv6Address& ip) const { 1414: return (ip & IPv6Address::netmask(m_prefix_length)) == m_address; 1414: } 1414: 1414: std::string IPv6Subnet::to_string() const { 1414: return fmt("{}/{}", m_address.to_string(), static_cast(m_prefix_length)); 1414: } 1414: 1414: std::vector IPv6Subnet::serialize() const { 1414: const auto addr = m_address.address(); 1414: if(is_host()) { 1414: return std::vector(addr.begin(), addr.end()); 1414: } 1414: const auto mask = IPv6Address::netmask(m_prefix_length).address(); 1414: std::vector out; 1414: out.reserve(32); 1414: out.insert(out.end(), addr.begin(), addr.end()); 1414: out.insert(out.end(), mask.begin(), mask.end()); 1414: return out; 1414: } 1414: 1414: } === END GCC DUMP === make[1]: *** [Makefile:1467: build/obj/lib/utils_ip_address_ipv6_address.o] Error 1 make[1]: Leaving directory '/build/reproducible-path/botan3-3.12.0+dfsg' dh_auto_build: error: make -j1 INSTALL="install --strip-program=true" CXX=arm-linux-gnueabihf-g\+\+ CC=arm-linux-gnueabihf-gcc returned exit code 2 make: *** [debian/rules:67: binary-arch] Error 25 dpkg-buildpackage: error: debian/rules binary-arch subprocess failed with exit status 2 -------------------------------------------------------------------------------- Build finished at 2026-09-03T09:51:35Z +------------------------------------------------------------------------------+ | Finished Timed Build Commands Thu, 03 Sep 2026 09:51:35 +0000 | +------------------------------------------------------------------------------+ rm -Rf /build/reproducible-path/botan3-3.12.0+dfsg/ --------------------------------------------------- I: Finished running 'rm -Rf /build/reproducible-path/botan3-3.12.0+dfsg/'. Finished processing commands. -------------------------------------------------------------------------------- Finished -------- +------------------------------------------------------------------------------+ | Cleanup Thu, 03 Sep 2026 09:51:35 +0000 | +------------------------------------------------------------------------------+ Purging /build/reproducible-path Not cleaning session: cloned chroot in use E: Build failure (dpkg-buildpackage died with exit 2) +------------------------------------------------------------------------------+ | Summary Thu, 03 Sep 2026 09:51:36 +0000 | +------------------------------------------------------------------------------+ Build Architecture: amd64 Build Profiles: cross nocheck Build Type: any Build-Space: n/a Build-Time: 1518 Distribution: unstable Fail-Stage: build Foreign Architectures: armhf Host Architecture: armhf Install-Time: 21 Job: botan3_3.12.0+dfsg-2 Machine Architecture: amd64 Package: botan3 Package-Time: 1558 Source-Version: 3.12.0+dfsg-2 Space: n/a Status: attempted Version: 3.12.0+dfsg-2 -------------------------------------------------------------------------------- Finished at 2026-09-03T09:51:35Z Build needed 00:25:58, no disk space